KAN은 보통 신경망(MLP)과 반대로 연결선마다 숫자 대신 모양을 바꿀 수 있는 곡선을 학습하는 신경망 구조다. 학습된 곡선을 그려 수식을 거꾸로 읽어 낼 수 있어서, 작은 과학 문제에서 데이터 속 숨은 법칙을 찾거나 결과를 해석해야 할 때 쓴다.
| 항목 | MLP | KAN |
|---|---|---|
| 연결선에 있는 것 | 숫자 하나 (가중치) | 학습하는 곡선 |
| 노드가 하는 일 | 정해진 함수로 값을 휜다 | 들어온 값을 더하기만 |
| 속을 들여다보기 | 어렵다 (블랙박스) | 곡선을 그려 수식을 읽는다 |
| 속도·규모 | 빠르고 대형 모델에 적합 | 느리고 소규모에 적합 |
이름은 콜모고로프-아놀드 표현 정리에서 왔다. 변수가 여러 개인 함수도 변수 하나짜리 함수들과 덧셈으로 나눠 표현할 수 있다는 내용이다. KAN은 이 아이디어에서 영감만 얻어 여러 층으로 쌓을 수 있게 넓힌 구조다.
곡선은 보통 스플라인으로 만든다. 구간을 격자로 나누고 조각마다 계수를 학습하는 방식이라, 처음엔 거칠게 배우다가 학습 도중 격자를 촘촘하게 바꿔 정밀도를 올릴 수 있다.
KAN이 내세우는 핵심은 해석가능성이다. 꼭 필요한 연결만 남도록 학습시키고 약한 노드를 잘라 내면 작은 네트워크가 남는다. 남은 곡선을 하나씩 보면서 "사인처럼 생겼다", "제곱 같다" 하고 실제 수식으로 바꿔 끼우면 된다.
저자들이 공개한 파이썬 패키지 pykan으로 시작하면 된다. 예를 들어 f(x1, x2) = sin(x1) + x2²에서 샘플을 뽑아 학습시키고 가지치기한 뒤 곡선을 그려 보면, 한쪽엔 사인 모양, 다른 쪽엔 포물선 모양이 남는다.
| 이럴 때 써 볼 만하다 | 이유 |
|---|---|
| 실험 데이터에서 숨은 법칙 찾기 | 학습 결과를 수식으로 읽을 수 있다 |
| 물리 정보 신경망 같은 과학 계산 | 적은 파라미터로 함수를 근사한다 |
| 센서·생체 신호 분석 | 비선형 관계가 복잡해도 모델을 작게 유지한다 |
연결선마다 곡선을 계산해야 해서 같은 크기 MLP보다 학습이 느리고, GPU가 잘하는 큰 행렬 곱셈과도 잘 맞지 않는다. 결국 스플라인과 MLP를 섞은 것이라는 반론도 있다. 해석이 중요한 소규모 문제에만 쓰고, 큰 모델에는 MLP를 그대로 쓰는 게 낫다. 이후 속도와 수렴을 개선한 변형이 많이 나왔으니 상황에 맞는 것을 골라 쓰면 된다.
가장 흔한 건 연구자가 노트북에서 pykan으로 작은 데이터를 학습시켜 수식 후보를 얻는 방식이다. 정확도보다 '왜 그런가'가 궁금한 소규모 문제에서 MLP와 나란히 돌려 보는 경우가 많다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 과학 연구 데이터 분석 | 실험·시뮬레이션 데이터를 학습시키고 가지치기한 뒤 곡선을 수식으로 바꿔 법칙 후보를 얻는다 |
| 방정식 풀이 (물리 정보 신경망) | MLP 자리에 KAN을 넣어 적은 파라미터로 해를 근사한다 |
| 작은 표·신호 데이터 | 입력마다 학습된 곡선을 보고 각 변수가 결과에 어떻게 작용하는지 확인한다 |
| 모델 비교 실험 | 같은 데이터로 MLP와 함께 돌려 정확도·속도·해석 차이를 견준다 |