![見出し画像](https://assets.st-note.com/production/uploads/images/172520750/rectangle_large_type_2_b0f57642ef8417eb2130d8411364ef73.jpeg?width=1200)
ノーベル物理学賞講演:ジェフリー・ヒントン
11,267 文字
それでは、二人目の講演者、ジェフリー・ヒントンをご紹介できることを光栄に存じます。ジェフリー・ヒントンは1947年にイギリスのロンドンで生まれました。1970年にケンブリッジ大学で実験心理学の学士号を取得し、1978年にエディンバラ大学で人工知能の博士号を取得しました。ポストドクターの研究の後、ピッツバーグのカーネギーメロン大学でコンピュータサイエンスの教員として5年間勤務しました。1987年にカナダのトロント大学のコンピュータサイエンス教授に就任し、現在は名誉教授を務めています。2013年から2023年の間は、学術研究とGoogle Brainでの活動を並行して行っていました。今年のノーベル物理学賞受賞に至った発展についてお話しいただくため、ジェフリー・ヒントンを壇上にお迎えしましょう。
今日は非常に無謀なことを試みようと思います。複雑な技術的アイデアを一般の聴衆に向けて、方程式を一切使わずに説明するのです。まず、ホップフィールドネットについて説明する必要があります。1か0の状態を持つ二値ニューロンのバージョンについて説明します。
右側にホップフィールドネットの小さな例が見えると思いますが、最も重要なのは、ニューロン間に対称的な重み付き結合があることです。ネットワーク全体の状態は、物理学っぽく聞こえるように「配置」と呼びます。各配置には良さがあり、配置の良さは、オンになっているニューロンのペア間の重みの和として単純に計算されます。赤い枠内の重みを足し合わせると、この配置の良さは4になるはずです。そしてエネルギーは単に良さのマイナスです。
これらのネットワークはエネルギー最小値に収束します。ホップフィールドネットの要点は、各ニューロンがエネルギーを下げるために何をすべきかをローカルに計算できることです。エネルギーは悪さを表します。他のアクティブなニューロンからの重み付き入力の総和が正なら、ニューロンはオンになるべきです。総和が負なら、オフになるべきです。各ニューロンがこのルールを使い続け、ランダムに選んで適用し続けると、最終的にエネルギー最小値に収束します。
右側の配置は実際にエネルギー最小値で、エネルギーは-4です。オンになっているニューロンはオンのままでいたいと考え、総入力は正になります。オフになっているニューロンはオフのままでいたいと考え、総入力は負になります。しかし、これが唯一のエネルギー最小値というわけではありません。ホップフィールドネットは多くのエネルギー最小値を持つことができ、どこに行き着くかは開始点と、どのニューロンを更新するかというランダムな決定の順序に依存します。
右側の三角形のユニットをオンにすると、これはより良いエネルギー最小値になります。良さは3+3-1=5となり、したがってエネルギーは-5です。これはより良い最小値です。ホップフィールドは、このようなネットワークの使い方として、エネルギー最小値を記憶に対応させることを提案しました。そして、ニューロンをオンにするかオフにするかという二値決定ルールを使用することで、不完全な記憶をクリーンアップできます。部分的な記憶から始めて、この決定ルールを適用し続けると、それをクリーンアップします。
記憶を表すエネルギー最小値に収束することは、内容アドレス可能なメモリを持つ方法です。メモリ内のアイテムの一部をオンにし、このルールを使用することでアクセスでき、それが補完されます。ホップフィールドの学生だったテリー・セジノフスキーと私は、このような種類のネットワークの異なる使用法を提案しました。記憶を保存する代わりに、感覚入力の解釈を構築するために使用できます。
アイデアは、ネットワークに可視ニューロンと隠れニューロンの両方を持たせることです。可視ニューロンは、二値画像などの感覚入力を示す場所です。隠れニューロンは、その感覚入力の解釈を構築する場所です。ネットワークの配置のエネルギーは、解釈の悪さを表します。したがって、低エネルギーの解釈を求めます。
具体的な例を挙げましょう。上部のあの曖昧な線画を考えてみてください。人々はそれを2つの方法で見ることができます。解釈1は通常最初に見えるものです。もう1つの解釈があり、凸状の物体として見るとき、それは明らかに同じ2D線画の異なる3D解釈です。このようなネットワークに、同じ線画の2つの異なる解釈を出させることができるでしょうか。
まず、画像内の線が3Dエッジについて何を教えてくれるのかを考える必要があります。緑の線は画像平面です。窓を通して見ているところを想像し、外の世界のシーンのエッジを窓に描いているとします。その小さな黒い線は画像内の線で、2本の赤い線は、あなたの目からその線の端を通る視線です。世界のどのエッジがそれを引き起こした可能性があるかを尋ねると、多くのエッジがそれを引き起こす可能性があります。その2D線を引き起こすことができるエッジが1つありますが、他のエッジもあり、さらに別のエッジもあり、またさらに別のエッジもあります。これらのエッジはすべて、画像内で同じ線を引き起こします。
視覚の問題は、画像内の単一の線から後ろ向きに進み、これらのエッジのうちどれが実際にそこにあるのかを理解することです。物体が不透明な場合、それらはすべてお互いの邪魔をするため、一度に1つしか見ることができません。したがって、画像内のその線がこれらのエッジの1つを描写していることは分かっていますが、どれなのかは分かりません。
線をライン・ニューロンの活性化に変換することから始めるネットワークを構築できます。すでにそれがあると仮定しましょう。画像内の線を表すために、多数のニューロンを持ち、この特定の画像の線を表すためにそのうちのいくつかだけをオンにします。これらの線のそれぞれが、いくつかの異なる3Dエッジを描写する可能性があるので、そのライン・ニューロンを興奮性の結合(緑色のもの)で多数の3Dエッジニューロンに接続します。しかし、一度に1つしか見ることができないことを知っているので、それらのエッジニューロンが互いに抑制し合うようにします。
これで、知覚の光学的な部分の多くを捉えました。すべてのライン・ニューロンに対してこれを行い、今度は、それらのエッジのどれをオンにすべきかという問題が出てきます。そのためには、より多くの情報が必要です。画像を解釈する際に使用する原則は、画像内に2本の線が見えた場合、それらが画像内で結合する場所では深さも結合している、つまり、2本の線が画像内で結合する点で同じ深さにあると仮定することです。
そのために、追加の結合を入れることができます。深さで結合する3Dエッジニューロンのペアごとに、同じ端を持つ点で結合を入れることができます。直角で結合する場合はより強い結合を入れることができます。直角で結合する物を見ることを私たちは本当に好みます。そのような結合をたくさん入れて、結合の強さを適切に設定すれば、ネッカーキューブのような2つの代替的な解釈に対応する2つの代替的な状態に収束するネットワークができあがることを期待します。
これにより2つの主要な問題が生じます。最初の問題は、可視ニューロンの状態で表現された画像の解釈を出すために隠れニューロンを使用する場合の探索の問題です。局所的な最適解に捕らわれることをどのように避けるのか。かなり貧弱な解釈に落ち着いて、より良い解釈にジャンプできない可能性があります。2つ目の問題は学習です。私は手動でそれらの結合をすべて入れることを暗示しましたが、ニューラルネットワークにそれらの結合をすべて入れさせたいと考えています。
最初の探索の問題は、ニューロンをノイジーにすることでほぼ解決します。標準的なホップフィールドネットのような決定論的なニューロンを持つ場合、システムが1つのエネルギー最小値に落ち着くと、ボールがそこにある状態は全システムの配置を表していますが、Aから Bに行くことはできません。なぜなら、ニューロンの決定ルールはエネルギーを下げることしか許さないからです。右のグラフは決定ルールを示しており、入力が正ならオンに、負ならオフになります。AからBに行けるようにしたいのですが、そのためにはエネルギーを上げる必要があります。
その解決策は、ノイジーなニューロン、確率的な二値ニューロンを持つことです。彼らはまだ二値の状態しか持ちませんが、確率的です。大きな正の入力を受け取ると、ほぼ常にオンになり、大きな負の入力を受け取ると、ほぼ常にオフになります。しかし、入力が柔らかい、つまりゼロに近い場合、確率的に振る舞います。正なら通常オンになりますが、時々オフになり、小さな負の入力なら通常オフになりますが、時々オンになります。しかし、実数値は持たず、常に二値です。ただし、これらの確率的な決定を行います。
では、これらの隠れニューロンを使用して二値画像を解釈したい場合、何をするかというと、可視ユニットに二値画像を固定します。これが入力を指定します。そして、ランダムに隠れニューロンを選び、他のアクティブな隠れニューロンから受け取っている総入力を見ます。最初はすべてをランダムな状態から始めます。総入力が正なら、おそらくオンにしますが、小さな正の入力の場合はオフにすることもあります。
このルールを実装し続け、隠れニューロンを選び続けると、システムは最終的に熱平衡と呼ばれる状態に近づきます。これは非物理学者にとって難しい概念であり、後で説明します。熱平衡に達すると、隠れニューロンの状態がその入力の解釈となります。したがって、その線画の場合、各ライン・ユニットに対して1つの隠れニューロンがオンになり、ネッカーキューブの2つの解釈のうちの1つが得られることを期待します。そして、低エネルギーの解釈がデータの良い解釈になることを期待します。
この線画の場合、2D線ニューロンと3Dエッジニューロン間、および3Dエッジニューロン間の適切な重みを学習できれば、ネットワークの低エネルギー状態が良い解釈、つまり3D直方体を見ることに対応することを期待します。
熱平衡について説明します。最初に期待するような、システムが安定した状態に落ち着くということではありません。安定化するのはシステムの状態ではなく、考えるのが難しい、はるかに抽象的なものです。それはシステムの配置上の確率分布です。これは普通の人が考えるのはとても難しいものです。ボルツマン分布と呼ばれる特定の分布に落ち着きます。ボルツマン分布では、熱平衡に達した後にシステムが特定の配置にある確率は、その配置のエネルギーのみによって決定されます。低エネルギーの配置は、高エネルギーの配置よりも確率が高くなります。
熱平衡について考えるために、物理学者が使用するトリックがあり、これにより一般の人々もこの概念を理解できることを願っています。同一のネットワークの非常に大きなアンサンブル、何兆個もの同じネットワークを想像するだけです。これらの何兆個のホップフィールドネットワークはすべて完全に同じ重みを持っているので、本質的に同じシステムですが、それぞれ異なるランダムな状態から始めて、それぞれが独自のランダムな決定を行います。各配置を持つシステムの割合は一定になり、最初はその割合は単にどのように開始したかに依存します。おそらくランダムに開始したので、すべての配置が等しく起こりやすく、この巨大なアンサンブルでは、あらゆる可能な配置に等しい数のシステムが存在することになります。
しかし、エネルギーを下げる傾向のあるアルゴリズムを実行し始め、時々上がることもありますが、徐々に起こることは、任意の1つの配置にあるシステムの割合が安定化するということです。1つのシステムは配置間をジャンプしますが、特定の配置にあるすべてのシステムの割合は安定しています。1つのシステムがある配置を離れても、他のシステムがその配置に入ってきます。これは詳細釣り合いと呼ばれ、システムの割合は安定したままです。
これで物理学の部分は終わりです。では、画像を解釈するのではなく、生成する場合を考えてみましょう。画像を生成するには、すべてのニューロン、隠れニューロンと可視ニューロンのランダムな状態から始めます。次に、隠れニューロンまたは可視ニューロンを選び、通常の確率的ルールを使用して状態を更新します。大量の正の入力があればおそらくオンに、大量の負の入力があればおそらくオフに、柔らかい場合は少し確率的に振る舞います。
これを繰り返し行い、システムが熱平衡に近づくまで続けると、可視ユニットの状態を見ることで、このネットワークが信じている分布、つまり低エネルギーの配置が高エネルギーの配置よりもはるかに起こりやすいボルツマン分布から生成された画像が得られます。しかし、多くの可能な代替的な画像を信じており、このプロセスを実行することで、それが信じているものの1つを選ぶことができます。
ボルツマンマシンにおける学習の目的は何でしょうか。ネットワークが画像を生成する際、夢を見ているように考えてください。ただランダムに想像しているのです。生成する画像が、実際の画像を知覚する時に見る画像のように見えるようにすることです。それが達成できれば、隠れニューロンの状態は実際の画像を解釈する良い方法となり、少なくとも画像の根底にある原因を捉えることができます。それが期待です。
別の言い方をすれば、ネットワークの重みを学習することは、ネットワークが実際の画像のような画像を生成するように、それらの隠れニューロンの使い方を理解することと同じです。これは非常に難しい問題に見えます。誰もが、それはとても複雑になるだろうと思いました。
しかし、テリーと私は途方もなく楽観的なアプローチを取りました。質問は、たくさんの隠れニューロンを持ち、それらの間にランダムな重みがあり、可視ニューロンとの間にもランダムな重みがある、この確率的な種類のホップフィールドネットから始めて、たくさんの画像を見せるだけで、荒唐無稽に思えることを期待できるかということでした。それは、実際の画像を知覚することで、隠れユニット間および隠れユニットと可視ユニット間のすべての結合を作り出し、それらの結合を正しく重み付けして、直角で結合する3Dエッジのような原因の観点から画像の合理的な解釈を生み出すことです。
それは非常に楽観的に聞こえ、学習アルゴリズムは非常に複雑になると思われたかもしれません。ボルツマンマシンの驚くべき点は、それを実行する非常に単純な学習アルゴリズムがあることです。これは1983年にテリー・セジノフスキーと私によって発見されました。
学習アルゴリズムは次のように進みます。2つのフェーズがあります。覚醒フェーズは、ネットワークに画像が提示されるフェーズです。可視ユニットに画像を固定し、隠れユニットを揺らめかせて熱平衡に落ち着かせます。隠れユニットが可視ニューロンと熱平衡に達すると、接続された2つのニューロン(2つの隠れニューロン、または可視ニューロンと隠れニューロン)のペアについて、両方がオンの場合、それらの間の重みに小さな量を加えます。これはかなり単純な学習ルールです。ドナルド・ヘブを信じる人々が好むような学習ルールです。
次に睡眠フェーズがあります。明らかに、覚醒フェーズだけを実行すると、重みは大きくなるだけで、すぐにすべてが正になり、すべてのニューロンが常にオンになってしまいます。それはあまり良くありません。睡眠フェーズと組み合わせる必要があります。睡眠フェーズでは、ネットワークが夢を見ていると考えることができます。すべてのニューロン、隠れニューロンと可視ニューロンの状態を更新することで熱平衡に到達し、熱平衡に達したら、接続された2つのニューロンのペアについて、両方がオンの場合、それらの間の重みから小さな量を引きます。
これはかなり単純な学習アルゴリズムであり、正しいことを行うのは驚くべきことです。平均して、この学習アルゴリズムは、ネットワークが夢を見ているときに生成する画像が、知覚しているときに見る画像のように見える確率を増加させるように重みを変化させます。
一般の聴衆向けではないので、次の2行は読まないでください。統計学者と機械学習の人々にとって、このアルゴリズムが行っていることは、期待値において(つまり、非常にノイジーで、しばしば間違ったことを行いますが、平均して)、対数尤度の勾配に従うということです。期待値において、ネットワークが夢を見ているときに生成する可能性を、覚醒時に見る種類の画像により高くすることです。別の言い方をすれば、ネットワークが妥当だと考える低エネルギーの画像が、覚醒時に見る画像に似るように重みが変化します。
もちろん、学習で起こっていることは、覚醒時に実際のデータを見たときに到達するネットワーク全体の配置のエネルギーを下げ、睡眠時にはそれらの配置のエネルギーを上げているということです。覚醒時に見ることを信じ、睡眠時に夢見ることを信じないようにしようとしているのです。
熱平衡への収束プロセスが達成することについて尋ねると、それは驚くべきことを達成します。ネットワーク内の1つの重みが他のすべての重みについて知る必要があることすべてと、1つの重みをどう変化させるべきかを知るために、他のすべての重みについて何かを知る必要があります。それらはすべて相互作用しますが、知る必要があることすべてが2つの相関の差として現れます。
ネットワークがデータを観察しているときと、データを観察していないとき(夢を見ているとき)に、2つのニューロンが一緒にオンになる頻度の差として現れます。そして、これらの2つの状況で測定された相関が、1つの重みに他のすべての重みについて知る必要があることすべてを伝えるのです。これが驚くべき理由は、バックプロパゲーション(現在のニューラルネットが実際に使用しているアルゴリズム)のような他のアルゴリズムでは、他の重みに関する情報を伝えるために後方パスが必要だからです。
後方パスは前方パスとは非常に異なる振る舞いをします。前方パスでは、ニューロンの活性を後の層のニューロンに伝達しますが、後方パスでは感度を伝達します。まったく異なる種類の量を伝達しているのです。これは、脳がどのように機能するかという理論としては、バックプロパゲーションをかなり説得力のないものにしています。
そこで、テリーがボルツマンマシンのこの理論、この学習手順を考え出したとき、これが脳の働き方に違いないと私たちは完全に確信し、生理学・医学のノーベル賞を受賞することになると決めました。もし脳がこのように働いていなかったとしても、物理学のノーベル賞を受賞できるとは思いもよりませんでした。
ただし、1つだけ問題があります。問題は、熱平衡への収束が、重みの大きな非常に大きなネットワークでは非常に遅いプロセスだということです。重みが非常に小さい場合は速く行えますが、学習によって重みが大きくなると遅くなります。実際、ボルツマンマシンは素晴らしいロマンチックなアイデアです。この非常に単純な学習アルゴリズムが、非常に複雑なことを行っています。データを解釈する隠れユニットの全ネットワークを、非常に単純なアルゴリズムを使用して構築しているのです。唯一の問題は、それらが遅すぎるということです。
それでボルツマンマシンについてはそれで終わりでした。講演もここで終わるべきだったのですが、17年後、ボルツマンマシンを大幅に制限し、互いに接続されていない隠れユニットだけを持つと、はるかに速い学習アルゴリズムが得られることに気づきました。隠れニューロン間に接続がない場合、覚醒フェーズは非常に単純になります。可視ユニットに入力を固定して画像を表現し、並列ですべての隠れニューロンを更新します。それらはただ一度更新するだけで、可視入力を見て、受け取る入力に基づいて2つの状態のうちの1つをランダムに選びます。これで1ステップで熱平衡に達します。これは隠れニューロンにとって素晴らしいことです。
睡眠フェーズではまだ問題があります。ネットワークをランダムな状態に置き、隠れニューロンを更新し、可視ニューロンを更新し、隠れニューロンを更新し、可視ニューロンを更新する必要があり、熱平衡に達するまで長く続ける必要があります。そのため、アルゴリズムはまだ望みがありません。しかし、ショートカットがあることが分かりました。ショートカットは完全に正しいことを行うわけではありませんが、恥ずかしいことに、実践ではかなりうまく機能します。
ショートカットは次のように機能します。可視ユニットにデータ(画像)を置き、すべての隠れニューロンを並列に更新します。これでデータと熱平衡に達しました。次にすべての可視ユニットを更新し、私たちが「再構成」と呼ぶものを得ます。それはデータに似ていますが、完全には同じではありません。次にすべての隠れユニットを再度更新し、そこで終わりです。それだけです。
学習の方法は、ニューロンIJが、つまり可視ニューロンIと隠れニューロンJが、データを見せたときにデータと平衡に達したときに一緒にオンになる頻度と、再構成を見せたときに再構成と平衡に達したときに一緒にオンになる頻度を測定します。その差が学習アルゴリズムとなります。単にその差に比例して重みを変化させます。これは実際にかなりうまく機能し、はるかに速いです。ボルツマンマシンを最終的に実用的にするのに十分な速さです。
Netflixは実際に、制限付きボルツマンマシンを他の方法と組み合わせて使用し、あなたに少し似た他のすべてのユーザーの好みに基づいて、どの新しい映画を見ることを提案するかを決定しました。それは実際に機能し、ボルツマンマシンとこれらの方法の組み合わせがNetflixコンペティションで、ユーザーが何を好むかをどれだけ正確に予測できるかという競争に勝ちました。
しかし、もちろん、互いに接続されていない隠れニューロンだけでは、画像内のオブジェクトを認識したり、音声内の単語を認識したりするために必要な特徴検出器の層を構築することはできません。それは、互いに接続のない隠れユニットを1層だけ持つという強い制限に見えますが、実際にはそれを回避することができます。
制限付きボルツマンマシン(RBM)を積み重ねることができます。データを取り、RBMにデータを見せ、1つの隠れ層だけを持ち、この対比発散アルゴリズムを使用して(上がって下がって再び上がるだけ)、データ内の構造を捉える隠れユニットになるように重みを学習します。隠れユニットは、データ内でよく相関する物事を捉える特徴検出器になります。
次に、それらの隠れ活性パターン、隠れユニットの二値活性パターンを取り、それらを別のRBMのデータとして扱います。この第2のRBMは、データ内の相関を捉えた特徴を見て、それらの特徴間の相関を捉えます。このようにして続けていきます。より複雑な相関を捉えていき、第2の重みセットW2を学習し、好きなだけ繰り返すことができます。第3の重みセットも学習しましょう。
これで、前のボルツマンマシンの隠れユニット間の構造を見つけている複数の独立したボルツマンマシンができました。次に、これらのボルツマンマシンを積み重ね、フィードフォワードネットとして扱うことができます。結合が対称的であることを無視し、ただ1つの方向の結合だけを使用します。最初の隠れ層で生データ内の相関を捉える特徴を抽出し、第2の隠れ層で最初の隠れ層で抽出された特徴間の相関を捉える特徴を抽出し、このように続けていくことができます。
より抽象的な特徴、相関の中の相関を得ていきます。このように積み重ねると、最後の隠れ層を追加し、教師あり学習を行うことができます。つまり、猫や犬といったものの名前をネットワークに教え始めることができます。それらはクラスラベルであり、それらのクラスラベルへの重みを学習する必要がありますが、ボルツマンマシンのスタックを学習することで初期化したこのネットワークから始めると、2つの美しいことが起こります。
最初の美しいことは、このように初期化すると、ネットワークはランダムな重みで初期化した場合よりもはるかに速く学習します。なぜなら、データの構造をモデル化するための合理的な特徴をすでに学習しているからです。物事の名前については何も学習していませんが、データの構造については学習しており、その後、物事の名前を学ぶのは比較的速いのです。小さな子供のように、牛だと2,000回も言われる必要はありません。牛の概念を自分で理解し、母親が「これは牛よ」と言うと、理解できます。まあ、2回くらいは必要かもしれません。
例えば、画像内のオブジェクトを認識することが、はるかに速く学習できるようになります。また、ラベルを使用せずに学習のほとんどを行っているため、ネットワークはより良く一般化します。ラベルからすべての情報を抽出する必要はなく、データ内の相関から情報を抽出しているため、はるかに少ないラベルでより良く一般化します。
それはすべて素晴らしかったのですが、2006年から2011年の間、特に私のラボとヨシュア・ベンジオのラボ、ヤンのラボでは、フィードフォワードニューラルネットワークの事前トレーニングにRBMのスタックを使用し、その後バックプロパゲーションを適用していました。2009年に、私のラボの2人の学生、ジョージ・ダールとアブドゥル・ラフマン・モハメドが、この技術が音声内の音素の断片を認識する既存の最良の技術よりも少しだけ良く機能することを示しました。
それが音声認識コミュニティを変えました。私の大学院生たちは最先端の音声グループに移り、2012年には、このスタック化された制限付きボルツマンマシンに基づくものがGoogleで実際に使用され始め、音声認識が突然良くなりました。Androidの音声認識が大幅に改善されました。
残念ながらボルツマンマシンにとって、スタック化されたボルツマンマシンで事前トレーニングすれば深層ニューラルネットワークが本当によく機能することを示した後、人々は重みを初期化する他の方法を見つけ、もはやボルツマンマシンのスタックは使用されなくなりました。しかし、化学者なら酵素が有用なものだと知っています。RBMはもう使用されていませんが、深層ニューラルネットワークは決して機能しないという考えから、この方法で初期化すれば深層ニューラルネットワークが実際に簡単に機能させられることを理解する過渡期を可能にしました。いったん過渡期を過ぎれば、もう酵素は必要ありません。歴史的な酵素として考えてください。
しかし、バックプロパゲーションの後方パスを避け、より生物学的に妥当なアルゴリズムを得るために睡眠中に非学習を使用するというアイデアには、まだたくさんの可能性があると思います。脳がどのように学習するかを最終的に理解したとき、それは睡眠を使用して非学習を行うことを含むことが分かるだろうと、私はまだ楽観的です。
私はまだ楽観的で、これで終わりだと思います。ありがとうございました。では、両受賞者を壇上にお迎えし、心からの拍手でお祝いしましょう。