우리는 고전적인 MLP(다층 퍼셉트론)를 당연한 것으로 여기고 이를 중심으로 수많은 아키텍처를 구축했습니다. MLP는 chatGPT, LLAMA, DALLE 및 CLIP과 같이 오늘날 우리가 볼 수 있는 모든 단일 LLM 또는 기초 모델의 일부이자 소포입니다. 또는 YOLO-v*와 같은 간단한 인식 모델도 있습니다.
이제 바로 MLP에 대한 경쟁자가 있다고 말하면 어떻게 될까요? MLP에 도전하는 “콜모고로프-아놀드 네트워크(Kolmogorov-Arnold Network)”(간단히 KAN)라는 새로운 논문이 시내에 나왔습니다. 그들이 제안하는 솔루션이 진정으로 확장된다면 우리는 차세대 신경망을 갖게 될 것이며, 이를 통해 우리는 AGI(Artificial General Intelligence)에 한 걸음 더 가까워질 것입니다.
MLP는 ReLU, sigmoid, tanh, GeLU 등과 같은 활성화 함수로 구성되지만 KAN은 이러한 활성화 함수를 학습할 것을 제안합니다. 그렇다면 KAN은 어떻게 하는 걸까요? 그 뒤에 숨겨진 수학은 무엇입니까? 어떻게 구현되나요? KAN을 어떻게 훈련시킬 수 있나요?
나는 여기에 KAN 논문을 요약하기 위해 최선을 다했습니다. 이 요점을 읽거나 48페이지 길이의 논문을 읽을 수 있습니다!
당신이 나와 같고 더 잘 이해하기 위해 시각화하고 싶다면 다음은 이 기사의 비디오 형식입니다.
우리에게 매우 친숙한 MLP부터 시작해 보겠습니다. MLP는 노드와 에지로 구성됩니다. 각 노드에는 해당 특정 노드에 대한 출력을 생성하기 위해 입력이 합산되고 ReLU, GeLU 및 SeLU와 같은 활성화가 적용됩니다.
이러한 활성화 기능은 학습 과정 중에 절대 변경되지 않습니다. 즉, 매개변수가 없습니다. 그들은 주어진 훈련 데이터 세트에 스스로 조정할 만큼 지능적이지 않습니다. 따라서 훈련 중에 훈련되거나 업데이트되는 것은 각 노드의 가중치입니다.
이제 활성화 함수를 수정하고 훈련 가능하게 만들어야 한다는 가정에 의문을 제기하면 어떻게 될까요? 이것이 바로 KAN 네트워크가 해결하려고 했던 과제입니다. KAN 네트워크의 활성화 기능은 훈련 과정에서 업데이트됩니다. 더 자세히 알아보기 전에 다항식과 곡선 피팅부터 시작해 보겠습니다.
따라서 KAN의 기본 아이디어는 모든 다변량 복합 함수를 단일 변수인 여러 함수의 합으로 나눌 수 있다는 것입니다.
예를 들어, 위의 노란색 곡선으로 표시된 대로 y=x3인 3차 방정식이 있다고 가정해 보겠습니다. 그리고 위 애니메이션의 파란색 곡선으로 표시된 또 다른 2차 방정식 y=x²입니다. 이 시각화에서는 x²를 사용하면 x³로 달성한 곡률을 결코 달성할 수 없다는 것을 알 수 있습니다.
아래 빨간색 점과 파란색 점으로 표시된 데이터가 있고 두 클래스 사이의 이진 분류 경계를 찾고 싶다고 가정해 보겠습니다.
2차 다항식 x²를 사용하면 x² 곡선은 "U" 모양이지만 데이터는 "S" 모양이므로 둘 사이의 경계를 찾을 수 없습니다. 이 데이터에는 x³를 사용하는 것이 적합하지만 추가 계산 비용이 발생합니다. 다른 해결책은 입력 x 가 음수일 때 x²를 사용하고 x가 양수일 때 - x²를 사용하는 것입니다(위 그림에서 손으로 그린 파란색 곡선).
우리가 한 일은 더 높은 자유도를 가진 곡선을 얻기 위해 두 개의 낮은 차수 다항식을 추가하는 것뿐입니다. 이것이 KAN 네트워크의 정확한 아이디어입니다.
이제 데이터가 간단한 방정식 인 y=exp(sin(x1² + x2²) + sin(x3² + x4²)) 에 의해 생성된다는 것을 알고 있는 좀 더 복잡한 장난감 문제를 살펴보겠습니다. 따라서 4개의 입력 변수가 있고 지수, 사인, 제곱의 세 가지 연산이 있습니다. 따라서 아래와 같이 각각 세 가지 다른 작업을 전담하는 세 개의 레이어가 있는 네 개의 입력 노드를 선택할 수 있습니다.
4개의 입력과 3개의 계산용 기본 함수(지수, 정현파, 제곱)가 있는 장난감 문제용 KAN 네트워크
훈련 후 노드는 데이터에 맞게 제곱, 정현파 및 지수 함수로 수렴됩니다.
이것은 장난감 문제이기 때문에 우리는 데이터가 나온 방정식을 알고 있습니다. 그러나 실제로 우리는 실제 데이터의 분포를 알지 못합니다. 이 문제를 해결하는 한 가지 방법은 B-스플라인을 사용하는 것입니다.
B-스플라인의 기본 아이디어는 주어진 함수나 곡선이 더 간단한 함수나 곡선의 조합으로 표현될 수 있다는 것입니다. 이러한 간단한 함수를 기본 함수라고 합니다. 예를 들어 아래 그림의 빨간색 곡선을 살펴보겠습니다. 단순화를 위해 이를 두 가지 기본 함수로 표현해 보겠습니다.
두 가지 기본 함수의 합으로 표현하므로 이를 3개의 점으로 나눌 수 있습니다. 이러한 점을 매듭이라고 합니다. n 개의 기본 함수가 있을 수 있습니다. 이 기본이 조합으로 작동하는 방식을 제어하는 매개변수는 c입니다. 두 개의 곡선을 "결합"할 때 매듭에 불연속성이 있을 수 있습니다. 해결책은 매끄러운 곡선을 얻을 수 있도록 매듭점에서 곡선의 곡률을 제한하는 것입니다. 예를 들어, 아래 그림의 녹색 화살표와 같이 매듭점에서 두 곡선의 기울기가 동일하도록 제한할 수 있습니다.
우리는 신경망에 그러한 제약을 가할 수 없기 때문에 논문에 Residual Activation Functions를 도입했습니다. 이는 정규화와 유사하게 작동합니다. 실제로 이는 아래 논문에서 볼 수 있듯이 표준 스플라인 기능에 추가된 SeLU 활성화입니다.
KAN은 Fine-graining 이라는 새로운 훈련 방식을 도입합니다. 우리 모두에게 익숙한 것은 모델에 더 많은 매개변수를 추가하는 미세 조정입니다. 그러나 Fine-graining의 경우 스플라인 그리드의 밀도를 향상시킬 수 있습니다. 이것이 바로 그리드 확장이라고 불리는 것입니다.
논문의 위 그림에서 볼 수 있듯이 미세 조정은 단순히 B-스플라인의 그리드를 조밀하게 만들어 더 대표성을 갖게 하고 더 강력하게 만드는 것입니다.
스플라인의 단점 중 하나는 재귀적이고 계산 비용이 많이 든다는 것입니다. 계산 복잡도는 O(N²LG)이며 이는 MLP의 일반적인 복잡도 O(N²L)보다 높습니다. 추가적인 복잡성은 그리드 간격 G에서 발생합니다.
저자는 다음을 보여줌으로써 이러한 본질적인 문제를 옹호합니다.
결과 섹션에서 이러한 방어 계획을 볼 수 있습니다. 지금은 KAN의 또 다른 전문 분야에 대해 더 자세히 살펴보겠습니다.
KAN은 기능을 학습하므로 주어진 데이터나 문제에 대해 MLP의 깊이와 너비를 선택하여 간단히 설계할 수 있는 MLP와 같은 단순한 블랙박스가 아닙니다. 따라서 KAN을 더 쉽게 해석하고 좋은 KAN 네트워크를 설계하려면 다음 단계를 따라야 합니다.
fix_symbolic(l,i,j,f)
라는 인터페이스 함수를 제공하여 이를 수행할 수 있습니다. 여기서 l, i, j 는 노드 계층 및 위치이고 f 는 sine, cosine, log, etc
훈련된 KAN 네트워크에 도달하기 위해 논문에서 제안된 다양한 단계 요약
위의 그림에는 다양한 단계가 요약되어 있습니다. 대규모 네트워크로 시작하여 희소화(1단계)하고, 결과 네트워크를 정리하고(2단계), 일부 기호를 설정하고(3단계), 네트워크를 훈련하고(4단계), 마지막으로 훈련된 모델에 도달합니다.
위에서 언급한 단계를 사용하여 다섯 가지 장난감 문제에 대해 KAN 네트워크를 교육하여 그 효과를 설명하고 이를 MLP와 비교했습니다. 비교의 주요 내용은 다음과 같습니다.
첫 번째 점은 5개의 장난감 문제에 대한 위의 상단 플롯에 있는 5개의 플롯에 굵은 파란색 선으로 표시됩니다. 마지막 두 점은 손실 곡선과 주어진 문제를 해결하기 위한 매개변수 수를 보여주는 하단의 플롯으로 설명됩니다.
다음 요점은 치명적인 망각 문제에서 KAN이 MLP보다 훨씬 낫다는 것입니다. 지속적인 학습을 위해 시퀀스 데이터를 공급하면 KAN은 MLP에 비해 과거 데이터를 훨씬 더 잘 기억하는 것 같습니다. 이는 아래 그림에 표시되어 있는데, KAN은 데이터의 5단계를 재현하지만 MLP는 어려움을 겪습니다.
그들은 또한 KAN이 편미분 및 물리 방정식과 관련된 문제에 사용될 수 있음을 보여주기 위해 광범위한 실험을 수행했습니다. 이러한 세부 사항을 다루기보다는 KAN과 MLP를 언제 선택해야 하는지 살펴보겠습니다.
MLP 대신 KAN을 선택해야 하는 경우를 안내하기 위해 아래 그림을 제공했습니다. 따라서 다음과 같은 경우 KAN을 선택하세요.
그렇지 않으면 MLP가 여전히 승리합니다.
이 기사가 마음에 드셨다면 저를 팔로우해 보세요.
또한 내 구독도 부탁드립니다.
제 생각에는 트랜스포머가 NLP 환경을 어떻게 깔끔하게 휩쓸었는지에 대해 KAN이 MLP를 대체하기 위해 여기에 있는 것이 아닙니다. 오히려 KAN은 수학과 물리학의 틈새 문제에 유용할 것입니다. 그럼에도 불구하고 더 많은 개선이 필요하다고 생각합니다. 그러나 기초 모델로 해결되는 빅데이터 문제의 경우 KAN은 적어도 현재 상태에서는 갈 길이 멀습니다.
또한 훈련 접근 방식과 KAN 아키텍처 설계는 현대 신경망을 설계하고 훈련하는 표준 방식에서 벗어나는 경향이 있습니다. 그럼에도 불구하고 GitHub 페이지에는 이미 13,000개의 별표와 1.2,000개의 포크가 있어 뭔가 준비가 되어 있음을 나타냅니다. 이 공간을 기다려보자.