Search
Write a publication
Pull to refresh

Comments 6

Статья отличная. И благодаря подобным хабр ещё торт.

В целом сравнение через выразительную способность отличное. Хотя двухслойный MLP имеет универсальную аппроксимацию в C и Lp. Ширина его при желаемой точности растет экспоненциально, а не полиномиально. Но с другой стороны, так как KAN в общем случае обобщает MLP имея произвольную функцию ϕ в сравнении с w*activation(x). Где в первом слое активация является линейной. И вот тут интересный момент, если представить MLP как двухслойный KAN, то выходит, что это и портит всю ситуацию. И тут возникает вопрос, а честно ли так сравнивать, так как линейная функция является сплайном первого порядка, но не любой сплайн это линейная функция вида w*x+b.

Спасибо за приятный отзыв! Как я понял, вопрос про то, что работая только с кусочно-линейными KAN мы теряем как раз то, что и обобщает KAN - произвольные сплайны. Да, это действительно так, я рассматриваю лишь частный случай новой архитектуры, самый простой, в некотором смысле. Но даже так получается, что с точки зрения выразимостной мощности при равном числе слоев (в нашем случае 2) KAN оказывается мощнее.

Интересно было бы посмотреть дальше на KAN уже в общем виде, но там есть свои сложности, например, произвольный KAN уже не перестроить в классическую MLP, нужно добавлять специальные активационные функции с покоординатным возведением в степень.

Я имел ввиду следующее:

KAN – семейство нейронных сетей прямого распространения имеющих следующий вид:

{\small f_\text{KAN}(\mathbf{x}) = \sum_{i_L=1}^{n_L} \phi_{L-1, i_L, i_{L-1}} \left(   \sum_{i_{L-1}=1}^{n_{L-1}} \phi_{L-2, i_{L-1}, i_{L-2}} \left(   \cdots \left(   \sum_{i_1=1}^{n_1} \phi_{1, i_2, i_1} \left(   \sum_{i_0=1}^{n_0} \phi_{0, i_1, i_0}(x_{i_0})  \right)   \right)     \right)   \right)}

Где каждая сумма (слой) \sum_{i_l=1}^{n_l}  \phi_{l,i_{l+1},i_l}(x_{i_l}) представляет собой преобразование подобного рода:

\mathbf{x}_{l+1} = \sum_{i_l=1}^{n_l}  \phi_{l,i_{l+1},i_l}(x_{i_l}) \\[20pt] \\= \left[ \begin{array}{cccc}    \phi_{l,1,1}(x_{1}) & + & \phi_{l,1,2}(x_{2}) & + \cdots + & \phi_{l,1,n_l}(x_{n_l}) \\    \phi_{l,2,1}(x_{1}) & + & \phi_{l,2,2}(x_{2}) & + \cdots + & \phi_{l,2,n_l}(x_{n_l}) \\    \vdots &  & \vdots & \ddots & \vdots \\    \phi_{l,n_{l+1},1}(x_{1}) & + & \phi_{l,n_{l+1},2}(x_{2}) & + \cdots + & \phi_{l,n_{l+1},n_l}(x_{n_l}) \\    \end{array} \right]

Двухслойный MLP имеет следующую формулу:

f_\text{MLP}(\mathbf{x}) = \mathbf{W}_2 \cdot \sigma(\mathbf{W}_1 \cdot \mathbf{x}+\mathbf{b}_\text{in})+\mathbf{b}_\text{out}

И его мы можем представить как:

Первый слой:

\mathbf{x}_1 = \sum_{i_0=1}^{n_0} w_{i_1,i_0} x_{i_0} + b_{i_1} \\[20pt]  =\begin{bmatrix}     w_{1,1} x_{1} & + & w_{1,2} x_{2} & + & \cdots & + & w_{1,n_0} x_{n_0} & + & b_{1} \\     w_{2,1} x_{1} & + & w_{2,2} x_{2} & + & \cdots & + & w_{2,n_0} x_{n_0} & + & b_{2} \\     \vdots &  & \vdots &  & \ddots &  & \vdots &  & \vdots \\     w_{n_1,1} x_{1} & + & w_{n_1,2} x_{2} & + & \cdots & + & w_{n_1,n_0} x_{n_0} & + & b_{n_1}     \end{bmatrix}\\[30pt]  = \sum_{i_0=1}^{n_0} \phi_{i_1,i_0}(x_{i_0})\\[20pt]  =   \begin{bmatrix}    \phi_{1,1}(x_{1}) + \phi_{1,2}(x_{2}) + \dots + \phi_{1,n_0}(x_{n_0}) + \phi_{1,n_0}(x_{n_0}) \\[20pt]    \phi_{2,1}(x_{1}) + \phi_{2,2}(x_{2}) + \dots + \phi_{2,n_0}(x_{n_0}) + \phi_{2,n_0}(x_{n_0}) \\    \vdots \\    \phi_{n_1,1}(x_{1}) + \phi_{n_1,2}(x_{2}) + \dots + \phi_{n_1,n_0}(x_{n_0}) + \phi_{n_1,n_0}(x_{n_0})     \end{bmatrix},  \\[50pt]

И второй выходной:

f_\text{out}(\mathbf{x}_1) = \sum_{i_1=1}^{n_1} w_{i_1} \sigma(x_{i_!}) +b  \\[25pt]  = w_{1} \sigma(x_1) + w_{2} \sigma(x_2) + \cdots + w_{n_1} \sigma(x_{n_1})  +b\\[20pt]= \sum_{i_1=1}^{n_1} \phi_{1,i_1} \left( \sum_{i_0=1}^{n_0} \phi_{0,i_1,i_0}(x_{i_0}) \right)

То есть двухслойный MLP мы можем представить как двухслойный KAN. Где мы его строим с помощью - \phi(x) = w*\sigma(x). Ну и очевидно, что KAN обобщает MLP на случай произвольной \phi(x) в общем случае. Единственное, что при представлении MLP в виде KAN, по определению, в первом слое -\sigma(x) = x. Собственно это и является его ограничением, так как функцию во втором слое мы задаем сами через функцию активации. Таким образом ограниченная выразительная способность MLP кроется в этом.

Теперь понял, итересное наблюдение про первый слой. В таком случае, есть ощущение, что на выразимостную мощность будет влиять ещё тот фак, что в MLP мы на каждом слое фиксируем активационную функцию, в то время как в KAN они могут быть разнородными.

А кем вы работаете? Звучит интересно все это, но не думаю, что вообще возможно найти время и причину это изучить и разобраться

Сейчас ML-инженер в вк. Эта статья, по сути, обзор моей курсовой работы в вузе

Sign up to leave a comment.

Articles