【備忘】KAN 2.0: Kolmogorov-Arnold Networks Meet Science
論文の概要
本論文は先行研究のKANであるSpl-KANを改良し、KANを用いて科学的な知見を発見できるような工夫を提案したものである。KANの改良にあたっては、1)Spl-KANで表現できなかった乗算を表現できるようにした。また、科学的な知見を発見できるよう、2)重要な特徴量の特定方法、3)近似対象の関数からモジュール構造の抽出方法、4)事前知識の活用として、所与の関数からKANを記述方法を提案した。
これらを組み合わせることで、物理現象を始めとする種々の自然科学の知見を得られるようになると期待される。
提案手法MultKANの特徴:
KANの改良:乗算表現
KANの関数表現はKART(Kolmogorov-Arnold Representation Theorem)に基づいている。具体的には、写像関数$\Phi_q, \phi_{p,q}$および入力$x = (x_1, \cdots, x_n)$を用いて、関数$f(x)$を$f(x) = \Sigma_{q=1}^{2n+1} \Phi_{q} \big( \Sigma_{p=1}^{n} \phi_{q,p} (x_p) \big)$のように表現する。このように入力の各要素の写像の線形和を更に写像するため、$xy$のような乗算を表現することは難しい。先行研究においては、乗算の表現は$xy = \frac{(x + y)^{2} - (x-y)^{2}}{4}$となっており、これがKANの解釈性を下げることにつながる。
本研究では、KANの各層の出力先に乗算ノードのみから構成される層を用意した。これにより、乗算を平易に表現することができるようになった。乗算ノードと出力ノードの結合は、疎になるようにKANの学習と同様、L1+Entropy Reguralizationでスパースとなるようしている。
科学的な知見を発見するための工夫
重要な特徴量の特定
重要な特徴量(ノード)の特定にあたり、Spl-KANでは着目するノードから出る出力のエッジの値に着目をしていた。しかし、ある出力層において大きな値が得られても、最終層に及ぼす影響が大きいとは限らない。そこで本研究では、最終層から全てのエッジの値を遡って考慮することにした。
モジュール構造の抽出
上述の重要な特徴量は、エッジがノードにどのように接続しているのかを示すモジュール構造については言及していない。モジュール構造はNeural Networkの理解を容易にするため、検討する方が望ましい。モジュール構造はAnatomical ModularityとFunctional Modularityの2つに分けられる。
- Anatomical Modularity
脳のニューロンでは空間的に近いニューロン同士は強い接続を持つ。空間的な近接性をNerural Netoworkに導入することでノード間の接続が視覚的に見やすくなるため、本研究でも導入している。この近接性の導入方法は、重要度の高い上位k番目までノードを各層ごとに並び替えることである。ここでの重要度は、ノードに前後の層から接続されるエッジの絶対値の総和である。
- Functional Modularity
このモジュール構造として変数の分離可能性と対称性が挙げられる。分離可能性は、和(イメージ:$f(x_1, x_2) = g(x_1)+h(x_2)$)、積(イメージ:$f(x_1, x_2) = f(x_1)f(2)$)について考えており、対称性は当該変数を入れ替えても結果が変わらない構造(例:L2ノルム)を指す。
和に関する分離可能性は、関数のHessianの要素が0になる変数の組み合わせに着目すれば抽出できる。一方積に関する分離可能性は、関数を対数変換した後、和と同様にHessianに着目することで確認できる。これらを組み合わせることで、分離可能な関数の合成関数に対しても適用できる。対称性も同様に考えば良く、対称となる変数群の微分を、対称ではない変数群で微分すると0になれば、その関数は対象となる。これらを確認するプログラムコードは実装されている。
所与の関数からKANを記述、運用
KANに事前知識を導入しなければ、既に知っている事前知識の学習に時間をかけてしまう虞れがある。そこで、数式表現されている事前知識をKANに埋め込み、その後データを用いて学習させれば効率が良いと考えられる。KANへの埋め込みでは、所与の数式を木構造で表現し、KANの計算グラフのような構造に変形していくことで達成される。この表現は所与の数式を簡潔に表現できているが、深さ・幅が少ないため表現力が低い可能性がある。そこでKANを大きくする必要がある。
実際にKANを用いる際は、データからモジュール構造を抽出した後にその構造をKANに埋め込み、再度学習をしていく。再学習にあたって、スパース正則の調整を容易にするため、エッジの初期化はスパースにした方が望ましい。学習を種々行うことで複数モデルが得られた場合は、残差やパラメータ数(簡潔表現かどうか)でKANのモデルを採用するかを判断する。
参考文献
以上。