글을 시작하며

AI의 시대.

지금 우리는 더 좋은 알고리즘, 더 많은 데이터, 더 강력한 컴퓨터, 그리고 이것들을 기반으로 한 ‘넥스트 레벨’의 AI를 원하고 갈구하는, 끝없는 변화를 쫓는 시대에 살고 있습니다. 이 변화의 움직임 속에서, 어떻게 AI를 ‘효율적’으로 트레이닝하고 작동하게 할 것이냐가 새로운 화두로 떠오르면서, 그 동안의 ‘모델 대형화’ 경쟁이 ‘효율성’ 경쟁으로 바뀌는 것 같습니다. 자연스럽게, 이런 트렌드에 부응해서 딥러닝과 관련된 몇 가지 ‘근본적인 접근법’을 다시 들여다보고 검토하는 연구자들도 나타납니다.

이 중 대표적인 예로, 딥러닝의 역사에 있어서 가장 중요한 알고리즘의 하나라고 해도 무리가 아닐 MLP (Multi-Layer Perceptron; 다층 퍼셉트론)에 대한 새로운 대안이 하나 등장했는데요. 어떤 작업에 대해서는 MLP보다 더 나은 정확도 (Accuracy)와 해석 가능성 (Interpretability)을 보여준다고 하는 KAN (Kolmogorov-Arnold Network)이 바로 그것입니다.

KAN이란 건 도대체 뭘까요? 이게 현재 딥러닝의 근본이라고 할 수 있을 MLP와 어떻게 다르고 뭐가 나은 걸까요? 한 번 같이 살펴보시죠.

이번 에피소드에서는, 아래의 내용을 다뤄보려고 합니다:

우선, MLP에 대해서 알아봅시다

MLP는 인공신경망 중 가장 기본적이고 단순한 형태라고 할 수 있는 피드포워드 (Feedforward) 네트워크의 핵심으로, 현재의 인공지능을 이해하기 위한 기본 개념 중 하나라고 볼 수 있습니다. (피드포워드 네트워크에서는 정보가 루프라든가 순환 등이 없이 입력에서 출력으로 한 방향으로만 흐릅니다)

MLP를 좀 이해해 보기 위해서, 신경망과 관련된 기본적인 내용 몇 가지만 다시 살펴보죠. MLP는 노드 (뉴런 또는 퍼셉트론이라고도 부릅니다)의 계층으로 구성됩니다:

  • 입력층 (Input Layer): 신경망에 데이터가 들어오는 초기 지점입니다. 이 계층의 각 ‘노드’는 입력 데이터의 특징들을 나타내고, 원시 데이터를 신경망에서 처리할 수 있는 형태로 효과적으로 변환해 줍니다.

  • 은닉층 (Hidden Layers): 입력층과 출력층 사이에 있는 이 계층은 신경망이 얼마나 복잡한가에 따라 그 숫자나 크기가 달라집니다. 이 계층의 각 노드는 이전 계층에 있는 모든 노드의 입력을 가중치, 바이어스, 활성화 함수를 사용해서 변환하고 그 다음 계층으로 전달합니다.

  • 출력층 (Output Layer): 이 최종 계층은 신경망의 예측 또는 분류 결과를 출력합니다. 이 계층의 노드 숫자는, 특정한 작업에 맞춰서 원하는 출력의 크기에 따라 조절됩니다.

아래의 기타 중요한 개념을 알아두면 좋습니다:

  • 가중치 (Weight)와 바이어스 (Bias): 이 파라미터들은 노드 간의 연결 강도를 정의하는데 사용됩니다. 트레이닝 과정에서 계속 수치가 변화하고, 신경망의 출력값을 결정하는데 중요한 역할을 합니다.

  • 활성화 함수 (Activation Function): ReLU나 Sigmoid 같은 함수로, 노드의 입력값을 출력값으로 변환하는데 사용됩니다. 활성화 함수는 신경망에 ‘비선형성’을 도입해서 복잡한 패턴을 모델링할 수 있도록 하는데 필수적인 역할을 합니다.

  • 학습 규칙 (Learning Rule): 역전파 (Backpropagation) 등의 접근 방식이 실제 출력값과 예측된 출력값 간의 차이를 바탕으로 신경망의 가중치나 바이어스를 조정해 가면서 모델을 반복적으로 개선하게 됩니다.

MLP 개념은 1960년대에 만들어졌습니다. 처음의 컨셉은, 프랭크 로젠블라트 (Frank Rosenblatt)가 ‘퍼셉트론 모델을 통해서 소개했는데, 이 퍼셉트론 모델은 기본적인 패턴 인식 작업을 하는 간단한 신경망입니다. 그렇지만, 마빈 민스키 (Marvin Minsky)와 시모어 페퍼트 (Seymour Papert)가 보여준 것처럼, 퍼셉트론은 ‘비선형 문제’를 해결할 수 없다는 제약이 있었고, 이로 인해 신경망에 대한 연구들이 일시적으로 중단되었습니다.

그 이후에 거의 20년이 지나서야, ‘다층 피드포워드 네트워크 (Multilayer Feedforward Network)’가 한 유한차원 공간에서 다른 유한차원 공간으로 일반적인 매핑을 근사 (Approximate)하는 능력을 연구자들이 탐구하기 시작했습니다. 1989년에 커트 호닉 (Kurt Hornik), 맥스웰 스틴치콤 (Maxwell Stinchcombe), 그리고 할버트 화이트 (Halbert White)가 ‘MLP가 - 충분한 수의 은닉층이 있으면 - 어떤 복잡한 연속 함수에 대해서도 근사치를 구할 수 있다’는 걸 보여줬고, 이 결과가 ‘보편 근사 정리 (Universal Approximation Theorem)’가 되었습니다.

'보편 근사’라고 불리는 이 특성 때문에, MLP는 새로운 문제가 나올 때마다 별도의 맞춤형 알고리즘을 설계할 필요없이, 간단한 회귀 문제부터 복잡한 패턴 인식 문제까지 광범위한 작업을 처리할 수 있는 아주 다재다능한 도구로 인식되었습니다.

‘Deep Learning Textbook’ - 이안 굿펠로우 (Ian Goodfellow), 요슈아 벤지오 (Yoshua Bengio), 아론 쿠르빌 (Aaron Courville) 공저 - 에 따르면, MLP는 ‘딥러닝 모델의 전형이나 본질적 형태’라고 할 수 있습니다. 오늘날 MLP는 텍스트, 이미지, 음성 등을 다루는 다양한 머신러닝 분야에서 폭넓게 사용되고 있죠. 아키텍처의 유연성, 그리고 비선형 함수를 근사할 수 있는 능력 덕분에, MLP는 딥러닝 및 신경망 연구의 기본 구성요소가 되었습니다.

KAN의 탄생, 그 이야기

‘보편 근사 정리’와 어찌보면 유사하게, 1957년 블라디미르 아놀드 (Vladimir Arnold)와 안드레이 콜모고로프 (Andrey Kolmogorov)가 증명한 ‘콜모고로프-아놀드 표현 정리 (Kolmogorov-Arnold Representation Theorem)’가 있습니다. 이 정리는 - 어려운 말이 많은데, 그래도 한 번 읽어봅시다 ㅎㅎ - ‘모든 다변수 연속 함수는, 단일 변수의 연속 함수들과 덧셈 연산을 유한하게 결합해서 표현할 수 있다’고 설명합니다. 제가 이해한 바로 쉽게 설명하자면, ‘복잡한 함수라도 y = f1(x1) + f2(x2) + f3(x3) 같이 일변수 함수의 합으로 표현할 수 있다’ 이겁니다. 결국, 콜모고로프-아놀드 표현 정리는, 복잡(해서 근사하는 방법밖에 없다고 생각)한 다차원의 함수를 단 한 개의 차원을 가진 함수의 선형 조합으로 분해할 수 있다고 보여준 거죠.

이게 1957년에 증명되었다면, 아니 연구자들은 왜 애시당초 이걸 사용하지 않은 걸까요? 당시의 문제 중 하나는, 이런 일차원의 함수들이 꼭 당시 신경망이 표현해야 하는 함수에 필요한 특성을 가지고 있는 건 아니라는 점이었고, 이 때문에 1990년대 연구자들이 “콜모고로프 정리는 무의미하다”고까지 이야기했고, 학계도 따라서 조용해졌습니다.

그리고, 시간을 쭉 돌려서 2024년에서야, 앞에서 이야기했던 KAN (Kolmogorov-Arnold Network)의 저자들이 이 정리를 현대의 딥러닝 세계에 맞게 재구성한 겁니다. 이들은 이 정리를 임의의 폭과 깊이를 가진 네트워크에 적용하면 더 유연하고 (Flexible) 강건한 (Robust) 머신러닝 모델을 만들 수 있다고 주장합니다.

한 걸음 더 나아가서, 이 논문 저자들은 ‘과학적 수식이나 아니면 일상 생활에서 우리가 접할 수 있는 많은 함수’들이 ‘Smoothness (평활성)’이라든가 ‘Sparse Compositional Structure (희소 구조; 다차원의 모든 정보가 밀접하게 연계되지 않고 비교적 단순하게 표현된다는 뜻으로 이해)’라든가 하는 특성들을 가지고 있다는 점을 강조합니다. 이런 점이 바로 콜모고로프-아놀드 접근방법을 사용한 Representation을 만들어내는데 도움이 되기 때문에, KAN이 ‘실세계 시나리오’에 더 현실적인 적용을 할 수 있다고 볼 수 있겠죠.

KAN의 아키텍처

자, 이제 본격적으로 KAN이 어떻게 생긴 구조인지 한 번 - 어렵지만 - 들여다보죠.

아키텍처 관점에서 KAN의 핵심은, 기존 딥러닝 아키텍처에서 ‘노드’에 있던 고정된 활성화 함수 (Activation Function)를 ‘엣지’에 위치하는 ‘학습 가능한 활성화 함수 (Learnable Activation Function)’으로 대체해 버린 겁니다. 결국, 선형의 가중치 행렬 (Linear Weight Matrix)를 없애고, 대신 KAN의 각 ‘가중치’를 학습 가능한 단변수 함수로 모델링하는데, 특히 스플라인 (Spline)으로 매개변수화합니다. 이 차이가 무엇을 의미하느냐?

이 차이가 의미하는 것이 무엇이냐? 네트워크 상 각각의 연결점에서, 들어오는 입력값에 따라서 그 함수를 조금씩 조정할 수 있고, 그래서 아마도 더 유연하고 맞춤화된 데이터 처리를 할 수 있을 거라는 겁니다.

‘스플라인(Spline)’은 몇개의 제어점을 이용해서 ‘부드러운 곡선’을 만들어내는 수학적 도구입니다 - ‘회귀 (Regression)’와 비슷한 개념을 기하학적으로 바라보는 관점이라고 보면 되지 않을까 합니다.

스플라인은 컴퓨터 그래픽스에서 아주 중요한 역할을 하죠. 게임이나 3D 애니메이션에서 쓰이는 모델들은 모두 직선과 평면(삼각형 혹은 다각형)으로 모델링하는데, 하지만 실제 우리가 보는 3D 캐릭터들은 부드러운 곡선으로 보이죠? 이게 스플라인의 효과입니다.

Image Credit: KAN paper

KAN의 아키텍처는 MLP와는 근본적으로 다른 방식으로 입력값을 처리하고 계산을 할 수 있습니다. 그 외 KAN의 핵심적인 특징이라면:

  • 선형 가중치 (Linear Weights)가 없다: 기존의 딥러닝 네트워크에서는, 선형 가중치가 입력 데이터를 변환하고 여러 계층을 통해 연속적으로 매핑하는 과정에서 아주 중요한 역할을 했습니다. 그렇지만 KAN은 선형 가중치 대신 스플라인 기반의 함수를 사용해서 각각의 연결 (Connection)이 입력 데이터의 특정한 요구사항에 맞게 복잡한 비선형 변환 (Non-linear Transformation)을 할 수 있습니다.

  • 합산 노드 (Summation Nodes): KAN 아키텍처에서의 ‘노드’는, 엣지들로부터 들어오는 입력값을 집계하는 합산점의 역할을 합니다. 이런 입력값들이 노드 자체에서 추가적인 비선형 변환 작업을 거치지 않으니까, MLP의 경우 노드에서 ReLU나 시그모이드같은 활성화 함수를 사용하는 것과 차이가 있습니다.

  • 스플라인 매개변수화: KAN의 각 엣지 함수가 스플라인으로 매개변수화됩니다 (비교적 간단한 수학적인 구조로 비선형의 관계를 모델링할 수 있는 좋은 방법이죠). 스플라인은 다양한 데이터 형태에 맞게 부드러운 곡선을 만들 수 있는 유연성을 제공하니, KAN에 필요한 다양한 함수 변환에 이상적인 매개체입니다.

KAN은 MLP의 개선된 버전인가?

KAN은 기존의 MLP에 비해서 몇 가지 이론적이기도 하고 실용적이기도 한 이점이 있습니다 - 바로 MLP가 취했던 접근 방식과 스플라인을 효과적으로 합쳐서, 각각의 장점을 잘 활용하면서 한계점을 해결합니다. 

Image Credit: KAN paper

스플라인의 이점:

  • 저차원에서의 정밀도 (Precision)가 높음: 스플라인은 특히 저차원 공간에서 함수를 정확하게 모델링하는 데 이점이 있습니다. 정밀도가 높으면 함수의 형태를 세밀하게 제어해야 하는 작업에 있어서 아주 유리합니다.

  • 국소 지역에서의 조정 (Local Adjustability)이 가능: 스플라인의 특성 상 국소적인 조정이 쉬워서, 스플라인 매개변수를 변경하면 다른 곳에 ‘의도하지 않은 영향’ 없이 함수의 특정 섹션에 직접적이고 정밀한 변화를 줄 수 있습니다. (아마도 이 때문에 ‘재앙적 망각 (Catastrophic Forgetting)’ 문제를 피할 수 있는 것이 아닌가 짐작됩니다.)

  • 근사 (Approximation)의 해상도가 유연함 (Resolution Flexibility): 스플라인은 다양한 Resolution 간의 전환이 가능해서, 필요에 따라서 함수의 근사치를 어느 정도로 정밀하게 모사할 것인지 선택할 수 있습니다.

MLP의 이점:

  • 고차원의 데이터 처리에 강점 (Handling High-dimensional Data): 스플라인과 달리 MLP는 소위 ‘차원의 저주’에 영향을 덜 받으니까, 입력 공간이 고차원인 경우 더 효과적입니다.

  • 피처의 학습 (Feature Learning)에 유리: MLP는 데이터에서 복잡한 Feature Hierarchies를 학습하는데 뛰어난 성능을 보이고, 원시 입력 데이터에서 정보가 많은 Feature를 추출하고 통합하는 작업에 쓸모가 많습니다.

MLP와 비교했을 때 KAN의 장점

세상 모든 일이 그렇듯이, KAN이 무조건 MLP보다 좋은 건 아니겠죠; 대략적으로 어플리케이션이 어떤 성격을 가지는지, 데이터 특성은 어떤지, 그리고 모델이 어떤 목표 하에 작동해야 하는지 등에 따라서 MLP가 나은지 KAN이 나은지 달라집니다.

어쨌든 전반적으로 KAN이 어떤 장점이 있는가 정리해 보면:

  • 높은 정확도 (Accuracy): KAN은, 특히 MLP에서 일반적으로 사용하는 고정된 활성화 함수 대비 ‘입력 데이터의 특징’에 더 잘 맞도록 조정할 수 있는 ‘스플라인’을 활성화 함수에 사용하니까, 함수 근사 (Function Approximation)를 더 유연하게 잘 할 수 있고 따라서 더 정확한 값을 출력할 수 있습니다.

  • 높은 해석 가능성 (Interpretability): 각각 Connection의 함수를 직접 수정해가면서 입력 데이터에 따라 어떻게 변화하는지 관찰할 수 있기 때문에, 네트워크 전체에서 입력 데이터의 변환 과정을 더 쉽게 이해할 수 있습니다.

  • 높은 유연성 (Flexibility): KAN은 데이터의 Complexity나 다양한 Resolution에 맞추어 네트워크를 유연하게 조정할 수 있어서, 스플라인으로 잘 모델링할 수 있는 ‘복잡한 비선형 관계’가 연관된 작업에서 더 나은 성능을 보여줄 수 있습니다. (이건 아마도 모델 사이즈를 줄이는 것에도 관련이 있을 것으로 짐작되네요)

  • 고차원 데이터 처리 (High-dimensional Functionality): 원래 스플라인은 ‘차원의 저주’라고 부르는 문제가 있기는 하지만, MLP와 유사한 구조를 차용해서 단순하게 스플라인만을 사용하는 것보다 고차원 데이터를 더 효과적으로 처리할 수 있습니다.

‘차원의 저주’는, 차원이 증가하면서 학습 데이터의 수가 차원의 수보다 적어져서 성능이 저하되는 현상을 말합니다. 차원이 증가할수록 변수가 증가하고, 각각의 차원 안에서 학습할 데이터의 수가 적어지는 거죠. (물론 변수의 증가가 곧 차원의 저주로 이어지는 것은 아니구요. 관측치보다 변수의 수가 많아지는 경우에 발생합니다)

KAN의 한계점

Image Credit: KAN paper

위 그림을 보면, 크게 ‘정확도 (Accuracy)’, ‘해석 가능성 (Interpretability)’, 그리고 ‘효율성 (Efficiency)’의 세 가지 기준으로 출발해서 과연 KAN이 좋을지 MLP가 좋을지 선택을 해 볼 수가 있습니다. 이 중에 특히 ‘효율성’의 관점에 KAN의 가장 두드러진 문제점이 있는데요, 바로 ‘느린 트레이닝 속도’입니다 - 생각해 보면, KAN은 트레이닝 과정에서 한 변수마다 함수를 찾아야하니, 트레이닝 단계가 훨씬 복잡하고 시간이 오래 걸릴 수 밖에 없을 것 같습니다. 기존 신경망 대비 대략 10배 정도 느리다는 보고가 있어서, 이런 성능이라면 사실 KAN이 AI의 주류 아키텍처로 올라서기는 쉽지가 않죠. (현재 KAN의 저자들은, 일단 “해석 가능성과 정확성이 중요하고, 트레이닝 속도는 좀 느려도 괜찮다면, 적어도 소규모의 AI 과제나 과학적 문제를 푸는 AI의 경우는 KAN을 사용해 볼 만하다”고 이야기합니다)

현재의 KAN은 소규모 AI 과제를 해결할 때는 어느 정도 개선된 모습을 보이고 있지만, 규모가 크고 복잡한 데이터셋을 다루는, 산업용 AI 어플리케이션 정도에 대해서는 그 확장성이 검증되었다고 보기는 어렵습니다.

그 외에도, ‘부수적’으로 보일 수도 있지만 ‘현실적’인 문제로, 트랜스포머나 디퓨젼 모델 대비 아직 KAN을 연구하는 연구자가 턱없이 부족하다는 점, 그리고 AI를 위한 대다수의 하드웨어사 트랜스포머나 기존 신경망 네트워크를 잘 처리하기 위한 구조로 계속 개발되고 있다는 점 등도 KAN의 발전과 확산에는 걸림돌이 될 수도 있겠습니다.

마치며

오늘 KAN에 대한 내용은 유난히 좀 어렵게 느껴지네요. 희뿌연 느낌으로 이해되는 것 같습니다. ㅎㅎ

현재 우리가 많이 사용하게 되는 LLM은 엄청나게 중요한 아키텍처지만, 그럼에도 불구하고 KAN과 같은 다른 대안을 모색하는 연구도 아주 활발한 것 같습니다. KAN은 고유의 스플라인 기반 함수를 사용해서, 더 정확하고 유연하게 목표 함수를 근사 (Approximation)할 수 있을 뿐 아니라 더 뛰어난 해석 가능성 (Interpretability)을 제공합니다. 트레이닝 속도가 느리다는 점, 그리고 확장이 쉽지 않다는 점 등의 문제가 현재 있지만, 많은 연구자들이 KAN에 대해 계속해서 연구를 하고 있는 만큼 점점 다양한 장단점을 가진 AI 아키텍처에 대한 연구가 고도화될 테고 지속적으로 발전할 수도 있지 않을까 생각이 듭니다.

이미 KAN이, 비록 제한적이긴 하지만, 수학이나 물리학 등 여러 분야에서 MLP보다 나은 성능을 보여주기도 합니다. 예를 들어, 매듭 이론 (Knot Theory)의 중요한 질문 중 하나인 “매듭의 서로 다른 2차원 표현이 실제로 동일한 매듭에 해당하는가”에 답을 구하기 위해, 2021년 호주 시드니대학교의 Geordie Williamson 교수님이 전통적인 신경망 모델로 문제를 해결했는데요. 똑같은 문제를 KAN으로 했을 때, Williamson 교수팀이 만든 신경망이 약 30만개의 파라미터로 트레이닝한 것 대비 KAN은 단 200개의 파라미터로 더 나은 결과를 보여준 바 있습니다.

반대로, 7월 23일 싱가폴 국립대학교 연구자들이 발표한 논문 “KAN or MLP: A Fairer Comparision”에서는 파라미터 숫자와 컴퓨팅 파워 (FLOPs)를 동일하게 해 놓고 머신러닝, 컴퓨터 비전, 오디오 처리, 자연어 처리, Symbolic Formula Representation의 다섯 가지 종류의 작업에서 어떤 아키텍쳐가 더 나은 성능을 보이는지 실험을 한 결과, Symbolic Formula Representation을 제외한 나머지 작업에서는 MLP가 KAN을 능가하는 성능을 보인 것으로 나타난 경우도 있구요.

글을 시작하면서 말씀드린 것처럼, ‘효율적인 AI’가 화두가 된 시대에는 MLP와 같은, 기존에 모든 것의 기본이라고 받아들여지는 접근 방식에도 도전하고 재평가하는 것이 중요할 겁니다. 지금의 딥러닝이 오랜 ‘겨울’을 지나 부활하면서 보여준 것처럼, KAN도 당면한 문제들을 하나하나 해결해 나가면서 더 효율적이 되고 더 광범위하게 적용될 수 있도록 진화하리라 믿습니다.

보너스 자료

KAN 관련 자료들:

이 글에서 언급된 다른 논문들:

읽어주셔서 감사합니다. 친구와 동료 분들에게도 뉴스레터 추천해 주세요!

Reply

Avatar

or to participate

Keep Reading