Phát triển Mạng Kolmogorov-Arnold
(github.com/KindXiaoming)Giới thiệu Mạng Kolmogorov-Arnold (KANs)
Định nghĩa và đặc điểm của KAN
- Mạng Kolmogorov-Arnold (KANs) là một phương án thay thế đầy triển vọng cho Multi-Layer Perceptrons (MLPs)
- KANs có nền tảng toán học mạnh mẽ giống như MLPs
- MLPs dựa trên định lý xấp xỉ phổ quát (universal approximation theorem)
- KANs dựa trên định lý biểu diễn Kolmogorov-Arnold (Kolmogorov-Arnold representation theorem)
- KANs và MLPs là cặp đối ngẫu (dual)
- KANs gán hàm kích hoạt trên các cạnh (edge)
- MLPs gán hàm kích hoạt trên các nút (node)
- Chỉ với thay đổi đơn giản này, KANs đạt hiệu năng tốt hơn MLPs về độ chính xác (accuracy) và khả năng diễn giải (interpretability), đôi khi còn tốt hơn rất nhiều
Độ chính xác của KAN
- KANs cho thấy khả năng mở rộng nhanh hơn so với MLPs
- KANs cho độ chính xác cao hơn MLPs ngay cả khi dùng ít tham số hơn
- Ví dụ
- Khớp công thức ký hiệu (symbolic formula)
- Khớp hàm đặc biệt (special function)
- Giải phương trình vi phân riêng phần (PDE)
- Tránh hiện tượng catastrophic forgetting
Khả năng diễn giải của KAN
- KANs có thể được trực quan hóa theo cách trực quan
- KANs cung cấp khả năng diễn giải và tương tác mà MLPs không thể mang lại
- KANs có thể tiềm năng giúp phát hiện các quy luật khoa học mới
- Ví dụ
- Diễn giải công thức ký hiệu
- Phát hiện quy luật toán học của knot
- Phát hiện quy luật vật lý của Anderson localization
- Diễn giải quá trình huấn luyện KAN 3 tầng
Cài đặt
- Có thể cài đặt pykan qua pypi hoặc github
- Cung cấp cách cài đặt qua github
- Cung cấp cách cài đặt qua pypi
- Nêu rõ các yêu cầu và cách cài đặt các yêu cầu
Yêu cầu tính toán
- Ví dụ trong tutorial thường có thể chạy trong dưới 10 phút trên một CPU đơn
- Tất cả các ví dụ trong bài báo có thể chạy trong dưới một ngày trên một CPU đơn
- Việc huấn luyện KAN cho PDE là tốn tài nguyên tính toán nhất và có thể mất từ vài giờ đến vài ngày trên một CPU đơn
- Sử dụng CPU để huấn luyện mô hình khi quét tham số (sweep) để thu được Pareto Frontier
- Nếu quy mô công việc lớn, nên dùng GPU
Tài liệu
- Tài liệu có thể tìm thấy tại URL đã liên kết
Tutorial
- Quickstart: bắt đầu bằng notebook hellokan.ipynb
- More Demos: có thể tìm thêm nhiều notebook hướng dẫn trong tutorials
Trích dẫn
- Cung cấp cách trích dẫn bài báo
Liên hệ
- Có thể liên hệ qua email zmliu@mit.edu nếu có câu hỏi
Ý kiến của GN⁺
-
KAN là một kiến trúc mạng nơ-ron có nền tảng toán học với lợi thế về độ chính xác và khả năng diễn giải so với MLPs, nên là một cấu trúc thay thế đáng chú ý. Tuy nhiên, có vẻ đây vẫn là giai đoạn nghiên cứu ban đầu, và cần thêm kiểm chứng hiệu năng trên các bộ dữ liệu lớn hoặc bài toán phức tạp.
-
Trong khi MLPs đặt hàm kích hoạt tại nút, KANs đặt tại cạnh, đây là điểm khác biệt then chốt. Do đó cần phân tích kỹ những thay đổi về cấu trúc mạng và cơ chế học do điều này tạo ra.
-
Khả năng diễn giải của KAN có thể giúp giải quyết vấn đề hộp đen của AI và tiềm năng ứng dụng để khám phá quy luật khoa học mới là một điểm thú vị. Tuy nhiên, vì lĩnh vực AI có thể diễn giải đã có nhiều nghiên cứu, cần nhấn mạnh lợi thế nổi bật của cách tiếp cận KAN.
-
Các ví dụ trong bài báo chủ yếu nằm trong lĩnh vực toán/khoa học. Cần thêm nghiên cứu để xem KAN có thể thay thế được MLPs trong các miền khác như hình ảnh, ngôn ngữ tự nhiên hay không.
-
Các tiếp cận tương tự với KAN như Capsule Networks, Graph Neural Networks đã và đang có. Cần nghiên cứu so sánh để kiểm chứng điểm mạnh riêng của KAN.
1 bình luận
Ý kiến trên Hacker News
Một người giới thiệu rằng họ đã hiện thực hóa gọn gàng ý tưởng trong bài báo bằng PyTorch. Cốt lõi chỉ gồm vài dòng mã, sử dụng hệ số Fourier để nội suy hàm một chiều thay vì spline. Điều này thể hiện khả năng biểu diễn của mạng Kolmogorov-Arnold, có thể hội tụ dễ hơn phiên bản spline trong bài báo, nhưng lại tốn nhiều phép tính hơn.
Một người dùng khác chia sẻ kết quả khi thử nghiệm notebook Jupyter được cung cấp. Trong bài toán phân loại, khi thay đổi kiến trúc mạng từ (2, 2) sang (2, 2, 2), thì không khái quát được; khi tăng kích thước dữ liệu huấn luyện lên 100 lần, hiện tượng overfitting được cải thiện nhưng loss huấn luyện không hạ xuống dưới 1e-2. Họ muốn thử nghiệm trên các ví dụ và dữ liệu lớn hơn.
Trong bối cảnh gần đây mệt mỏi vì các cải tiến dần dần của Transformer, nghiên cứu này được đánh giá cao vì đưa ra ý tưởng mới có thể tăng khả năng biểu diễn của DNN hiện tại. Việc nó có thực sự cải thiện hiệu năng thực tế hay không vẫn cần được xác minh thêm.
Về khả năng mở rộng của chính thuật toán này (liệu nó có học tốt khi thêm nhiều lớp hơn) và khả năng tận dụng tăng tốc phần cứng (cấu trúc hàm kích hoạt theo từng trọng số có tận dụng được phép tăng tốc nhân ma trận nhanh không), vẫn chưa rõ khi áp dụng quy mô lớn sẽ ra sao. Ở quy mô nhỏ nó cho thấy các đặc tính thú vị, nhưng cần thêm nghiên cứu để xem có phải kiến trúc phù hợp cho các bài toán như ImageNet hay LLM hay không.
Điểm thú vị là mạng Kolmogorov có thể biểu diễn hàm gián đoạn, mặc dù vẫn có nghi ngờ về khả năng ứng dụng thực tế. Repo này cho thấy có mức độ khả dụng nhất định.
Có thể là nhận xét vội, nhưng một quan điểm cho rằng tổ hợp tuyến tính của B-spline tạo thành B-spline bậc cao hơn, nên có vẻ như chỉ là việc khớp hàm bằng B-spline bậc cao.
Preprint coi đầu vào 100 chiều là "không gian chiều cao", trong khi đa số bài toán có không quá 5 chiều trong các bối cảnh truyền cảm hứng vật lý thường gặp trong ML. Theo chuẩn hiện nay, bước tiếp theo có thể là kiểm chứng hiệu năng trên MNIST, vốn chỉ có 784 chiều và thực ra khá nhỏ.
Cũng có cảm giác như thể người ta đã nhét spline vào cây quyết định.
Nó dường như rất giống về mặt khái niệm với phương pháp phần tử hữu hạn, và thật vui khi bắt gặp những mẫu tương đồng như vậy giữa các lĩnh vực.