Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
解釈を構築するために、考えられる 3D エッジごとに 1 つずつ、3D ライン ユニットのセットを導入します。各 2D ライン ユニットは複数の 3D ラインに対応できるため、一度に 1 つの 3D ラインのみをアクティブにする必要があるため、それらの間で競合を確保しながら関連するすべての 3D ラインを励起する必要があります。これを達成するために、2D ライン ユニットからすべての候補 3D ラインへの興奮性接続を確立し、競合を可能にする抑制性接続を確立します。
ただし、ニューラル ネットワークの配線はまだ完了していません。 3D エッジがどのように接続されるかに関する情報を組み込む必要があります。たとえば、2 つの 2D ラインが画像内で収束する場合、それらは接合点で同じ深さのエッジに対応する可能性が高くなります。このような一致する 3D エッジをサポートする追加の接続を導入することで、この期待を表現できます。
さらに、3D エッジが直角に結合するという一般的な現象を利用することもできます。深さが一致し、直角を形成する 2 つの 3D エッジ間により強い接続を確立することで、それらの結合関係を示すことができます。太い緑色の線で表されるこれらの接続は、ワールド内のエッジがどのように接続され、一貫した 3D オブジェクトの形成に寄与するかについての情報を提供します。現在、私たちのネットワークには、ワールド内のエッジの配置と、エッジを投影して画像内に線を作成する方法に関する知識が含まれています。このネットワークに画像を入力すると、解釈が生成されるはずです。私が提示している画像の場合、ネッカー キューブとして知られる 2 つの異なる解釈があります。ネットワークは 2 つのエネルギー最小値を示し、それぞれがネッカー キューブの可能な解釈の 1 つに対応します。
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
For cool updates on AI research, follow me at https://twitter.com/iamvriad.Lecture from the course Neural Networks for Machine Learning, as taught by Geoffre...
講義 10.2 — 専門家の混合
講義 10.2 — 専門家の混合 [機械学習のためのニューラル ネットワーク]
1990 年代初頭に開発された混合専門家モデルは、それぞれがデータの異なる部分に特化した複数のニューラル ネットワークをトレーニングします。このアイデアは、データ体制ごとに 1 つのニューラル ネットを用意し、マネージャー ニューラル ネットが入力データに基づいてどのスペシャリストを割り当てるかを決定するというものです。このアプローチは、広範なデータを活用して予測を改善できるため、データ セットが大きくなるとより効果的になります。トレーニング中、モデルの重みが強化されて、パフォーマンスが向上するケースに焦点が当てられます。この特殊化により、個々のモデルは特定の領域では優れているものの、他の領域ではパフォーマンスが低下します。重要なのは、各専門家が他の専門家よりも優れている場合の正しい答えを予測することに重点を置くことです。
モデルの範囲には、ローカル モデルとグローバル モデルがあります。最近傍モデルと同様に、ローカル モデルは特定のトレーニング ケースに焦点を当て、予測のためにその値を保存します。 1 つの多項式をすべてのデータに当てはめるようなグローバル モデルはより複雑で、不安定になる可能性があります。その間には、さまざまなレジームとさまざまな入出力関係を持つデータセットに役立つ中間複雑度モデルがあります。
異なるモデルを異なるレジームに適合させるには、トレーニング データを各レジームを表すサブセットに分割する必要があります。入力ベクトルのみに基づくクラスタリングは理想的ではありません。代わりに、入出力マッピングの類似性を考慮する必要があります。入出力マッピングに基づくパーティショニングにより、モデルは各レジーム内の関係をより適切に捉えることができます。
エラー関数は 2 つあります。1 つはモデルの協調を促進するもので、もう 1 つは専門化を促進するものです。協力を促進するには、すべての予測子の平均をターゲットと比較し、差を最小限に抑えるために予測子を一緒にトレーニングすることが含まれます。ただし、モデルが各予測子を個別にトレーニングするよりも強力な場合、これは過学習につながる可能性があります。対照的に、特殊化を促進する誤差関数は、各モデルの出力をターゲットと個別に比較します。マネージャーは、各モデルに割り当てられる重みを決定します。これは、そのモデルが選択される確率を表します。ほとんどの専門家は、最終的にほとんどのターゲットを無視し、パフォーマンスが良好なトレーニング ケースのサブセットのみに焦点を当てることになります。
専門家混合モデルのアーキテクチャは、複数の専門家、マネージャー、およびソフトマックス層で構成されます。マネージャーは、入力データに基づいて各専門家を選択する確率を決定します。誤差関数は、専門家の出力とマネージャーからの確率を使用して計算されます。誤差関数を微分することで、専門家や管理者を訓練するための勾配を得ることができます。特定のケースについて確率が低い専門家は、パラメータを維持しながら小さな勾配を持ちます。ゲーティング ネットワークの出力に関して微分することで、確率に基づいた特殊化が実現します。
混合モデルに基づくより複雑なコスト関数があり、これにはガウス予測と最尤推定が含まれます。この関数は、専門家の予測分布の混合の下で目標値の対数確率を最大化します。目標は、コスト関数として負の対数確率を最小化することです。
専門家の混合モデルは、さまざまなデータ体制に特化したニューラル ネットワークを活用し、大規模なデータ セットを効果的に利用して予測を改善します。
講義 10.3 — 完全ベイズ学習の考え方
講義 10.3 — 完全ベイジアン学習の考え方 [機械学習のためのニューラル ネットワーク]
このビデオでは、完全なベイジアン学習とその仕組みについて説明します。完全なベイジアン学習では、単一の最適な設定を検索するのではなく、考えられるすべてのパラメーター設定にわたって完全な事後分布を見つけることを目的としています。ただし、ニューラル ネットのような複雑なモデルの場合、この分布の計算は大量の計算を要します。事後分布が得られたら、事後確率で重み付けされたさまざまなパラメーター設定からの予測を平均することで予測を行うことができます。このアプローチは計算量が多くなりますが、データが限られている場合でも複雑なモデルを使用できるようになります。
過学習は、複雑なモデルを小さなデータセットに当てはめるときによく発生する問題です。ただし、パラメータ全体の完全な事後分布を取得することで、過剰適合を回避できます。頻度主義的なアプローチでは、モデルのフィッティングが最適なパラメーター設定を見つけることを意味すると仮定して、データが限られている場合はより単純なモデルを使用することを提案します。ただし、完全な事後分布では、データが少なくても、パラメーター設定が異なると大きな事後確率が生じるため、予測があいまいになる可能性があります。より多くのデータを収集するほど、事後分布は特定のパラメーター設定にさらに焦点を当てるようになり、より正確な予測につながります。
過学習の例には、5 次多項式を 6 つのデータ点に当てはめることが含まれており、これはデータを完全に当てはめているように見えます。対照的に、自由度が 2 つしかない直線はデータにうまく適合しません。ただし、5 次多項式の適切な事前分布から開始して完全な事後分布を計算すると、より曖昧ではありますが、より合理的な予測が得られます。事後分布内のさまざまなモデルは、特定の入力値でさまざまな予測を行い、平均すると、緑の線によって行われる予測とほぼ一致します。
ベイジアンの観点からは、収集されたデータの量がモデルの複雑さに関する以前の信念に影響を与えるべきではありません。いくつかのパラメーターを使用してニューラル ネットワークで完全なベイジアン学習を近似することにより、グリッド ベースのアプローチを使用できます。パラメーター空間上にグリッドを配置し、各パラメーターにいくつかの代替値を許可します。これらの値の外積により、パラメーター空間内のグリッド ポイントが得られます。データの予測における各グリッド点のパフォーマンスを評価し、その事前確率を考慮して、事後確率を割り当てます。この方法は計算コストがかかるにもかかわらず、勾配降下法と局所最適化の問題を回避します。データが限られている場合、最尤法または最大事後確率法よりも優れたパフォーマンスを発揮します。
テスト データを予測するには、すべてのグリッド ポイントの確率を合計することによって、テスト入力が与えられた場合のテスト出力の確率を計算します。データ以前の格子点の確率に、入力と格子点を与えられたテスト出力を取得する確率を乗算すると、各格子点の予測の重みが決まります。また、テストの答えを生成する前にネットの出力を変更する可能性も考慮します。
完全なベイジアン学習を示す提供された画像では、4 つの重みと 2 つのバイアスを持つ小さなネットが示されています。重みとバイアスごとに 9 つの可能な値を考慮すると、パラメーター空間には 9 の 6 乗のグリッド点が含まれることになります。各グリッド点について、すべてのトレーニング ケースについて観測された出力の確率を計算し、そのグリッド点に固有の事前確率を掛けます。これらの確率を正規化すると、すべてのグリッド点にわたる事後確率が得られます。最後に、これらのグリッド点を使用して予測を行い、各予測を事後確率で重み付けします。
講義 10.4 — 完全なベイズ学習を実践的にする
講義 10.4 — 完全なベイジアン学習を実践する [機械学習のためのニューラル ネットワーク]
このビデオでは、数千、さらには数百万の重みを持つ大規模なニューラル ネットワークに対して完全なベイジアン学習を実用化する方法を説明します。使用される手法はモンテカルロ法ですが、最初は奇妙に思えるかもしれません。乱数発生器を使用して、ランダムな方法で重みベクトルの空間を探索しますが、コスト関数の下降にバイアスがかかります。正しく実行された場合、このアプローチには注目すべき特性があります。それは、事後分布における確率に比例して重みベクトルをサンプリングします。多数の重みベクトルをサンプリングすることにより、完全なベイジアン法の適切な近似を得ることができます。
パラメータの数が増加すると、パラメータ空間内のグリッド点の数が指数関数的に増加します。したがって、ほとんどのパラメーター ベクトルを非常にありそうもないものにレンダリングするのに十分なデータがある場合、いくつかのパラメーターを超えるグリッドを作成することは現実的ではありません。代わりに、予測に大きく貢献するグリッド ポイントのごく一部を評価することに集中できます。ベイジアン学習を実現可能にするアイデアは、事後確率に従って重みベクトルをサンプリングすることです。方程式内のすべての項を合計する代わりに、合計から項を抽出することができます。サンプリングされているかどうかに応じて、各重みベクトルに 1 または 0 の重みを割り当てます。サンプリングされる確率は重みベクトルの事後確率に対応し、正しい期待値が得られます。
右側に示されている標準的なバックプロパゲーションは、勾配に沿って移動し、コスト関数を下降させることによって、最初の点から最後の単一点までのパスをたどります。対照的に、サンプリング方法では重みが更新されるたびにガウス ノイズが導入され、重みベクトルがさまよって重み空間を継続的に探索します。この徘徊行動は低コストの地域を好み、可能な限り下り坂に移動する傾向があります。重要な問題は、ウェイトが空間内の各点をどのくらいの頻度で訪問するかということです。赤い点は、さまよっている間に取得されたサンプルを表しており、固有のノイズにより最低コスト領域にない可能性があります。しかし、十分な調査の後、マルコフ連鎖モンテカルロの注目すべき特性が明らかになります。それは、重みベクトルが真の事後分布からの不偏サンプルになるということです。事後分布の下で確率の高い重みベクトルは、可能性の低い重みベクトルよりも赤い点で表される可能性が高くなります。マルコフ連鎖モンテカルロとして知られるこの手法により、数千のパラメーターを使用したベイズ学習の使用が可能になります。
前述のガウス ノイズを追加する方法は、ランジュバン法と呼ばれます。これは効果的ではありますが、最も効率的なアプローチではありません。信頼できるサンプルを取得する前に重みベクトルが空間を探索するのに必要な時間を短縮する、より洗練された方法が利用可能です。そのようなアプローチの 1 つは、完全なベイズ学習でミニバッチを使用することです。ランダムなミニバッチでコスト関数の勾配を計算すると、サンプリング ノイズを含む不偏推定値が得られます。このサンプリング ノイズを使用して、マルコフ連鎖モンテカルロ法で必要なノイズを提供できます。 Welling と共同研究者による賢明なアイデアにより、ミニバッチ法を使用して重みの事後分布から効率的にサンプリングすることが可能になります。この進歩により、トレーニング プロセスを完了するためにミニバッチによるトレーニングが必要な、はるかに大規模なネットワークでも完全なベイジアン学習が実現可能になります。
完全なベイズ学習でミニバッチを使用すると、いくつかの利点があります。ランダムなミニバッチのコスト関数の勾配を計算する場合、サンプリング ノイズを使用して不偏推定値を取得するだけでなく、ミニバッチ法の効率も活用します。これは、完全なベイズ学習では訓練することが不可能な、より大規模なネットワークを訓練できることを意味します。
Welling と彼の共同研究者によって達成された画期的な進歩により、ミニバッチ法を使用した重みの事後分布からの効率的なサンプリングが可能になりました。彼らの賢いアイデアは、ミニバッチ勾配推定に固有のサンプリング ノイズを利用して、マルコフ連鎖モンテカルロ法で必要なノイズとして機能します。このノイズを適切に組み込むことで、事後分布から信頼性の高いサンプルを取得することに成功し、大規模なネットワークで完全なベイジアン学習を実用化しました。
この進歩により、ミニバッチを使用して数千、さらには数百万の重みを持つニューラル ネットワークをトレーニングし、重みに対する事後分布からサンプルを取得することが可能になります。これは、大量の計算リソースを必要とする大規模な問題を扱う場合に特に有益です。完全なベイジアン学習を通じて不確実性を組み込むことができるため、モデル予測をより包括的に理解でき、意思決定の向上につながる可能性があります。
完全なベイジアン学習は、マルコフ連鎖モンテカルロなどのモンテカルロ法を活用することで、大規模なニューラル ネットワークで実用化できます。事後確率に従って重みベクトルをサンプリングすることにより、完全なベイズ法を近似し、モデルの不確実性に関する貴重な洞察を得ることができます。ミニバッチ手法の導入により、重みの事後分布からの効率的なサンプリングが実現できるようになり、完全なベイジアン学習をより大規模なネットワークに適用できるようになりました。
講義 10.5 — ドロップアウト
講義 10.5 — ドロップアウト [機械学習のためのニューラル ネットワーク]
ドロップアウトは、各モデルを個別にトレーニングすることなく、多数のニューラル ネットワーク モデルを組み合わせることができる優れた方法です。このアプローチでは、隠れユニットのランダムなサブセットがトレーニング ケースごとにドロップアウトされ、ケースごとに異なるアーキテクチャが生成されます。これにより、すべてのトレーニング ケースに固有のモデルが作成され、テスト中にこれらのモデルをトレーニングして効率的に平均化する方法について疑問が生じます。
複数のモデルの出力を組み合わせる 2 つの方法は、出力確率を平均する方法と、確率の幾何平均を使用する方法です。この方法では、重みの共有が重要な役割を果たします。ドロップアウトは、ニューラル ネットワークを平均化する効率的な方法を提供しますが、正しいベイジアン アプローチほどのパフォーマンスは得られない可能性があります。トレーニング中に、隠れたユニットが 0.5 の確率でランダムにドロップアウトされ、その結果、膨大な数のアーキテクチャが重みを共有することになります。ドロップアウトは、ほとんどのモデルがサンプリングされず、サンプリングされた各モデルが 1 つのトレーニング サンプルのみを受け取るモデルの平均化と見なすことができます。モデル間の重み共有により、モデルが効果的に正規化されます。テスト時には、すべての隠れユニットが使用されますが、考えられるすべてのモデルからの予測の幾何平均を計算するために、出力される重みは半分になります。各レイヤーに 0.5 のドロップアウトを適用することで、ドロップアウトを複数の非表示レイヤーに拡張できます。この近似は、個別のドロップアウト モデルを平均するよりも高速ですが、良好な近似を提供します。
さらに、ドロップアウトは、入力を維持する確率がより高い入力層に適用できます。この手法はすでにノイズ除去オートエンコーダーで使用されており、良好な結果を示しています。ドロップアウトは、ディープ ニューラル ネットワークにおけるエラーを削減し、過剰学習を防ぐのに効果的であることが示されています。これにより、隠れユニットの特殊化が促進され、新しいテスト データの一般化が不十分になる可能性がある複雑な共適応が防止されます。ドロップアウトは、隠れユニットが他の隠れユニットのさまざまな組み合わせで動作するように強制することで、個別に有用な動作を促進し、特定のコラボレーションへの依存を妨げます。このアプローチでは、各ユニットが独自のわずかに有用な方法で貢献できるため、ドロップアウト ネットワークのパフォーマンスが向上し、優れた結果が得られます。
ドロップアウトは、ニューラル ネットワーク モデルをトレーニングおよび結合するための強力な手法です。重み共有と隠れユニットのランダムなドロップアウトを通じてモデルを正規化することで、過学習の課題に対処します。ドロップアウトは、トレーニング ケースごとに多様なアーキテクチャを作成することで、個々のユニットの専門化を促進し、複雑な同時適応を軽減します。モデルの出力確率を平均するプロセス、または幾何平均を使用するプロセスにより、アンサンブルのような効果が得られ、ネットワークの全体的なパフォーマンスが向上します。ドロップアウトは正しいベイジアン アプローチと同じレベルのパフォーマンスを達成できない可能性がありますが、実用的で効率的な代替手段となります。複数の隠れ層に適用すると、各層でドロップアウト確率 0.5 でドロップアウトを使用できます。 「平均ネット」として知られるこの近似は、ドロップアウトの利点と高速な計算を効果的に組み合わせます。これは、計算リソースが限られている場合に特に役立ちます。
さらに、入力を保持する確率が高いドロップアウトを適用することで、ドロップアウトを入力層まで拡張することができます。この手法はオーバーフィッティングの防止に役立ち、さまざまなアプリケーションで成功を収めています。ドロップアウトはトレーニング データのパフォーマンスを向上させるだけでなく、目に見えないテスト データへの一般化も強化することに注意することが重要です。個々のユニットの行動を促進し、複雑な共適応を減らすことにより、ドロップアウト モデルは、新しい未確認のサンプルに対して良好に機能する傾向があります。
ドロップアウトは、ニューラル ネットワーク モデルを組み合わせるための実用的で効果的な方法です。隠れユニットをランダムにドロップアウトし、個々のユニットの動作を促進することにより、ドロップアウトは過剰適合を緩和し、汎化を改善します。そのシンプルさと効率性により、ディープ ニューラル ネットワークをトレーニングするための貴重なツールとなります。
講義 11.1 — ホップフィールド ネット
講義 11.1 — ホップフィールド ネット [機械学習のためのニューラル ネットワーク]
このビデオでは、プレゼンターがホップフィールド ネットワークと、1980 年代のニューラル ネットワークへの関心の再燃におけるその役割について紹介します。ホップフィールド ネットワークは、活動の分散パターンとして記憶を保存するために使用される単純なデバイスです。これらは、バイナリしきい値単位と反復接続を備えたエネルギーベースのモデルです。
非線形ユニットと反復接続を含むネットワークの解析は、安定状態への安定、振動、さらにはカオスなどのさまざまな動作のため、困難になる可能性があります。しかし、ホップフィールドと他の研究者は、接続が対称であれば、ネットワークのバイナリ構成ごとにグローバル エネルギー関数を定義できることに気づきました。バイナリしきい値決定ルールを適切なエネルギー関数と組み合わせると、ネットワークのエネルギーが下り坂になり、最終的にエネルギー最小値に到達します。エネルギー関数は、接続重みと接続されたニューロンのバイナリ状態の積を表す局所的な寄与で構成されます。
エネルギーの最小値を見つけるために、ホップフィールド ネット内のユニットがランダムな順序で一度に 1 つずつ順次更新されます。各ユニットは、グローバル エネルギーが最低になる構成に基づいてその状態を計算します。この逐次的な更新により、ユニットがエネルギーを増加させて発振を引き起こす可能性のある同時決定を行うことが防止されます。ホップフィールド ネットワークは、メモリがネットワーク内のエネルギー最小値に対応するため、メモリの保存に適しています。メモリは部分的または破損している可能性がありますが、バイナリしきい値決定ルールによりメモリをクリーンアップして完全なメモリに復元できます。この連想メモリにより、部分的なコンテンツ情報に基づいて保存されたアイテムへのアクセスが可能になります。
ホップフィールド ネットには、ハードウェアの損傷に対して堅牢な特性があり、いくつかのユニットを取り外しても引き続き適切に機能します。ネットワーク内の重みは、少数の骨から恐竜を再構成するのと同様に、ニューロンの状態がどのように適合するかに関する情報を提供します。ホップフィールド ネットにおける記憶の保存ルールは単純です。アクティビティの積に基づいてユニット間の重みを増分することにより、バイナリ状態ベクトルを保存できます。このルールではデータのパススルーが 1 回だけ必要なため、オンライン ルールになります。ただし、これは長所と短所の両方がある誤り訂正規則ではありません。
ホップフィールド ネットワークは、メモリを保存するための直接的なアプローチを提供し、メモリをさまざまなアプリケーションにとって価値のあるものにする興味深い特性を備えています。
講義 11.2 — 偽の最小値への対処
講義 11.2 — 偽の最小値の処理 [機械学習のためのニューラル ネットワーク]
このビデオでは、ホップフィールド ネットのストレージ容量と、それが偽メモリによってどのように制限されるかについて説明します。偽の記憶は、近くのエネルギー最小値が結合し、間違った場所に新しい最小値が作成されるときに発生します。これらの偽の最小値を排除する取り組みにより、基本的なホップフィールド ネットよりも複雑なシステムでの興味深い学習方法が生まれました。
また、ホップフィールド ネットの容量増加に関連した歴史的な再発見についても触れます。記憶容量を強化しようとする物理学者は、ホップフィールドが記憶記憶装置としてホップフィールド ネットを発明した後に最初に開発されたパーセプトロン収束手順に遭遇しました。
完全に接続されたネットワークのホップフィールド ストレージ ルールを使用したホップフィールド ネットの容量は、約 0.15n メモリです。ここで、n はバイナリしきい値ユニットの数を表します。この容量は、混乱なく保存できるメモリの数を示します。各メモリは N 個のユニットのランダムな構成で構成され、n ビットの情報を提供します。したがって、ホップフィールド ネットに格納される情報の合計は、約 0.15N 平方ビットになります。
ただし、この保存方法では、重みを保存するために必要なビットが効率的に利用されません。コンピューターに重みを保存するために必要なビット数を分析すると、0.15N 平方ビットを超えており、局所的なエネルギー最小値での分散メモリは効率的ではないことがわかります。
ホップフィールド ネットの容量を向上させるには、その機能を制限するエネルギー最小値の結合に対処する必要があります。バイナリ構成が記憶されるたびに、新しいエネルギー最小値が作成されることが期待されます。ただし、近くにあるパターンによって最小値が結合され、別々の記憶を区別できなくなる可能性があります。この併合現象がホップフィールド ネットの容量を制限します。
ホップフィールド ネットの能力向上から生まれた興味深いアイデアは、アンラーニングの概念です。アンラーニングには、ネットがランダムな初期状態から安定することを許可し、次にストレージ ルールの逆を適用して偽の最小値を除去することが含まれます。ホップフィールド、ファインスタイン、パーマーは、非学習が効果的に記憶容量を増加させることを実証し、クリックとミッチソンはレム睡眠中に非学習が起こる可能性があることを提案しました。
課題は、どの程度の非学習を行うべきかを決定することにあります。理想的には、アンラーニングはモデルをデータに適合させるプロセスの一部である必要があります。モデルの最尤フィッティングでは、未学習を自動的に組み込むことができ、必要な未学習の量について正確なガイダンスを提供します。
物理学者たちは、なじみのある数学的概念と脳の機能との間のつながりを見つけたいという欲求に駆られて、ホップフィールド ネットの能力を強化するために努力しました。エリザベス・ガードナーは、分銅の容量を最大限に活用する、より効率的な保管ルールを提案しました。このルールには、トレーニング セットを複数回繰り返し、パーセプトロン収束手順を採用して各ユニットの正しい状態をトレーニングすることが含まれていました。
この手法は、統計で使用される擬似尤度法に似ており、他のすべての次元の値を考慮して 1 つの次元を正しく取得することを目的としています。ホップフィールド ネットの対称重みをいくつか調整したパーセプトロン収束手順により、より効率的なメモリ ストレージが可能になります。
パーセプトロン収束手順を使用し、データを複数回反復処理することにより、ホップフィールド ネットのメモリ記憶効率を向上させることができます。この手法は、統計で使用される擬似尤度法に似ています。目的は、他のすべての次元の値に基づいて 1 つの次元を正しく取得することです。ホップフィールド ネットの対称重みを適切に変更したパーセプトロン収束手順により、より効果的なメモリ ストレージが可能になります。
Gardner が提示したこの強化されたストレージ ルールは、ホップフィールド ネットの容量を最大化する上での大幅な進歩を表しています。トレーニング セットを循環させ、パーセプトロン収束手順に基づいて重みを繰り返し調整することで、ネットワークはより多くのメモリを保存できます。
このアプローチでは、単一パスでのデータ処理を可能にするホップフィールド ネットのオンライン特性が犠牲になることに注意してください。ただし、ウェイトの全容量を利用することでストレージ効率が向上するため、このトレードオフは正当化されます。
ホップフィールド、ファインスタイン、パーマーによって提案された非学習の組み込みは、偽の最小値を除去し、記憶容量をさらに増やす手段を提供します。学習を解除すると、結合された最小値を分離できるようになり、個々の記憶をより確実に思い出すことができます。
興味深いことに、Crick と Mitchison は、レム睡眠中の非学習の機能的説明を提案しました。彼らは、夢を見る目的は、偽の最小値の除去を促進し、ネットワークをランダムな状態に効果的にリセットし、以前のパターンを学習から解放することであると提案しました。
最適な未学習量を決定するという数学的課題に対処するための潜在的な解決策は、未学習をモデル適合プロセスの一部として扱うことです。最尤法フィッティングを採用することで、非学習を自動的に組み込むことができ、モデルのパフォーマンスを最適化するために必要な非学習の範囲について正確なガイダンスを提供します。
ホップフィールド ネットの容量を向上させる探求により、メモリ ストレージと学習プロセスに関する貴重な洞察が得られました。パーセプトロン収束手順の開発とアンラーニングの探求により、効果的なメモリの保存と検索のためのホップフィールド ネットの可能性を最大限に活用することに私たちは近づいてきました。
講義 11.3 — 隠れユニットを備えたホップフィールド ネット
講義 11.3 — 隠れユニットを備えたホップフィールド ネット [機械学習のためのニューラル ネットワーク]
このビデオでは、ホップフィールド ネットとそのエネルギー機能を利用する新しいアプローチを紹介します。隠れユニットをネットワークに組み込むことで、これらの隠れユニットの状態に基づいて知覚入力の解釈を導き出すことを目指しています。重要な概念は、ユニット間の重みによって好ましい解釈に制約が課され、エネルギーが低い状態を見つけることで、入力データの適切な解釈を発見できるということです。
ホップフィールド ネットは、対称的に接続されたバイナリしきい値ユニットを使用してローカル エネルギー最小値を見つける機能と、これらのローカル エネルギー最小値がメモリに対応する可能性があるという概念という 2 つの基本的なアイデアを組み合わせたものです。ただし、極小値を見つける機能を活用する別の方法があります。ネットワークを記憶保存のためだけに使用する代わりに、感覚入力の解釈を構築するためにネットワークを使用することができます。このアイデアを説明するために、画像内の 2D 線から 3 次元世界に関する情報を推測する方法を詳しく掘り下げてみましょう。 2D ラインを観察すると、そのラインは世界のさまざまな 3 次元エッジから生じている可能性があります。画像内の奥行き情報が失われるため、複数の 3D エッジが網膜上で同じように見える可能性があります。このあいまいさは、線の両端の深さについての知識が不足しているために発生します。
これに対処するために、ワールド内の直線の 3D エッジが画像内の直線の 2D ラインを引き起こすと仮定します。ただし、この仮定では、3D エッジの各端の深さに関連する 2 つの自由度が排除されます。したがって、3D エッジのファミリー全体が同じ 2D ラインに対応しますが、一度に認識できるのはそのうちの 1 つだけです。ここで、感覚入力の解釈を支援するために、バイナリ単位のネットワーク内で低エネルギー状態を見つける機能をどのように利用できるかを示す例を考えてみましょう。線画があり、それを 3 次元オブジェクトとして解釈したいとします。潜在的な 2D ラインごとに、対応するニューロンを割り当てます。どの画像でも少数のニューロンだけが活性化し、現在の線を表します。
解釈を構築するために、考えられる 3D エッジごとに 1 つずつ、3D ライン ユニットのセットを導入します。各 2D ライン ユニットは複数の 3D ラインに対応できるため、一度に 1 つの 3D ラインのみをアクティブにする必要があるため、それらの間で競合を確保しながら関連するすべての 3D ラインを励起する必要があります。これを達成するために、2D ライン ユニットからすべての候補 3D ラインへの興奮性接続を確立し、競合を可能にする抑制性接続を確立します。
ただし、ニューラル ネットワークの配線はまだ完了していません。 3D エッジがどのように接続されるかに関する情報を組み込む必要があります。たとえば、2 つの 2D ラインが画像内で収束する場合、それらは接合点で同じ深さのエッジに対応する可能性が高くなります。このような一致する 3D エッジをサポートする追加の接続を導入することで、この期待を表現できます。
さらに、3D エッジが直角に結合するという一般的な現象を利用することもできます。深さが一致し、直角を形成する 2 つの 3D エッジ間により強い接続を確立することで、それらの結合関係を示すことができます。太い緑色の線で表されるこれらの接続は、ワールド内のエッジがどのように接続され、一貫した 3D オブジェクトの形成に寄与するかについての情報を提供します。現在、私たちのネットワークには、ワールド内のエッジの配置と、エッジを投影して画像内に線を作成する方法に関する知識が含まれています。このネットワークに画像を入力すると、解釈が生成されるはずです。私が提示している画像の場合、ネッカー キューブとして知られる 2 つの異なる解釈があります。ネットワークは 2 つのエネルギー最小値を示し、それぞれがネッカー キューブの可能な解釈の 1 つに対応します。
この例は、知覚データの解釈として低エネルギー状態を使用するという概念を理解するためのアナロジーとして機能することに注意してください。ネッカー キューブの反転を正確に考慮した包括的なモデルを構築することは、ここで説明した単純化されたシナリオよりもかなり複雑になります。健全な知覚的解釈を表現するために低エネルギー状態を使用することにした場合、2 つの重要な課題が生じます。まず、探索の問題、つまり隠れたユニットが貧弱な局所エネルギー最小値に閉じ込められるのをどのように防ぐかという問題に取り組む必要があります。不適切な最小値は、現在のモデルと重みに基づいた次善の解釈を反映しています。ランダムな開始状態から単にエネルギーを降下させるよりも良いアプローチはあるでしょうか?
2 番目の課題はさらに困難です。隠れたユニット間、および表示されているユニットと隠れたユニット間の接続の重みをどのように学習するかです。学習プロセスを指導する外部スーパーバイザーがいないことを考慮すると、これらの重みを調整する簡単な学習アルゴリズムはあるのでしょうか?私たちの目標は、ネットワークが入力を受け取り、賢明な解釈を表す隠れたユニットで意味のあるアクティビティ パターンを構築することです。これはかなりの課題を引き起こします。
要約すると、ホップフィールド ネットとそのエネルギー関数を新しい方法で利用するには、知覚入力の解釈を導き出すための隠れユニットを組み込む必要があります。ユニット間の重みは適切な解釈に対する制約を表しており、低エネルギー状態を見つけることで有利な解釈を発見することができます。
ただし、克服すべき課題もあります。最初の課題は探索問題で、貧弱な局所エネルギー最小値に陥ることを回避する必要があります。これらの最小値は次善の解釈を表しており、効率的な検索方法を見つけることが重要です。 2 番目の課題は、隠れたユニット間、および可視ユニットと隠れたユニット間の接続の重みを学習することです。この作業は、監督者や外部の指導者がいないために複雑になります。重みを調整するには適切な学習アルゴリズムが必要で、ネットワークが感覚入力の意味のある解釈を構築できるようになります。 2D 線画を 3D オブジェクトとして解釈する例は、解釈に低エネルギー状態を使用する概念を説明するためのアナロジーであることに注意することが重要です。より複雑な知覚現象を処理するための包括的なモデルを構築するには、より複雑なアプローチが必要になります。
次のビデオでは、探索問題を詳しく掘り下げ、エネルギー関数の貧弱な極小値に陥ることを避けるための潜在的な解決策を探ります。
講義 11.4 — 検索を改善するための確率単位の使用
講義 11.4 — 検索を改善するための確率単位の使用 [機械学習のためのニューラル ネットワーク]
このビデオでは、システムにノイズを追加することで極小値を回避する方法を説明します。具体的には、ホップフィールド ネットのユニットにノイズを適切に組み込む方法を示します。
ホップフィールド ネットは常にエネルギーを削減する決定を下します。これにより、ローカルミニマムから抜け出すことが困難になります。ローカルミニマムに囚われてしまうと、エネルギー障壁を乗り越えてより良いミニマムに到達することができなくなります。
ただし、ランダム ノイズを追加することで、貧弱な最小値、特に浅くて大きなエネルギー障壁が欠如している最小値から逃れることができます。最も効果的な戦略は、高レベルのノイズから開始して、大まかなスケールで空間を探索し、一般的に良好な領域を見つけることです。ノイズ レベルが減少すると、焦点は近傍の最良の最小値に移ります。
シミュレーテッド アニーリングは、ノイズ レベルを徐々に下げてシステムを最小値に導く手法です。これは、物理システムまたはシミュレートされたシステムの温度を利用し、温度が高いとエネルギーの状況が平坦になり、障壁を越えやすくなり、温度が低いと確率の比率が向上し、ある最小値から別の最小値への遷移が促進されます。
ホップフィールド ネットにノイズを導入するには、バイナリしきい値ユニットを、偏ったランダムな決定を行うバイナリ確率ユニットに置き換えます。騒音レベルは温度と呼ばれるパラメータによって制御されます。ノイズレベルを上げることは、構成間のエネルギーギャップを減らすことに相当します。
熱平衡の概念は、ボルツマン マシンの文脈で理解することが重要です。固定温度における熱平衡とは、エネルギー関数によって決定される定常分布に落ち着く確率分布を指します。熱平衡状態にある構成の確率は、e のエネルギーから引いた乗に比例します。
熱平衡に達するには、同じ重みを持つ複数の確率的システムを実行し、確率的更新ルールを適用する必要があります。個々のシステムは構成を変更し続けますが、各構成内のシステムの割合は一定のままです。これは、大規模なカジノで、最初の順序が無関係になり、各可能な順序に同じ数のパックが含まれるまでカード パックをシャッフルすることに似ています。
シミュレーテッド アニーリングは局所最適化を克服するための強力な方法ですが、ボルツマン マシンの理解の妨げになる可能性があるため、このコースではこれ以上説明しません。代わりに、温度 1 のバイナリ確率単位 (標準ロジスティック関数) が使用されます。
ホップフィールド ネットやボルツマン マシンなどのシステムにノイズを追加すると、極小値を回避し、より有利な領域を探索するのに役立ちます。ノイズ レベルは温度によって制御され、熱平衡に達するには、個々のシステムの状態が変化し続ける一方で、各構成内のシステムの一部が一定のままになる必要があります。
講義 11.5 — ボルツマン マシンがデータをモデル化する方法
講義 11.5 — ボルツマン マシンがデータをモデル化する方法 [機械学習のためのニューラル ネットワーク]
このビデオでは、ボルツマン マシンがバイナリ データ ベクトルをモデル化する方法を説明します。まず、バイナリ データ ベクトルをモデル化する理由と、そのようなモデルの潜在的な応用について説明します。次に、バイナリ データ ベクトルに割り当てられる確率がボルツマン マシンの重みによってどのように決定されるかを詳しく説明します。
隠れユニットを備えた確率的ホップフィールド ネットとしても知られるボルツマン マシンは、バイナリ データのモデリングに効果的です。隠れユニットを利用することで、これらのマシンはモデルを一連のバイナリ トレーニング ベクトルに適合させ、考えられるすべてのバイナリ ベクトルに確率を割り当てることができます。
バイナリ データをモデル化するための実用的なアプリケーションがいくつかあります。たとえば、バイナリ ベクトルの異なる分布がある場合、新しいバイナリ ベクトルがどの分布に属するかを決定することができます。隠れユニットを使用して各ドキュメント タイプの分布をモデル化すると、特定のバイナリ ベクトルに対して最も可能性の高いドキュメント クラスを識別できます。
さらに、ボルツマン マシンは、複雑なシステムを監視し、異常な動作を検出するのに役立ちます。原子力発電所があり、さまざまなダイヤルのバイナリ値が発電所の状態を示しているとします。危険な状態の例を必要とする教師あり学習に依存する代わりに、正常な状態のモデルを構築して、標準からの逸脱を検出できます。このようにして、異常な状態についての事前知識がなくても、異常な状態を識別できます。
特定の分布が観測データを生成した事後確率を計算するには、ベイズの定理を使用できます。観察されたデータが与えられた場合、そのデータが特定のモデルから得られる確率は、モデルがそのデータを生成する確率をすべてのモデルの同じ量の合計で割ったものになります。
データのモデル、特にバイナリ ベクトルを生成するには、主に 2 つのアプローチがあります。因果モデルのアプローチでは、最初に潜在変数の状態を生成し、次にそれを使用してバイナリ ベクトルを生成します。このモデルは、潜在ユニットと可視ユニット間の重み付けされた接続とバイアスに依存しています。因子分析は、連続変数を使用する因果モデルの例です。
一方、ボルツマン マシンは、因果的にデータを生成しないエネルギーベースのモデルです。代わりに、可視ユニットと非表示ユニットの結合構成のエネルギーの観点からすべてを定義します。結合構成の確率は、エネルギーに関して直接定義されるか、熱平衡に達するまで確率的バイナリ単位を更新した後に手続き的に計算されます。関節構成のエネルギーは、バイアス項、可視と可視の相互作用、可視と非表示の相互作用、および非表示と非表示の相互作用で構成されます。
さまざまな可視ベクトルの確率を計算するには、例を使用します。可視ユニットのすべての可能な状態を書き留め、それらの負のエネルギーを計算し、それらのエネルギーを累乗し、確率を正規化することにより、ジョイント構成と個々の可視ベクトルの確率を決定できます。
大規模なネットワークの場合、項の数が指数関数的に増加するため、分割関数の計算は実行できなくなります。このような場合、マルコフ連鎖モンテカルロ法を使用してモデルからサンプルを取得できます。エネルギーギャップに基づいてユニットを確率的に更新することで、定常分布に到達し、モデルからサンプルを取得できます。サンプルの確率は、負のエネルギーの乗に比例します。
さらに、学習に必要な、データ ベクトルを与えられた隠れた構成の事後分布からサンプルを取得することに興味があるかもしれません。データ ベクトルに固定された可視ユニットでマルコフ連鎖モンテカルロを使用することにより、隠れユニットのみを更新し、事後分布からサンプルを取得できます。この情報は、観察されたデータの適切な説明を見つけたり、学習プロセスをガイドしたりするために非常に重要です。
ボルツマン マシンでの学習プロセスには、トレーニング データへのモデルの適合性を向上させるために重みとバイアスを調整することが含まれます。この学習プロセスは通常、コントラスト発散と呼ばれるアルゴリズムを通じて実現されます。
対比発散は、対数尤度関数の勾配を推定するために使用される近似方法です。これにより、ボルツマン マシンの重みとバイアスを効率的に更新できます。対比発散の背後にある基本的な考え方は、ギブズ サンプリングのいくつかのステップを実行することです。これには、データ ベクトルから開始して、隠れたユニットの更新と可視的なユニットの更新を交互に行うことが含まれます。
隠れユニットを更新するには、可視ユニットと隠れユニットの結合構成のエネルギーによって決定される確率に基づいて、隠れユニットの状態をサンプリングします。次に、非表示のユニットの新しい状態に基づいて、表示されているユニットを更新します。このプロセスは、マルコフ連鎖がほぼ平衡に達するまで数回繰り返されます。
隠れた構成の事後分布からサンプルを取得したら、それを使用して、可視ユニットと隠れユニットの間の正と負の関連を計算できます。正の関連性は、データ ベクトルとサンプリングされた隠れた構成の外積を取得することによって計算されます。負の関連性も同様の方法で計算されますが、ギブス サンプリング プロセスから得られる可視単位が使用されます。
正の関連性と負の関連性の差を取ることにより、対数尤度関数の勾配を計算できます。この勾配は、確率的勾配降下法などの学習ルールを通じてボルツマン マシンの重みとバイアスを更新するために使用されます。
学習プロセスは、対比発散を繰り返し適用し、事後分布からサンプリングし、重みとバイアスを更新することによって続行されます。時間の経過とともに、ボルツマン マシンはトレーニング データに存在する基礎的なパターンと分布を捕捉する方法を学習します。
ボルツマン マシンのトレーニングは、特に多くの隠れユニットを持つ大規模なネットワークの場合、困難な作業になる可能性があることに注意することが重要です。計算の複雑さはユニットの数に応じて指数関数的に増加するため、正確な計算を実行することが困難になります。ただし、対比発散などの近似法は、ボルツマン マシンでの学習に実用的なソリューションを提供します。
ボルツマン マシンでの学習には、対数尤度関数の勾配を近似する対比発散を通じて重みとバイアスを調整することが含まれます。事後分布から繰り返しサンプリングしてモデル パラメーターを更新することにより、ボルツマン マシンはバイナリ データの基礎となるパターンをモデル化する方法を学習できます。
講義 12.1 — ボルツマン機械学習
講義 12.1 — ボルツマン機械学習 [機械学習のためのニューラル ネットワーク]
前回のビデオでは、ボルツマン マシンをバイナリ データ ベクトルの確率モデルとして使用する方法を説明しました。ここで、ボルツマン機械学習アルゴリズムを詳しく見てみましょう。
当初、ボルツマン機械学習アルゴリズムは遅くてノイズが多く、実用的ではありませんでした。ただし、アルゴリズムを大幅に高速化し、より実用的かつ効果的なものにするために、いくつかの手法が開発されました。実際、これは数百万ドル規模の機械学習コンテストで使用され、成功を収めています。
ボルツマン機械学習アルゴリズムは教師なし学習アルゴリズムであり、ラベル付きデータを必要としません。代わりに、ボルツマン マシンによってトレーニング ベクトルに割り当てられた確率の積を最大化することによって、入力ベクトル (または出力ベクトル) のセットのモデルを構築することを目的としています。これは、対数確率の合計またはトレーニング ケースを取得する確率を最大化することによっても達成できます。
ボルツマン マシンをトレーニングするには、外部入力なしで定常分布に落ち着くプロセスを複数回繰り返します。次に、可視ベクトルをサンプリングし、このプロセスを複数回繰り返して、事後分布からサンプルを取得します。
ボルツマン マシンでの学習は、重み間の相互作用により困難になる場合があります。適切な変更方向を決定するには、各重みが他の重みについて知る必要があります。驚くべきことに、ローカル情報のみを使用する単純な学習アルゴリズムで十分です。学習ルールは 2 つの相関の差に基づいており、重みの更新に必要な情報を取得します。
学習ルールは 2 つの項で構成されます。最初の項では、データを提示するときに観察された単位アクティビティの積に比例して重みが増加します。この用語は、ホップフィールド ネットワークにおけるストレージ用語に似ています。ただし、制御しないと重量が増加し続け、不安定になります。 2 番目の項は、モデルの分布からサンプリングするときに、ユニット アクティビティの積に比例して重みを減少させます。この項は、偽の最小値を排除し、安定性を維持するのに役立ちます。
重みに関する可視ベクトルの対数確率の微分は非常に簡単です。これは、接続された 2 つのユニット活動の積として表現できます。この単純さは、対数確率とエネルギー関数の間の線形関係、つまり重みが線形であることから生じます。
学習プロセスの負のフェーズは、特定の構成の影響を学習から解放したり軽減したりするために役立ちます。分割関数に大きく寄与する項のエネルギーを削減し、その影響を軽減することに重点を置いています。
学習ルールに必要な統計を収集するには、コントラスト発散と呼ばれる手法が一般的に使用されます。正の段階では、データ ベクトルは可視ユニットにクランプされ、熱平衡に達するまで隠れたユニットが更新されます。次に、ユニット ペア間の相関がサンプリングされ、すべてのデータ ベクトルにわたって平均化されます。負のフェーズでは、データはクランプされず、ネットワークは外部干渉なしに平衡に落ち着くことができます。ユニットペア間の相関は、再度複数回サンプリングされます。
ボルツマン マシンのエネルギー ランドスケープには複数のモードが含まれる可能性があるため、負のフェーズで必要な反復回数を決定することは困難な場合があります。これらのモードは、同様のエネルギー レベルを持つ異なる構成を表しており、それらを効果的にキャプチャするにはサンプリングを繰り返す必要があります。
ボルツマン マシンを扱う場合、負のフェーズで必要な繰り返し回数を考慮することが重要です。エネルギー環境には複数のモードが存在するため、アルゴリズムはすべてのモードが適切に表現されていることを確認するために広範囲にサンプリングする必要があります。
ボルツマン マシンの学習プロセスでは、正位相と負位相から得られた相関に基づいて重みを繰り返し更新します。これらのフェーズで相関関係を比較することにより、アルゴリズムは重みを調整してモデルのデータ表現を改善できます。
注意すべき重要な側面の 1 つは、ボルツマン機械学習アルゴリズムはヘビアン学習の一形態であるということです。これは、1940 年代または 1950 年代にドナルド・ヘッブによって提案された原理に従っており、脳内のシナプスがニューロン間の相互活性化に基づいてニューロン間の接続を強化することを示唆しています。ボルツマン マシンでは、Hebb のアイデアと似ており、データ提示中に観察される単位活動の積に比例して正の段階で重みが増加します。
ただし、平衡化メカニズムがないと、重みが際限なく増加し続けるため、不安定になります。ネガティブフェーズは、モデルの分布からサンプリングする際に、ユニットアクティビティの積に基づいて重みを減らすことによってこの目的を果たします。このバランスにより、ボルツマン マシンは学習プロセス中に安定した状態を維持できます。
ボルツマン機械学習アルゴリズムには、エネルギー関数と確率分布に関連する理論的基礎があることは言及する価値があります。熱平衡における大域的配置の確率は、そのエネルギーの指数関数に従います。重みと対数確率の間の線形関係により、直接的な微分計算が可能になり、効率的な重みの更新が容易になります。
ボルツマン機械学習アルゴリズムは、入力ベクトルまたは出力ベクトルのモデルを構築することを目的とした教師なし学習アプローチです。トレーニング ベクトルに割り当てられた確率を最大化することで、アルゴリズムは正と負の相関の組み合わせを使用して重みを調整します。この学習プロセスは、対比発散などの手法と併せて、ボルツマン マシンがデータ内の複雑なパターンを捕捉するのに役立ちます。