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!
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:
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ể đó.
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.
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.
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.
Sử dụng đa thức bậc hai, x² , 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 x³ 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.
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 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.
Ý 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.
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.
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.
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.
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:
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.
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:
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
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.
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à:
Đ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.
Đ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ọ 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.
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,
Nếu không, MLP vẫn thắng.
Nếu bạn thích bài viết này, tại sao không theo dõi tôi
Ngoài ra hãy đăng ký theo dõi của tôi
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é.