私たちは、古典的な多層パーセプトロン (MLP) を当然のこととして受け止め、その周りに数多くのアーキテクチャを構築してきました。MLP は、chatGPT、LLAMA、DALLE、CLIP など、今日見られるすべての LLM または基盤モデルの一部です。また、YOLO-v* などの単純な認識モデルにも含まれています。
では、MLP に対抗する新しい技術があると言ったらどうでしょう。MLP に対抗する「コルモゴロフ-アーノルド ネットワーク」、略して KAN と呼ばれる新しい論文が発表されました。彼らが提案するソリューションが本当に拡張可能であれば、次世代のニューラル ネットワークが実現し、汎用人工知能 (AGI) にさらに一歩近づくことになります。
MLP は ReLU、シグモイド、tanh、GeLU などの活性化関数で構成されていますが、KAN ではこれらの活性化関数を学習することを提案しています。では、KAN はどのようにしてそれを実行するのでしょうか。その背後にある数学はどのようなものでしょうか。どのように実装されているのでしょうか。また、KAN をどのようにトレーニングするのでしょうか。
ここで KAN 論文を要約しようと最善を尽くしました。この要点を読むか、48 ページに及ぶ論文を読むか、どちらかをお選びいただけます。
あなたも私と同じように、物事を視覚化して理解を深めたい場合は、この記事のビデオをご覧ください。
まず、私たちがよく知っている MLP から始めましょう。MLP はノードとエッジで構成されています。各ノードでは、入力が合計され、ReLU、GeLU、SeLU などのアクティベーションが適用されて、その特定のノードの出力が生成されます。
これらの活性化関数は、トレーニング プロセス中に変更されることはありません。つまり、パラメーターはありません。特定のトレーニング データセットに合わせて調整できるほどインテリジェントではありません。そのため、トレーニング中にトレーニングまたは更新されるのは、これらの各ノードの重みです。
さて、活性化関数を固定し、トレーニング可能にする必要があるという仮定に疑問を投げかけるとどうなるでしょうか。これが、KAN ネットワークが取り組もうとした課題です。KAN ネットワークの活性化関数は、トレーニング プロセス中に更新されます。さらに深く掘り下げる前に、多項式と曲線フィッティングから始めましょう。
したがって、KAN の基本的な考え方は、任意の多変量複合関数を、単一変数である複数の関数の合計に分解できるというものです。
たとえば、上の黄色の曲線でプロットされている y=x³ の 3 次方程式があるとします。また、上のアニメーションの青い曲線で示されているように、y=x² の別の 2 次方程式があるとします。この視覚化から、x² を使用しても x³ で達成される曲率は決して達成できないことがわかります。
下の赤い点と青い点で表されるデータが与えられ、2 つのクラス間のバイナリ分類境界を見つけたいとします。
2 次多項式x²を使用すると、 x² 曲線は「U」字型ですが、データは「S」字型であるため、2 つの間の境界を見つけることができません。このデータにはx³の使用が適していますが、追加の計算コストがかかります。別の解決策としては、入力xが負の場合はx²を使用し、 x が正の場合は - x²を使用することです (上図で手で描かれた青い曲線)。
私たちが行ったのは、2 つの低次多項式を追加して、自由度の高い曲線を実現しただけです。これがまさに KAN ネットワークの背後にあるアイデアです。
ここで、データが単純な方程式y=exp(sin(x1² + x2²) + sin(x3² + x4²))によって生成されることがわかっている、もう少し複雑なおもちゃの問題を取り上げてみましょう。入力変数は 4 つあり、指数、正弦、および平方の 3 つの演算があります。したがって、以下に示すように、3 つの異なる演算専用の 3 つのレイヤーを持つ 4 つの入力ノードを選択できます。
4 つの入力と 3 つの基底関数 (指数、正弦波、平方) を使ったおもちゃの問題に対する KAN ネットワーク
トレーニング後、ノードはデータに適合させるために二乗、正弦波、指数関数に収束します。
これはおもちゃの問題なので、データの元となる方程式はわかっています。しかし、実際には、現実世界のデータの分布はわかりません。この問題に対処する 1 つの方法は、B スプラインを使用することです。
B スプラインの基本的な考え方は、任意の関数または曲線をより単純な関数または曲線の組み合わせとして表現できるというものです。これらの単純な関数は基底関数と呼ばれます。たとえば、下の図の赤い曲線を見てみましょう。簡単にするために、これを 2 つの基底関数だけで表現してみます。
これを 2 つの基底関数の合計で表すと、3 つのポイントに分解できます。これらのポイントはノットと呼ばれます。基底関数の数はn個までです。この基底関数の組み合わせを制御するパラメーターはc です。2つの曲線を「結合」すると、ノットで不連続が生じることがあります。この解決策は、曲線の曲率をノットで制限して、滑らかな曲線を得ることです。たとえば、下の図の緑の矢印で示されているように、2 つの曲線の傾きがノットで同じになるように制限できます。
ニューラル ネットワークではこのような制約を課すことはできないため、論文では残差活性化関数が導入されています。これは、正規化のように機能します。実際には、これは以下の論文に示されているように、標準のスプライン関数に追加された SeLU 活性化です。
KAN は、細粒化と呼ばれる新しいトレーニング方法を導入します。私たちがよく知っているのは、モデルにパラメータを追加する微調整です。ただし、細粒化の場合、スプライン グリッドの密度を向上させることができます。これは、グリッド拡張と呼ばれています。
論文の上の図からわかるように、細粒度化とは、B スプラインのグリッドを単に密にすることで、より代表的になり、より強力になることです。
スプラインの欠点の 1 つは、再帰的であるため計算コストが高いことです。スプラインの計算複雑度は O(N²LG) で、MLP の通常の複雑度 O(N²L) よりも高くなります。追加の複雑度はグリッド間隔 G によって生じます。
著者らは、次のことを示してこの固有の問題を擁護している。
これらの防御のグラフは結果のセクションで見ていきます。ここでは、KAN の別の特徴について詳しく見ていきましょう。
KAN は関数を学習するため、MLP のように特定のデータや問題に対して MLP の深さと幅を選択するだけで設計できる単なるブラック ボックスではありません。したがって、KAN をより解釈しやすくし、優れた KAN ネットワークを設計するには、以下の手順に従う必要があります。
fix_symbolic(l,i,j,f)
というインターフェイス関数を提供することでこれを可能にします。ここで、 l、i、j はノードのレイヤーと位置であり、 fはsine, cosine, log, etc
の関数です。 訓練されたKANネットワークに到達するために論文で提案されたさまざまなステップの概要
さまざまな手順は、上の図にまとめられています。まず、大規模なネットワークから始めてスパース化 (手順 1) し、結果として得られたネットワークを整理 (手順 2)、いくつかのシンボル化を設定 (手順 3)、ネットワークをトレーニング (手順 4) し、最終的にトレーニング済みモデルに到達します。
上記の手順を使用して、5 つの異なるおもちゃの問題に対して KAN ネットワークをトレーニングし、その有効性を示し、MLP と比較しました。比較から得られた重要なポイントは次のとおりです。
最初のポイントは、上の図の 5 つのおもちゃの問題の 5 つのプロット内の太い青い線で示されています。最後の 2 つのポイントは、損失曲線と、特定の問題を解決するためのパラメーター数を示す下部のプロットで示されています。
次に注目すべき点は、破滅的な忘却問題では KAN が MLP よりもはるかに優れているということです。連続学習のためにシーケンス データを入力すると、KAN は MLP に比べて過去のデータをはるかによく記憶しているように見えます。これは下の図に示されています。KAN はデータ内の 5 つのフェーズを再現しますが、MLP は苦戦しています。
彼らはまた、偏微分や物理方程式を含む問題に KAN を使用できることを示す広範な実験も行いました。それらの詳細に立ち入るよりも、KAN と MLP のどちらを選択するべきかについて見てみましょう。
以下の図は、MLPよりもKANを選ぶべき場合の指針を示しています。以下の場合はKANを選択してください。
そうでなければ、MLP が勝ちます。
この記事が気に入ったら、ぜひフォローしてください
また、私のチャンネルを購読してください
私の意見では、KAN は、トランスフォーマーが NLP の世界を席巻したように、MLP に取って代わるために存在しているわけではありません。むしろ、KAN は数学や物理学のニッチな問題に役立つことが証明されるでしょう。それでも、さらに多くの改善が必要だと感じています。しかし、基礎モデルで解決されるビッグデータの問題に関しては、少なくとも現在の状態では、KAN にはまだまだ道のりが残っています。
さらに、トレーニング アプローチと KAN アーキテクチャの設計は、現代のニューラル ネットワークの設計とトレーニングの標準的な方法から逸脱する傾向があります。とはいえ、GitHub ページにはすでに 13,000 個のスターと 1,200 個のフォークがあり、何かが起こりそうな予感がします。このスペースを待ち、見守っていきましょう。