この記事は、私の著書『Deep Learning with Python(Pythonを使ったディープラーニング)』 (Manning Publications刊)の第9章2部を編集したものです。現状のディープラーニングの限界とその将来に関する2つのシリーズ記事の一部です。
既にディープラーニングに深く親しんでいる人を対象にしています(例:著書の1章から8章を読んだ人)。読者に相当の予備知識があるものと想定して書かれたものです。
ディープラーニング: 幾何学的観察
ディープラーニングに関して何より驚かされるのは、そのシンプルさです。10年前は、機械認識の問題において、勾配降下法で訓練したシンプルなパラメトリックモデルを使い、これほど見事な結果に到達するなど誰も想像しませんでした。今では、十分に多い事例に対する勾配降下法で訓練した、十分に大きなパラメディックモデルさえあればよいのです。かつてFeynmanが宇宙を指して言ったように、「複雑ではない、ただ量が多いだけ」なのです。
ディープラーニングでは、すべては1つのベクトルです。すなわち、すべては幾何学的空間における1つの点なのです。モデル入力(テキスト、画像など)とターゲットはまず、「ベクトル化」されます。言い換えると、始点入力ベクトル空間と終点ベクトル空間になるということ。ディープラーニングモデルの各層は、それを通過するデータに対して1つのシンプルな幾何学的変換を実行します。同時に、モデルの層の連鎖が非常に複雑な幾何学的変換を1つ形成します。これは連続するシンプルな変換に細分化することができます。この複雑な変換は入力空間を終点空間へ1点ずつマッピングしようとするものです。この変換は層の重さによってパラメータ化されます。重さはモデルのパフォーマンスの良さに基づいて繰り返し更新されていきます。この幾何学的変換の大きな特徴は、微分可能であること。勾配降下法経由でそのパラメータを学習するために不可欠な特徴です。入力から出力への幾何学的変形が、滑らかかつ連続的でなければならないことは直感的に分かるでしょう。これは重要な制約です。
この複雑な幾何学的変換を入力データに適用する全体のプロセスは、立体的に視覚化できます。紙のボールのしわを伸ばそうとしている人を想像してください。紙を丸めたボールは、モデルの始点となる入力データの多様性を表します。人が紙のボールに施す各動作は、1つの層が操作するシンプルな幾何学的変換に似ています。ボールをほどくしぐさの最初から最後までの連続は、モデル全体の複雑な変換です。ディープラーニングモデルは高次元データの複雑な多様体をほどくための数学的機械なのです。
それこそがディープラーニングの魔法です。意味をベクトル、幾何学的空間に変換した後、ある空間を別の空間にマッピングする複雑な幾何学的変換を段階的に学習するのです。必要なのは、元のデータにある関係性の全範囲を取得できる、十分に高い次元を持つ空間だけです。
ディープラーニングの限界
このシンプルな方略で実装できるアプリケーションの空間はほとんど無限大です。しかし、人間が注釈を加えた膨大な量のデータがあってもなお、現状のディープラーニングの技術では全く到達できていないアプリケーションが山ほどあるのです。例えば、ソフトウェア製品の機能を英語で記述した数十万、さらには数百万のデータセットを、プロダクトマネジャーが書いたとおりに、要件に見合うよう、それに対応するエンジニアのチームが開発したソースコードにアセンブルしたりすることはできるでしょう。しかしこのデータをもってしても、単にプロダクトディスクリプションを読んで、適切なコードベースを生成するようにディープラーニングモデルを訓練することはできないのです。これはほんのひとつの事例です。一般に、理論的思考(プログラミング、科学的方法の適用など)、長期計画、アルゴリズム的なデータ操作を必要とする事案には、どれだけデータを投げてもディープラーニングモデルの力は及びません。深いニューラルネットワークを用いたソートアルゴリズムを学習することさえも非常に困難なのです。
理由は、ディープラーニングモデルは、「単に」あるベクトル空間を別のベクトル空間にマッピングするシンプルで連続的な幾何学的変換の連鎖でしかないからです。できるのは、1つのデータ多様体Xを別の多様体Yにマッピングすることだけです。その際、XからYへの学習可能な連続変換が存在し、トレーニングデータとして使用するためのX:Yの高密度サンプリングが利用可能であると仮定しています。したがって、ディープラーニングモデルを一種のプログラムとして解釈することはできても、逆にほとんどのプログラムはディープラーニングモデルとして表現できません。ほとんどのタスクにおいて、タスク解決に対応する実際的なサイズのディープニューラルネットワークが存在しないか、存在する場合でも学習可能ではないからです。つまり、対応する幾何学的変換があまりに複雑過ぎるか、それを学習するための適切なデータがないといった状況です。
より多くの層を積み重ね、より多くの訓練データを使用して現状のディープラーニング技術をスケールアップしても、問題のごく一部を表面的に緩和させるに過ぎません。ディープラーニングモデルに表現できるものは非常に限られている根本的な問題の解決にはならず、学習させたいと思うプログラムの大半はデータ多様体の連続的な幾何学的変形として表せないのです。
機械学習モデルを擬人化するリスク
現代のAIの非常に現実的なリスクの1つは、ディープラーニングモデルの仕事を誤って解釈し、その能力を過大評価することです。人間の精神の基盤となる特徴は、私たちの「心の理論」で、これは自分の周囲のものに意図、信念、知識を投影する傾向を指します。ニコニコ顔を石に描くと、それは私たちの心の中で突如「ハッピーな石」になります。ディープラーニングに適用すると、モデルが絵画を説明するキャプションを生成するように何とか訓練できた場合、私たちはモデルが、生成するキャプションだけでなく、絵の内容を「理解している」と信じるように誘導されることを意味します。そうすると、訓練データに存在する類の画像に若干の逸脱があり、モデルが完全に不条理なキャプションを生成し始めると、私たちは必要以上にビックリしてしまうわけです。
注釈:少年は野球のバットを持っている。
とりわけこれは、モデルが誤って分類するように設計されたディープラーニングネットワークへの入力例である「敵対的なサンプル」に顕著です。入力空間で勾配上昇法を使って入力を生成できることは既にお気づきでしょう。例えばこれは、いくつかのコンバットフィルタの起動を最大化します。5章(注:『Deep Learning with Python(Pythonを使ったディープラーニング)』)で紹介したフィルタの視覚化手法、8章のディープドリームアルゴリズムの基礎でもあります。同様に、勾配上昇法を通して、所与のクラスのクラス予測を最大化するために画像をわずかに変形させられます。パンダの写真を取得し、「テナガザル」の勾配に追加すると、このパンダをテナガザルに分類するニューラルネットワークができます。以上の例は、これらのモデルの脆弱性と、モデルが行う入力から出力へのマッピングと人間の知覚との間にある深い差異の証明です。
注釈:
(上行)パンダ! テナガザルクラスの勾配 テナガザル!
(下行)パンダ 敵対的なサンプル
要は、ディープラーニングモデルは入力に対して、少なくとも人間的な意味での理解は一切していないということです。私たちがイメージ、音、言語を理解する時、それは人間、実態ある地上の生き物としての感覚運動の経験に根ざしています。機械学習モデルはそういった経験へのアクセスがないゆえに、人間的な方法で入力を「理解」できないのです。膨大な訓練サンプルに注釈を付けてモデルに入力することで、特定の一連の例について、データを人間の概念にマッピングする幾何学的変換を学ばせることはできるでしょう。しかしこのマッピングは私たちの心の中にある元のモデル、具体的な媒介として私たちの経験から開発されたものを単純化したスケッチでしかありません。それは鏡の中の淡い像のようです。
注釈:
(上行)現実世界→具体的な人間の経験→人間の心の抽象的概念→これらの概念を実証するラベル付きのデータ→機械学習モデル
(下行)常に現実世界に都合よく移行できるとは限らない
その出所である人間の精神モデルにマッチしない
訓練データにマッチする
機械学習の実践者として、常にこの事実を心に留めて、間違っても「ニューラルネットワークは実行したタスクを理解している」と信じ込まされないようにしましょう。実際、少なくとも人間が分かるような筋道では理解していないのですから。ネットワークは、私たちが教えたいと思っていたことよりもはるかに狭い範囲で、意図と異なるタスクを訓練されてきたのです。つまり、単に訓練の入力を訓練の目標に1点ずつマッピングしてきただけなのです。訓練データから逸脱したものを見せたら最後、ネットワークは信じがたいほど不条理な形で壊れるでしょう。
局所的一般化 対 極度の一般化
ディープラーニングモデルが行う入力から出力への直接的な幾何学的変形と、人間が考え、学習する方法との間には根本的な違いがあるようです。それは、人間が明示的な訓練のサンプルを提示されるのではなく、身体的な経験から自分自身で学ぶという事実だけではありません。学習プロセスの違いを考慮しなくとも、根本的な表現の性質にそもそもの違いがあるのです。
人間は、急な刺激を即座の反応にマッピングする(ディープネットや、あるいは昆虫がそうするように)よりもはるかに高度な処理ができます。現在の状況、自分自身、他人の複雑で抽象的なモデルを維持し、これらのモデルを使用して様々な未来の可能性を予測し、長期計画を実行することができるのです。彼らは、既知の概念を融合して、今まで経験したことのないものを表現する能力を持っています。例えば、ジーンズをはいた馬を絵に描いたり、宝くじに当選したら何をするかをしたりできるのはそのためです。この、仮説を扱う能力、精神モデル空間を直接経験できることをはるかに超えて拡張する能力、つまり、抽象化と推論を実行する能力こそ、間違いなく人間の認知の特徴を定義するものでしょう。非常に限られたデータを使用するか、または新しいデータを全く使用せずに、経験したことのない斬新な状況に適応する能力を指します。
これは、ディープネットの行動とは180度異なります。それは「局所的一般化」とでも呼べるもので、新しい入力が訓練時に経験したものと少しでも異なると、ディープネットが実行する入力から出力へのマッピングは、即座に意味をなさなくなります。例えば、ロケットを月に着陸させるための適切な打ち上げパラメータを学習するという問題を考えてみましょう。このタスクにディープネットを使用する場合、監視付きの学習、強化学習のどちらを利用した訓練であれ、数千から数百万回の打ち上げのテストを与える必要があります。つまり、入力空間の高密度サンプリングにさらし、信頼に足る入力空間から出力空間へのマッピングを学ばせなければなりません。対照的に、人間は自らの抽象化の力を使って物理モデル(ロケット科学)を生み出せるので、わずかなテストで正確な解決策を見つけ、ロケットを月に送ることができます。同様に、人体を制御するディープネットを開発し、車にぶつからず安全に街をナビゲートするよう学習させたい場合、車や危険を推測し、適切な回避行動が生じるまで、ネットは様々な状況で数千回も死なねばならないでしょう。新しい街に放り込まれれば、知っていることのほとんどを再学習しなければならなくなります。一方、人間はたったの一度も死なずに、安全なふるまいを学習することができます。これもまた、仮説的状況を抽象化モデリングする力のおかげです。
注釈:(上から)データ点や経験の同じセット
局所的一般化: パターン認識による一般化の力
極度の一般化: 抽象化と推論を経て到達する一般化の力
つまり、機械認識の進歩にもかかわらず、まだまだ人間レベルのAIには遠く及ばないということです。モデルが実行できるのは単なる局所的一般化であり、新しい状況が過去のデータと非常に近い場合に何とか適応するだけです。一方、人間の認知には極度の一般化の能力があり、全く新しい状況にも即座に適応したり、将来の状況を長期にわたって計画したりすることができます。
まとめ
次のことを覚えておきましょう。現在までのディープラーニングで唯一本当に成功していると言えるのは、人間の注釈が付いたデータを大量に与えた場合に、連続的な幾何学的変換を使用して空間Xを空間Yにマッピングする能力です。これをうまく活用すると、基本的にはどの産業界でも大変革を起こせますが、人間レベルのAIと言うにははるかにほど遠いのが現状です。
これらの制限を少しでも取り去り、人間の脳との競争を開始するには、単純な入力から出力へのマッピングから、推論と抽象化へと移行する必要があります。様々な状況や概念の抽象モデリングにつながる適切な基盤は、コンピュータプログラムの基盤です。 以前に、機械学習モデルは「学習可能なプログラム」と定義し得ると言いました。(『Deep Learning with Python(Pythonを使ったディープラーニング)』 )現時点では、可能性あるプログラムの非常に狭い範囲の特定のサブセットに属するプログラムしか学習できません。しかし、モジュール式、かつ再利用可能な方法で、あらゆるプログラムを学習できるとしたらどうでしょうか。次の記事では今後の見通しについて見ていきましょう。
2番目のパートはこちらで読めます。『ディープラーニングの未来』