Kolmogorov-Arnold Networks (KANs), một loại mạng nơ-ron mới, có khả năng diễn giải cao hơn
(spectrum.ieee.org)- Kolmogorov-Arnold Networks (KANs) có cấu trúc khác với mạng nơ-ron truyền thống, cho kết quả dễ diễn giải và chính xác hơn ngay cả ở quy mô nhỏ, nên có thể trở thành công cụ giúp các nhà khoa học tìm ra giả thuyết mới từ dữ liệu vật lý
- Trong khi MLP truyền thống dựa vào trọng số của synapse và hàm kích hoạt của nơ-ron, KAN để synapse học hàm đầu vào-đầu ra, còn nơ-ron chỉ tính tổng các đầu ra từ synapse
- Trong dữ liệu định luật vật lý và thí nghiệm nút topo, khi tăng quy mô, hiệu năng của KAN cải thiện nhanh hơn; trong bài toán giải phương trình đạo hàm riêng, KAN chính xác gấp 100 lần so với MLP có số tham số nhiều hơn 100 lần
- Nhóm nghiên cứu đã trực quan hóa dạng hàm bên trong KAN và mức độ quan trọng của các kết nối, cắt tỉa những kết nối yếu; trong một số trường hợp, họ tái dựng được hàm vật lý đã tạo ra bộ dữ liệu thành một hàm trực quan chỉ trong một dòng
- KAN mất nhiều thời gian huấn luyện hơn trên mỗi tham số và khó tận dụng GPU, nhưng vì cần ít tham số nên vẫn có tính thực tiễn ở quy mô nhỏ như các bài toán vật lý
Cấu trúc mạng nơ-ron mới mà KAN đề xuất
- Mạng nơ-ron nhân tạo, trung tâm của AI hiện đại, là nền tảng cho chatbot và trình tạo ảnh, nhưng do có nhiều nơ-ron nên có thể trở thành hộp đen khó diễn giải cách vận hành bên trong
- Kolmogorov-Arnold Networks (KANs), một cấu trúc mới, dễ diễn giải hơn mạng nơ-ron truyền thống và trong các thí nghiệm cho kết quả chính xác hơn dù nhỏ hơn
- Các nhà phát triển KAN cho rằng cấu trúc này có thể biểu diễn dữ liệu vật lý một cách súc tích, giúp các nhà khoa học phát hiện giả thuyết mới về các quy luật tự nhiên
- Brice Ménard từ Johns Hopkins University nhận định rằng trong hơn 10 năm qua, thiết kế mạng nơ-ron phần lớn dựa vào điều chỉnh thử-sai, và đánh giá tích cực sự xuất hiện của một kiến trúc mới như KAN, được thiết kế từ các nguyên lý đầu tiên
Khác biệt giữa MLP truyền thống và KAN
- Trong mạng nơ-ron truyền thống, synapse học một trọng số biểu thị độ mạnh của kết nối giữa hai nơ-ron
- Nơ-ron tính tổng có trọng số các đầu vào từ những nơ-ron ở lớp trước, rồi áp dụng một hàm kích hoạt đơn giản lên tổng đó
- Dạng trong đó mọi nơ-ron đều kết nối với mọi nơ-ron ở lớp tiếp theo được gọi là multi-layer perceptron (MLP)
- Trong KAN, vai trò được đảo lại
- Synapse học một hàm kích hoạt ánh xạ đầu vào thành đầu ra thay vì chỉ là độ mạnh kết nối đơn giản
- Hàm này có thể là spline, tức tổ hợp của nhiều hàm, và có thể khác nhau ở từng kết nối
- Nơ-ron trở nên đơn giản hơn, chỉ cộng các đầu ra từ những synapse phía trước
- Tên KAN được đặt theo hai nhà toán học Kolmogorov và Arnold, những người nghiên cứu cách tổ hợp các hàm
- Mục tiêu của cấu trúc này là cung cấp độ linh hoạt lớn hơn khi biểu diễn dữ liệu bằng ít tham số học hơn
Hiệu năng trong các bài toán khoa học
- Nhóm nghiên cứu thử nghiệm KAN trên các bài toán khoa học tương đối đơn giản
- Một số thí nghiệm dùng các định luật vật lý đơn giản, chẳng hạn tốc độ mà hai vật thể chuyển động ở vận tốc tương đối tính vượt qua nhau
- Tạo các điểm dữ liệu đầu vào-đầu ra bằng phương trình
- Với mỗi hàm vật lý, huấn luyện mạng trên một phần dữ liệu và kiểm thử bằng phần dữ liệu còn lại
- Khi tăng kích thước, hiệu năng của KAN cải thiện nhanh hơn MLP
- Trong bài toán giải phương trình đạo hàm riêng, một KAN chính xác gấp 100 lần so với một MLP có số tham số nhiều hơn 100 lần
- Trong một thí nghiệm khác, mạng được huấn luyện để dự đoán một thuộc tính gọi là signature của nút, dựa trên các thuộc tính khác nhau của nút topo
- MLP đạt độ chính xác kiểm thử 78% với khoảng 300.000 tham số
- KAN đạt độ chính xác kiểm thử 81,6% với khoảng 200 tham số
Khả năng diễn giải và tái dựng hàm
- Nhóm nghiên cứu có thể trải KAN ra dưới dạng trực quan để xem hình dạng của hàm kích hoạt và mức độ quan trọng của từng kết nối
- Các kết nối yếu có thể được cắt tỉa thủ công hoặc tự động
- Một số hàm kích hoạt có thể được thay thế bằng các hàm đơn giản hơn như hàm sine hoặc hàm exponential
- Kết quả là có thể tóm tắt toàn bộ KAN, bao gồm cả các hàm kích hoạt cấu thành, thành một hàm một dòng trực quan
- Trong một số trường hợp, họ tái dựng hoàn hảo hàm vật lý đã tạo ra bộ dữ liệu
- Ziming Liu từ MIT và NSF AI Institute for Artificial Intelligence and Fundamental Interactions cho rằng nếu đưa một bộ dữ liệu khó diễn giải vào KAN thì có thể tạo ra giả thuyết, đồng thời có thể xem sơ đồ KAN và điều chỉnh cấu trúc khi cần
Kết hợp với CNN và transformer
- Bản preprint về KAN đã được trích dẫn trong hàng chục bài báo
- Alexander Bodner từ University of San Andrés và các đồng nghiệp đã kết hợp KAN với CNN, vốn được dùng rộng rãi trong xử lý ảnh, để tạo ra Convolutional KANs
- Trong các bài toán phân loại chữ số viết tay và ảnh quần áo, Convolutional KANs cho độ chính xác gần như tương đương CNN truyền thống
- Ở phân loại chữ số, cả hai mạng đều đạt độ chính xác 99%
- Ở phân loại quần áo, cả hai mạng đều đạt độ chính xác 90%
- Mô hình kết hợp KAN dùng ít tham số hơn khoảng 40%
- Bodner cho biết bộ dữ liệu được dùng còn đơn giản, nhưng các nhóm khác có nhiều tài nguyên tính toán hơn đã bắt đầu mở rộng mạng
- Các nhà nghiên cứu khác đang kết hợp KAN với transformer, vốn được dùng rộng rãi trong các mô hình ngôn ngữ lớn
Huấn luyện chậm và phạm vi ứng dụng
- Nhược điểm của KAN là thời gian huấn luyện trên mỗi tham số lâu hơn
- Một trong những lý do khiến việc huấn luyện chậm là khó tận dụng GPU
- Tuy nhiên, KAN cần ít tham số hơn
- Ziming Liu cho rằng ngay cả khi KAN không thay thế các CNN hoặc transformer khổng lồ dùng cho xử lý hình ảnh và ngôn ngữ, thời gian huấn luyện có thể không phải là vấn đề ở quy mô nhỏ của nhiều bài toán vật lý
- Liu đang nghiên cứu cách để chuyên gia đưa tri thức sẵn có vào KAN
- Ví dụ, con người có thể trực tiếp chọn hàm kích hoạt
- Ông cũng đang xem xét cách dễ dàng trích xuất tri thức từ KAN thông qua một giao diện đơn giản
- Về dài hạn, KAN có khả năng giúp phát hiện chất siêu dẫn nhiệt độ cao hoặc tìm kiếm phương pháp kiểm soát phản ứng nhiệt hạch
1 bình luận
Các ý kiến trên Hacker News
Tôi đã trực tiếp thử nghiệm KAN trong mô hình hóa quy mô nhỏ và viết lại, đồng thời so sánh với mạng nơ-ron thông thường: https://news.ycombinator.com/item?id=40855028
Kết luận cốt lõi là KAN khó huấn luyện hơn rất nhiều so với mạng nơ-ron thông thường. Tổn thất trên mỗi tham số nhìn chung có thể đạt mức tương tự, nhưng cần rất nhiều tinh chỉnh siêu tham số và các kỹ thuật bổ sung do cấu trúc của KAN. Ngược lại, mạng nơ-ron cơ bản dễ huấn luyện hơn nhiều và hoạt động tốt trong phạm vi điều kiện rộng hơn
Việc huấn luyện mạng nơ-ron đã tích lũy một khối lượng nỗ lực khổng lồ, và các bộ tối ưu như Adam cũng có phần được thiết kế, tối ưu cho mạng nơ-ron, nên tôi cho rằng đây không phải là một so sánh hoàn toàn công bằng. KAN có tiềm năng nhưng không phải vạn năng, và tôi cũng hơi nghi ngờ lập luận rằng spline thường dùng dễ diễn giải hơn nhiều so với việc phân tích đầu ra của neuron ở tầng thấp hơn
https://cprimozic.net/blog/trying-out-kans/
Suy cho cùng, nghiên cứu là quá trình tìm ra cải tiến nào làm thay đổi tính hữu dụng, và việc theo dõi tiến triển ở https://github.com/mintisan/awesome-kan để xem nhiều thử nghiệm khác nhau khá thú vị. Giữa KAN và mạng nơ-ron dùng hàm kích hoạt cố định có một không gian nghiên cứu liên tục là tinh chỉnh hàm kích hoạt
Chẳng hạn, một họ hàm kích hoạt được tham số hóa đơn giản như xsigmoid(mx) có thể hoạt động như ReLU khi m lớn, như GeLU khi m=1.7, và như SiLU khi m=1. Có nhiều điểm khác nhau: một hàm kích hoạt đơn cho từng neuron, hàm kích hoạt có nhiều tham số, bộ xấp xỉ hàm, cho đến KAN hoàn chỉnh không có trọng số; ai có thể tính bằng một công thức thống nhất xem nên đặt các tham số bổ sung ở đâu để hiệu quả lớn nhất chắc sẽ được công nhận rất nhiều
Tôi đồng ý 100% rằng KAN sẽ không dễ diễn giải hơn. Nếu là một neuron đơn lẻ thì còn hiểu được, nhưng một khi bắt đầu hợp thành những thứ như vậy, khả năng diễn giải sẽ nhanh chóng biến mất
KAN có thể được mô hình hóa như một cấu trúc kích hoạt khác bên trong perceptron đa tầng thông thường, và vì nó có độ linh hoạt cao nên điều này không đáng ngạc nhiên. Tôi đã làm một biểu đồ tóm tắt nhiều kiểu cấu trúc: https://x.com/thomasahle/status/1796902311765434694
Điều thú vị là nếu triển khai KAN bằng phép nhân ma trận thông thường của PyTorch thì hiệu suất không tốt, nhưng nếu dùng kernel CUDA tùy chỉnh hoặc torch.compile thì có thể rất nhanh: https://x.com/thomasahle/status/1798408687981297844
Thảo luận trước đây về mạng Kolmogorov-Arnold: https://news.ycombinator.com/item?id=40219205
“Nhược điểm của KAN là thời gian huấn luyện trên mỗi tham số dài hơn, một phần vì không thể tận dụng GPU. Nhưng nó cần ít tham số hơn. Liu nói rằng ngay cả khi KAN không thể thay thế các CNN hay Transformer khổng lồ cho xử lý hình ảnh và ngôn ngữ, thì ở quy mô nhỏ của nhiều bài toán vật lý, thời gian huấn luyện sẽ không phải là vấn đề.”
Thậm chí không có cả gợi ý rằng trong tương lai có thể tận dụng GPU, nên đọc giống như một giới hạn căn bản
Tôi tò mò liệu có thể áp dụng cách tiếp cận này cho KAN một cách hiệu quả về chi phí hay không. Đặc biệt, liệu có thể dùng một mô hình ngôn ngữ được huấn luyện trước như LlaMa-3 để huấn luyện một mô hình có thể diễn giải hay không
“Sau đó có thể tóm tắt toàn bộ KAN thành một hàm một dòng trực quan, và trong một số trường hợp đã tái tạo hoàn hảo hàm vật lý đã tạo ra bộ dữ liệu.”
Ý tưởng KAN thật sự thú vị, nhưng nói một cách nghiêm ngặt thì mạng nơ-ron truyền thống cũng có thể được viết dưới dạng một biểu thức một dòng dạng đóng nào đó. Chỉ là dòng đó sẽ rất dài. Ngay cả khi có thể tạo ra cùng một biên quyết định với ít nơ-ron hơn, tôi cũng không chắc việc dùng spline thay cho trọng số có làm bản thân biểu thức bớt phức tạp hơn hay không
Về nguyên tắc, cũng có thể làm điều tương tự với perceptron đa tầng, nhưng biểu diễn của perceptron đa tầng khá phân tán nên việc làm thưa và ký hiệu hóa có thể khó hơn
Có thể giải thích chuyện này như giải thích cho trẻ năm tuổi được không? Tôi hiểu rằng mạng nơ-ron cố giảm hàm mất mát để đạt kết quả tốt hơn, nhưng tôi tò mò KAN thực sự khác ở điểm nào
Mạng nơ-ron thông thường, tức perceptron đa tầng, có các ma trận đầy những số dấu phẩy động đóng vai trò trọng số. Trọng số là hàm tuyến tính kiểu y=wx, nên nếu vẽ đầu vào x và đầu ra y trên tọa độ thì sẽ thành một đường thẳng. Khi tăng hoặc giảm đầu vào, đầu ra cũng tăng hoặc giảm theo một tỉ lệ cố định, chứ hiệu ứng không đột ngột mạnh lên, yếu đi hay đổi sang hướng ngược lại
Vì vậy mạng học các trọng số qua nhiều tầng, rồi nối chúng bằng những hàm giống như một loại keo ma thuật, vốn nằm trong thiết kế chứ không được học. Kết quả là quan hệ phức tạp giữa đầu vào và đầu ra được tạo ra khi đi qua nhiều tầng
Ngược lại, trong KAN, thay vì trọng số, tức các hàm tuyến tính, mạng được cho học những loại hàm khác. Các hàm này là phi tuyến, nên khi tăng đầu vào, đầu ra có thể tăng nhanh dần, hoặc cũng có thể đổi hướng và giảm. Nó có thể học các quan hệ phức tạp hơn nhiều giữa đầu vào và đầu ra, nhưng có thể mất một phần hiệu quả của GPU vốn được tối ưu cho các phép toán ma trận khổng lồ, và các tính toán toán học tùy ý có thể lại cần đến CPU
Vì vậy KAN có ít “nơ-ron” hơn nhưng phức tạp hơn, và mỗi nơ-ron được cấu thành từ một hàm phức tạp. Điểm hấp dẫn có vẻ là nếu nhìn vào một nơ-ron như vậy, ta có thể nhận được một công thức rõ ràng mô tả nó đang làm gì. Với perceptron đa tầng, phải lần theo trọng số qua nhiều tầng nên cần nhiều công sức hơn để hiểu toàn bộ hoạt động
Tuy nhiên, các hàm xuất hiện trong KAN có lẽ cũng không phải là những công thức trực quan kiểu có thể thấy trong sổ tay của Isaac Newton, mà nhiều khả năng đầy các hằng số kỳ lạ và những hạng tử không trực quan triệt tiêu lẫn nhau
output = simple_function(sum(many_inputs*many_weights) + extra_weight_for_bias), còn tầng KAN gần vớioutput = sum(fancy_functions(many_inputs)). Có thể sai, và mới chỉ một ngày trôi qua thôif(x, y). Đầu ra của KAN là một công thức dễ nhìn kiểuexp(0.3sin(x) + 4cos(y)), và đó là ý nghĩa của khả năng diễn giải đượcTôi tò mò liệu tập hợp các hàm đã học có thể tái hiện bảng chân trị của logic bậc nhất hay không. Có vẻ dễ kiểm chứng
Dù sao thì xét về khả vi, đây là tin tốt. Hiện nay việc biểu diễn điều kiện
iftrong JAX khá rắc rối, và ít nhất với tôi thì gần như là một rào cản tối ưu hóa; nếu điều kiện có thể học được và đã nằm sẵn trong mạng thì tôi thấy rất tuyệtVài tuần trước, London Machine Learning Meetup đã mời Ziming Liu. Anh ấy có một bài trình bày rất hay về công trình thú vị này, và bản ghi ở đây: https://youtu.be/FYYZZVV5vlY?si=ReoygVJMgY9oje3p
Tôi hơi hoài nghi. Trong thập niên 80–90 cũng có nhiều bài báo và thử nghiệm về các kiến trúc mạng nơ-ron nhân tạo khác nhau thay thế cho
f(x*w+b). Nhưng các mô hình có hiệu năng thực dụng tốt nhất hiện nay vẫn dựa trên nhân–cộng dồn–ngưỡng. Rốt cuộc là vì tốc độ và sự đơn giản“Nhược điểm của KAN là thời gian huấn luyện trên mỗi tham số dài hơn, một phần vì không thể tận dụng GPU.”
Đây có vẻ là một khoảng cách lớn. Tôi tò mò không biết có ai biết đây là sự không tương thích cấu trúc căn bản, hay chỉ là vì chưa ai viết các CUDA kernel cần thiết mà thôi