機械学習とは何か
ルールを人が書くのではなくデータに当てはめるプログラム、学習と予測のループ、トラック全体で使う用語、そして機械学習が適さない場面
このレッスンで学ぶこと
- ルールを人が書いたプログラムと、ルールをデータに当てはめたプログラムの違いを説明できる
- 特徴量、ラベル、モデル、パラメータ、損失、予測を定義し、正しく使い分けられる
- 学習と予測のループを説明し、どちらが1回だけ動き、どちらが動き続けるかを述べられる
- 古典的な3種類の学習を挙げ、それぞれの例を1つ示せる
- 与えられた問題に対して、機械学習が妥当な手段かどうかを判断できる
本レッスンは、少しコードが書けて、ライブラリに触れる前に機械学習とは何かを知りたい人向けです。このページにコードはありません。狙いは、プログラムのルールを人が打ち込むのではなくデータに当てはめるとき何が変わるのかを正確に捉えること、そして入門トラックの以降のレッスンが説明なしに使う用語を押さえることです。
プログラムを得る2つの方法
メールが迷惑メールかどうかを判定するプログラムが必要だとします。従来のやり方は、ルールを書くことです。件名がすべて大文字なら1点加算。送信者がアドレス帳にあれば3点減算。本文に宝くじの話があれば2点加算。あるしきい値を超えたら迷惑メールとする。すべてのルールは自分のものなので、プログラムが間違えたときにどの行を直せばよいかが分かります。
これがうまくいくのは、ルールが既知で、少なく、安定している場合です。迷惑メールはそのどれでもありません。毎月変わり、有用な手がかりは何千もの単語に散らばり、それらの相互作用は列挙しきれないほど多い。1年かけて書いたルール集は、四半期で古くなります。
機械学習は問題をひっくり返します。下してほしい判断の実例、つまり人がすでに迷惑メールかどうかを印付けしたメールを集め、その判断を再現するルールを探索する手続きを走らせるのです。ルールが取りうる形(単語の出現回数の重み付き和、あるいは「はい・いいえ」の質問の木、など)は依然として自分で選びます。手続きが選ぶのは、その中の数値です。
「データに当てはめる」は文字どおりに受け取ってください。機械学習モデルとは、空欄のあるプログラムです。学習は、事例に対するプログラムの答えが人の与えた答えにできるだけ近くなるように選んだ数値で、その空欄を埋めます。この手続きは探索であり、続く3つのレッスンでその探索を四則演算から組み立てます。
3つの数値で見る実例
考えうる最小の例を取り上げます。床面積からマンションの価格を予測したい。学習に使える売却済みの物件が3件あります。
| 面積(m²) | 価格(千単位) |
|---|---|
| 50 | 200 |
| 80 | 290 |
| 100 | 350 |
ルールは直線にすると決めます。価格は、ある傾きに面積を掛けて、ある切片を足したもの。この決定がモデルの形です。傾きと切片が2つの空欄で、それを埋めるのが学習の仕事です。
傾き3、切片50を試します。直線は1件目に200、2件目に290、3件目に350を予測します。すべての予測が一致し、これらの事例に対する誤差はゼロで、学習はここで止めてもかまいません。4件目の70 m²の物件は、3×70+50で260と予測されます。
次に、3件目が340で売れていたとします。同じ直線は350を予測し、誤差は10です。傾き2.8、切片60なら200、284、340となり、誤差は0、6、0です。どちらの直線が良いかは誤差の足し合わせ方次第で、その足し合わせ方には名前があります。損失です。よく使われるのは各誤差を2乗して平均を取る方法で、1本目の直線は100÷3、2本目は36÷3となります。2本目の勝ちです。学習とは、傾きと切片を試し、損失を測り、損失が下がる方向へ動かしていく過程です。レッスン03でこの場合の正確な計算を示し、レッスン04で公式がないときにも使える一般的な探索を示します。
用語
これらの言葉はField Guideのあらゆるページに登場します。
- 特徴量は、測定された入力の1つです。床面積は特徴量でした。迷惑メールフィルタなら、単語ごとに1つ、1万個の特徴量があるかもしれません。
- ラベルは、事例に付けられた答えです。価格がラベルでした。「迷惑メール」か「迷惑メールでない」かもラベルです。
- 事例(またはサンプル、行)は、特徴量の1組とそのラベルです。データセットはそれらの集まりです。
- モデルは、空欄のあるプログラムです。直線はモデルです。質問の木もモデルです。ニューラルネットワークは何百万もの空欄を持つモデルです。
- パラメータ(または重み)は、空欄の1つひとつです。傾きと切片が2つのパラメータでした。「7 Bパラメータ」の「7 B」はこれを数えたものです。
- 損失は、現在のパラメータがどれだけ事例に合っていないかを表す1つの数値です。小さいほど良い。
- 学習(または当てはめ、フィッティング)は、損失を小さくするパラメータの探索です。
- 予測(または推論)は、パラメータを固定したモデルを、まだ見ていない入力に対して走らせることです。
学習と予測の区別は、身につけておく価値が最も高いものです。学習は高価で、1回、あるいはたまにしか行いません。予測は安価で、プログラムが使われるたびに行われます。数千台のGPUで数週間、というのが前半です。チャット画面に打ち込んだ質問が1秒で答えられる、というのが後半です。
学習と予測のループ
まとめると、モデルの一生は下の図のようになります。
上段のループが学習のすべてです。モデルに事例を見せ、その答えをラベルと比べ、損失が減る方向へパラメータを少し動かし、繰り返す。直線の場合は、最良のパラメータに一発でたどり着く公式があります。それ以外のほぼすべてではこのループが唯一の手段で、何百万回も回ることがあります。
下段の固定されたコピーが、出荷されるものです。学習済みモデルとは、数値のファイルと、モデルの形を知っているコードです。そのファイルを読み込んで走らせるのが予測です。予測の間に学習は起こりません。デプロイされたモデルは、誰かが上段をもう一度回さない限り、使われることで賢くなることはありません。
破線は、初心者が忘れ、実務者が最も時間を費やす部分です。世界は変わり、学習事例は古くなり、予測は悪化します。それを検知して再学習することは、MLOpsとデプロイとレッスン10で扱います。
3種類の学習
マンションと迷惑メールフィルタはどちらも教師あり学習です。すべての事例にラベルが付いていて、モデルは入力をラベルに対応付けることを学びます。数値(価格)を予測するのが回帰、カテゴリ(迷惑メールか否か)を予測するのが分類です。本トラックの大半は教師あり学習です。産業界で役に立つモデルの大半がそうだからです。
教師なし学習にはラベルがありません。入力の山があり、そこに構造を見いだしたい。どの顧客が互いに似ているか、この1万次元のうちどれが重要か、どのレコードが他とまるで違うか。クラスタリング、次元削減、異常検知はここに属します。出力は予測ではなく、データの記述です。
強化学習にはラベルも固定されたデータセットもありません。エージェントが環境の中で行動を取り、報酬信号を受け取り、どの行動がより多くの報酬につながるかを学びます。ゲーム、ロボット制御、そしてチャットモデルの学習の一部の段階で使われます。専用のトピックハブがあります。
大規模言語モデル(LLM)はこれらを横断します。主たる学習は自己教師あり学習で、ラベルは入力そのものの一部、つまり文書の次の単語です。したがってどんなテキストも学習事例になり、人手によるラベル付けは不要です。それより小規模な第2段階で、教師あり事例と強化学習を使って振る舞いを整えます。仕組みはTransformerとLLMのハブで、上手な使い方はレッスン09で扱います。
汎化がすべて
3件のマンションに戻ります。3点すべてを通る直線の損失はゼロです。3点すべてを通り、その間で馬鹿げた動きをする曲がりくねった曲線も同様です。どちらも学習事例には完璧に当てはまりますが、4件目の物件をまともに予測できるのは片方だけです。
気にすべき性質は、学習に使った事例にどれだけ合うかではなく、一度も見たことのない事例をどれだけうまく予測できるかです。それが汎化であり、その失敗形態、すなわちモデルが背後のパターンではなく学習事例そのものを暗記してしまう現象が過学習です。データ量に対して柔軟すぎるモデルは過学習し、硬すぎるモデルは学習不足になります。その間を選ぶことが、実務の技の大半です。
汎化は学習データでは測れません。事例の一部を取り分け、学習には決して見せず、それらでモデルを採点して測ります。レッスン02でこれを具体化し、取り分けたスコアがいかに簡単に欺かれるかを示します。レッスン06では、正しいスコアの選び方をさらに掘り下げます。
機械学習が適さない場面
ルールが既知で少ないなら、書いてください。日付パーサにモデルは要りません。税額計算には仕様書があります。モデルを使えば、作るのに時間がかかり、テストが難しく、間違いも増えます。
データがなければ、学ぶ元がありません。「Xを予測するモデルが欲しい」のすぐ後には「そしてXの事例がN件ある」が続くべきです。Nがゼロなら、あるいは事例に手がかりが含まれていないなら、どれだけモデリングを頑張っても無駄です。レッスン02の題が「データがモデルである」なのはこのためです。
誤答が許されないなら、当てはめたモデルは役に立ちません。モデルが与えるのは、学習データに似た入力に対する正答の確率であり、その範囲の外では自信満々のでたらめです。安全性が重要なシステムがモデルをルールとフォールバックで包むのはこのためで、安全性・セキュリティ・プライバシーのハブでその実際を論じます。
個々の判断を説明しなければならないなら、たとえ精度が高くても複雑なモデルは誤った選択かもしれません。解釈可能性は活発な研究分野ですが、規制当局が読める短い決定木のほうが、スコアが2点高いニューラルネットワークより価値がある場合もあります。
役に立つのは逆向きのテストです。機械学習が正しい手段なのは、ルールが未知か多すぎて書けないとき、ラベル付き事例が豊富にあるとき、時折の誤りが許容できるとき、そして本番の入力が学習事例に似ているときです。迷惑メールフィルタ、需要予測、画像分類はいずれもこのテストに合格します。本トラックの残り9つのレッスンは、上の図を左から右へ、次いで下へとたどり、レッスン10でサービスの背後に置かれたモデルで終わります。
演習
- 仕事や家庭で、判断を伴う作業を1つ選んでください。特徴量、ラベル、ラベル付き事例の入手元、1か月でおおよそ何件集められるかを書き出してください。そのうえで、機械学習がそれに妥当な手段かどうかを一文で判断してください。
- 3件目が340で売れたマンションの例で、傾き2.5、切片80の平均2乗損失を計算してください。傾き3、切片50より良いですか、悪いですか。
- デプロイ済みの迷惑メールフィルタが、新種の迷惑メールを通し始めました。学習と予測の図を使って、修正に関わる箱と関わらない箱を述べてください。
まとめ
- 機械学習モデルは空欄のあるプログラムです。学習は、ラベル付き事例に対する損失が小さくなるように選んだ数値で空欄を埋めます。
- 特徴量は入力、ラベルは答え、パラメータは空欄、損失は食い違いの大きさ、予測はパラメータを固定してモデルを走らせることです。
- 学習は1回だけ動き、高価です。予測はリクエストごとに動き、安価です。デプロイされたモデルは、再学習しない限り使われても学びません。
- 教師あり学習にはラベルがあり、教師なし学習にはなく、強化学習には報酬があり、言語モデルは主に自己教師あり学習です。
- 意味のあるスコアは、モデルが一度も見ていない事例でのものです。学習データに当てはめるのは簡単で、何も証明しません。
さらに読む
- The Elements of Statistical Learning, Hastie, Tibshirani and Friedman: 第1章と第2章が教師あり学習、バイアスとバリアンスのトレードオフ、損失の考え方を扱います。PDFは著者らが無料で公開しています。
- Probabilistic Machine Learning: An Introduction, Murphy: 第1章は、現代的な例を交えた学習の種類のコンパクトな概観です。著者による無料PDF。
- Pattern Recognition and Machine Learning, Bishop: 1.1節で数点に多項式を当てはめ、過学習を図で示します。著者のページから無料PDF。