paint-brush
So sánh Mạng Kolmogorov-Arnold (KAN) và Perceptron nhiều lớp (MLP)từ tác giả@aibites
Bài viết mới

So sánh Mạng Kolmogorov-Arnold (KAN) và Perceptron nhiều lớp (MLP)

từ tác giả Shrinivasan Sankar8m2024/06/29
Read on Terminal Reader

dài quá đọc không nổi

KAN thách thức Perceptron nhiều lớp vốn là nền tảng cho TẤT CẢ LLM ngày nay. Nhưng liệu họ có sống sót và giải thoát được không? Hãy so sánh và đối chiếu.
featured image - So sánh Mạng Kolmogorov-Arnold (KAN) và Perceptron nhiều lớp (MLP)
Shrinivasan Sankar HackerNoon profile picture
0-item

Chúng tôi đã coi Perceptron nhiều lớp (MLP) cổ điển là đương nhiên và xây dựng rất nhiều kiến trúc xung quanh nó. MLP là một phần của mọi mô hình LLM hoặc nền tảng mà chúng ta thấy ngày nay, chẳng hạn như chatGPT, LLAMA, DALLE và CLIP. Hay thậm chí là những mô hình nhận dạng đơn giản như YOLO-v*.


Điều gì sẽ xảy ra nếu bây giờ tôi nói với bạn rằng chúng ta có đối thủ cạnh tranh cho chính MLP? Có một tờ báo mới trong thị trấn được gọi là “Mạng lưới Kolmogorov-Arnold,” hay gọi tắt là KAN, thách thức các MLP. Nếu giải pháp mà họ đang đề xuất thực sự có quy mô thì chúng ta có thể có thế hệ mạng lưới thần kinh tiếp theo, điều này sẽ đưa chúng ta tiến thêm một bước gần hơn đến Trí tuệ nhân tạo tổng hợp (AGI).


Trong khi MLP bao gồm các chức năng kích hoạt như ReLU, sigmoid, tanh, GeLU, v.v., KAN đề xuất rằng chúng ta nên tìm hiểu các chức năng kích hoạt này. Vậy KAN làm điều đó như thế nào? Toán học đằng sau nó là gì? Nó được thực hiện như thế nào? Và làm thế nào để chúng ta đào tạo KAN?

Tôi đã cố gắng hết sức để tóm tắt bài báo KAN ở đây. Bạn có thể chọn đọc ý chính này hoặc đọc bài báo dài 48 trang!

Giải thích trực quan

Nếu bạn giống tôi và muốn hình dung mọi thứ để hiểu rõ hơn thì đây là dạng video của bài viết này:


MLP - Vấn đề

Hãy bắt đầu với MLP, thứ mà chúng ta khá quen thuộc. Các MLP bao gồm các nút và các cạnh. Trong mỗi nút, chúng tôi có các đầu vào được tổng hợp và áp dụng các kích hoạt như ReLU, GeLU và SeLU để tạo đầu ra cho nút cụ thể đó.

Hình minh họa trong bài báo minh họa sự khác biệt giữa MLP và KAN


Các chức năng kích hoạt này không bao giờ thay đổi trong quá trình đào tạo. Nói cách khác, chúng không có bất kỳ tham số nào. Họ không đủ thông minh để điều chỉnh bản thân theo một tập dữ liệu huấn luyện nhất định. Vì vậy, những gì được đào tạo hoặc cập nhật trong quá trình đào tạo là trọng số của từng nút này.

Bây giờ, điều gì sẽ xảy ra nếu chúng ta đặt câu hỏi về giả định rằng hàm kích hoạt cần phải được sửa và làm cho chúng có thể huấn luyện được? Vì vậy, đó chính là thách thức mà mạng KAN đã cố gắng giải quyết. Các chức năng kích hoạt của mạng KAN được cập nhật trong quá trình đào tạo. Trước khi tìm hiểu sâu hơn, hãy bắt đầu với đa thức và khớp đường cong.

Đa thức và khớp đường cong

Vì vậy, ý tưởng cơ bản của KAN là bất kỳ hàm tổng hợp nhiều biến nào cũng có thể được chia thành tổng của một số hàm là các biến đơn.

Một hình ảnh động minh họa hàm x^2 và x^3

Ví dụ: giả sử chúng ta có phương trình bậc 3 trong đó y=x³ được vẽ bằng đường cong màu vàng ở trên. Và một phương trình bậc 2 khác, y=x2, như được thể hiện bằng đường cong màu xanh lam trong hình động ở trên. Trong hình ảnh trực quan này, chúng ta có thể thấy rằng việc sử dụng x² không bao giờ có thể đạt được độ cong mà x³ đạt được.


Giả sử chúng ta được cung cấp dữ liệu được biểu thị bằng các điểm màu đỏ và xanh bên dưới và chúng ta muốn tìm ranh giới phân loại nhị phân giữa hai lớp.

Một bài toán đồ chơi trong đó x^3 phù hợp hơn x^2. Nhưng vẫn có thể giải bằng x^2 bằng cách cộng hai đường cong x^2!

Sử dụng đa thức bậc hai, , chúng ta sẽ không thể tìm thấy ranh giới giữa hai đường cong này vì đường cong x² có hình chữ “U”, nhưng dữ liệu lại có hình dạng “S”. Mặc dù việc sử dụng phù hợp với dữ liệu này nhưng nó lại đi kèm với chi phí tính toán bổ sung. Một giải pháp khác có thể là sử dụng x2 khi đầu vào x âm nhưng sử dụng - x2 khi x dương (đường cong màu xanh được vẽ bằng tay trong hình trên).

Tất cả những gì chúng ta đã làm là cộng hai đa thức bậc thấp hơn để đạt được một đường cong có bậc tự do cao hơn. Đây chính xác là ý tưởng đằng sau mạng KAN.

Vấn đề về đồ chơi

Bây giờ chúng ta hãy xét một bài toán đồ chơi phức tạp hơn một chút, trong đó chúng ta biết rằng dữ liệu được tạo ra bởi một phương trình đơn giản, y=exp(sin(x1² + x2²) + sin(x3² + x4²)) . Vì vậy, chúng ta có 4 biến đầu vào và chúng ta có ba phép tính, đó là số mũ, sin và bình phương. Vì vậy, chúng ta có thể chọn bốn nút đầu vào với ba lớp, mỗi lớp dành riêng cho ba hoạt động khác nhau, như hiển thị bên dưới.

Mạng KAN đơn giản với 4 đầu vào, 3 lớp cho 3 chức năng cơ bản

Mạng KAN cho bài toán đồ chơi có bốn đầu vào và ba hàm cơ bản để tính toán - số mũ, hình sin và hình vuông

Sau khi huấn luyện, các nút sẽ hội tụ về các hàm bình phương, hình sin và số mũ để phù hợp với dữ liệu.


Vì đây là một bài toán đồ chơi nên chúng ta biết phương trình mà dữ liệu đến từ đó. Nhưng trên thực tế, chúng ta không biết sự phân bố của dữ liệu trong thế giới thực. Một cách để giải quyết vấn đề này là sử dụng B-splines.

Spline và B-spline

Ý tưởng cơ bản của B-spline là bất kỳ hàm hoặc đường cong cho trước nào cũng có thể được biểu diễn dưới dạng kết hợp của các hàm hoặc đường cong đơn giản hơn. Những hàm đơn giản hơn này được gọi là hàm cơ sở. Ví dụ: hãy lấy đường cong màu đỏ trong hình bên dưới. Để đơn giản, chúng ta hãy thử biểu diễn điều này chỉ bằng hai hàm cơ bản.


Chúng ta có thể chia nó thành 3 điểm vì chúng ta sẽ biểu diễn nó bằng tổng của hai hàm cơ bản. Những điểm này được gọi là nút thắt. Có thể có bất kỳ số n hàm cơ sở nào. Tham số kiểm soát cách kết hợp các hàm cơ sở này là c. Có thể có những điểm gián đoạn tại các nút thắt khi chúng ta “nối” hai đường cong. Giải pháp là hạn chế độ cong của các đường cong tại các nút thắt để chúng ta có được một đường cong mượt mà. Ví dụ: chúng ta có thể hạn chế độ dốc của hai đường cong giống nhau tại các nút thắt, như được minh họa bằng mũi tên màu xanh lục trong hình bên dưới.

Những nét vẽ nguệch ngoạc của tôi để minh họa B-spline và các hàm cơ sở

Vì chúng tôi không thể áp đặt một hạn chế như vậy trong mạng lưới thần kinh nên họ đã giới thiệu các Hàm kích hoạt dư thừa trong bài báo. Điều này hoạt động giống như một sự chính quy hóa. Trên thực tế, đây là kích hoạt SeLU được thêm vào hàm spline tiêu chuẩn như được thấy trong bài viết bên dưới.

Lưới Spline và phân loại KAN

KAN giới thiệu một phương pháp đào tạo mới gọi là Fine-graining . Điều mà tất cả chúng ta đều quen thuộc là tinh chỉnh, trong đó chúng ta thêm nhiều tham số hơn vào mô hình. Tuy nhiên, trong trường hợp làm mịn, chúng ta có thể cải thiện mật độ của lưới spline. Đây là những gì họ gọi là mở rộng lưới.

Một phần của hình trong bài báo cho thấy độ mịn tương đương với việc tinh chỉnh mạng lưới thần kinh tiêu chuẩn

Như chúng ta có thể thấy từ hình trên của bài báo, việc làm mịn chỉ đơn giản là làm cho các lưới B-spline dày đặc để chúng trở nên mang tính đại diện hơn và do đó, mạnh mẽ hơn.

Độ phức tạp tính toán

Một trong những nhược điểm của spline là chúng có tính đệ quy và tốn kém về mặt tính toán. Độ phức tạp tính toán của chúng là O(N2LG), cao hơn độ phức tạp thông thường của O(N2L) đối với MLP. Độ phức tạp tăng thêm đến từ các khoảng lưới G.

Các tác giả bảo vệ vấn đề cố hữu này bằng cách chỉ ra rằng:

  • Số lượng tham số mà KAN cần ít hơn so với MLP cho cùng một vấn đề
  • KAN hội tụ nhanh chóng và hiệu quả trong quá trình huấn luyện, do đó cần ít thời gian huấn luyện hơn.

Chúng ta sẽ xem sơ đồ của những biện pháp phòng thủ này trong phần kết quả. Bây giờ, chúng ta hãy tìm hiểu sâu hơn về một đặc điểm khác của KAN.

Khả năng diễn giải và chọn lớp KAN

Khi KAN tìm hiểu các chức năng, nó không chỉ đơn giản là một hộp đen như MLP, nơi chúng ta có thể thiết kế chúng một cách đơn giản bằng cách chọn độ sâu và chiều rộng của MLP cho một dữ liệu hoặc vấn đề nhất định. Vì vậy, để làm cho KAN dễ hiểu hơn và thiết kế một mạng KAN tốt, chúng ta cần làm theo các bước dưới đây:

  • Sự thưa thớt. Chúng tôi bắt đầu với mạng KAN lớn hơn dự đoán và giới thiệu tính chính quy hóa bằng cách giới thiệu định mức L1 của hàm kích hoạt thay vì đầu vào như chúng tôi thường làm với Machine Learning.
  • Cắt tỉa. Sau khi mạng thưa thớt được huấn luyện, chúng tôi có thể loại bỏ các nút không cần thiết nằm dưới ngưỡng nhất định theo tiêu chí hoặc điểm số đã đặt.
  • Tượng trưng. Khi chúng ta mơ hồ biết chức năng nào cấu thành một dữ liệu nhất định, chúng ta có thể đặt một vài nút để đảm nhận chức năng đó. Điều này được gọi là biểu tượng. Ví dụ: nếu chúng ta làm việc với sóng âm thanh, hầu hết dữ liệu đều có dạng hình sin, vì vậy chúng ta sẽ đơn giản hóa cuộc sống của mình bằng cách đặt một số nút thành hình sin. Khung này cho phép chúng tôi làm như vậy bằng cách cung cấp một hàm giao diện có tên là fix_symbolic(l,i,j,f) trong đó l, i, j là lớp nút và vị trí, còn f là hàm có thể là sine, cosine, log, etc

Các bước khác nhau để huấn luyện mô hình KAN

Tóm tắt các bước khác nhau được đề xuất trong bài viết để có được mạng KAN đã được huấn luyện

Các bước khác nhau đã được tóm tắt trong hình trên. Chúng tôi bắt đầu với một mạng lớn và phân tán (bước 1), cắt bớt mạng kết quả (bước 2), đặt một số ký hiệu (bước 3), huấn luyện mạng (bước 4) và cuối cùng đi đến mô hình được đào tạo.

Thí nghiệm và kết quả

Sử dụng các bước được đề cập ở trên, họ đã huấn luyện mạng KAN cho năm vấn đề đồ chơi khác nhau để minh họa tính hiệu quả của chúng và so sánh chúng với MLP. Những điểm chính rút ra từ việc so sánh là:

  • KAN đào tạo nhanh hơn nhiều so với MLP, do đó ảnh hưởng đến độ phức tạp tính toán vốn có của nó.
  • KAN có thể thực hiện với ít tham số hơn những gì MLP có thể thực hiện với nhiều tham số hơn
  • KAN hội tụ rất trơn tru với độ suy hao giảm nhanh so với MLP

Điểm đầu tiên được mô tả bằng đường kẻ dày màu xanh lam trong năm ô ở ô trên cùng dành cho 5 bài toán về đồ chơi. Hai điểm cuối cùng được minh họa bằng biểu đồ ở phía dưới hiển thị các đường cong tổn thất và số lượng tham số để giải quyết bất kỳ vấn đề nào.

Kết quả từ bài báo chỉ ra rằng KAN hội tụ nhanh hơn và có thể được huấn luyện với ít tham số hơn trong thời gian ngắn hơn để khắc phục vấn đề phức tạp tính toán

Sự lãng quên thảm khốc

Điều đáng rút ra tiếp theo là KAN tốt hơn nhiều so với MLP trong vấn đề thảm họa quên. Nếu chúng tôi cung cấp dữ liệu chuỗi để học liên tục, KAN dường như ghi nhớ dữ liệu trong quá khứ tốt hơn nhiều so với MLP. Điều này được thể hiện trong hình bên dưới, trong đó KAN tái tạo 5 giai đoạn trong dữ liệu, nhưng MLP gặp khó khăn.

Hình từ bài báo cho thấy KAN có khả năng khắc phục tình trạng quên thảm khốc tốt hơn MLP

Các kết quả khác

Họ cũng đã thực hiện các thí nghiệm sâu rộng để chứng minh rằng KAN có thể được sử dụng cho các bài toán liên quan đến vi phân từng phần và các phương trình Vật lý. Thay vì đi sâu vào những chi tiết đó, chúng ta hãy xem xét thời điểm nên chọn KAN so với MLP.

Lựa chọn giữa KAN và MLP

Họ đã đưa ra hình dưới đây để hướng dẫn chúng tôi khi nào nên chọn KAN thay vì MLP. Vì vậy, hãy chọn KAN nếu,

  • bạn đang xử lý dữ liệu có cấu trúc như dạng sóng hoặc đồ thị
  • mong muốn được học hỏi liên tục từ dữ liệu
  • không quan tâm nhiều đến thời gian đào tạo!
  • dữ liệu chiều cao

Lựa chọn giữa hình KAN và MLP từ bài báo

Nếu không, MLP vẫn thắng.

La lên

Nếu bạn thích bài viết này, tại sao không theo dõi tôi Twitter nơi tôi chia sẻ thông tin cập nhật nghiên cứu từ các phòng thí nghiệm AI hàng đầu mỗi ngày trong tuần?

Ngoài ra hãy đăng ký theo dõi của tôi Kênh Youtube nơi tôi giải thích các khái niệm và bài viết về AI một cách trực quan.

Thảo luận và kết luận

Theo ý kiến của tôi, KAN không ở đây để thay thế MLP về cách máy biến áp quét sạch bối cảnh NLP. Đúng hơn, KAN sẽ tỏ ra hữu ích cho các vấn đề thích hợp trong toán học và vật lý. Thậm chí sau đó, tôi cảm thấy chúng ta cần nhiều cải tiến hơn nữa. Nhưng đối với các vấn đề về dữ liệu lớn được giải quyết bằng các mô hình nền tảng, KAN còn một chặng đường dài phía trước, ít nhất là với trạng thái hiện tại của chúng.

Hơn nữa, phương pháp đào tạo và thiết kế kiến trúc KAN có xu hướng đi chệch khỏi cách thiết kế và đào tạo mạng lưới thần kinh tiêu chuẩn hiện nay. Tuy nhiên, trang GitHub đã có 13 nghìn sao và 1,2 nghìn lượt fork, cho thấy nó đang hoạt động vì điều gì đó. Hãy cùng chờ xem không gian này nhé.