正解ラベル付きのデータから入力と出力の関係を学習する手法
教師あり学習(Supervised Learning)とは、入力データと「正解(ラベル)」のペアを大量に与えて、入力から正解を導く関係をモデルに学習させる手法です。「教師」とは、各データに付いている正解ラベルのことを指します。
身近な例で考えると、問題集を模範解答付きで勉強するのに似ています。問題(入力)と正解(ラベル)がセットになっているので、自分の答えがどれだけ合っていたかを採点でき、間違えた分だけ修正していけます。教師あり学習も、正解と照らし合わせて「どれだけ外したか」を測り、それを減らすようにモデルを少しずつ調整します。
上のツールで▶ボタンを押すと、最初は適当だった境界線(緑)が、間違っている点を減らすように少しずつ動いて、最後に赤と青をきれいに分ける位置に落ち着く様子が見られます。これがまさに「学習」です。シナリオを「回帰」に切り替えると、点の傾向に合う直線を引く様子も確認できます。
教師あり学習は、出力(予測したいもの)の種類によって「分類」と「回帰」の2つに分かれます。
・分類(classification):出力が「グループ(カテゴリ)」。例: 迷惑メールか/通常か、犬か猫か、合格か不合格か。答えが「どれに当てはまるか」という飛び飛びの選択肢になる
・回帰(regression):出力が「連続した数値」。例: 家賃は何万円か、明日の気温は何度か、売上はいくらか。答えが「いくつ」という連続的な値になる
| 項目 | 分類 | 回帰 |
|---|---|---|
| 出力 | カテゴリ(離散) | 数値(連続) |
| やること | 境界線で仕分ける | 傾向に合う線を引く |
| 例 | 迷惑メール判定 | 家賃の予測 |
| 代表手法 | 決定木・SVM・k近傍法 | 線形回帰・回帰木 |
見分けるコツは「予測したい答えが、選択肢(種類)なのか、数値なのか」を考えることです。「Aかな?Bかな?」と種類を当てるなら分類、「何円・何度・何個」と量を当てるなら回帰、と覚えておけば判別できます。
教師あり学習は、機械学習の中の1分類です。機械学習には「教師あり」「教師なし」「強化学習」という3種類があり、このページで扱うのはそのうちの「教師あり」にあたります。
なぜ「教師あり」と呼ぶかというと、学習に使うデータに「正解(ラベル)」が付いているからです。この「正解が教えてくれる先生の役割をする」ことから「教師あり」という名前がついています。
・教師あり学習:正解ラベル付きのデータで学ぶ(このページ)
・教師なし学習:正解なしでデータの構造を自分で見つける
・強化学習:報酬というフィードバックで試行錯誤しながら学ぶ
実用上もっとも使われているのが教師あり学習で、迷惑メール検出・画像の分類・価格予測など、「答えが分かっているデータで学ばせる」多くの場面で活躍しています。
過学習(オーバーフィッティング)とは、モデルが学習データの細かいパターン(ノイズ=ゆらぎ)まで覚えてしまい、新しいデータに対してはうまく当てられなくなる現象です。
なぜ起きるかというと、モデルが学習データを「丸暗記」してしまうからです。答案を丸暗記した受験生が、問題が少し変わった途端に解けなくなるのと同じです。
過学習を防ぐ主な方法は次のとおりです。
・データを増やす:例が多いほど、モデルは本質的な傾向を学びやすくなる
・モデルをシンプルにする:複雑すぎるモデルは細かい凸凹まで学んでしまう
・学習データとテストデータを分ける:見たことのないデータ(テストデータ=正解を隠したデータ)で性能を確認し、過学習に気づけるようにする
教師あり学習が学べるのは、正解ラベルがあることで「モデルの予測がどれだけ間違っているか(誤差)」を計算できるからです。誤差が分かれば、それを小さくする方向にモデルを調整できます。逆に正解がなければ、何が正しくて何が間違いか判断できず、学習が成り立ちません。
学習の流れを整理すると次のようになります。
・① 予測:今のモデルで入力に対する答えを出す
・② 誤差を計算:予測と正解ラベルの差(ズレ)を測る
・③ 修正:誤差が小さくなるようにモデルのパラメータを調整する
この①〜③を大量のデータで繰り返すことで、モデルはどんどん賢くなっていきます。
一方で、ラベル付けには手間がかかるのが弱点です。数万枚の画像に「これは犬」「これは猫」と人手で付けていく作業が必要なため、コストがかかります。正解ラベルを用意できないときは、ラベルなしで学べる教師なし学習を使う、という使い分けにつながります。