nekonookangae / SummarizePapers

個人用。翻訳した論文をIssuesにまとめていきます。
1 stars 0 forks source link

Continual Learning Through Synaptic Intelligence #20

Open nekonookangae opened 4 years ago

nekonookangae commented 4 years ago

一言でいうと

論文リンク

http://proceedings.mlr.press/v70/zenke17a.html

著者/所属機関

Friedemann Zenke, Ben Poole, Surya Ganguli / Stanford University

投稿日付

2017/xx/xx

概要

ディープラーニングは、多様なアプリケーションにおいて目覚ましい進歩を遂げてきましたが、学習の過程でデータの分布が変化する領域では苦戦を強いられています。 一方、生物学的ニューラルネットワークは、複雑な分子機械を活用して多くのタスクを同時に解決することで、変化する領域に継続的に適応しています。 この研究では、このような生物学的複雑さの一部を人工ニューラルネットワークにもたらすインテリジェントなシナプスを導入します。 各シナプスは、時間の経過とともにタスクに関連する情報を蓄積し、この情報を利用して古い記憶を忘れることなく新しい記憶を迅速に蓄積します。 本研究では、このシナプスを用いて分類タスクの継続学習を行った場合の評価を行い、計算効率を維持しつつ、知識の忘却を劇的に減少させることを示しました。

はじめに

人工ニューラルネットワーク(ANN)は、応用機械学習に不可欠な資産となっており、様々な分野に特化したタスクにおいて人間のパフォーマンスに匹敵するものとなっています。 元々は生物学に触発されたものですが、基本的な設計原理や学習方法は生物学的NNとは大きく異なります。 例えば、ANNのパラメータは、訓練段階でデータセット上で学習され、固定してデプロイ段階や再現段階で新しいデータ上で静的に使用されます。 データ分布の変化に対応するために、ANNは通常、過学習や破壊的忘却を避けるために、データセット全体で再学習する必要があります。 一方、生物学的NNは、生涯にわたって新しい知識を獲得する継続学習を示します。 そのため、学習段階と再現段階の間に明確な線引きをすることは難しいです。 どういうわけか、私たちの脳は、非定常なデータから学習し、内部の記憶や信念をその場で更新するように進化してきました。 この偉業がどのようにして脳内で達成されるのかは不明ですが、継続学習における比類のない生物学的性能は、現在のところANNには実装されていない、基礎となる生物学的ウェットウェア(脳)によって実装された特定の機能に依存している可能性があるように思われます。 おそらく、現代のANNと生物学的NNの設計における最大のギャップの1つは、「シナプスの複雑さ」という点にあると思われます。 このように、シナプスの複雑さを表すためには、シナプスの複雑さを表現するために必要な情報が必要です。 その一方で、個々の生物学的シナプスは、異なる空間的・時間的スケールで可塑性に影響を与える複雑な分子機構を利用しています。 この複雑さが記憶の統合に役立つと推測されていますが、ANNにおいて、それが学習にどのような効果をもたらすのかを説明した研究はほとんどありません。 ここでは、NNが分類タスクのシーケンスを学習できるようにするための内部シナプス変遷の役割を研究しています。 本研究では、シナプスの状態が過去と現在のパラメータ値を追跡し、オンラインでの推定値を維持していることを示した。 我々のモデルでは、シナプスの状態は過去と現在のパラメータ値を追跡し、過去に遭遇した問題を解決するためのシナプスの「重要性」のオンライン推定値を維持する。 このようにして、シナプスの状態が過去に遭遇した問題を解決するために、シナプスの「重要性」をオンラインで推定する。 このようにして、シナプスの重要度が変化したときには、将来の課題でシナプスが変化しないようにすることで、重要なシナプスを統合している。 このようにして、将来のタスクでの学習は、過去のタスクでは重要ではなかったシナプスを主に媒介することで、過去のタスクの破滅的な忘却を回避することができる。

シナプスフレームワーク

NNでの継続学習の問題に取り組むために、オンラインで計算して各シナプスでローカルに実装できる単純な構造正則化を構築しようとしました。 具体的には、ネットワークが過去に学習されたタスクを解決する際に、個々のシナプスにローカルな「重要性」の尺度を与えることを目指しています。 新しいタスクで学習するときは、古い記憶が上書きされないように、重要なパラメータへの変更にペナルティを課します。 そのために、タスクµのタスク目標L_µを個々のシナプスθ_kに改善した過去のクレジットを反映する重要度指標ω^ µ_kを追跡するアルゴリズムのクラスを開発しました。 簡潔にするために、「シナプス」という用語は「パラメータ」という用語と同義としています。 これには、層間の重みとバイアスが含まれます。

スクリーンショット 2020-10-17 22 47 15

図1. パラメータ空間の軌跡と破壊的忘却の概略図。
実線は、学習中のパラメータの軌跡に対応しています。
  左と右のパネルは、さまざまなタスク(タスク1とタスク2)によって定義されたさまざまな損失関数に対応しています。
  各損失関数L_µの値は、ヒートマップとして表示されます。
  タスク1の最急降下法学習は、θ(t0)からθ(t1)へのパラメータ空間の動きを誘発します。
  タスク2での後続の勾配降下は、θ(t1)からθ(t2)へのパラメータ空間での動きを生成します。
  この最後のポイントは、タスク1の損失を大幅に増加させる代わりに、タスク2の損失を最小限に抑え、タスク1の壊滅的な忘却につながります。
  ただし、オレンジ色でラベル付けされた代替ポイントθ(t2)が存在し、両方のタスクでわずかな損失が発生します。
  以下では、コンポーネントθ_2がθ_1よりもタスク1の解決に重要であると判断し、タスク2の解決中にθ_2が大きく変化しないようにすることで、この代替点を見つける方法を示します。
  これは、過去のタスクを解決するために重要であったパラメータの変更を許可し、また将来のタスクを解決するために重要でないパラメータのみの変更を許可することにより、破壊的忘却を回避するためのオンラインアプローチにつながります。

NNを学習するプロセスは、パラメータ空間の軌道θ(t)によって特徴付けられます(図1)。 成功した学習の偉業は、エンドポイントがすべてのタスクの損失関数Lの最小値に近い学習軌道を見つけることにあります。 最初に、時間tでの微小パラメータ更新δ(t)の損失の変化を考えてみましょう。 この場合、損失の変化は勾配g =∂L/∂θでよく近似され、次のように書くことができます。

image

これは、各パラメータの変化δ_k(t)=θ'_k(t)が総損失の変化にg_k(t)δ_k(t)を与えることを示しています。 パラメータ空間を通る軌道全体にわたる損失の変化を計算するには、すべての微小な変化を合計する必要があります。 これは、初期点(時間t0)から最終点(時間t1)までのパラメーター軌道に沿った勾配ベクトル場の経路積分を計算することになります。

image

勾配は保存場であるため、積分の値は、終点と始点の間の損失の差に等しくなります:L(θ(t1))-L(θ(t0))。 私たちのアプローチにとって重要なのは、式(2)を個々のパラメータの合計として分解できることです。

スクリーンショット 2020-10-17 23 01 19

ω^ µ_kは、総損失の変化に対するパラメータ固有の寄与として直感的に解釈できるようになりました。 通常、損失を減らすことに関心があるため、2行目にマイナス記号を導入していることに注意してください。 実際には、ω^ µ_kは、勾配gk(t)=∂L/∂θ_kとパラメーター更新θ'_k(t)=∂θk∂tの積の現在の合計としてオンラインで概算できます。 学習率が微小なバッチ勾配降下法の場合、ω^ µ_kは、総損失の変化に対するパラメーターごとの寄与として直接解釈できます。 ほとんどの場合、真の勾配は確率的勾配降下法(SGD)で近似され、g_kの推定にノイズを導入する近似になります。 直接的な結果として、パラメータごとの概算の重要度は、通常、ω^ µ_kの真の値を過大評価します。

継続学習を改善するために、ω^ µ_kの知識をどのように活用できますか? 私たちが解決しようとしている問題は、すべてのタスクにわたって合計された総損失関数 L = Σ_µ L_µを最小化することです。 ただし、過去に学習していたタスクの損失関数にアクセスできないという制限があります。 代わりに、常に単一のタスクµの損失関数L_µにしかアクセスできません。 破壊的忘却は、L_µを最小化すると、以前のタスクL_νのコストがν<µで大幅に増加する場合に発生します(図1)。 タスクµの学習中に以前のすべてのタスク(ν<µ)を壊滅的に忘れないようにするために、過去に特に影響を与えた重みの大幅な変更を回避したいと考えています。 単一のタスクに対するパラメータθ_kの重要性は、次の2つの量によって決定されます。  1)個々のパラメータが学習の全軌道にわたって損失ω^ν_kの低下にどの程度寄与したか(式3を参照)  2)移動距離∆ ^ν_k≡θ_k(t ^ v)−θ_k(t ^ {ν−1}) 重要なパラメータの大幅な変更を回避するために、変更されたコスト関数L〜_µを使用します。ここでは、前のタスクL_ν(ν<µ)の合計損失関数を近似する代理損失を導入しました。 具体的には、前のタスクのコスト関数と同じ最小値を持ち、パラメーター距離∆kにわたって同じω^ν_kを生成する2次代理損失を使用します。 言い換えると、実際の損失関数ではなく代理損失に対して学習を実行すると、トレーニング中に同じ最終パラメーターと損失の変化が発生します(図2)。 2つのタスクの場合、これは次の2次代理(suggorate)損失によって正確に達成されます。

スクリーンショット 2020-10-17 23 12 11

ここで、無次元強度パラメータc、前のタスクの終了時のパラメータに対応する参照重み˜θk =θk(t ^ {µ-1})、およびパラメータごとの正則化強度を導入しました。

スクリーンショット 2020-10-17 23 23 01

分母の項(∆ ^ν_k)^ 2は、正則化項が損失Lと同じ単位を持つことを保証することに注意してください。 実用上の理由から、Δ^ν_k→0の場合に式を制限するために、追加の減衰パラメータξも導入します。 最後に、cは、古い記憶と新しい記憶をトレードオフする強度パラメータです。 経路積分(式3)が正確に評価される場合、c = 1は古いメモリと新しいメモリの等しい重み付けに対応します。 ただし、経路積分(式3)の評価ではノイズが発生するため、通常、補償するためにcを1より小さく選択する必要があります。 特に明記されていない限り、ωkはトレーニング中に継続的に更新されますが、累積重要度測定値Ω^ µ_kと参照重みθ〜は、各タスクの終了時にのみ更新されます。 Ω^ µ_kを更新した後、ω_kはゼロに設定されます。 代理損失としての式4の動機は、2つのタスクの場合にのみ成立するため、追加のタスクを学習するときに、私たちのアプローチが良好な性能につながることを経験的に示します。

式4と5の特定の選択が学習にどのように影響するかを理解するために、2つのタスクを学習する図1に示​​す例を考えてみましょう。 最初にタスク1で学習します。 時間t1で、パラメータはタスク1の損失L1の極小値に近づいています。 ただし、同じパラメータ構成は、タスク2の最小値に近くありません。 その結果、追加の予防措置なしにタスク2で学習すると、L1損失が不注意に増加する可能性があります(図1、黒い軌道)。 ただし、θ2がL1を減らすことが重要であることを「覚えている」場合、タスク2の学習中に、現在の値に近づけることでこの知識を活用できます(図1、オレンジ色の軌跡)。 これにより、ほぼ必然的にタスク2の性能が低下しますが、この低下はごくわずかである可能性がありますが、両方のタスクを組み合わせた場合の性能の向上はかなりのものになる可能性があります。 ここで紹介するアプローチは、EWCに似ており、以前のタスクで良好な性能が達成された参照重みに向かって、より影響力のあるパラメータがより強く引き戻されます。 ただし、EWCとは対照的に、ここでは、オンラインおよび学習軌道全体に沿って重要度を計算する方法を提案しています。 一方、EWCは、最終的なパラメータ値でのフィッシャー情報量の対角線の点推定に依存しており、各タスクの最後の個別のフェーズで計算されます。

実験

Split MNISTおよびPermuted MNIST、およびSplit CIFAR-10とSplit CIFAR-100で継続学習するためのアプローチを評価しました。

Split MNIST

最初に、Split MNISTベンチマークでアルゴリズムを評価しました。 このベンチマークでは、完全なMNIST学習データセットを連続する数字の5つのサブセットに分割します。 5つのタスクは、0から10までの2つの連続する数字を区別する学習に対応します。 小さな多層パーセプトロン(MLP)を使用し、それぞれが非線形性を持つ256ユニットのReLUと標準のカテゴリクロスエントロピー損失関数に加えて、統合コスト項(減衰パラメータξ= 1×10-3を使用)で構成される2つの隠れ層のみを使用しました。 学習中のラベル分布の変化による出力層※での数字間のクロストークの複雑さを回避するために、マルチヘッドアプローチを使用しました。 このアプローチでは、現在のタスクに存在する数字についてのみ、出力層でのカテゴリクロスエントロピー損失が計算されました。

最後に、64のミニバッチサイズを使用してネットワークを最適化し、10epochsの学習を行いました。 より少ないepoch数で良好な絶対性能を達成するために、適応最適化関数Adam(η= 1×10-3、β1= 0.9、β2= 0.999)を使用しました。 このベンチマークでは、各タスクの学習後に最適化関数の状態がリセットされました。

性能を評価するために、学習されたタスクの数の関数として、以前のすべてのタスクの平均分類精度を計算しました。 ここで、統合ダイナミクスをオンにしたネットワーク(c = 1)と、統合をオフにした場合(c = 0)のネットワーク間でこの性能を比較します。 最初のタスクの学習中、シナプスを正規化できる過去の経験がないため、どちらの場合も統合ペナルティはゼロです。 「2」と「3」の数字で学習した場合(タスク2)、統合があるモデルとないモデルの両方で、タスク2で1に近い精度が示されます。 ただし、平均して、シナプス統合のないネットワークでは、タスク1の精度が大幅に低下します(図3)。 それとは対照的に、統合されたネットワークは、タスク1の精度に関してわずかな障害しか受けず、両方のタスクの平均精度は1に近いままです。 同様に、ネットワークがすべてのMNISTの数字を確認した場合、平均して、最初の4桁に対応する最初の2つのタスクの精度は、統合されていない場合の「チャンスレベル ※2」に戻りますが、統合されたモデルでは、これらのタスクの性能がわずかに低下するだけです(図3)。

※1: 論文では「readout layer = 読み出し層」だが、意味が同じ出力層と意訳した ※2: 偶然のレベル、つまり「ランダムに選んだレベルの確率」であるということ。

Permuted MNISTベンチマーク

このベンチマークでは、タスクごとに異なる方法ですべてのMNISTピクセルをランダムに並べ替えます。 それぞれ2000のReLUユニットとsoftmax損失を持つ2つの隠れ層を持つMLPを学習しました。 以前と同じパラメータでAdamを使用しました。 ただし、ここではξ= 0.1を使用し、c = 0.1の値は、Hold-out ※3 された検証セットでの粗いグリッドサーチによって決定されました。 ミニバッチサイズは256に設定され、20 epochsの学習を行いました。 Split MNISTベンチマークとは対照的に、タスク間でAdamの状態を維持することでより良い結果が得られました。 最終的なテストエラーは、MNISTテストセットのデータに基づいて計算されました。 性能は、すべてのタスクを解決するネットワークの能力によって測定されます。 比較のためのベースラインを確立するために、最初にすべてのタスクでシナプス統合なし(c = 0)のネットワークを順番に学習しました。 このシナリオでは、システムは破壊的忘却を示します。 つまり、システムは最新のタスクを解決することを学習しますが、前のタスクを急速に忘れます(青い線、図4)。

スクリーンショット 2020-10-18 2 40 24

図4.タスク数の関数としてのPermuted MNISTベンチマークから学習されたすべてのタスクの平均分類精度。
  私たちのアプローチ(青)とEWC(灰色)は、タスクの数が増えるにつれて高い精度を維持します。
  SGD(緑)と隠れ層(赤)のドロップアウトが0.5のSGDは、性能がはるかに悪くなります。
  上部のパネルはグラフの上部にズームインしており、単一のタスクでの初期学習精度(点線)と、全てのタスクで同時に学習した場合の同じネットワークの学習精度(黒い矢印)が表示されます。

それとは対照的に、シナプス統合を有効にする場合、c>0の賢明な選択により、同じネットワークは、9つの追加タスクで学習されている間、タスク1で高い分類精度を維持します(図4)。 さらに、ネットワークは他のすべてのタスクを高精度で解決することを学習し、すべてのデータを同時に学習したネットワークよりもわずかに性能が低下します(図4)。 最後に、これらの結果は、学習と検証のエラー全体で一貫しており、EWCで報告された結果と同等でした。 学習中のシナプス変遷をよりよく理解するために、さまざまなタスクµにわたるω^ µ_kのペアワイズ相関を視覚化しました(図5b)。

スクリーンショット 2020-10-18 2 40 31

図5. Permuted MNISTの各タスクµの重みの重要度ω^ µ_kの相関行列。 通常のFine-Tuning(c = 0、上)と統合(c = 0.1、下)の両方で、Permuted MNISTデータセットは入力層で無相関であるため、最初の層の重みの重要度(左)はタスク間で無相関です。 ただし、Fine-Tuningによってより多くのタスクが学習されるにつれて、第2層の重要性(右)はより相関的になります。 対照的に、統合は、新しいタスクを解決するために使用されるさまざまな重みの概念と一致して、ω^ µ_kの強い相関を防ぎます。

統合しないと、2番目の隠れ層のω^ µ_kがタスク間で相関していることがわかりました。 これは、破壊的忘却の原因となる可能性があります。 ただし、統合により、損失の減少に寄与するこれらのシナプスのセットは、タスク間でほとんど相関がないため、新しいタスクを解決するために重みを更新するときの干渉を回避します。

Split CIFAR-10/CIFAR-100ベンチマーク

シナプス統合ダイナミクスが、より複雑なデータセットやより大きなモデルでの破壊的忘却も防ぐかどうかを評価するために、CIFAR-10とCIFAR100に基づく継続学習タスクを実験しました。 具体的には、CNNを学習しました(4つの畳み込み、続いてドロップアウトのある2つの全結合層。詳細については付録を参照してください)。 Adamを使用したSplit MNISTの場合と同じマルチヘッドセットアップを使用しました(η= 1×10-3、β1= 0.9、β2= 0.999、ミニバッチサイズ256)。 最初に、完全なCIFAR-10データセット(タスク1)で60 epochsのネットワークを学習し、CIFAR-100データセットの10個の連続したクラスにそれぞれ対応する5つの追加タスクで順次学習しました(図6)。

スクリーンショット 2020-10-18 2 36 50

図6. Split CIFAR-10 / 100ベンチマークでの検証精度。
  青:統合なしの検証エラー(c = 0)。
  緑:統合ありの検証エラー(c = 0.1)。
  灰色:単一のタスクでゼロから学習された統合なしのネットワーク。
  このベンチマークのチャンスレベルは0.1であり、エラーバーはSDに対応する(n = 5)。

最良のcを決定するために、1×10-3 <c <0.1のパラメーター範囲のさまざまな値に対してこの実験を実行しました。 タスク間で、最適化関数の状態がリセットされました。 さらに、2つの特定のコントロールケースの値を取得しました。 一方では、すべてのタスクでc = 0の同じネットワークを連続して学習しました。 一方、タスク間の一般化を評価するために、各タスクで同じネットワークを最初から個別に学習しました。 最後に、精度の統計的変動の大きさを評価するために、すべての実行をn = 5回繰り返しました。 すべてのタスクで学習した後、統合されたネットワークはすべてのタスクで同様の検証精度を示しましたが、統合されていないネットワークの精度は、明らかに年齢に依存した精度の低下が見られ、古いタスクがより低い精度で解かれていることが分かりました(図6)。 重要なことに、統合を使用して学習されたネットワークの性能は、最後のタスクを除いて、統合を使用しない場合よりも常に優れていました。 最後に、すべてのタスクで統合で学習されたネットワークの性能を、単一のタスクでのみゼロから学習されたネットワークと比較すると(図6、緑と灰色)、前者は後者を大幅に上回っているか、同じ検証精度を実現しました。 学習の精度は逆になりました。 これは、統合されていないネットワークは過剰適合しやすいことを示しています。 そのルールの唯一の例外はタスク1、CIFAR-10でした。これは、おそらくクラスごとのサンプル数が10倍多いためです。 要約すると、統合により、古いメモリが時間の経過とともにゆっくりと忘れられるのを防ぐだけでなく、ネットワークが限られたデータで新しいタスクをより適切に一般化できるようになることがわかりました。

議論

継続的な学習シナリオで一般的に遭遇する破壊的忘却の問題は、個々のシナプスが過去の課題を解決するための重要性を推定できるようにすることで軽減できることを示しました。 次に、最も重要なシナプスへの変更にペナルティを課すことにより、以前に学習したタスクへの干渉を最小限に抑えて、新しいタスクを学習できます。 正則化ペナルティは、Kirkpatrick etalによって最近導入されたEWCに似ています(2017)。 ただし、私たちのアプローチでは、シナプスごとの統合強度をオンラインで計算し、パラメータ空間の学習軌跡全体にわたって計算します。 一方、EWCの場合、シナプスの重要性は、指定されたタスクの損失を最小限に抑えたフィッシャー情報としてオフラインで計算されます。 この違いにもかかわらず、これら2つのアプローチは、Permuted MNISTベンチマークで同様の性能をもたらしました。 これは、2つの異なる重要度の測定値間の相関関係が原因である可能性があります。

私たちのアプローチでは、個々のシナプスが単一のスカラーシナプスの重みに対応するだけでなく、それ自体が高次元の動的システムとして機能する必要があります。 このような高次元の状態により、各シナプスは学習中にタスク関連情報をインテリジェントに蓄積し、以前のパラメータ値の記憶を保持することができます。 生物学的シナプスがモデルのインテリジェントシナプスのように動作することを主張することはありませんが、神経生物学の豊富な実験データは、生物学的シナプスが現在の機械学習モデルを支配する人工スカラーシナプスよりもはるかに複雑な方法で作用することを示唆しています。 本質的に、シナプスの変化が起こるかどうか、そしてそれらが永続的にされるか、または最終的に崩壊するままにされるかどうかは、多くの異なる生物学的要因によって制御することができます。 たとえば、シナプス可塑性の誘導は、個々のシナプスの履歴とシナプス状態に依存する可能性があります。 さらに、最近のシナプスの変化は、特定の可塑性関連の化学的要因が放出されない限り、時間のタイムスケールで減衰する可能性があります。 これらの化学的要因は、最近の変化の価数または新規性をエンコードすると考えられています。 最後に、最近のシナプスの変化は、ステレオタイプの神経活動によってリセットできますが、古いシナプスの記憶は、逆転に対してますます鈍感になります。 ここでは、特定の問題に取り組むために、1つの特定の高次元シナプスモデルを紹介しました。それは、継続的な学習における壊滅的な忘却です。 ただし、これは、ニューラルネットワークの学習ダイナミクスをインテリジェントに制御するために利用できる、潜在的に複雑な動的特性を個々のシナプスに与えるために神経生物学を反映する新しい研究の方向性を示唆しています。 本質的に、機械学習では、ネットワークに深みを加えることに加えて、シナプスにインテリジェンスを追加する必要があるかもしれません。

我々のアプローチでは、個々のシナプスが単に単一のスカラーシナプス重みに対応するのではなく、それ自体が高次元の動的システムとして機能することを要求しています。 このような高次元の状態は、各シナプスが訓練中にタスクに関連する情報を知的に蓄積し、以前のパラメータ値の記憶を保持することを可能にします。 我々は、生物学的シナプスが我々のモデルの知的シナプスのように振る舞うとは主張しませんが、神経生物学の豊富な実験データは、生物学的シナプスが現在の機械学習モデルを支配している人工的なスカラー・シナプスよりもはるかに複雑な方法で作用していることを示唆しています。 本質的には、シナプスの変化が起こるかどうか、また、それが永続的なものになるかどうか、あるいは最終的に衰退するまで放置されるかどうかは、多くの異なる生物学的要因によって制御されます。 例えば、シナプス可塑性の誘導は、個々のシナプスの歴史とシナプスの状態に依存しているかもしれません。 さらに、最近のシナプスの変化は、特定の可塑性に関連する化学因子が放出されない限り、数時間の時間スケールで減衰する可能性があります。 これらの化学因子は、最近の変化の価数や新規性をコードしていると考えられています。 最後に、最近のシナプス変化はステレオタイプの神経活動によってリセットされるが、古いシナプス記憶は反転に鈍感になります。 ここで、我々は、特定の問題に取り組むために1つの特定の高次元シナプスモデルを導入しました:継続学習における破壊的忘却。 しかし、このことは、神経生物学をミラーリングして個々のシナプスに潜在的に複雑な動的特性を与え、それを利用してNNの学習変遷をインテリジェントに制御することができる研究の新たな方向性を示唆しています。 本質的には、機械学習では、ネットワークに深みを持たせるだけでなく、シナプスに知性を持たせる必要があるのではないでしょうか。

実装

著者による公式実装 https://github.com/ganguli-lab/pathint