![見出し画像](https://assets.st-note.com/production/uploads/images/157267720/rectangle_large_type_2_ea112355668deb875d79a9fbfb24a09d.png?width=1200)
NIPS: 口頭発表セッション7 - ジョン・J・ホップフィールド
14,552 文字
ようこそ、NIPSの7番目の口頭発表セッションへ。今日はジョン・ホップフィールド博士をお迎えして、アトラクターネットワークの創発的ダイナミクスについてお話しいただきます。それでは、博士をお迎えしましょう。
ありがとうございます。今回、招待していただいて非常に光栄です。単に講演するだけでなく、基調講演としてお話しできることを嬉しく思います。
エド・ポズナーとは、もちろんカルテックにいた頃からの知り合いでした。彼は神経生物学と神経ネットワークの工学的応用の交差点に大変熱心でした。
数ヶ月前に引っ越しをして、古いファイルを整理していた時に、エドの影響を示す資料を見つけました。これはカルテックでのセミナーの日程表の一部で、たぶん1985年のものだと思います。
ご覧のように、エドは何箇所かに名前が出ています。まず、午後のセミナーの基調講演を彼が行っています。また、技術的な講演の1つも担当しています。生物学と神経ネット工学の応用の両方が含まれているのがわかります。
そして下の方を見ると、ECPと打たれています。これはエドのイニシャルです。彼はプログラムを企画しただけでなく、タイプ打ちまでしたんです。これは非常にエドらしいやり方で、神経生物学と工学的な神経ネットを結びつけようとしていたんです。
神経に基づく行動の基本的なテーマをいくつか挙げましょう。
まず、すべてのコンピューターは動的システムです。状態から状態へと遷移することで計算を行います。状態とその時間的な進化が、実際に計算プロセスを担っているんです。
デジタル機械を動的システムとは考えない傾向がありますね。そこでの動的な部分は、ほとんどクロックに限られています。でも、神経生物学に近づいてクロックがなくなると、計算における動的システムの側面がより前面に出てくるんです。
カーバー・ミードは、おそらく150年から200年の学生時間を費やして、神経生物学の風味を持つアナログVLSIの開発に取り組みました。その研究全体から得られた教訓は単純でした。回路のアナログ物理特性を計算プロセスで活用できれば、少しのハードウェアでも非常に効果的になる。でも、アルゴリズムにデバイス物理を活用できないなら、カーバーの言葉を借りれば、デジタルなものを作った方がいいってことです。
生物学は計算プロセスにおいて極めて効率的です。それを数値化する必要はありませんが、生物学的ハードウェアの遅さ - だいたい1秒に1回のクロックくらい - と、利用可能なハードウェアの量を考えると、生物学的ハードウェアは驚くべき計算を行っています。これは、進化がアルゴリズムとハードウェアの動作の間に何らかの良いマッチングを見出したからに違いありません。
長期的に神経生物学から理解しようとしているのは、マクロスコピックな現象です。例えば、ラットにベルが鳴ったらレバーを押すよう教えるとします。でも、ベルやブザーの音は毎回少し違います。ラットがケージのどこにいるかも違うので、耳に入る音も違ってきます。
行動の結果、ラットがレバーを押す方法も毎回違います。歯で押したり、前足や後ろ足で押したり、鼻で押したりするかもしれません。レバーの押し方は毎回違うんです。そして、その間のすべてのニューロンの振る舞いも違います。
それでも、ベルが鳴ってからレバーが下がるまでの行動は安定しています。この神経生物学の側面を、できる限り細部を無視して理解したいんです。
大規模な物理システムは、しばしば集合的な特性を持っています。そういった場合、細部を無視して集合的な特性に関する数学を記述するのが非常に有用です。
最も完全な例は、おそらく流体力学の法則でしょう。流体力学は実際には多数の分子が衝突し、ニュートンの運動法則に従う現象です。でも、流体力学の方程式を書き下すと、分子には言及さえしません。それでいて、正確な記述になっているんです。
そのため、飛行機の翼の揚力設計にも使えるほど優れています。これは、流体力学の法則が下層の詳細から創発的に生じているからです。下層の詳細によって引き起こされているのに、理解してしまえば独自の生命を持っているかのように見えるんです。
神経生物学の側面も、同じように集合的な振る舞いや創発的な振る舞いの観点から理解できないかと考えています。個々のニューロンやシナプスの動きを追わなくても、行動を理解できるようになりたいんです。
神経生物学には、そういった側面が見え始めている場所があります。例えば、ラットの脳では - 人間でもおそらくそうですが、まだ見つかっていません - 頭の向きが特定の方向を向いているときだけ反応するセルがあります。他の方向を向いているときは反応しません。
頭部方向セルの核があって、頭の向きを追跡しているんです。おそらく100個から10万個のセルがあり、個々の反応は頭の向きだけで記述できます。つまり、集合的な座標があるんです。
実際の活動は100,000次元の空間にありますが、実際に起こる活動はその空間の低次元多様体上にあるんです。これは感覚入力が多様体上にあるからだと言えるかもしれません。
でも、この多様体はそれ以上のものです。目を閉じても、フィードバック接続を通じて頭の向きの情報を保持しているからです。つまり、感覚入力がなくても、頭の向きを追跡し続けるんです。
これは、集合的な座標が存在する生物学的な例です。
さて、計算目的で簡単な集合的な座標を開発してみましょう。私はいつも、共感できるような物理系の物理的な洞察を持つのが役立つと感じています。
だから、神経生物学の集合的な座標について完全に説明する前に、同じような集合的な座標が1970年代後半から80年代半ばにかけて、磁気バブルメモリの形でコンピューターハードウェアに存在していたことをお話ししましょう。
非常に薄い磁性ガーネットの膜を取ると、磁化は上向きか下向きを好みます。短距離相互作用ではスピンは平行を好み、長距離相互作用では反平行を好みます。そのため、システム全体を満足させる方法はありません。
結果として、ここで見られるようなドメイン構造が生まれます。上向きと下向きのスピンのストライプがあります。これは非常に巧妙な光学技術で、磁化を光学的に見ることができます。
システムが上下の磁気ストライプのパターンになっているのがわかります。磁場をかけると、ほとんどのスピンが一方向を向きますが、反対方向のスピンの小さな島 - 磁気バブルドメイン - が残ります。
これらのバブルドメインは安定していて、液体中の空気の泡と同じくらい実在感があります。力を加えてバブルを動かすこともできます。
磁気バブルドメインメモリは、バブルを作ることに成功しました。暗い線は電極で、電流を流して磁場勾配を作り出しています。そして、小さな明るい色のバブルがあちこちに押し動かされているのが見えます。
個々のスピンの動きを追う必要はありません。システムのバブルダイナミクスに興味を持つようになったんです。これは、神経ネット計算に持ち込もうとしているものと同じ種類のものです。
磁性膜のこのようなバブル状態に似たものを作ることができます。1次元か2次元のニューロンの配列を取り、ほとんどのニューロンがオフを好むけれど、バブル状の部分がオンを好むように接続を工夫するんです。
そのバブルを動かすこともできます。これが、私が作ろうとしているものです。神経生物学では「バンプ」と呼ばれています。このシステムは「バンプアトラクター」と呼ばれるものです。
これらのバンプは、磁気バブルメモリの磁気バブルが磁場勾配で動かせるのと同じように、力で動かすことができます。磁気バブルメモリのバブルは、バブルを作るのに必要な力に比べて弱い力で動かせます。そのため、バブルは実体として維持されながら、単に動き回るだけなんです。
神経生物学でも同じようなことをしようとしています。フィードバック接続を通じて安定したバブル状の状態 - バンプ状の状態 - を持つシステムを構築し、入力によってそれらを押し動かします。入力によって押し動かされるのが、計算を行う過程なんです。
さて、私が説明しようとしている計算問題は次のようなものです。
言葉を言うと、あなたはすぐにそれを認識します。聞こえた場合は認識できますし、読唇術ができる人なら、私の口の動きを見ているだけでも認識できます。
友人が50ヤード離れた場所を歩いているのを見分けることもできます。顔ではなく、歩き方で友人だと認識するんです。
よく考えてみると、生物学は時間とともに進化するパターンで満ちています。これらのパターンに対処するのは、スナップショットのようなパターンではなく、時間とともに進化するパターンを認識することによってなんです。
私はこれらを「動的パターン」と呼んで、スナップショットのようなパターンと区別します。動的パターンを難しくしているのは、通常、非常に固定されたリズムで生成されるのではなく、可変のケイデンスと持続時間を持っていることです。
そのような可変のケイデンスと持続時間にもかかわらず、パターン認識を行いたいんです。
コンピューターサイエンスの人なら、「それは簡単だ。隠れマルコフモデルを使えばいい」と言うでしょう。それでもそれほど悪くはありません。でも、誰も生物学が隠れマルコフモデルを実装していると非難したことはありません。
私は特に、話し言葉を認識する例を取り上げます。これは工学的に重要性がよく特徴づけられている問題です。また、自分の聴覚を使って問題を理解できるので、直感を得やすいです。
これは話し言葉のスペクトログラムの例です。時間は横方向に進みます。縦方向には20の異なるフィルターバンクがあります。各フィルターバンクは、特定のフィルターバンドのパワーを評価しています。
フィルターバンドは、心理物理学的なメル尺度に近い分布になっています。これはほぼ対数分布です。つまり、20のフィルターバンドがあり、最低のフィルターバンクは約250Hz、最高のものは5kHz付近に中心があります。
これらで「3」「3」「3」が見えます。あまり大きな声ではなくてごめんなさい。3つの「3」です。
これは異なる話者の「3」の違いを示しています。スペクトログラムを見ると、2人の話者の間でケイデンスにかなりの違いがあることがわかります。また、どの周波数帯が強調されているかにも違いがあります。
「30」もあります。これらは区別したいものと、同じビンにまとめたいものの典型例です。
これらを見ると、「簡単な問題だ」と思うかもしれません。違いが見えるからです。でも、まず、これは私が見つけられた最もクリーンな例に過ぎません。第二に、視覚を使っているので、脳の大部分という巨大なシステムを動員しているんです。
でも、それをどうシミュレートするかはわかりません。だから、視覚システムがそれをできるというのは本当の意味での解決にはなりません。視覚システムはそれをできますが、工学的な方法を見つける必要があるんです。
提示されている情報については既に説明しました。カーソルを探しているところですが...
私がこれからモデル化しようとしているのは、この情報をややスパース化したものです。2000の線があり、これはこのスペクトログラムの時間微分を単純に表しています。これ以上の情報はありません。単にスパース化された表現を利用可能にしているだけです。これは技術的なポイントに過ぎません。
さて、「3」の特定の部分に反応するニューロンをどのように作れるでしょうか。例えば、「3」のこの部分を選んで、このタイミングの「3」に大まかに同調し、他の時間にはあまり反応しないニューロンを作りたいとします。
簡単ですね。この特定の時間に、反応させたい信号は30次元空間のある方向を指すアナログベクトルです。その方向に平行な重みベクトルを作り、そのニューロンへの入力を信号と重みベクトルの内積にすればいいんです。
そうすれば、そのニューロンはこの時間に最も強く反応し、信号が重みベクトルに平行でない他の時間にはあまり反応しません。
特定の時間に反応するニューロンを作るのは簡単です。でも、もちろん「3」の終わりに反応するニューロンを作ったとしても、それは「イー」のような音に反応しているだけです。「0」にも同じような音がありますし、「0」の始まりにも似た音があります。
短い時間区間に反応させようとするのは、正しい方向への一歩かもしれません。でも、問題の解決には程遠いです。問題は、この全体のスペクトルにわたる情報を統合しようとすることです。単語の終わりで下す決定が、単語全体の構造を反映するようにしたいんです。
それを、簡単なニューラルネットワークで行います。概念的には、100個ほどのニューロンが一列に並んでいると考えてください。正確な数は重要ではありません。特定の問題に都合の良い数を使えばいいんです。
これらのニューロンは2つのソースから入力を受け取ります。1つは、基本的な情報を表すこれらの信号線の活動を、シナプス重みを介してリンクしたものです。これらは時間とともに変化します。
また、このネットワーク内のフィードバック接続からも入力を受け取ります。実際には、このネットワーク内のフィードバック接続がダイナミクスを支配します。
関与するニューロンは非常に単純です。発火率ベースのニューロンで、発火率は入力電流の単純なシグモイド関数です。アクション
ポテンシャルは暗黙的にしか扱いません。実際にスパイクは使いませんが、発火率とシナプスがあるので、暗黙的な発火率と暗黙的なアクションポテンシャルを使って、シナプスからの電流を計算できます。
もし実際にアクションポテンシャルがあれば、数ミリ秒続いて消えていく電流が生じるでしょう。
このような会議では、数学をあまり書き下すのを避けるようにしています。数学は、同意する大人の間で私的に行うべきものだと常に考えてきました。できる限り図を使って説明しようと思います。
さて、ケイデンスに依存せず、特定の単語を選択的に認識するシステムを作るためのプログラムを説明しましょう。
100個ほどのニューロンからなる1次元のネットワークを作り、バンプアトラクターにします。片端にバンプを初期化し、音声が入力されるとそのバンプを動かします。もしバンプが反対側の端まで移動したら、その単語を認識したことになります。
このプログラムには2つの部分があります。1つ目は、フィードバック接続によって動かせるバンプを作ることです。これは非常に簡単で、理解するための十分に発達した理論があります。
1次元のニューロンの列を作り、近くのニューロン同士は興奮性のシナプス結合を持ち、遠くのニューロンとは抑制性の結合を持つようにします。結合行列にはこのようなストライプパターンができます。
これだけで、活動のバンプをどこにでも安定させることができます。バンプは、ここにある興奮性結合によって安定化され、抑制性結合によって他の場所にバンプが生じるのを防いでいます。
バンプアトラクターを作るのは完全に簡単です。バンプの形をかなりコントロールすることもできます。私が説明しているのは、バンプの形にはあまり依存せず、バンプの存在とそれを動かせることだけに依存しているので、非常に単純なバンプアトラクターを使っています。
問題は、入力を受け取る結合セットを設計することです。バンプが列の片端から始まり、正しい単語が発声されたときだけ反対側の端まで移動するようにしなければなりません。これはちょっと厄介です。
次のような方法で進めていきます。既に説明したように、特定の時間に、この信号にはより強く反応し、この信号やこちらの信号にはあまり反応しないようなニューロンを作る結合セットを設計できます。
これを100個の異なる時間に対して行います。そうすることで、この行列全体の結合を決定できます。そして、何が起こるか試してみましょう。
これは、この特定のネットワークが「3」という話し言葉用に設計されたときに起こることです。3が発声され
ると、実際に単語はここから始まってここで終わります。バンプを列のこの端で初期化すると、信号線からの入力が滑らかにバンプを時間とともに動かすのが分かります。バンプは片端から反対側へと移動しました。
なぜこれが起こったのでしょうか。魔法ではありません。これには設計原理があります。
磁気バブルの例に戻ると、磁気バブルを動かすのは磁場です。磁場がこちら側の方が少し大きいため、適切な向きのバブルはエネルギー的に磁場の大きい方に位置したがります。
同じ方法で、私は結合を次のように組織しました。ニューロンへの入力をニューロン番号と時間の関数として見ると、時間はここに沿って進み、入力番号はこちらに沿って進みます。
音声が始まると、最初の部分では列の前方のニューロンに強い入力が行きます。少し後の部分では、列の後方のニューロンに強い入力が行きます。これらの入力はすべて弱いものです。
実際に起こっていることは次の通りです。効果的に、入力は地形を作り出し、バンプはその地形に捕らえられます。地形の底に谷があり、その谷が時間とともに動くにつれて、バンプはそれに引きずられていきます。これが計算を行っているのです。
これは、別の話者が「3」と言った場合を示しています。声はもっとゆっくりで、ケイデンスが違います。これが時間の関数としての入力の様子です。前のものほど単純ではありませんが、バンプがここから始まり、ここまで引きずられていくのが分かります。単語の終わりに列の反対側に到達します。
これはあまり役に立ちませんね。この段階で、PCが上手く動いて嬉しいです。
おそらくファイルが破損しているのでしょう。ここからは記憶を頼りに説明を続けます。
さて、システムに「3」ではなく別の単語を提示したらどうなるでしょうか。「3」の場合は、テンプレートにマッチして、谷が系統的に引きずられ、バンプが片端から反対側へ移動しました。これは谷に沿って移動したからです。
しかし、「0」のような別の単語を使うと、時間の関数としての入力パターンは非常に異なります。まだ時間の関数としての入力パターンはありますが、斑点状で、片端から反対側への経路がありません。
その結果、「3」を認識するように設計されたシステムに「0」と言うと、入力はバンプを片端から反対側へ動かすことに成功しません。
この2つの例を選んだ理由は、「3」と「0」の両方に強い「イー」の音があるからです。最終的に「3」を認識するとき、「イー」に反応するように設計されたニューロンがオンになります。
しかし、「0」にも非常に早い段階で強い「イー」の音があるのに、それらのニューロンは静かなままです。
これは、信号世界からの入力が実際にはかなり弱いからです。ニューロンをオンにする唯一の方法は、バンプを動かすことです。そして、バンプを動かす唯一の方法は、ニューロンがいずれにせよオンになろうとしているときだけです。
だから、「0」の「イー」の部分が来たとき、バンプは列の片端近くにいます。「0」の「イー」の部分は、遠く離れたニューロンをオンにしようとしますが、それらは単にバイアスがかかりすぎていて、信号は基本的に無視されてしまいます。
つまり、このシステムは信号が神経活動を作り出すのではなく、信号が進行中の活動を場所から場所へ動かすことに成功し、それによって活動パターンを変化させる、非常に集合的な方法で動作しているのです。
例を挙げて説明しましょう。このシステムを作ると、バンプが特定の場所に沿って動きます。特定のニューロンがしばらくの間オンになり、その後オフになります。これが計算プロセスです。
ここで、そのニューロンへの信号入力を取り除き、フィードバック接続だけを活性化したままにしたらどうなるでしょうか。
まず、認識プロセスはそれでも行われます。なぜなら、システム全体の動作モードは非常に集合的だからです。
さらに興味深いのは、信号が入力されていないそのニューロンでさえ、信号が入力されていた場合と非常によく似た時間関数としての活動パターンを持つことです。
これは、活動パターンが主にフィードバック接続によって生成されているからです。バンプがこのニューロンを通過するとき、そのニューロンはしばらくの間オンになり、バンプが去るとオフになるのです。
これに関連して、例えば一次視覚皮質を思い出します。そこには4層と呼ばれる細胞層があり、目からの主要な入力を受け取ります。これが一次視覚皮質に信号が入ってくる場所です。
入力してくる信号がその層の活動を支配すると思うかもしれません。しかし、実際にはその層は、フィードフォワード接続からよりも、フィードバックループからの興奮性接続の方が多いのです。
つまり、一次視覚皮質のような場所を見ると、感覚入力がニューロンへの主要な入力ではない、非常に強くフィードバックされたシステムを見つけることができるのです。
スライドの不具合のおかげで、実際の数学の一部を説明するのを避けられて幸いです。言葉だけで説明しましょう。
このバンプの動きを説明してきました。あらゆる種類のニューロンをシミュレーションし、このバンプが動いていることに気づきました。バンプを使ってものを設計するのを助けましたが、シミュレーションはすべてのニューロンで行いました。
実際には、個々のニューロンの応答を評価せずに解くことができる、バンプの運動方程式のセットを見つけることができます。これは、ある意味で流体力学の創発的な方程式に類似した、バンプの運動方程式のセットです。
すべてのニューロンを詳細に追跡せずに、システムの挙動を予測し、分析し、使用することを可能にする方程式のセットです。
数学を楽しみにしていた方々には申し訳ありません。約3日前に、この主題をすべてカバーする論文の最初の草稿をResearchGateにアップロードしました。そこで必要な数学をすべて見つけることができます。
講演の冒頭で、アルゴリズムが利用可能なデバイス物理を明示的に利用する場合、ハードウェアやニューロンでの計算の実装が容易になると主張しました。今、その主張に具体的な実体を与えることができます。
動的パターン認識の問題は、隠れマルコフモデルを使用し、汎用デジタル機械上でそのアルゴリズムを実装することで、おおよそ解決できます。しかし、デジタル機械の低レベルハードウェアダイナミクスと隠れマルコフアルゴリズムの間には直接的な関係がありません。実際、そのような関係がないことが、汎用デジタル機械を有用にしているのです。
対照的に、ニューロン活動を評価せずに、この変数の動きを信号入力の観点から記述する集合方程式 - 私がうまく書き下せなかったものですが - は、動的パターン認識を解決するための異なるアルゴリズムを記述しています。このアルゴリズムの基礎は、時間依存の微分方程式を解くことを含みます。
アルゴリズムを定義する数学的微分方程式の解と、単純なニューラルネットワークの集合変数の挙動の間には1対1の対応があります。したがって、このアルゴリズムは隠れマルコフモデルとは異なり、少数のニューロンのネットワークによって効率的かつ堅牢に実装できるのです。
バンプの動きや集合座標を操作するアイデアを使えば、動的パターン認識以外にもさまざまなことができます。ほんの少し前進するだけで、他にもできることがたくさんあることがわかります。
例えば、次のようなことができます。1次元に沿って動くバンプ活動を持つネットワークを作りました。そのバンプは信号によってここからここへと動きました。同様に、バンプ活動が動いてY字分岐に到達し、そこから上か下に動くようなネットワークを作ることもできます。
単語認識の観点から言えば、「wonderful」と「oneself」のような単語は、最初の音節が共通していて、共通の語幹があり、その後で分岐します。そのような単語認識をハードウェアで実現したいかもしれません。
また、システムの一部にバンプがあり、別の部分への入力がバンプの動きの選択を継続的に制御するようなものを作ることもできます。そうすると、突然、バンプの動きに基づいて計算機を構築する領域に入ります。
神経生物学では、私が話してきたようなものに根ざしたバンプの動きを最も強く探すべき場所は、海馬でしょう。そこには場所細胞があり、適切にプロットすると、ニューロンの活動がそのニューロンが特別に調整されている場所に位置しているのが見えます。
このディスプレイでは、動物が動き回ると、活動のバンプが動き回っているように見えます。これを説明しましたが、神経生物学ではしばしば、場所細胞が単に入力によって制御されているかのように描写されます。
しかし、もし繰り返しのある入力があれば、単語認識システムで繰り返すシラブルを探すのと同じように、空間的なアリーナを開発できます。そうすると、2番目の「な」は全く同じシナプス結合を持つことになりますが、単語のどこにあるかによって異なるニューロンが活性化されるでしょう。
同様に、場所細胞が単に感覚システムに反応しているのではなく、実際には集合座標の例であるかどうかを調べることができます。
仮想現実環境で繰り返しパターンを使用し、ここにいるのかここにいるのかの問題が、単なる感覚信号ではなく、環境に沿って進むことを含むようにすることで、これを調べることができます。
さて、そろそろまとめに入りましょう。
物理的であれ生物学的であれ、大規模システムの堅牢な創発的挙動は、そのシステムを構成するより微視的な要素の挙動と相互作用の結果です。
神経科学の最大の課題の1つは、異なるレベル間の因果関係を理解することです。例えば、言語獲得が脳の構造とニューロンやシナプスの動的特性の結果であることを理解することです。
疑いなく、複数の中間的な創発レベルが必要になるでしょう。
私は、創発の1つの実践的で扱いやすい例に焦点を当てました。それは、低次元の活動多様体の動きを考えることの有用性です。これは神経生物学のいくつかの側面を理解するためと、人工ニューラルネットワーク計算のツールとしての両方に役立ちます。
エド・ポズナーが、工学と生物学がまだ1つの傘の下にあることを喜んでくれることを願っています。
ありがとうございました。
質問の時間があります。マイクに近づいて質問してください。
質問者: ジョン、感覚入力を力として考え、多様体上の軌道に沿ってバンプを動かすことについて話されました。時にはバンプの位置を絶対座標でリセットしたいこともあると思います。バンプの位置をリセットする何らかのメカニズムはありますか?また、押し進めることもできますか?
ホップフィールド: はい、メレディス。バンプを動かす方法は複数あります。もちろん、バンプを消去して別の場所に挿入することもできます。
第二に、非対称シナプスによってバンプは動かせます。ここでは対称的なネットワークを作ったので、バンプは中立的に安定していました。
バンプを作るときに、小さな非対称性を入れることで、元の位置に戻す第二の線を調整できます。単語を認識しようとしているなら、実際にはループでバンプアトラクターを作り、ここから非常に速い前方シナプスの非対称性を付けます。そうすると、ここに戻ってくるでしょう。
つまり、システムが自己再初期化する安定点が1つあるんです。
バンプに力を加える様々な方法があります。信号入力だけに頼る必要はありません。
質問者: 脳の中でこれができる場所について言及されましたが、海馬内で現在これを示す証拠があると思われますか?
ホップフィールド: 海馬での実験をしてほしいと思っています。そのことについて話して、誰かにやってもらおうとしています。
仮想現実で、一方の壁にはあらゆる種類の装飾があり、もう一方の壁にはABC、ABC、ABCと繰り返されているとします。場所細胞を学習し、ここに場所細胞ができ、ここにも場所細胞ができます。
これらの場所細胞は、こちら側では両方ともBの入力を持ちますが、この壁では異なるものがあります。
それを学習した後、仮想現実に戻り、この壁をオフにします。そして、その中を移動すると、場所細胞がまだABC、ABCと反応するかどうかが問題です。
Bの入力があった場所細胞と、こちらにあった場所細胞は、全く同じ入力を持つことになります。一方が一点で活性化し、もう一方が別の点で活性化するでしょうか。
これは、動くバンプのアイデアと、フィードバック活動を通じてバンプを追跡することの非常に強力なデモンストレーションになるでしょう。
質問者: ありがとうございます。ジョン、「3」を認識するバンプをどのように設計したのか、少し説明していただけますか?シナプスに対する学習アルゴリズムを使用したのか、それともハードワイヤードしたのですか?
ホップフィールド: 私は特定の「3」をテンプレートとして使用しました。方程式を書き下すとき - あなたには見えませんでしたが - ニューラルダイナミクスをすべて解く必要のないアルゴリズムを定義する方程式があります。
それによって、学習アルゴリズムを開発できるはずです。システムをうまく機能させるには、接続を単に1つの特定のアイテムのテンプレートから取るのではなく、データベースで開発する必要があると思います。
学習プログラムを開発する勇気はありませんでした。テンプレートでデモンストレーションできたので、テンプレートでデモンストレーションしました。でも、学習が必要だと叫んでいるようなものです。
質問者: そうですね。ところで、素晴らしい講演でした。スライドなしでそれができたかどうか分かりません。
先ほどの質問で、海馬がバブル計算のようなことをしている可能性があると説明されました。しかし、単語認識は海馬だけで起こっているわけではないでしょう。
これが聴覚皮質で実装されているのか、あるいは複数の脳領域を統合する高次のものなのか、どのようにお考えですか?
ホップフィールド: ウィリアムズ、海馬に神聖なものは何もありません。海馬の良いところは、存在定理を与えてくれることです。つまり、適切な特性を持つニューラルネットワークを簡単に構築できることを示しています。
それは単に典型的な古い皮質の一片から作られたものです。おそらく、古い皮質のどの部分でも、少なくとも多くの良い部分で、この種の方法で使用できるでしょう。
だから、私はそれを存在定理として使用しています。動的パターン認識の聴覚が海馬で行われていると示唆しているわけではありません。
質問者: ありがとうございます。
もし正しく理解したなら、「3」を認識するための1つの要件は、すべての音素を順番に見ることで、バンプを始めから終わりまで押し進めることができることですね。
ご存知のように、テンプレートに対して動的時間伸縮を行ったり、隠れマルコフモデルを使用したりする他の方法で「3」を認識する方法もあります。
これらの方法は、「R」が省略されたり、ノイズでマスクされたりした場合にも、少し頑健かもしれません。なぜなら、前置詞と接尾辞の両方が「R」があるはずだと言っているからです。
そのため、そこにあるものが「R」にあまり似ていなくても、特に単語全体を説明する他の良い方法がない場合は、許容する気になるでしょう。
私が気になるのは、あなたが説明したシステムの頑健性です。この場合、地形が完璧でない場合、何が起こるのかという質問です。
ホップフィールド: お見せできなかったものの1つは、同じ話者が「1」と「Z」を同時に発音した場合の地形を判断したことです。それでも1つを認識することができます。谷は劣化していますが、活動を一端から他端へ引きずる谷を見ることができます。
つまり、完璧さに依存しているわけではありません。
質問者: それは余分な入力を得ている場合ですね。私が心配しているのは、このシステムが連言的に見えるということです。入力の1つの部分が欠けていると、全体が失敗するかもしれません。
ホップフィールド: 入力の1つの部分が欠けている場合、バンプはその位置にとどまります。入力を長時間切ってしまうと、谷が実際にバンプを
さらに動かす理由の1つになります。つまり、そこにはいくらかの許容性があります。1、2、3と認識を引きずる必要はなく、2が欠けていても1から3に行けないということはありません。より優雅にギャップを橋渡しします。
質問者: その質問の裏側として、間に何かがある場合はどうでしょうか。例えば、「think really hard three」と言ったとすると、「three」という単語の間に「ink」があるわけですが、それを認識しますか?あるいは、仮説的に、スタート地点に向かってこれらのアトラクターの1つを持つことで、それを取り除くことができるかもしれません。
ホップフィールド: もう一度言ってもらえますか?
質問者: 「think really hard three」と言っています。
ホップフィールド: 時間軸が大きく歪んでいるものは問題ありません。基本的に、谷がこのように始まって、こんな風に進むなら、谷をより遅くたどるだけです。
問題になるのは、時間軸の単なる歪みではなく、信号の破壊です。
質問者: まあ、破壊というわけではありませんが、例えば30秒間の他の音節があって、その後に「three」があるような場合を想像できます。それは「three」という単語ではありません。
ホップフィールド: システムを構築する際、信号によってバンプを動かす動きがあります。また、シナプス接続からの弱い動きもあり、バンプを動かすのに十分な駆動力がない限り動きません。
つまり、期待する信号を得るためには閾値があるのです。様々な調整パラメータがあります。どれくらうまく機能するか、正確にはわかりません。完璧には機能しませんが、少なくともその背後に運動方程式があるので、実際に実装しているアルゴリズムがよく定義されています。
質問者: つまり、時間伸縮をしたいので、「three」をそのまま認識できるというのはOKですね。問題ないですよね。でも、例えば「three...」のように間に無音があっても認識できるでしょうか?バンプを後ろに押し戻すような何かが必要なように思えます。無関係な何かが言われたときにそうするような。
ホップフィールド: それは、フィードバック結合に小さな非対称性を入れることで行いました。バンプを中立的に安定にするのではなく、ここからあそこへの非常に速い前方シナプスの非対称性を作ることができます。そうすると、ここに戻ってくるでしょう。
これによって閾値が設定され、本当に駆動力がないと前に進まないようになります。
質問者: でも、それでもランダムノイズと、ただ遅くしたり間延びしたりしているシーケンスを区別することはできないのではないでしょうか。これらを区別したいと思うのですが。
ホップフィールド: 時間を任意に引き伸ばすことはできません。そのように設定しているのは、ランダムノイズが「three」として認識されるのを防ぐためです。
質問者: わかりました、ありがとうございます。
議長: では、もう一度スピーカーに拍手をお願いします。
ホップフィールド: どうもありがとうございました。