[논문 리뷰] KAN: Kolmogorov–Arnold Networks

This entry is part 23 of 22 in the series Vision Model

1. 들어가며

이번 포스팅에서는 딥러닝 아키텍처의 한계를 극복하기 위해 제안된 KAN(Kolmogorov–Arnold Networks) 논문을 소개하려고 합니다. 전통적인 MLP(다층 퍼셉트론)는 딥러닝의 기초 모델로 널리 사용되고 있지만, 몇 가지 문제점이 있습니다. 특히 성능(표현력)과 해석 가능성 측면에서 개선이 필요합니다.

먼저, MLP는 선형 변환과 비선형 변환을 결합하여 이론적으로 다양한 함수를 표현할 수 있지만, 항상 더 나은 표현력과 성능이 요구됩니다. MLP는 현대 딥러닝 네트워크의 거의 모든 부분에 포함되어 있지만, 더 복잡하고 정확한 모델이 필요합니다. 또, MLP는 복잡한 구조로 인해 내부 작동 방식을 이해하기 어려워 ‘블랙박스 모델’이라는 별명을 가지고 있습니다. 이러한 문제들은 딥러닝 모델의 적용과 신뢰성을 저해하는 중요한 요소입니다.

KAN 논문은 이러한 문제를 해결하기 위해 더 나은 표현력과 해석 가능성을 갖춘 네트워크를 제안합니다. KAN이 기존 MLP와 어떻게 다른지, 또 어떤 방식으로 성능과 해석 가능성을 개선했는지 자세히 살펴보겠습니다. KAN의 핵심은 각 노드별로 서로 다른 Activation Function을 사용하는데 있습니다. 이를 통해 MLP보다 더 다양한 비선형성을 표현할 수 있으며, 이를 Spline의 조합으로 구현하여 학습 가능한 구조로 만들었습니다. 또한, 해석 가능성을 높이기 위해 Pruning과 Symbolification 과정을 도입했습니다.

KAN의 제안 방법은 세 가지 주요 포인트로 나뉩니다. 첫째, KAN은 기존 MLP와의 차별점을 두고 있습니다. 특히 Activation Function이 노드마다 다르게 구성되어 있어, 더 복잡한 표현이 가능합니다. 둘째, KAN은 Spline의 조합을 통해 다양한 비선형성을 표현할 수 있습니다. 이는 각 노드별로 다른 Activation Function을 사용하여 구현됩니다. 셋째, KAN은 해석 가능성을 높이기 위해 Pruning과 Symbolification을 도입하여, 모델의 내부 구조를 더 잘 이해할 수 있도록 했습니다.

이제 KAN이 제안하는 새로운 접근 방식을 통해 딥러닝 모델의 한계를 어떻게 극복할 수 있는지 자세히 살펴보겠습니다. 이 포스팅을 통해 딥러닝의 미래를 향한 한 걸음, 지금부터 시작해보겠습니다. KAN의 혁신적인 접근 방식과 그 결과를 통해 딥러닝 모델의 성능과 해석 가능성을 어떻게 향상시킬 수 있는지 알아봅시다.

KAN 논문은 전통적인 MLP의 문제를 해결하는 동시에, 더 나은 성능과 해석 가능성을 제공합니다. 딥러닝의 발전에 관심 있는 여러분께 이번 포스팅이 많은 도움이 되길 바랍니다. 이제 KAN의 세계로 함께 들어가 보시죠.

2. 기존 방법의 문제점

먼저 기존 방법의 문제점에 대해 생각해보겠습니다. 여기서 말하는 기존 방법이란 MLP를 의미하는데요. MLP는 가장 기초적인 딥러닝 모델로 시작했습니다. MLP는 그 자체로도 훌륭한 네트워크이지만 현재는 거대한 네트워크 연산의 일부로 역할을 수행하는 경우가 많죠. 이때의 MLP란 Fully Connected Layer와 Activation Function의 조합이라고 생각하면 됩니다.

이렇게 MLP는 거의 대부분의 현대 딥러닝 네트워크에 포함되어 있지만, 몇가지 개선 포인트가 있습니다.
첫 번째는 물론 모든 구조에 해당하는 표현력 증가, 즉 정확도 개선입니다. MLP는 Linear Transformation과 Non Linear Transformation을 결합하여 이론적으로 어떠한 함수도 표현할 수 있다고 알려져 있습니다. 하지만 언제나 더 좋은 표현력을 갖는 함수, 즉 더 좋은 성능을 갖는 네트워크는 필요하죠.

두 번째는 해석 가능성 (Interpretability) 입니다. 이는 딥러닝 모델의 공통적인 한계로 오랫동안 지적되어 왔는데요. 현대 딥러닝은 CAM 같은 Post Analysis Tool 없이는 그 자체로 해석 가능한 기능이 없습니다. 이러한 이유로 ‘블랙박스 모델’ 이라는 별칭이 붙었죠. 이러한 한계는 첫 번째로 언급한 표현력 증대보다 더 중요한 무게감을 갖습니다. 왜냐하면 표현력 증대는 어쨌든 이론적으로 모델 크기를 키워주면 어느정도 해결이 가능하기 때문이죠. 하지만 딥러닝 모델에 해석 가능 기능을 부여하기 위한 수년간의 연구들은 ‘근본적인 한계’를 해결하지 못하고 있는 상황입니다. 딥러닝 모델은 그대로 놔두고 Post Analysis 등을 통해 갈증을 일정 부분 해소하는 수준이죠.

이에 KAN 저자들은 MLP로 대표되는 기존 딥러닝 방식의 두 가지 문제점 개선에 초점을 맞춥니다. 즉 더 좋은 표현력을 갖는 네트워크와 해석 가능 기능을 갖춘 네트워크를 찾는 것이죠. 다음 챕터에서는 이 두 가지 내용에 초점을 맞춰, 어떻게 KAN이 이 두 가지 문제를 해결했는지 살펴보겠습니다.

3. KAN

이번 챕터에서는 KAN 논문의 주요 내용인 제안 방법의 핵심 내용을 정리해봅니다. 크게 세 가지 포인트에 초점을 맞춰 살펴볼건데요. 먼저 KAN은 기존 MLP와 어떠한 차이점이 있는지, Architecture 관점에서 살펴보겠습니다. 이때 가장 중요한 포인트는 Activation Function인데요. KAN의 Activation Function은 MLP와 어떻게 다른지 자세히 살펴보겠습니다. 마지막으로 KAN의 가장 중요한 포인트 중 하나인 Interpretability에 대해 자세히 살펴보겠습니다. KAN은 어떻게 해석 가능한 것인지, 해석 가능성을 갖게 된 과정을 따라가며 자세히 분석해보겠습니다.

3-1. Architecture

먼저 KAN의 Architecture를 살펴보겠습니다. MLP와 무엇이, 어떻게 다른지 초점을 맞춰 살펴보겠습니다.

그림1. KAN vs MLP Architecture
그림1. KAN vs MLP Architecture

위 그림은 MLP와 KAN의 가장 기본적인 Architecture를 비교하고 있는 그림입니다. 입력 데이터로 부터 출력 값이 어떻게 연산되는지, 그 과정을 보여주고 있는데요. 먼저 왼쪽의 MLP를 보겠습니다. 아래쪽의 2차원 입력이 들어가고, 선형 변환을 거치는 모습을 볼 수 있습니다. 이때의 선형 변환은 Edge들로 표현되고 있는데요, WX+b 연산을 의미합니다. 이후 Activation Function을 거친 중간 출력값들은 최종적으로 모두 더해져 최종 출력값으로 나오게 됩니다. 이때 중요한 포인트는 한 Layer에서의 모든 Activation Function은 동일한 종류라는 점입니다.

MLP 내용에 초점을 맞춰 이번에는 오른쪽의 KAN 연산 과정을 보겠습니다. 마찬가지로 아래쪽의 2차원 입력값으로부터의 연산 과정을 보여주고 있는데요.
첫 번째로 MLP와의 차이점은 ‘선형 변환’ 과정이 없다는 점입니다. MLP에서는 WX+b 연산을 거치며 입력값에 대한 선형 변환을 해주는데요. KAN에서는 이러한 과정 없이 입력값이 곧 바로 Activation Function, 즉 비선형 변환을 위한 연산으로 연결됩니다.
두 번째로 MLP와의 차이점은 Activation Function이 제각각 이라는 점입니다. MLP에서 한개 Layer는 동일한 Activation Function으로 구성되었는데요. KAN에서는 한 Layer 내부에서도 각 노드마다 모두 다른 Activation Function으로 구성됩니다. 이렇게 서로 다른 Activation Function으로부터 비선형 변환을 거친 중간 출력값들은 이후 노드에서 단순히 더해지게됩니다.

그림2. KAN vs MLP Formula
그림2. KAN vs MLP Formula

위의 내용을 수식으로 표현하면 위와 같이 표현할 수 있는데요. 먼저 왼쪽의 MLP에서는 선형 변환을 의미하는 W와 비선형 변환을 의미하는 𝜎가 연속적으로 결합된 모습을 볼 수 있습니다. 반면 오른쪽의 KAN에서는 𝚽 함수만이 연속적으로 결합된 모습을 하고 있는데요. 이 𝚽는 노드별로 다른 Activation Function을 의미합니다. MLP와 달리 비선형 변환만으로 구성된 KAN의 연산을 확인할 수 있습니다.

이제 이러한 MLP와 KAN의 기본 Layer를 깊게 쌓아 네트워크로 구성하게 되면 다음과 같은 모습이 됩니다.

그림3. KAN vs MLP Deep Model
그림3. KAN vs MLP Deep Model

3-2. Activation Function

지금까지 살펴본 MLP와 KAN의 차이점을 생각해보면, 결국 KAN의 핵심은 Activation Function이라는 점을 알 수 있습니다. MLP와 달리 각 노드별로 서로 다른 Activation Function을 통해 서로 다른 비선형성을 표현할 수 있다는 점이 핵심이죠. 그런데, 이거 어떻게 구현한 걸까요? 단순히 생각했을때, 노드별로 Activation Function의 종류를 결정하도록 한다면, 이러한 구조가 어떻게 학습이 될까요? Backpropagation을 통해 각 노드별 최적의 Activation Function을 찾기 위해서는 학습 가능한 파라미터들로 서로 다른 비선형성을 표현할 수 있어야 할텐데요.

KAN에서는 각각의 Activation Function을 Spline의 조합으로 표현해줍니다. 조금 더 정확히는 Basis Function과 Spline의 합으로 정의하는데요.

그림4. KAN Activation Function
그림4. KAN Activation Function

이때의 Basis Function은 SiLU(Sigmoid Linear Unit)를 사용합니다.

그림5. KAN Basis Function
그림5. KAN Basis Function

이제 핵심은 Spline 부분인데요. SiLU는 학습 가능한 함수가 아니기 때문에, 결국 Spline이 모든 비선형성을 표현할 수 있어야 합니다. KAN의 저자들은 Spline을 B-Spline의 선형 조합으로 정의해줍니다.

그림6. KAN Spline
그림6. KAN Spline

위 수식에서 B(x)가 B-Spline에 해당하는데요. 이 B-Spline을 단순하게 생각하기 위해, 그저 어떠한 곡선을 표현하는 고정된 함수라고 생각해보면, spline이란 고정된 곡선 함수들의 선형 조합이라고 생각할 수 있습니다. 그림으로 보면 이해하기 쉬운데요.

그림7. KAN Activation Function 구성 방법
그림7. KAN Activation Function 구성 방법

위 그림은 KAN의 연산 과정에서의 Activation Function 부분을 자세히 표현한 그림입니다. 오른쪽에서 한 노드에서의 Activation Function이 구성되는 과정을 자세히 보여주고 있는데요. 먼저 분홍색으로 표현된 부분에서는 여러개의 B(x) 함수들을 표현하고 있습니다. 이렇게 고정된 B(x) 함수들로부터 선형 결합을 통해 더 복잡한 곡선을 표현하고 있는 모습을, 초록색 부분에서 확인할 수 있습니다. 8개 B(x)의 선형 조합으로 𝚽가 표현되고 있죠.

이때 Activation Function의 형태는 결국 c에 의해 결정되는데요. B(x)는 고정된 함수이기 때문에 각각의 B(x)들을 결합하는 강도를 의미하는 c들이 어떠한 값을 갖느냐에 따라 최종 함수의 모습이 결정되기 때문이죠. 바로 이 c가 KAN에서 학습하는 가중치에 해당합니다. KAN은 MLP와 달리 선형 변환을 위한 학습 파라미터가 없었잖아요? 즉 W,b가 없는데요. 대신 Activation Function 모양을 결정하기 위한 B-spline 들의 결합 강도를 의미하는 c를 학습을 통해 찾아냅니다.

정리해보자면 이렇습니다. KAN은 최종 함수를 찾기 위해 각 노드별로 서로 다른 비선형 함수를 갖습니다. 이때의 비선형 함수는 B-spline들의 선형 결합으로 표현되는데요. 이 선형 결합을 위한 가중치 c를 Backpropagation을 통해 학습합니다. 재미있는건, 이 B-spline의 개수가 늘어날수록 표현력이 좋아진다는 점입니다. 이는 마치 MLP에서 Depth, Width를 늘리면 표현력이 더 좋아지는것과 유사하다고 할 수 있는데요. 이 부분을 위 그림의 아래 황색 부분에서 표현해주고 있습니다. B(x)의 개수를 늘려주면, 더 많은 곡선들을 조합할 수 있으므로 더 구불구불한 곡선이 표현 가능해지죠. 물론 이에 따라 학습해야 하는 파라미터 개수도 늘어나게 됩니다.

3-3. Interpretability

이제 KAN의 동작 방법에 대해서는 다 살펴봤는데요. 그래도 풀리지 않는 의문이 있습니다. 이렇게 구성된 KAN은 왜 해석 가능할까요? 사실 KAN은 지금까지 살펴본 구성 그 자체로는 해석 가능하지 않습니다. KAN을 해석 가능하게 만드려면 별도의 과정이 추가로 필요한데요. 그 과정을 하나씩 자세히 살펴보겠습니다.

그림8. KAN Interpretability
그림8. KAN Interpretability

위 그림은 KAN을 해석 가능하게 만드는 과정을 자세히 보여주고 있습니다.

먼저 첫 번째 과정은 Sparsification을 포함한 학습입니다. KAN을 학습할때 Sparsification을 포함해주어야 한다는 건데요. 이는 이후 Pruning을 위함입니다. 즉 Pruning을 위해서는 가중치 판단이 가능해야 하는데, 이를 학습 파라미터를 통해 할 것이니 학습할 때 최대한 중요한 파라미터만 남기고, 나머지는 작은 값을 갖도록 하자는거죠. 이를 위해 L1 Regularization과 Entropy Regularization을 학습 Loss에 추가해줍니다. 이렇게 구성된 최종 학습 Loss는 다음과 같습니다.

그림9. KAN Loss Function
그림9. KAN Loss Function

두 번째 과정은 Pruning 입니다. 이때의 Pruning은 학습 가중치의 값을 기준으로 수행해줍니다. 앞선 단계에서 이를 위해 Sparsification을 도입해 주었는데요. Pruning 단계에서는 한개 가지만을 제외하고 모두 제거해줍니다. 위 그림을 보면 Pruning까지 완료하면 입력과 출력이 한개 라인으로 연결되는 모습을 볼 수 있습니다. 즉 입력값 x로부터 출력값 y가 나오는 과정이 곱하기와 더하기만으로 표현될 수 있는 상태가 된거죠.

이제 필요한건 각 Activation Function을 어떻게 ‘우리가 이해하는 함수’로 표현해주는 겁니다. 위 그림의 Step3에서 이 부분을 표현해주고 있는데요. 각각의 Activation Function에 Sine, x^2, Exponential 등 우리에게 익숙한 함수들을 Setting 해주는 모습을 볼 수 있습니다.

이 과정이 생각보다는 엉성한데요. 먼저 각 Activation Function 별로 입력값과 출력값을 샘플링해줍니다. 그리고 우리가 아는 함수들을 몇 가지 선정해주고요. 어떤 함수일때 샘플링된 X,Y들이 잘 Mapping 되는지를 계산해줍니다. 파이썬 코드로 보면 더 이해하기 쉬운데요.

import torch.nn.functional as F

# \sin(x)와 비교
y_sin = torch.sin(x)
error_sin = F.mse_loss(y, y_sin)

# x^2와 비교
y_square = x**2
error_square = F.mse_loss(y, y_square)

# \exp(x)와 비교
y_exp = torch.exp(x)
error_exp = F.mse_loss(y, y_exp)

# 가장 작은 오차를 가진 함수 선택
errors = {'sin': error_sin, 'square': error_square, 'exp': error_exp}
best_fit = min(errors, key=errors.get)

이렇게 단순히 샘플링 데이터를 통해 함수를 찾아낸 뒤, 이번에는 선정된 함수를 더 잘 Fitting 시키기 위한 Fine Tuning 과정을 이어줍니다. 또 다시 샘플링 데이터를 사용해 Affine Transform을 적용해주는건데요. 예를 들어 scipy의 curve_fit 기능을 사용해줄 수 있습니다.

from scipy.optimize import curve_fit

# 예를 들어, \sin 함수가 최적이라고 가정
def func(x, a, b, c, d):
    return c * torch.sin(a * x + b) + d

popt, _ = curve_fit(func, x.numpy(), y.numpy())

이렇게 Affine Transform까지 적용하고 나면, 각 Activation Function을 정확하게 표현할 수 있게 되는데요. 이렇게 구한 모든 Activation Function들을 Pruning된 순서에 따라 더하기로 연결해주면 최종 수식으로 표현해줄 수 있습니다.

이렇게 KAN에서 제안하는 Interpretability는 충분히 논란의 여지를 갖습니다. 우선 너무 단순한 가정을 하고 있죠. 각 Activation Function이 몇 가지 종류의 함수라는, 그리고 이 함수들의 Affine Transform으로 정확하게 Fitting 될 것이라는 가정에 기초하고 있습니다. 이는 단순한 함수에서라면 충분히 커버 되겠지만, 함수가 복잡해질수록 정확도가 떨어질 것으로 예상할 수 있습니다.

4. 실험 결과

지금까지 KAN의 핵심 기능을 모두 살펴봤는데요. 이렇게 구성된 KAN이 실제로 좋은 성능을 갖는지, 정말 해석 가능한지 여부가 궁금한데요. 실험 결과를 통해 살펴보겠습니다.

4-1. 정확도 측면

먼저 KAN이 MLP와 비교해서 정말로 정확한지, 즉 더 성능이 좋은지 여부를 실험 결과를 통해 확인해보겠습니다. Toy Dataset을 사용한 실험 결과를 살펴보겠습니다.

그림10. KAN vs MLP 정확도 비교 실험
그림10. KAN vs MLP 정확도 비교 실험

위 그림은 우리가 알고 있는 다섯 가지 함수에 대한 MLP와 KAN의 정확도를 비교한 그래프입니다. Y축은 RMSE로 에러를 의미하고, X축은 파라미터 수를 의미합니다.

먼저 다섯개 문제가 각각 어떤 특징을 갖고 있는 함수인지 가볍게 살펴볼 필요가 있는데요.
첫 번째는 Bessel 함수로, 단순한 곱셈으로 구성되어 있습니다.
두 번째는 복합 함수로, exp과 sine, y^2 등으로 구성되어 있습니다.
세 번째는 간단한 곱셈 함수이고요.
네 번째와 다섯 번째는 고차원의 복합 함수로 구성되어 있습니다.

이제 실험 결과를 보겠습니다. 진한 파란색 선이 KAN을, 나머지가 MLP를 의미하는데요. 우선 동일한 파라미터 수를 기준으로 봤을 때 KAN의 Loss가 더 작은 모습을 볼 수 있습니다. 그리고 파라미터 개수에 따른 Loss가 KAN이 MLP보다 더 빠르게 떨어지는 모습을 볼 수 있죠. 이를 통해 KAN이 MLP보다 더 효율적으로 복잡한 표현을 학습한다고 결론 내릴 수 있습니다.

4-2. 해석 가능성 측면

다음으로 앞서 설명했던 방식으로 KAN에게 해석 가능 기능을 주었을때, 정말 정확한 함수를 표현하는지 확인해보겠습니다. 마찬가지로 Toy Datset 실험 결과를 살펴볼건데요.

그림11. KAN Interpretability 실험
그림11. KAN Interpretability 실험

위 그림은 다양한 함수에 대한 KAN의 해석 가능성 실험 결과를 보여주고 있습니다. 앞서 설명한 Interpretability 기능을 적용했을때의 KAN 모습을 시각화한것인데요. Pruning과 Symbolify을 거치고 나면, 실제 데이터셋을 구성한 함수와 동일한 함수로 표현되는 모습을 볼 수 있습니다. 이 결과를 통해 위 예시와 같은 수준의 함수라면 KAN이 충분히 해석 가능하게 표현할 수 있다고 결론 내릴 수 있습니다.

5. 장단점

KAN(Kolmogorov–Arnold Networks) 논문은 딥러닝 모델의 표현력과 해석 가능성을 크게 향상시키는 혁신적인 접근 방식을 제안했는데요. 이번 챕터에서는 지금까지 살펴본 내용에 근거하여 KAN의 장단점에 대해 자세히 살펴보겠습니다.

KAN의 첫 번째 장점은 향상된 표현력입니다. KAN은 각 노드에 서로 다른 Activation Function을 적용하여 더 다양한 비선형성을 표현할 수 있습니다. 이는 전통적인 MLP보다 훨씬 높은 표현력을 제공하며, 복잡한 문제를 해결하는 데 효과적입니다. 특히, 다양한 함수와 데이터 패턴을 보다 정확하게 모델링할 수 있어 성능이 크게 향상됩니다.

두 번째 장점은 해석 가능성입니다. KAN은 모델의 해석 가능성을 높이기 위해 Pruning과 Symbolification 기법을 도입했습니다. 이를 통해 모델의 내부 구조를 더 쉽게 이해할 수 있으며, 딥러닝의 ‘블랙박스’ 문제를 어느 정도 해결할 수 있습니다. 이러한 해석 가능성은 특히 의료, 금융 등에서 모델의 신뢰성을 높이는 데 큰 도움이 됩니다.

세 번째 장점은 효율적인 학습입니다. KAN은 Spline 기반의 Activation Function을 사용하여 학습 효율성을 크게 향상시켰습니다. 이를 통해 더 적은 파라미터로도 높은 성능을 달성할 수 있으며, 이는 계산 자원이 제한된 환경에서도 유용합니다. 또한, 다양한 비선형성을 표현할 수 있어 모델의 적응력이 높아집니다.

마지막 장점은 다양한 응용 가능성입니다. KAN의 구조는 다양한 분야에 응용될 수 있습니다. 특히, 정확도와 해석 가능성이 중요한 분야에서 유용하게 사용될 수 있으며, 이는 연구 및 실무에서의 활용 가능성을 크게 높입니다. 예를 들어, 자율 주행, 로봇 공학, 자연어 처리 등 여러 분야에서 적용할 수 있습니다.

하지만 KAN에는 몇 가지 단점도 존재합니다.
첫 번째 단점은 복잡한 구현입니다. KAN은 각 노드별로 다른 Activation Function을 사용하므로 구현이 복잡합니다. 이는 개발 및 유지보수에 더 많은 노력이 필요할 수 있으며, 특히 초기 설정 및 튜닝에 많은 시간이 소요될 수 있습니다. 따라서, 실무 적용 시 추가적인 개발 비용이 발생할 수 있습니다.

두 번째 단점은 높은 계산 비용입니다. 다양한 Activation Function과 Pruning, Symbolification 과정이 추가되면서 계산 비용이 증가할 수 있습니다. 이는 실시간 응용이나 자원이 제한된 환경에서 문제를 일으킬 수 있습니다. 특히, 대규모 데이터셋을 처리할 때 계산 효율성을 고려해야 합니다.

세 번째 단점은 제한된 해석 가능성입니다. Pruning과 Symbolification을 도입했지만, 여전히 모든 상황에서 완벽한 해석 가능성을 제공하지는 않습니다. 특히, 매우 복잡한 함수나 데이터셋에 대해서는 해석이 어려울 수 있습니다. 이는 모델의 투명성과 신뢰성을 완전히 확보하기에는 한계가 있음을 의미합니다.

마지막 단점은 실험적 검증의 필요성입니다. KAN의 효과를 충분히 입증하기 위해서는 더 많은 실험적 검증이 필요합니다. 다양한 데이터셋과 문제에 대한 테스트를 통해 그 유효성을 입증해야 합니다. 이는 연구 커뮤니티와 산업계에서 추가적인 검증 작업이 필요함을 의미합니다.

KAN은 전통적인 MLP의 문제를 해결하는 데 강력한 도구가 될 수 있지만, 그 구현과 활용에 있어서 몇 가지 도전과제도 함께 존재합니다. 이러한 장단점을 잘 이해하고 활용한다면, 딥러닝 모델의 성능과 해석 가능성을 크게 향상시킬 수 있을 것입니다.

6. 마치며

이번 포스팅에서는 KAN(Kernel Activation Networks) 논문을 통해 전통적인 MLP(다층 퍼셉트론)의 한계를 극복하는 혁신적인 접근 방식을 살펴보았습니다. KAN은 더 나은 표현력과 해석 가능성을 제공함으로써 딥러닝 모델의 성능을 크게 향상시키는 잠재력을 가지고 있습니다. 각 노드에 서로 다른 Activation Function을 적용하고, Pruning과 Symbolification 기법을 도입하여 모델의 해석 가능성을 높이는 KAN의 접근 방식은 매우 흥미롭습니다.

먼저, 기존 방법의 문제점을 짚어보았습니다. 전통적인 MLP는 선형 변환과 비선형 변환을 결합하여 이론적으로 다양한 함수를 표현할 수 있지만, 항상 더 나은 표현력과 성능이 요구됩니다. 또한, 복잡한 구조로 인해 내부 작동 방식을 이해하기 어려워 ‘블랙박스 모델’이라는 별명을 가지고 있습니다. 이러한 문제들은 딥러닝 모델의 적용과 신뢰성을 저해하는 중요한 요소입니다.

이에 대한 해결책으로 KAN이 제안되었습니다. KAN은 각 노드별로 서로 다른 Activation Function을 사용하여 더 다양한 비선형성을 표현할 수 있으며, 이를 Spline의 조합으로 구현하여 학습 가능한 구조로 만들었습니다. 또한, Pruning과 Symbolification 과정을 도입하여 모델의 내부 구조를 이해하기 쉽게 만들었습니다. 이러한 혁신적인 접근 방식은 MLP의 한계를 극복하고, 더 나은 성능과 해석 가능성을 제공하는 데 큰 도움이 됩니다.

KAN의 장점으로는 향상된 표현력, 해석 가능성, 효율적인 학습, 다양한 응용 가능성을 들 수 있습니다. KAN은 전통적인 MLP보다 훨씬 높은 표현력을 제공하며, 모델의 내부 구조를 더 쉽게 이해할 수 있도록 해석 가능성을 높입니다. 또한, Spline 기반의 Activation Function을 사용하여 학습 효율성을 크게 향상시켰으며, 다양한 분야에 응용될 수 있는 유연한 구조를 가지고 있습니다.

하지만, KAN에는 몇 가지 단점도 존재합니다. 복잡한 구현, 높은 계산 비용, 제한된 해석 가능성, 실험적 검증의 필요성이 그 예입니다. KAN은 각 노드별로 다른 Activation Function을 사용하므로 구현이 복잡하며, 다양한 과정이 추가되면서 계산 비용이 증가할 수 있습니다. 또한, 모든 상황에서 완벽한 해석 가능성을 제공하지는 않으며, KAN의 효과를 충분히 입증하기 위해서는 더 많은 실험적 검증이 필요합니다.

이러한 장단점을 고려하면, KAN은 전통적인 MLP의 문제를 해결하는 데 강력한 도구가 될 수 있지만, 그 구현과 활용에 있어서 몇 가지 도전과제도 함께 존재함을 알 수 있습니다. KAN의 장점을 극대화하고 단점을 보완하기 위한 추가적인 연구와 실험이 필요하며, 이를 통해 KAN의 잠재력이 실현되기를 기대합니다.

딥러닝 분야는 계속해서 발전하고 있으며, KAN과 같은 새로운 접근 방식은 이 분야의 발전에 큰 기여를 할 것입니다. 이번 포스팅이 KAN의 혁신적인 접근 방식을 이해하고, 딥러닝 모델의 성능과 해석 가능성을 향상시키는 데 도움이 되었기를 바랍니다. 앞으로도 더 많은 연구와 실험을 통해 KAN의 잠재력이 실현되기를 기대합니다.

7. 참고 자료

  1. 딥러닝 논문 가이드
Series Navigation<< [21′ NIPS] MLP-Mixer: An all-MLP Architecture for Vision
5 2 votes
Article Rating
Subscribe
Notify of
guest

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
이재문
이재문
9 months ago

질문하나 해도 될까요?
아키택처 부분에 결국 o(x) = w(b(x) + spline(x))이고
이걸 풀면 o(x) = w(b(x) + 시그마bici이렇게 되고
ci즉 제어점이 학습을 통해 정해진다고 하셨는데
그럼 w의 역할은 무엇이며 이것은 학습을 통해 조정되는것이 아닙니까??
또한 w가 보니까 함수로 표기된거 같은데
w는 어떤 함수로써 표기가 되는지..
w가 가중치일텐데.. 얘가 학습이 되는거 같은데 어떤식으로 굴러가는지 감이 안잡히네요

2
0
Would love your thoughts, please comment.x
()
x
Scroll to Top