本記事は、連載「AIの原理」(全11回)の第3回です。
前回の記事はこちら
前回まで、損失を計算し、誤差逆伝播でさかのぼり、勾配降下法で重みを調整するという、学習の「エンジン」の部分を見てきました。ここでは、その説明を少し単純化していました。「ネットワークの答えと、正解とのずれを計算する」と言うとき、当然のように「正解」が用意されている前提で話を進めていたのです。
しかし、現実の課題には、あらかじめ正解が用意されているとは限らないものもあります。今回は、ネットワークが何を手がかりに学ぶかによって分かれる、いくつかの学習の型を見ていきます。そして、学習の最後にもう一つ残る問題、「訓練でうまくいくこと」と「本番でうまくいくこと」は同じではない、という点も取り上げます。
教師あり学習—答え合わせをしながら学ぶ
これまで前提にしてきたのは、「教師あり学習」と呼ばれる型です。答えの分かっている問題集を、解答を見ながら解き進める勉強に近いものです。
具体的には、「入力」と、それに対応する「正しい出力」の組を、大量に用意します。画像であれば、写真そのものと、「これは猫」「これは犬」というラベルの組です。ネットワークに写真を見せ、答えを出させ、その答えを正解ラベルと突き合わせる。ずれがあれば、前回見た仕組みで重みを調整する。これを、大量の写真について、何度も繰り返します。画像に写っているものを当てる、文章の続きを予測するといった課題の多くは、この型に属します。
教師なし学習—正解を知らされずに、構造を見つけ出す
これに対して、「正解」がまったく用意されていないデータもあります。「教師なし学習」は、そうしたデータから、構造や規則性そのものを見つけ出そうとする学び方です。
大量のボタンが入った箱を、色や形、大きさで仕分けする作業を想像してください。誰も「これは赤いグループ」「これは四角いグループ」と教えてくれません。それでも、似たもの同士を近くに集めていけば、自然といくつかのまとまりができあがります。教師なし学習も、これと似ています。大量のデータを、正解のラベルなしにネットワークへ与え、似ているデータ同士を近くに、異なるデータ同士を遠くに配置するような形で、データの中に隠れている構造を浮かび上がらせます。
強化学習—正解ではなく、結果から学ぶ
もう一つ、まったく異なる学び方として「強化学習」があります。
自転車の乗り方を思い出してみてください。誰かが「右足の筋肉をこう動かして」と、正しい動かし方を一つひとつ教えてくれたわけではないはずです。実際にペダルをこぎ、バランスを崩して転び、あるいは少しの間まっすぐ走れた。その結果を手がかりに、少しずつ、うまく走れる感覚をつかんでいったのではないでしょうか。
強化学習も、これと同じ形をしています。正しい答えの例を与えられるのではなく、ある行動を取った結果として得られる「報酬」(良い結果には高い評価、悪い結果には低い評価)を手がかりに、報酬をできるだけ多く得られる行動を、試行錯誤の中で学んでいきます。計算機科学者トム・ミッチェルは、この型の例として、チェスの一手一手について正解を教わるのではなく、対局全体の勝敗という結果だけを手がかりに、指し方を学んでいく課題を挙げています。強化学習は、現在の推論モデルを理解するうえでも重要な考え方になるため、連載第8回で、あらためて詳しく取り上げます。
過学習と汎化—覚えることと、分かることの違い
学習の型とは別に、もう一つ押さえておくべき問題があります。訓練データに対する損失を、どこまでも小さくしていくとどうなるか、という問題です。
過去問を一言一句、答えまで丸ごと暗記した受験生を想像してください。この受験生は、過去問と同じ問題が出れば満点を取れます。しかし、数字を少し変えただけの応用問題や、見たことのない問題が出ると、途端に対応できなくなります。本当の意味で理解していたわけではなく、問題と答えの組み合わせを、そのまま覚えていただけだったからです。
ネットワークの学習にも、同じことが起こり得ます。訓練データに対する損失をひたすら小さくしていくと、ネットワークは、訓練データの細部やノイズにまで過剰に適合してしまい、見たことのない新しいデータに対してはうまく機能しなくなることがあります。この現象を「過学習」と呼びます。学習が本当に目指しているのは、訓練データを記憶することではありません。そこに含まれる規則性を、見たことのないデータにも当てはめられる形で捉えること、すなわち「汎化」です。
この落とし穴があるため、ネットワークを訓練するときには、訓練に使っていない別のデータ(テストデータ)を、あらかじめ取り分けておきます。訓練データでの成績がどれだけ良くても、このテストデータでの成績が振るわなければ、それは「覚えた」だけで「分かった」わけではない、という警告になります。
教師あり学習と大規模言語モデルのつながり
第1回のニューロンと層、第2回の損失・勾配降下法・誤差逆伝播、そして今回の学習の型と汎化。この三回で見てきた内容が、連載「AIの原理」がこれから扱うほとんどの話題の土台になります。
次回取り上げる大規模言語モデルは、基本的には、今回見た教師あり学習を、桁違いに大きな規模のネットワークと、桁違いに大量のテキストデータに対して行ったものです。そのうえで、人間の評価を手がかりに、強化学習に近い考え方で仕上げの調整を行う工程もあります。この工程については、連載「AIの歴史」第10回(ChatGPT)でも簡単に触れていますが、詳しい仕組みは連載第5回で、あらためて扱います。
なぜ大きなネットワークほどよく汎化するのか
教師あり学習・教師なし学習・強化学習という区分、そして過学習と汎化という緊張関係は、いずれもよく整理された、確立された考え方です。
しかし、なぜ現在の大規模なネットワークが、これほどうまく汎化するのかについては、完全には解明されていません。現在の大きなネットワークは、訓練データの数よりもはるかに多くの重みを持っていることが珍しくありません。単純に考えれば、これほど自由度の高いネットワークは、訓練データを丸暗記するだけで、新しいデータにはまったく対応できなくなってもおかしくありません。
しかし実際には、多くの場合、意外なほどよく汎化します。複数の理論的な説明が提案されているものの、一致した見解には至っていません。「覚えること」と「分かること」の境目を、理論的にどこまで厳密に引けるのかは、今も開かれた問いです。
次回は、ChatGPTに代表される大規模言語モデル・LLMを解説します。
出典・参考文献
- Mitchell, T. M. (2006). “The Discipline of Machine Learning.” CMU-ML-06-108, Carnegie Mellon University School of Computer Science.
(https://www.cs.cmu.edu/~tom/pubs/MachineLearning.pdf) - Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press. Chapter 5: “Machine Learning Basics.”
(https://www.deeplearningbook.org/contents/ml.html)
