Anzeige

【DL輪読会】The Forward-Forward Algorithm: Some Preliminary

Deep Learning JP
6. Jan 2023
Anzeige

Más contenido relacionado

Presentaciones para ti(20)

Más de Deep Learning JP(20)

Anzeige

Último(20)

【DL輪読会】The Forward-Forward Algorithm: Some Preliminary

  1. DEEP LEARNING JP [DL Papers] http://deeplearning.jp/ The Forward-Forward Algorithm: Some Preliminary Kensuke Wakasugi, Panasonic Holdings Corporation. 1
  2. 書誌情報 2  タイトル: The Forward-Forward Algorithm: Some Preliminary  著者: Geoffrey Hinton(Google Brain)  URL: https://www.cs.toronto.edu/~hinton/FFA13.pdf  その他: 同論文の内容について、12月のNeurISP2022でKeynote Speech  選書理由 NeurIPSでの講演を聞き、誤差逆伝搬を使わない方法に興味を持ったため。 大学時代に、神経細胞の培養をしていた経験もあり、生体に則した仕組みにも期待。
  3. 目次 3 1. Back Propagation(BP)の問題 2. Forward-Forward Algorithm(FFA) 3. FFを用いた実験 4. CIFAR10での実験 5. Contrastive learningとの関連性 6. 早い学習と遅い学習 7. FFとアナログ学習 8. Mortal Computation
  4. 目次 4 1. Back Propagation(BP)の問題 2. Forward-Forward Algorithm(FFA) 3. FFを用いた実験 4. CIFAR10での実験 5. Contrastive learningとの関連性 6. 早い学習と遅い学習 7. FFとアナログ学習 8. Mortal Computation
  5. Back Propagationの問題 5 Forward Path Backward Path Loss Data 深層学習では誤差逆伝搬で成功しているが、脳の皮質でそれが行われている証拠はな い ? ■BPを皮質で行う場合の課題 • Lossの導関数を伝達したり、forward時の状態を 記憶しておく必要がある • 特に、後段の関数についての完全な情報を 前段に伝える必要がある これら課題を回避する方法としてFFを提案 ₋ 正/負の信号(のようなもの)で学習 ₋ 性能では、同程度か少し劣る ₋ 省電力にメリット
  6. Forward-Forward Algorithm 6 新たにNegative Data、goodnessを導入し、FFでの学習を実現 Forward Path Positive Data Forward Path Backward Path Loss Data Forward Path Negative Data Good ness Good ness ■BPを皮質で行う場合の課題 • Lossの導関数を伝達したり、forward時の状態を 記憶しておく必要がある • 特に、後段の関数についての完全な情報を 前段に伝える必要がある ■FFでの学習 • 前後のgoodnessの微分で学習(正負で逆方 向) • goodness:例えば、activityの二乗和 • 正負の情報は、top-down接続か、外部から伝 達 BP(再掲) FF ↑Goodness ↓Goodness
  7. FFで多層を学習する際の工夫 7 Forward Path Positive Data Forward Path Negative Data Good ness Good ness • ローカルな情報で学習が完結(BP不要) • BPで得られる情報の代わりとして、 正例/負例データを利用.単純には2値判別として 扱う • ある層で、二値判別ができてしまうと、後段では何も学 習しない →伝搬時に、ノルムで正規化 層毎にgoodnessで学習。伝達時に、ノルムで正規化し、多様な特徴を獲得。
  8. 目次 8 1. Back Propagation(BP)の問題 2. Forward-Forward Algorithm(FFA) 3. FFを用いた実験 4. CIFAR10での実験 5. Contrastive learningとの関連性 6. 早い学習と遅い学習 7. FFとアナログ学習 8. Mortal Computation
  9. FFを用いた実験 9 ■検証データ: MNIST(permutation-invariant) train 5万、val 1万、 test 1万 ■ベースライン CNN:0.6% 4FC・2000ReLU:1.4%、20epoch (1.1% with 正則化) FFにおける2つの課題点: 適切な正負データがある場合に学習できる 適切な負データはどうやって得られるか データをMNIST、NNを4FC・2000ReLUとしたときの予測性能1.4%をベースライ ンとして採用 FC4層 ReLU2000個
  10. ハンドクラフトの負例データ 10 二つの数字をマスクで合成し、負例データとして利用 ■生成方法の意図: 文字の形状を学習させるため、正例に対し、近距離相関が高く、遠距離相関が低いデータを作成し負例とし ■生成方法 ランダム画像に対し、繰り返しブラー処理をかけ、最終的に閾値0.5で二値化画像を得る 上記生成データを適切な負例データとして、 FFが学習できるか検証
  11. 教師なし学習での性能 11 FC4層 ReLU2000個 画像 Positive Data Negative Data 予測性能 Epoch baseline 1.4% 20 FC 1.37% 100 局所受容野※ 1.16% 60 softmax goodnessを集めて、softmaxの入力とし、 教師あり学習 ※1つ目の隠れ層を入力に用いると性能悪化とのこと ※weight shareではない 教師なし学習した後、goodnessを入力として教師あり学習。同等の性能 教師あり
  12. 教師あり学習での性能 12 FC4層 ReLU2000個 画像 with label Positive Data Negative Data 予測性能 Epoch baseline 1.4% 20 FC 1.36% 60 FC(lr×2) 1.46% 40 softmax goodnessを集めて、softmaxの入力とし、 教師あり学習 ※画像端10pixelsに上書き 教師あり ■負例、テスト時のラベルの入れ方 負例: 正解以外のラベル or 平均値0.1 (後者のほうが学習が3倍早い?) テスト: 10通りForward計算し、goodnessの累積最大を予測として採用 or 平均値0.1を付与し、得られたgoodnessからsoftmax経由で 正解/不正解ラベルを入力に含めることで、学習が加速。
  13. 受容野の可視化 13 予測性能 Epoch baseline CNN 0.6% ? jitter※ 0.64% 500 ※±2pixels、合計25倍のデータで学習 jitterデータで学習すると、エッジ特徴を学習
  14. 知覚におけるトップダウン効果のモデル化 14 入力を動画とみなし、時間遅れでのトップダウン伝達も考慮 FC 2 or 3層 ReLU2000個 画像 Positive Data Negative Data ■学習 1回目は一方向に計算。計8回の更新実施 前ステップ0.3、現ステップ0.7で足して計算(振動抑 制) ※事前実験で10step、偶奇交互更新も検証? ※負例の頻度は、その予測確率に比例させると学習が効 率化 ■テスト 10labelsそれぞれで、8回の更新実施。 予測性能 Epoch baseline 1.4% 20 top-down 1.31% 60
  15. 空間的文脈に基づく予測の教師としての利用 15 ■議論(section 3.5) 学習時には上位/下位レイヤーからの情報が合致することが要請 される? ※goodness最小化を目的とする場合、相殺を要請 ※上位レイヤーからの空間的文脈を学習に反映させる方法がなく、 単に整合させようとしてもうまくいかないらしい ※負例データの活用がカギ? ■個人的な考察 上位レイヤーには正規化後の情報しか伝わらないので、 正規化後の情報と、ノルムのコンセンサスを要求されており、 低次~高次情報全体での整合性を獲得できたということ? FFでは上位/下位の整合が取れる?
  16. CIFAR-10での実験 16 局所受容野(11x11x3) 2 or 3層 ReLU 32 x 32 x 3個 画像 Positive Data Negative Data BPより少し劣るが、FFでも学習可能 ■学習 1回目は一方向に計算。計10回の更新実施 ■テスト 4-6回分のgoodnessから予測 あるいは、one pathでのsoftmax
  17. sequenceの学習 17 ■検証データ: イソップ童話、100文字×248文。 文字種30種:小文字26個+スペース、コンマ、セミコロン、ピリオド →30クラス分類 ■学習: 最初10文字を文脈として与え、残り90文字を生成・予測する 正例:正解データ10文字 負例:10文字目がモデルの予測値(正解を除く?) あるいは、11文字目以降のすべて予測値 ※データ数:90文字×248文字=22,320文字 文字列 Positive Data Negative Data FC3層 ReLU2000個 モデルの予測値を負例として学習
  18. sequenceの予測性能 18 ■比較条件 青:重みをランダムで固定、softmaxだけ学習 赤:正例/負例を交互に学習 黒:正例/負例を同時に ■議論 ・ランダムより性能向上 ・正例/負例は同時に考慮しなくてもいい →オフライン学習・睡眠学習ができる シーケンスも学習可能。正例/負例は同時に学習しなくてもいい
  19. 目次 19 1. Back Propagation(BP)の問題 2. Forward-Forward Algorithm(FFA) 3. FFを用いた実験 4. CIFAR10での実験 5. Contrastive learningとの関連性 6. 早い学習と遅い学習 7. FFとアナログ学習 8. Mortal Computation
  20. その他のContrastive learningとの関連 20 ■ボルツマンマシン 更新則が、データについての期待値と、モデルについての期待値の差 →誤差伝搬せずとも重みの更新が可能 覚醒/睡眠に対応するとも考えられるが、 data/modelを同期させないと学習がうまくいかない ■議論 数式的にはきれいなので、うまく生かしたいところだが、できていない。 一方で、contrastive divergenceなどのように、モデルの期待値(負例)は、 必ずしもデータをモデル分布からサンプリングする必要はない。 FFでは、エネルギーの代わりにgoodnessを採用して簡素化することで、tractableに ボルツマンマシンのdata/model期待値と、正例/負例が対応。FFのほうがtractable
  21. その他のContrastive learningとの関連 21 ■GAN 生成器:FFのNNそのものに対応 識別機:FFの各レイヤーのgoodnessを使った識別機に対応 ※GANの特殊ケースとみなせる ■議論 各レイヤーに識別機を持つので、BPが不要。 FFを生成モデルとして扱うためには、隠れ層の情報からデータを生成する必要がある。 →(この論文では示されていないが)、線形変換+softmaxでできれば、BP不要。 また、生成器と識別器が同じ表現を使うので、mode collapseも回避。 Positive Data Negative Data FFはGANの特殊ケース。識別器をgoodnessとして各レイヤーに持った形。
  22. その他のContrastive learningとの関連 22 SimCLRと比較して、実ニューロンでの実現性はFFが有利。データ効率向上のためブ ロック化。 [1] Chen, T., Kornblith, S., Norouzi, M., & Hinton, G. (2020, November). A simple framework for contrastive learning of visual representations. In International conference on machine learning (pp. 1597-1607). PMLR. https://arxiv.org/pdf/2002.05709.pdf 参考:[1] SimCLR ■SimCLR 異なる二つの入力の内部表現を一致させる →実ニューロンで実現させる方法は自明でない FFの方が、簡単。 弱点は、学習に多くの画像ペアが必要なこと 100万枚あっても20bitの情報しかない ※BP相当の微分方向を得ようとしても、 20次元分しか得られないということ? ■FF 異なる入力に対して、一致した場合に活性化するように学習 データ効率の悪さは、SimCLRと同じか、より悪い。 →対策として、層をブロック化して、それぞれでgoodnessの 閾値処理を行わせる。 ※1データで得られる情報が、ブロック数bitになる
  23. stacked contrastive learningの問題 23 ■Restricted Boltzmann /stacked autoencoders レイヤーごとに学習をする方法がある →ただし、ランダム重みでも、隠れ層で相関がでる(NN構造由来の相関?) ■どう回避するか もともとのRBMでは、異なる条件で得られた二つの統計量を比較することで、 構造由来の相関をキャンセルしていた。 FFでは、正例/負例がその役割を担っている 学習方法によってはデータに関係のない情報を学習するが、正例/負例の利用でそれ を回避
  24. 目次 24 1. Back Propagation(BP)の問題 2. Forward-Forward Algorithm(FFA) 3. FFを用いた実験 4. CIFAR10での実験 5. Contrastive learningとの関連性 6. 早い学習と遅い学習 7. FFとアナログ学習 8. Mortal Computation 9. Future work
  25. 早い学習と遅い学習 25 goodnessによる学習は、後段への出力を変化させないため、同時並行で学習可能 ■FFでの重みの更新量 ■導出: 対数尤度を重みで微分 y_jの変化量を確認(最終的に比例変化のみ) ■議論 ・入力データが変わらない場合は、 学習による変化に対して、各層の出力値が不変 →同時並列的な学習が可能 ・ミニバッチ学習では採用できないが、 勾配に基づいて徐々に学習する方法を避けることができ 心理学で有効かも? ・前段と後段で学習が独立になるので、後段がブラックボ よく、前段で早い学習を行い、後段で遅い学習をすると 使い方も考えられる
  26. Analog hardware・Mortal Computation 26 BPを含むベクトル演算では、省エネな計算回路実装は難しいが、FFなら可能 ■省エネな回路実装 activity → voltage weight → conductance BPを行う場合、回路で実現するのは難しいが、 FFなら実現可能性あり ■既存のComputation ソフトウェアとハードウェアを分離。ハードが変わっ ても挙動が同じ。 →これらの分断を放棄すれば、省エネな回路実装が可 能では? ■Mortal Computation mortal:immortal(不滅)の対義語。 回路そのものが学習結果(conductance)を保持し ており、 ■議論 ・回路ごとに学習するため、 パラメータのコピーは意味がない。 ・代わりに、蒸留のような手法で、入出力の 関係性を コピーしたらいい。一般化にもなる? ・もし何兆ものパラメータを数ワットで学習 したいなら Mortal Computationが必要 ・同時に、不明なハードウェアにおける学習 方法が必要 FFが有力候補 ・より大きなNNにスケールするかはまだわか らない
  27. 目次 27 1. Back Propagation(BP)の問題 2. Forward-Forward Algorithm(FFA) 3. FFを用いた実験 4. CIFAR10での実験 5. Contrastive learningとの関連性 6. 早い学習と遅い学習 7. FFとアナログ学習 8. Mortal Computation 9. Future work
  28. Future work 28 1. 教師なし学習に使えるほどの画像や動画の生成モデルを学習できるか? 2. 睡眠時学習のように、正例/負例をどれほど時間的に乖離させられるか? 3. 負例をしばらく取り除くことで、睡眠不足の影響を模倣できるか? 4. goodness関数として適切なものは何か? 正例に対して、二乗和を最小化する方法でも動作する(むしろ少し良 い) 5. 活性化関数として適切なものは何か? t分布の下での負の対数密度も面白そう 6. 空間的データの場合、異なる箇所の局所goodness関数を持つことにメリットはあるか?うまくいけば学習が高 速化する。 7. シーケンシャルデータの場合、fast weights (Ba et al., 2016a)は、単純化したtransformerを模倣できるか? 8. 二乗発火量を最大化する特徴検出機と、二乗発火量を最小化する制約違反検出器を、FFが持つことでメリット はあるか?
  29. まとめ・感想 29  まとめ • 実際の脳のモデル化を念頭に、BPに代わる学習アルゴリズムFFを提案 • BPと比較して、予測性能は同程度かやや劣り、学習速度は遅い • 一方、FFのようなアルゴリズムであれば、mortal computationの学習が可能 となり、 大幅に省エネな計算回路が実現しうる  感想 • 伝搬時に正規化する工夫は、いろんな観点で面白い。 各層で並列に学習できるとした場合、分散学習やプライバシー保護への応用 もあるか? • 多様な手法と、少しずつ類似点を見ることができるため、各種技術の輸出入 も起こりそう。
Anzeige