새로운 유형의 신경망 Kolmogorov-Arnold Networks(KANs), 더 해석 가능성 높아
(spectrum.ieee.org)- Kolmogorov-Arnold Networks(KANs) 는 기존 신경망과 다른 구조로 작은 규모에서도 더 해석 가능하고 정확한 결과를 보여, 과학자가 물리 데이터에서 새 가설을 찾는 도구가 될 수 있음
- 기존 MLP가 시냅스의 가중치와 뉴런의 활성화 함수에 의존하는 반면, KAN은 시냅스가 입력-출력 함수를 학습하고 뉴런은 시냅스 출력의 합만 계산함
- 물리 법칙 데이터와 위상 매듭 실험에서 KAN은 규모를 키울수록 성능이 더 빠르게 좋아졌고, 편미분방정식 풀이에서는 매개변수가 100배 많은 MLP보다 100배 정확했음
- 연구진은 KAN 내부의 함수 형태와 연결 중요도를 시각화하고 약한 연결을 가지치기해, 일부 경우 데이터셋을 만든 물리 함수를 한 줄짜리 직관적 함수로 재구성했음
- KAN은 매개변수당 학습 시간이 길고 GPU 활용이 어렵지만, 필요한 매개변수가 적어 물리 문제처럼 작은 규모에서는 실용성이 남아 있음
KAN이 제안하는 새 신경망 구조
- 현대 AI의 중심에 있는 인공 신경망은 챗봇과 이미지 생성기를 뒷받침하지만, 많은 뉴런 때문에 내부 작동을 해석하기 어려운 블랙박스가 될 수 있음
- 새 구조인 Kolmogorov-Arnold Networks(KANs) 는 전통적 신경망보다 더 해석 가능하고, 실험에서는 더 작아도 더 정확한 결과를 보였음
- KAN 개발자들은 이 구조가 물리 데이터를 간결하게 표현할 수 있어 과학자가 자연 법칙에 대한 새 가설을 발견하는 데 도움을 줄 수 있다고 봄
- Johns Hopkins University의 Brice Ménard는 지난 10년 이상 신경망 설계가 대체로 시행착오식 조정에 의존해 왔고, KAN처럼 첫 원리에서 설계된 새 아키텍처의 등장을 긍정적으로 평가함
기존 MLP와 KAN의 차이
- 전통적 신경망에서는 시냅스가 두 뉴런 사이 연결 강도를 나타내는 가중치 하나를 학습함
- 뉴런은 이전 층 뉴런들의 입력을 가중합한 뒤, 그 합에 단순한 활성화 함수를 적용함
- 모든 뉴런이 다음 층의 모든 뉴런과 연결된 형태는 multi-layer perceptron(MLP) 로 불림
- KAN에서는 역할이 바뀜
- 시냅스는 단순한 연결 강도 대신 입력을 출력으로 매핑하는 활성화 함수를 학습함
- 이 함수는 여러 함수의 조합인 스플라인(spline) 일 수 있고, 각 연결마다 다를 수 있음
- 뉴런은 더 단순해져 앞선 시냅스 출력들을 합산하기만 함
- KAN이라는 이름은 함수를 조합하는 방식을 연구한 두 수학자 Kolmogorov와 Arnold에서 따왔음
- 이 구조의 목표는 더 적은 학습 매개변수로 데이터를 표현할 때 더 큰 유연성을 제공하는 것임
과학 과제에서 보인 성능
- 연구진은 KAN을 비교적 단순한 과학 과제에서 실험함
- 일부 실험은 상대론적 속도로 움직이는 두 물체가 서로를 지나가는 속도 같은 간단한 물리 법칙을 사용함
- 방정식으로 입력-출력 데이터 포인트를 생성함
- 각 물리 함수에 대해 일부 데이터로 네트워크를 학습시키고 나머지 데이터로 테스트함
- KAN은 크기를 키울수록 MLP보다 성능이 더 빠르게 개선됨
- 편미분방정식 풀이에서는 한 KAN이 매개변수가 100배 많은 MLP보다 100배 정확했음
- 또 다른 실험에서는 위상 매듭의 다른 속성들을 바탕으로 매듭의 signature라는 속성을 예측하도록 학습함
- MLP는 약 300,000개 매개변수로 테스트 정확도 78%를 달성함
- KAN은 약 200개 매개변수로 테스트 정확도 81.6%를 달성함
해석 가능성과 함수 재구성
- 연구진은 KAN을 시각적으로 펼쳐 활성화 함수의 모양과 각 연결의 중요도를 볼 수 있었음
- 약한 연결은 수동 또는 자동으로 가지치기할 수 있었음
- 일부 활성화 함수는 sine 함수나 exponential 함수처럼 더 단순한 함수로 대체 가능했음
- 그 결과 전체 KAN을 구성 활성화 함수까지 포함한 직관적인 한 줄짜리 함수로 요약할 수 있었음
- 일부 경우에는 데이터셋을 만든 물리 함수를 완벽하게 재구성함
- MIT 및 NSF AI Institute for Artificial Intelligence and Fundamental Interactions의 Ziming Liu는 해석하기 어려운 데이터셋을 KAN에 넣으면 가설을 만들 수 있고, KAN 다이어그램을 보며 필요한 경우 구조를 조정할 수 있다고 봄
CNN·트랜스포머와의 결합
- KAN 사전논문은 이미 수십 편의 논문에서 인용됨
- University of San Andrés의 Alexander Bodner와 동료들은 KAN을 이미지 처리에 널리 쓰이는 CNN과 결합해 Convolutional KANs를 만들었음
- 손글씨 숫자와 의류 이미지 분류 과제에서는 Convolutional KANs가 전통적 CNN과 거의 같은 정확도를 보임
- 숫자 분류에서는 두 네트워크 모두 99% 정확도
- 의류 분류에서는 두 네트워크 모두 90% 정확도
- KAN 결합 모델은 약 40% 적은 매개변수를 사용함
- Bodner는 사용한 데이터셋이 단순했지만, 더 많은 컴퓨팅 자원을 가진 다른 팀들이 네트워크를 확장하기 시작했다고 밝힘
- 다른 연구자들은 KAN을 대규모 언어 모델에서 널리 쓰이는 transformer와 결합하고 있음
느린 학습과 적용 가능 범위
- KAN의 단점은 매개변수당 학습 시간이 더 오래 걸린다는 점임
- 학습이 느린 이유 중 하나는 GPU를 활용하기 어렵기 때문임
- 다만 KAN은 필요한 매개변수가 적음
- Ziming Liu는 KAN이 이미지와 언어 처리를 위한 거대한 CNN이나 transformer를 대체하지 않더라도, 많은 물리 문제의 작은 규모에서는 학습 시간이 문제가 되지 않을 수 있다고 봄
- Liu는 전문가가 사전 지식을 KAN에 넣는 방법을 연구하고 있음
- 예를 들어 활성화 함수를 사람이 직접 선택할 수 있음
- 간단한 인터페이스로 KAN에서 지식을 쉽게 추출하는 방법도 검토 중임
- 장기적으로 KAN은 고온 초전도체 발견이나 핵융합 제어 방법 탐색에 도움을 줄 가능성이 있음
댓글과 토론
Hacker News 의견들
-
작은 규모 모델링에서 KAN을 직접 실험하고 글로 정리했으며, 일반 신경망과 비교해 봤음: https://news.ycombinator.com/item?id=40855028
핵심 결론은 KAN이 일반 신경망보다 훈련이 훨씬 까다롭다는 것임. 파라미터당 손실은 대체로 비슷하게 맞출 수 있지만, 많은 하이퍼파라미터 튜닝과 KAN 구조상의 추가 기법이 필요했음. 반면 기본 신경망은 훨씬 쉽게 훈련됐고 더 넓은 조건에서 잘 동작했음
신경망 훈련에는 이미 엄청난 노력이 쌓였고, Adam 같은 최적화기도 신경망에 맞춰 설계·최적화된 면이 있어 완전히 공정한 비교는 아니라고 봄. KAN에는 잠재력이 있지만 만능은 아니며, 보통 쓰는 스플라인이 하위 계층 뉴런 출력을 분석하는 것보다 훨씬 더 해석 가능하다는 주장도 다소 의심스러움
https://cprimozic.net/blog/trying-out-kans/- KAN에 대한 과장과 비판이 모두 꽤 근거 약해 보인다는 데 대체로 동의함. 잠재력은 크지만 지금까지 나온 결과가 만병통치약은 아니며, Transformer처럼 큰 영향을 줄 수도 있고 작은 틈새에 머물 수도 있음
연구란 결국 어떤 개선이 유용성을 바꾸는지 찾아내는 과정이고, https://github.com/mintisan/awesome-kan의 진행을 따라가며 다양한 시도를 보는 게 재미있음. KAN과 고정 활성화 함수 신경망 사이에는 활성화 함수 튜닝이라는 연속적인 연구 공간이 있음
예를 들어 xsigmoid(mx) 같은 단순 파라미터화 활성화 함수 묶음은 m이 크면 ReLU, m=1.7이면 GeLU, m=1이면 SiLU처럼 동작할 수 있음. 뉴런별 단일 활성화 함수, 여러 파라미터를 가진 활성화 함수, 함수 근사기, 가중치 없는 완전한 KAN까지 여러 지점이 있고, 추가 파라미터를 어디에 배치해야 가장 효과가 큰지 통합 공식으로 계산할 수 있는 사람이 큰 인정을 받을 듯함 - 최적화기뿐 아니라 신경망의 초기화 방식도 전통적인 활성화 함수를 쓰는 신경망이 안정적으로 훈련되도록 명시적으로 조정되어 왔음. KAN 초기화에 그만큼 많은 작업이 들어갔는지는 모르겠음
KAN이 더 해석 가능하지 않을 것이라는 데 100% 동의함. 단일 뉴런이라면 이해되지만, 이런 것들을 합성하기 시작하면 해석 가능성은 곧 사라진다고 봄 - 자세한 작업임. 블로그에서 다룬 코드베이스를 바로 보고 싶은 사람을 위한 링크는 여기임: https://github.com/Ameobea/kan
- 다른 사람이 조용히 다들 아는 얘기를 밖으로 꺼내줘서 반가움. 모두가 신경망은 해석 불가능하다고 하지만, 내 경험은 전혀 그렇지 않았고 오히려 반대였음
- KAN에 대한 과장과 비판이 모두 꽤 근거 약해 보인다는 데 대체로 동의함. 잠재력은 크지만 지금까지 나온 결과가 만병통치약은 아니며, Transformer처럼 큰 영향을 줄 수도 있고 작은 틈새에 머물 수도 있음
-
KAN은 일반 다층 퍼셉트론 안의 또 다른 활성화 구조로 모델링할 수 있고, 유연성이 높으니 놀랍지는 않음. 여러 구조 유형을 정리한 차트를 만들었음: https://x.com/thomasahle/status/1796902311765434694
흥미롭게도 KAN은 PyTorch의 일반 행렬 곱셈으로 구현하면 효율이 좋지 않지만, 커스텀 CUDA 커널이나 torch.compile을 쓰면 매우 빨라질 수 있음: https://x.com/thomasahle/status/1798408687981297844- 옆 질문인데, 이 분야를 깊이 아는 사람들은 저런 수식 가득한 시각화를 보고 실제로 무슨 일이 일어나는지 바로 이해할 수 있는지 궁금함. 평균적인 수학 배경을 가진 사람보다 내가 얼마나 뒤처져 있는지 가늠해 보고 싶음
- 흥미롭고 공유 고마움. 컴파일이 어떤 구조에서는 왜 더 느리게 만드는지 설명이나 아이디어가 있는지 궁금함
-
Kolmogorov-Arnold 네트워크에 대한 이전 논의: https://news.ycombinator.com/item?id=40219205
-
“KAN의 단점은 파라미터당 훈련 시간이 더 길다는 것인데, 부분적으로는 GPU를 활용할 수 없기 때문이다. 하지만 더 적은 파라미터가 필요하다. Liu는 KAN이 이미지와 언어 처리를 위한 거대한 CNN이나 Transformer를 대체하지 못하더라도, 많은 물리 문제의 작은 규모에서는 훈련 시간이 문제가 되지 않을 것이라고 말한다.”
앞으로 GPU를 활용할 수 있을지도 모른다는 말조차 없어서, 근본적인 한계처럼 읽힘- KAN 저장소 자체를 보면 이미 GPU 지원이 있는 것으로 보임: https://github.com/KindXiaoming/pykan/blob/master/tutorials/API_10_device.ipynb
- 이건 확실히 흥미로워 보임: “ReLU-KAN: New Kolmogorov-Arnold Networks that Only Need Matrix Addition, Dot Multiplication, and ReLU” https://arxiv.org/abs/2406.02075#
- 신경망을 결정 트리와 결합한 사례들을 봤고, 그런 하이브리드에는 몇 가지 방식이 있음. 한 방식은 정확하고 GPU로 훈련된 네트워크를 사용해 해석 가능한 네트워크의 정확도를 끌어올리는 식임
KAN에도 이런 접근을 비용 효율적으로 적용할 수 있을지 궁금함. 특히 LlaMa-3 같은 사전 훈련 언어 모델로 해석 가능한 모델을 훈련시키는 방식이 가능할지 궁금함 - GPU는 매우 복잡한 일도 할 수 있는데, 무엇이 걸림돌인지 궁금함
-
“그다음 전체 KAN을 직관적인 한 줄 함수로 요약할 수 있었고, 경우에 따라 데이터셋을 만든 물리 함수를 완벽히 재구성했다.”
KAN 아이디어는 정말 흥미롭지만, 엄밀히 따지면 전통적인 신경망도 어떤 닫힌 형식의 한 줄 표현식으로 쓸 수 있음. 다만 그 줄이 아주 길어질 뿐임. 같은 결정 경계를 더 적은 뉴런으로 만들 수 있다 해도, 가중치 대신 스플라인을 쓴다고 표현식 자체가 덜 복잡해지는지는 잘 모르겠음- 원래 KAN 논문에서는 이를 다루기 위해 두 가지를 함. 먼저 희소성을 유도하는 정규화를 쓰고, 그다음 희소한 스플라인 계산 그래프를 학습한 뒤 이상적으로는 압축된 기호 모델을 찾는 기호화 단계를 둠
원칙적으로는 다층 퍼셉트론에도 비슷한 일을 할 수 있겠지만, 다층 퍼셉트론 표현은 다소 분산되어 있어서 희소화와 기호화가 더 어려울 수 있음
- 원래 KAN 논문에서는 이를 다루기 위해 두 가지를 함. 먼저 희소성을 유도하는 정규화를 쓰고, 그다음 희소한 스플라인 계산 그래프를 학습한 뒤 이상적으로는 압축된 기호 모델을 찾는 기호화 단계를 둠
-
이걸 다섯 살짜리에게 설명하듯 설명해 줄 수 있을까? 신경망이 손실 함수를 줄여 더 좋은 결과를 얻으려 한다는 건 이해하지만, KAN은 실제로 무엇이 다른지 궁금함
- 머신러닝 전문가는 아니고 이 글로 배우는 중이지만, 핵심은 도표의 각주에서 이해했음
일반 신경망, 즉 다층 퍼셉트론에는 가중치 역할을 하는 부동소수점 숫자로 가득 찬 행렬이 있음. 가중치는 y=wx 같은 선형 함수라서 입력 x와 출력 y를 좌표에 그리면 직선이 됨. 입력을 늘리거나 줄이면 출력도 일정한 비율로 늘거나 줄고, 갑자기 효과가 커지거나 작아지거나 반대 방향으로 바뀌지는 않음
그래서 네트워크는 여러 계층의 가중치를 학습하고, 학습되는 것이 아니라 설계에 포함된 일종의 마법 접착제 같은 함수들로 이들을 연결함. 결과적으로 입력과 출력 사이의 복잡한 관계가 여러 계층을 통과하며 만들어짐
반면 KAN에서는 가중치, 즉 선형 함수 대신 네트워크가 다른 종류의 함수를 학습하게 함. 이 함수들은 비선형이라 입력을 늘릴 때 출력이 가속적으로 오르거나, 방향을 바꿔 감소할 수도 있음. 입력과 출력 사이의 훨씬 복잡한 관계를 학습할 수 있지만, 거대한 행렬 연산에 최적화된 GPU의 효율을 일부 잃고 임의 수학 계산에는 CPU가 필요해질 수 있음
그래서 KAN은 더 적지만 더 복잡한 “뉴런”을 갖고, 각 뉴런은 복잡한 함수로 이뤄짐. 매력은 그 뉴런 하나를 들여다보면 무엇을 하는지 설명하는 명확한 공식을 얻을 수 있다는 점으로 보임. 다층 퍼셉트론에서는 여러 계층의 가중치를 따라가야 해서 전체 동작을 파악하려면 더 많은 작업이 필요함
다만 KAN에서 나오는 함수도 Isaac Newton의 노트에 나올 법한 직관적인 공식이라기보다는, 이상한 상수와 서로 상쇄되는 직관적이지 않은 항으로 가득할 것 같음 - 다섯 살 설명인지는 모르겠지만 아주 거칠게 단순화하면, 퍼셉트론 계층은
output = simple_function(sum(many_inputs*many_weights) + extra_weight_for_bias)이고 KAN 계층은output = sum(fancy_functions(many_inputs))에 가까움. 틀렸을 수도 있고, 아직 하루밖에 안 됐음 - 다층 퍼셉트론의 출력은 블랙박스 함수
f(x, y)임. KAN의 출력은exp(0.3sin(x) + 4cos(y))같은 보기 좋은 공식이고, 이게 해석 가능하다는 뜻임 - KAN은 어떤 면에서는 네트워크들의 네트워크 같고, 각 간선이 자기만의 작은 네트워크를 나타내는 느낌임. 나도 아직 글을 소화하는 중이라 틀렸을 수 있지만, 겉으로 본 인상은 그렇다
- 머신러닝 전문가는 아니고 이 글로 배우는 중이지만, 핵심은 도표의 각주에서 이해했음
-
학습된 함수들의 집합이 1차 논리의 진리표를 재현할 수 있는지 궁금함. 확인하기는 쉬울 것 같음
어쨌든 미분 가능성 측면에서는 좋은 소식임. 지금은 JAX에서if조건을 표현하는 게 까다롭고 적어도 내게는 사실상 최적화 장벽인데, 조건이 학습 가능하고 이미 네트워크 안에 들어간다면 훌륭하다고 봄- 기본 논리 함수를 구현하는 다층 퍼셉트론을 만드는 건 쉽지만, XOR에는 최소 하나의 은닉층이 필요함
-
몇 주 전 London Machine Learning Meetup에서 Ziming Liu를 초대했음. 이 흥미로운 작업에 대해 훌륭한 발표를 했고, 녹화는 여기 있음: https://youtu.be/FYYZZVV5vlY?si=ReoygVJMgY9oje3p
-
조금 회의적임. 80~90년대에도
f(x*w+b)의 대안이 되는 여러 인공신경망 구조에 대한 논문과 실험이 많았음. 하지만 오늘날 실용적인 최고 성능 모델은 여전히 곱셈-누산-임계값 기반임. 결국 속도와 단순성 때문임 -
“KAN의 단점은 파라미터당 훈련 시간이 더 길다는 것인데, 부분적으로는 GPU를 활용할 수 없기 때문이다.”
이건 큰 격차처럼 보임. 근본적인 구조 불일치인지, 아니면 아직 필요한 CUDA 커널을 아무도 안 쓴 것뿐인지 아는 사람이 있는지 궁금함