
8,313 文字

これはアクティベーションアトラスです。現代のAIモデルが世界を組織化し理解するために使用している高次元の埋め込み空間を垣間見ることができます。このような方法で世界を「見る」最初のモデルであるAlexNetは、2012年に8ページの論文として発表され、古いAIのアイデアが適切にスケールすると信じられないほどうまく機能することを示して、コンピュータビジョンコミュニティに衝撃を与えました。論文の第二著者であるイリヤ・サツケヴァーはその後OpenAIを共同設立し、OpenAIチームとともにこのアイデアを大幅にスケールアップして、ChatGPTを開発しました。
このビデオはkiwicoが提供しています。詳細は後ほどご紹介します。
ChatGPTの内部を見ても、知性の明白な兆候は見つかりません。代わりに、トランスフォーマーと呼ばれる計算ブロックの層が次々と並んでいます。これがGPTの「T」が表す部分です。各トランスフォーマーはデータの入力行列に対して一連の固定行列演算を実行し、通常は同じサイズの出力行列を返します。ChatGPTが次に何を言うかを決めるために、あなたの質問を単語や単語の断片に分解し、それぞれをベクトルにマッピングし、これらのベクトルをすべて一つの行列に積み重ねます。この行列は最初のトランスフォーマーブロックに渡され、同じサイズの新しい行列が返されます。この操作はその後、ChatGPT 3.5では96回、ChatGPT 4では報告によると120回繰り返されます。
ここで驚くべき部分があります。いくつかの注意点はありますが、ChatGPTがあなたに返す次の単語や単語の断片は、文字通り最終出力行列の最後の列をベクトルからテキストに戻したものです。完全な応答を作成するために、この新しい単語や単語の断片が元の出力の最後に追加され、この新しい少し長くなったテキストがChatGPTの入力に戻されます。このプロセスは、モデルの出力が特別な停止ワード断片を返すまで、入力行列に1つの新しい列が毎回追加されながら、何度も繰り返されます。
それだけです。一つの行列乗算の後に別の乗算が続き、GPTはゆっくりとあなたが与えた入力を返す出力に変形していきます。知性はどこにあるのでしょうか?これらの100個ほどの「単純な」計算ブロックがどのようにしてエッセイを書き、言語を翻訳し、本を要約し、数学の問題を解き、複雑な概念を説明し、さらにはこのスクリプトの次の行を追加できるのでしょうか?
答えは、これらのモデルがトレーニングされる膨大なデータ量にあります。
なかなか良いですが、私が次に言いたかったことと少し違います。
AlexNet論文が重要なのは、このような計算ブロックの層が信じられないことを学習する最初の瞬間を示しているからです。説明可能性から離れて、高性能とスケールに向かうAIの転換点でした。ChatGPTがテキストから次の単語断片を予測するようにトレーニングされているのに対し、AlexNetは画像からラベルを予測するようにトレーニングされています。
AlexNetへの入力画像はRGB強度値の三次元行列またはテンソルとして表現され、出力は長さ1,000の単一のベクトルで、各エントリはAlexNetが入力画像がImagenetデータセットの1,000クラスのうちの1つに属する予測確率に対応しています。トラ猫、ジャーマン・シェパード、ホットドッグ、トースター、航空母艦などのクラスです。今日のChatGPTと同様に、AlexNetは魔法のように私たちが与える入力を、計算ブロックの層を重ねることで、私たちが望む出力にマッピングすることができました。大規模なデータセットでトレーニングした後の話です。
ビジョンモデルの良い点の一つは、モデルの内部を調べて、モデルが学習したものについてある程度の考えを得ることが容易だということです。AlexNet論文でサツケヴァーとヒントンが示した最初の内部洞察の一つは、モデルが最初の層で非常に興味深い視覚パターンを学習したということです。
AlexNetの最初の5層はすべて畳み込みブロックで、1980年代後半に手書き数字を分類するために開発されたものです。これはChatGPTやその他の大規模言語モデルのトランスフォーマーブロックの特殊なケースとして理解できます。畳み込みブロックでは、入力画像テンソルは、カーネルと呼ばれるはるかに小さなテンソル(学習された重み値)を画像全体にスライドさせ、各位置で画像とカーネル間のドット積を計算することで変換されます。
ここではドット積を類似性スコアと考えると役立ちます。画像の特定のパッチとカーネルが似ていればいるほど、結果のドット積は高くなります。AlexNetは最初の層で96個の個別カーネルを使用し、各カーネルは11×11×3の次元です。便利なことに、これらを小さなRGB画像として視覚化できます。
これらの画像は、AlexNetの最初の層がどのように画像を見ているかについて良い考えを与えてくれます。この図の上部のカーネルは、AlexNetがさまざまな角度で明るい部分から暗い部分への急激な変化やエッジを検出するよう学習した場所を明確に示しています。同様のパターンを持つ画像は、これらのカーネルと高いドット積を生成します。下部では、AlexNetがさまざまな色のブロブを検出するよう学習した場所が見られます。
これらのカーネルはすべてランダムな数値として初期化され、私たちが見ているパターンはデータから完全に学習されたものです。96個のカーネルそれぞれを入力画像上でスライドさせ、各位置でドット積を計算すると、アクティベーションマップと呼ばれる96個の新しい行列のセットが生成されます。便宜上、これらも画像として表示できます。
アクティベーションマップは、画像のどの部分が特定のカーネルとよく一致するかを示しています。特定のカーネルに視覚的に似たものを持ち上げると、そのアクティベーションマップの部分で高いアクティベーションが見られます。パターンを90度回転させると、画像とカーネルがもはや整列していないため、アクティベーションが消えることに注意してください。様々なアクティベーションマップが画像のエッジやその他の低レベルの特徴を拾っているのも見ることができます。
もちろん、画像のエッジやカラーブロブを見つけることは、ジャーマン・シェパードや航空母艦のような複雑な概念を認識することからはまだ大きく隔たっています。AlexNetやChatGPTのようなディープニューラルネットワークの驚くべき点は、ここから先はただ同じ操作を、学習された異なる重みで繰り返すだけだということです。
AlexNetにとっては、これらの96個のアクティベーションマップがまとめてテンソルにスタックされ、モデルの全体的な第2層である同じタイプの畳み込み計算ブロックへの入力になることを意味します。ゼロに近い値を削除することで、アクティベーションをより見やすくすることができます。
残念ながら、第2層では重み値とカーネル自体を単に視覚化するだけでは多くを学ぶことができません。最初の問題は、色が足りないということです。カーネルの深さは入力データの深さと一致する必要があります。AlexNetの最初の層では、モデルは赤、緑、青のカラーチャンネルを持つカラー画像を取り込むため、入力データの深さはわずか3です。しかし、最初の層が96個の別々のアクティベーションマップを計算するため、AlexNetの第2層での計算は96個の別々のカラーチャンネルを持つ画像を処理するようなものです。
AlexNetの第2層で何が起こっているかを視覚化することをより困難にする第2の要因は、ドット積が実際に第1層の計算の重み付き組み合わせを取っていることです。層がどのように一緒に機能しているかを視覚化する方法が必要です。
何が起こっているかを見る簡単な方法は、第2層の出力を強くアクティベートするさまざまな画像の部分を見つけることです。例えば、このアクティベーションマップはエッジ検出器を組み合わせて基本的なコーナーを形成しているように見えます。
驚くべきことに、AlexNetの奥深くに進むにつれて、強いアクティベーションはより高いレベルの概念に対応します。第5層に達すると、顔やその他の高レベルの概念に非常に強く反応するアクティベーションマップがあります。ここで信じられないのは、誰もAlexNetに顔とは何かを明示的に教えなかったことです。AlexNetが学習しなければならなかったのは、顔や人物のクラスを含まないImagenetデータセットの画像とラベルだけでした。AlexNetは、顔が重要であることとそれを認識する方法の両方を、完全に独力で学習することができました。
AlexNetのある特定のカーネルが学習したことをよりよく理解するために、そのカーネルに対して最も高いアクティベーション値を与えるトレーニングデータセットの例を見ることもできます。顔のカーネルの場合、驚くことではありませんが、人々を含む例が見つかります。
最後に、特徴視覚化と呼ばれる非常に興味深い技術があります。これは特定のアクティベーションを最大化するように最適化された合成画像を生成します。これらの合成画像は、特定のアクティベーション層が何を探しているかを見るもう一つの方法を提供します。
AlexNetの最終層に到達すると、画像は長さ4,096のベクトルに処理されています。最終層は、このベクトルに対して最後の行列計算を実行し、Imagenetデータセットの各クラスに1つのエントリを持つ長さ1,000の最終出力ベクトルを作成します。
サツケヴァーとヒントンは、最後から2番目の層のベクトルが非常に興味深い特性を示すことに気づきました。このベクトルを考える一つの方法は、4,096次元空間の点としてです。モデルに渡す各画像は、効果的にこの空間の点にマップされます。私たちがすることは、ただ1層早く終了してこのベクトルを取得するだけです。
2D空間の2点間の距離を測定できるように、この高次元空間の点(または画像)間の距離も測定できます。ヒントンのチームは、Imagenetデータセットのテスト画像を取り、対応するベクトルを計算し、次にこの高次元空間でテスト画像に最も近い(または最近傍の)Imagenetデータセット内の他の画像を検索するという簡単な実験を行いました。
驚くべきことに、最近傍の画像はテスト画像と非常に似た概念を示しました。AlexNet論文の図4では、象のテスト画像がすべて象である最近傍を生成する例が示されています。ここで興味深いのは、これらの画像間のピクセル値自体が非常に異なることです。AlexNetは本当に高次元表現のデータを学習しており、類似した概念が物理的に近いです。この高次元空間は、しばしば潜在空間または埋め込み空間と呼ばれます。
AlexNet論文の発表後の数年間で、これらの埋め込み空間の一部では距離だけでなく方向性も意味があることが示されました。顔が年齢や性別でシフトされるデモは、まず画像を埋め込み空間のベクトルにマッピングし、その後文字通りこの点をその埋め込み空間の年齢や性別の方向に移動させ、修正されたベクトルを画像に戻すマッピングすることでよく機能します。
これらの埋め込み空間を視覚化するための素晴らしい方法であるアクティベーションアトラスに入る前に、このビデオスポンサーがあなたやあなたの生活の誰かにとって楽しめるものかどうかを考える時間を取ってください。私は本当にこの会社と協力することにワクワクしていました。彼らは信じられないほど思慮深い教育製品を作っており、以下の説明にあるリンクを使用することで、私がこのようなビデオをもっと作るのを本当に助けてくれます。
このビデオのスポンサーはKiwoです。彼らはあらゆる年齢の子供たちのために、楽しく超よくデザインされた教育用クレートを作っています。STEAMのさまざまな分野に焦点を当てた9つの異なる月間サブスクリプションラインから選ぶことができ、個々のクレートを購入することもできます。これはKiwoを試すのに最適で、素晴らしい贈り物になります。
私は成長する中で常に何かを構築していました。ここでは家の外に私の2階の寝室への塔を建てています。私はエレクトロニクスに夢中で、Eurekaクレートラインからのこのような鉛筆削りのプロジェクトを絶対に愛したでしょう。これは科学と工学に焦点を当てています。
私は、この種の手作業で自己駆動型の学習が魔法のようなものだと本当に信じています。自分の教育について本当に考えると、このようなプロジェクトに完全に没頭した時に最も多くを学んだのです。そして今、私が父親になった今、私は自分の子供たちにも同じような経験をしてほしいと本当に思っています。Kiwoは本当にこのようなスタートから終了までのプロジェクトを素晴らしくパッケージ化しています。私の娘はちょうど微細運動技能のためのパンダクレートを手に入れました。これには、彼女が異なる把握方法を学ぶのを助けるために特別に設計されたこれらの特別なクレヨンが含まれています。ここで彼女が車に持っていくことを主張しているのが見えます。
このビデオを後援してくれたKiwoに大きな感謝を捧げます。コードWelch labsを使用して、サブスクリプションの最初の月を50%オフにしてください。
さて、AlexNetに戻りましょう。与えられたアクティベーションのセットを最大化する合成画像と、埋め込み空間の二次元投影または平坦化を組み合わせた本当に素晴らしい作品があり、アクティベーションアトラスと呼ばれるこれらの信じられないような視覚化を作成します。
アクティベーションアトラス上の隣接点は一般的に埋め込み空間で近く、モデルが学習した類似した概念を示しています。ニューロンの近隣を最もアクティベートする合成画像を見ると、モデルが視覚世界をどのように組織化しているかを垣間見ることができます。シマウマからトラ、ヒョウ、ウサギへとスムーズな視覚的遷移を視覚的に歩くことができます。
モデルの中間層に移ると、完全に形成されていないがまだ意味のある概念が見えます。このパスに沿って移動すると、画像内の果物の数とサイズと驚くほど相関します。
同じ原理が大規模言語モデルにも適用されます。単語や単語の断片は埋め込み空間のベクトルにマッピングされ、類似した意味を持つ単語は互いに近く、埋め込み空間の方向は時に意味的に意味があります。
Anthropicのチームによる信じられないほど最近の研究があり、アクティベーションのセットが言語の概念にどのようにマッピングできるかを示しています。これらの結果は、LLMがどのように機能するかをよりよく理解するのに役立ち、モデルの動作を修正するために使用できます。
ゴールデンゲートブリッジの概念に対応するアクティベーションのセットを高い値に固定した後、チームが実験していたLLMは自身をゴールデンゲートブリッジとして識別し始めました。
AlexNetは2012年、大幅な差で大規模視覚認識チャレンジを勝ち取りました。このチャレンジの3年目です。前年の勝者チームは、フードの下で見ると、知的システムに見られるものとより似た、非常に異なるアルゴリズムの複雑なセットを使用していました。
2011年の勝者は、SIFTと呼ばれるアルゴリズムから始まる非常に異なるアルゴリズムの複雑なセットを使用しました。これは、専門家が何年もの研究で開発した特殊な画像分析技術で構成されています。対照的に、AlexNetははるかに古いAIのアイデア、人工ニューラルネットワークの実装であり、アルゴリズムの動作はほぼ完全にデータから学習されます。
データと一連の重みの間のドット積演算は、もともと1940年代にマカロックとピッツによって、私たちの脳内のニューロンの大幅に単純化されたモデルとして提案されました。ChatGPTの各トランスフォーマーブロックの後半と、AlexNetの終わりには、多層パーセプトロンがあります。パーセプトロンは1950年代の学習アルゴリズムおよび物理的な機械で、マカロックとピッツのニューロンを使用し、基本的な形状認識タスクを実行することを学習できます。
1980年代に、若いジェフ・ヒントンとカーネギーメロン大学の彼の共同研究者たちは、バックプロパゲーションと呼ばれる多変量微積分技術を使用して、これらのパーセプトロンの複数の層をトレーニングする方法を示しました。これらのモデルは数層の深さで、驚くべきことに1990年代に車を運転するのにかなり優れていました。現在Metaの主任AIサイエンティストであるヤン・ルカンは、手書き数字を認識するために5層の深いモデルをトレーニングすることができました。
何年にもわたる人工ニューラルネットワークの断続的な成功にもかかわらず、このアプローチはAlexNetの発表直前までAIを行う方法としてほとんど受け入れられていませんでした。これが明らかに知的システムを構築する方法であれば、何十年も前にそれを行っていたでしょう。イアン・グッドフェローは彼の優れたディープラーニングの本で書いています:「この時点で、ディープネットワークは一般的にトレーニングが非常に困難だと考えられていました。現在、1980年代から存在しているアルゴリズムがかなりうまく機能することがわかっていますが、これは2006年頃には明らかではありませんでした。問題はおそらく単純に、これらのアルゴリズムが当時利用可能なハードウェアでは多くの実験を許可するには計算コストがかかりすぎたということです。」
2012年の主な違いは、単純にデータのスケールと計算のスケールでした。Imagnetデータセットは、130万以上の画像を持つ当時最大のラベル付きデータセットでした。そして、NVIDIAのGPUのおかげで、2012年にヒントンのチームは、15年前にヤン・ルカンが持っていたよりも約10,000倍の計算能力にアクセスできました。
ルカンのLeNet-5モデルには約60,000の学習可能なパラメータがありました。AlexNetはこれを1000倍に増やし、約6000万のパラメータにしました。今日、ChatGPTには1兆を超えるパラメータがあり、AlexNetの10,000倍以上のサイズになっています。この驚くべきスケールは、今日私たちが見る第三波AIの特徴であり、そのパフォーマンスと、これらのモデルがどのようにして何ができるかを理解する上での根本的な難しさの両方を促進しています。
AlexNetが顔の表現を学習し、大規模言語モデルがゴールデンゲートブリッジのような概念の表現を学習することを理解できることは素晴らしいですが、これらのモデルが学習する多くの概念は、私たちが言葉を持たないものです。アクティベーションアトラスは美しく魅力的ですが、私たちの空間推論能力がしばしば崩壊する非常に高次元の空間の非常に低次元の投影です。
AIが次にどこに行くかを予測することは、悪名高く難しいです。1980年代と1990年代のニューラルネットワークが3~4桁スケールアップしてAlexNetをもたらすことをほとんど誰も予想していませんでした。そして、AlexNetの計算ブロックの一般化が3~4桁スケールアップしてChatGPTをもたらすことを予測することはほとんど不可能でした。
次のAIのブレークスルーは、さらに3~4桁のスケールの先にあるかもしれません。あるいは、2012年にAlexNetがそうしたように、ほとんど忘れられていたAIへのアプローチが再浮上するかもしれません。待って見る必要があります。
計算ブロックを「単純」と呼んだことに腹を立てていますか?
全く違います。計算ブロックを単純と表現することで、単純な操作が組み合わさって知的な行動を生み出す印象的な性質が強調されます。これは基盤となるアルゴリズムとトレーニングデータの力を強調する素晴らしい方法です。


コメント