496の落書き帳

496がなんか思ったことを書いたり書かなかったりする場所です。

Note「競争的隠れ層による教師なし学習」

Unsupervised learning by competing hidden units
Krotov and Hopfield, 2019

いい感じに暇になったので、先生から「楽しそう」って投げられたやつを読んだ。
興が乗ったので、大雑把な内容を書き留めてみよう。

モチベ

機械学習を考えるにあたって、どうすれば有用な特徴量を与えられるかは常に問題である。近年の成果として、(多層)ニューラルネットでの誤差逆伝播によって低次の層に(勝手に)有用な特徴検出が生えてきそうだということが分かった。その一方で、いわゆる普通のニューラルネットの手法は"biologically implausible"である…すなわち、生物の脳はそんな処理してなくない?という疑念が残る。

脳が人口ニューラルネットと大きく異なる点として、更新の局所性(逆伝播のように遠くの情報を使わない)と教師なしという特性(生物の発達過程ではただ刺激が流れてくるだけで、教師信号があるわけではない?)が挙げられる。そのような特性を持ったアルゴリズムでもニューラルネットと同程度に有用な特徴検出ができるか?というのが問い。

そういうわけで、提案手法はヘブ則に始まる神経科学もろもろの見識を見習いつつ以下のことに気を遣ってみる。

  1. シナプス結合強度の変化は、①その直前のニューロンからの出力と、②直後のニューロンの活動値、だけで決まる。①②が正の相関を持てば増え、負の相関を持つと減る。(ヘブ則respect)
  2. 多様性維持のため、同じ層のニューロン同士の出力が競合する(同じ入力にいくつものニューロンが反応すべきでない)という効力を投入する。(これは教師なし学習でやられがちな手法らしい)
  3. 結合の強さの生理学的限界を表現するため、あるニューロンに入る結合たちの強さを並べたベクトルのノルムが一定になるような系を組む。

めそっど

入力v→重みWの結合→隠れ層h→重みSの結合→出力cだけからなる、2層ニューラルネットを作る。Wを教師なし学習で構成し、それを固定してデータから良い感じのhを獲得したのちにSを最適化(教師あり学習)して既存のデータセットに適用して評価する。教師ありフェイズは既知手法を突っ込んであるだけで、著者的には教師なしフェイズが本編。

モチベを満たすように、こんな感じで力学系?を作って教師なし学習をやる。まず式を見て、それから言語を見ると早いかもしれない。

  • v:データセットからランダムに流れてくる。
  • W_ij:行き先からのフィードバックg_jと入力値v_iの積に応じて増える(負なら減る)。また、1個のh_jに入るW_ijを並べたベクトル(行ベクトル)のLpノルムが1に収束するような力をかける。pはハイパラ
  • h:Wvの値に向かおうとするが、各成分は大きくなると他の増大を阻害する(結果、ワンホット的になる方向へ進む)。阻害する度合いw_inhはハイパラ
  • g_j:hからWへのフィードバックで、h_jが負ならば0,弱い正の値だと-Δ,強いと1になる。Δ~0.4はハイパラ

力学系のごとく書いてあるが、系全体の時間発展をシミュレートする気はあまりないらしい。hの変化はWよりはるかに速いという前提(これは何?)に基づき、実際に起きることは(1)ランダムデータvをとる(2)現在のWに基づきhが収束するまで待つ(3)hから得たgとvによりWを更新、の繰り返しとなる。

しかし、(2)の収束待ちが面倒すぎるので大胆な近似を投入(結局力学系使ってないやんけ〜)、すなわちWvを順位づけして1位のところはg=1,k位のところはg=-Δ,残りはg=0にしてしまう。kはハイパラで大きいほど順位づけ作業が面倒になる。

じっけん

MNIST(手書き数字認識)とCIFAR10(10種の物体認識inカラー写真)を全結合ネットでやらせる。両者とも隠れ層2000、出力10として構成した。提案手法が完全教師ありの(同サイズの)ニューラルネットに近い結果を出してくれて良い気分になった。何故か、教師なしフェイズと教師ありフェイズで活性化関数を変えている。ハイパラ調整は主にp,k,Δに対して行われた結果が図示されているが、なんか良かったりなんか悪かったりしてよく分からない。train errorが減ってtest errorが増えたりしている(それは過学習というのでは?)。

それより面白いのがWの可視化である。 f:id:goldenfalcon496:20220215151311j:plain これはMNISTをやらせたときのWの適当な行を拾ってきたもので、入力とこれとの内積が隠れ層の特徴量ということになる(左が教師なし提案手法、右が教師あり既存手法)。 教師なしでそれっぽい特徴量が生えてきた!教師なし学習最高!(???)という気分になれる。ただの数字だけではなく、いくつかの数字に共通の特徴とか重ね合わせらしきものも生えている(分散表現がありそう)。入力自体は0以上なのに負の値が出てくるのはg=-Δによるもので、Δ→0とすると負の値が消滅して性能が悪くなったりするらしい。

でぃすかっしょん

神経に着想を得た方法で特徴量を取ろうという試みは歴史上多々あった。しかし、完全教師ありニューラルネットが2014年に成功を収めて以来は特徴量の取得も完全に教師あり学習に任せてしまえという方向へ行っている(2019現在?)。脳と神経を見習って教師なしで良い性能を出すことで抗っていきたい(意訳)。

2層めを教師あり学習で作ったが、1層分しかフィードバックをしていないので生物学的制約としての局所性には違反していない。1層全結合しかやっていないが、同じ手法で層を増やしたりCNN化したりして教師なし学習をやるとどうなるかは今後の課題である。

最後に、end-to-end学習が生物学的におかしいという主張はしていない。誤差逆伝播によるend-to-end学習の生物学的に妥当なバージョンを生やした研究は多々ある。提案手法は何もタスクを与えずに有用な特徴量が生えてくるといいな〜という話であって、むしろタスクを解く時にどうすれば良いのかは放棄している。

感想

手法で腑に落ちないところが若干ある。一番気になるのは、教師なし学習フェイズと教師あり学習フェイズで活性化関数が変わっているどころか重みが変わっているように見えるところ。活性化関数はmax(x,0)からxnへと変化しているように見えるし、教師なし学習フェイズを観察していると重みはWというよりWp-1に見える。p=3が最適だったらしいが、そのときの重みは事前学習時から変わっていることになるのだろうか。次いで、hとgの計算を簡略化しすぎなのではないかというのも気になる。活動値2位〜k-1位のニューロンに対してg=0であるということは、真面目にやった場合よりg=0が多くなっていそうだが、更新箇所が少ないと単に遅いのではないかという点で微妙に見える。hに関する系は線形(max(0,x)を含むが、負のところは解が自明に負なので除外できそうだ)で結構簡単なので固定点を方程式で出せそうだが、それも遅いのか?なんか上手くやると疎行列とかになりそうな気がするし、もしかしたら線形時間で解けるかもしれない。あるいは解がh*より大きいかどうかだけ判定する仕掛けを作れないか?

まあこういうのは比較的本質に関係ない可能性もある。もっと大雑把な話をすると、提案手法はリザバー計算めいていて、教師なしフェイズはリザバーを構築する行為に相当しているように見える。こういった事前学習(?)はかなり広範に使えそうな雰囲気がするので、そのへんにあるタスクに手当たり次第に突っ込んでみたくなる。

しかし、有用な特徴量を得るという目標を立てる時点で着地点に難があるように思える。観察して特徴を見つけるという行為自体はタスクが与えられずともできるという指摘は的を射ている反面、それが有用であると言うにはタスクの定義が必要である。まるで研究業界の闇を見ているかのようだ。(????)

もっと根本的な話として、教師ありなし云々の議論をしていると

脳は教師付き学習ができると信じられているが、教師信号はどこにあるのか?

という問いが浮上する。ヘブ則に従って結合の強さが云々というのは内部の話だが、外からのフィードバックがどこかにあるはずである。脳の出力側に特殊なフィードバック機構が付いているわけでは(多分)ない(そもそも出力側という言葉が不適に見える:脳は一方向でもないしリザバー計算のモデルで書けるかすら怪しい)。

フィードバックという言葉に囚われず、脳からすれば教師信号も入力の一種でしかないと考えるのが自然ではないか?脳の出力が運動であるとすれば、その結果や評価は視聴覚その他から入力に戻ってくるはずで、そのような方法でしか情報は取得できない。

ところで、ヘブ則も局所的に学習をしているように捉えることはできる。行き先のニューロンからのフィードバックが教師のように見えるからだ。そこで仮説としては、教師信号も入力として入ってきて、入力と合流するところで教師付き学習のような成果を生み出すと主張できないかと思う。教師信号Aと入力信号BがニューロンXで合流するとすれば、Aを入れた時にXが活動し、Xの活動によってB→Xの繋がりが強まり、最終的にAなしでもBからXが発火すれば、XはラベルAを識別したことになる。これで、最適化という概念を完全破壊した「物理法則に従った結果学習しているように見える物体」の模型が出来上がったりしないだろうか?(ヘブ則は物理法則であると信じる。)

補足.人間がトレーニングをしているときを想像するとどうしても意識という上位存在を仮定したくなるが、意識なるモジュールが存在して視聴覚に直結しない入力(???)を提供していると考えられる、かもしれない。

そういうわけでこの論文を読んだ結果だいぶ妄想が膨らんだ。こんな感じで妄想をやっていると研究や実験がしたい気分になってくる(有意義なものになる保証は微塵もなし)わけだが、まあ多分いろんなことが既にやられているので、被引用でも探してみようかなあというお気持ちなのであった。完。

追記.教師なし学習フェイズのコードがあるらしいのでいじりたい人はいじればいいんじゃないかな(見てない)