「最もよく当てはまる」を数値で表す
前のレッスンで、線形回帰は「データに最もよく当てはまるaとbを見つける」手法だと説明しました。しかし、「最もよく当てはまる」とは、具体的にどういう意味なのでしょうか。これを数値で表すために 誤差 という考え方を使います。
誤差とは、「モデルの予測値」と「実際の正解の値」との差のことです。
誤差=(予測値)−(正解の値)
例えば、実際の点数が70点で、モデルの予測が65点なら、誤差は65−70=−5です。
ここで、統計の単元で学んだ分散の計算を思い出してください。「平均との差を2乗して平均する」という手順を踏みました。誤差についても同じ発想を使います。誤差をそのまま平均すると、プラスの誤差とマイナスの誤差が打ち消し合ってしまうため、誤差を2乗してから 平均します。これを 二乗誤差 と呼びます。
二乗誤差=(予測値−正解の値)2
次のスライドで、この二乗誤差を全データ分まとめた「損失関数」という考え方に進みます。
損失関数:モデルの「悪さ」を測る1つの数値
1件のデータだけでなく、すべてのデータに対する二乗誤差の平均をとったものを 損失関数(平均二乗誤差、MSE) と呼びます。
損失=n1i=1∑n(y^i−yi)2
y^i(ハットが付いた y)はモデルによる予測値、yiは実際の正解の値、nはデータの件数です。右下の i は「何件目のデータか」を表す番号で、y^1 なら「1件目の予測値」です。
∑(シグマ)は「全部足す」という記号で、∑i=1n は「i を1から n まで1つずつ変えながら、右側の式をすべて足す」と読みます。例えばデータが3件(n=3)なら、上の式は次と同じ意味です。
損失=3(y^1−y1)2+(y^2−y2)2+(y^3−y3)2
予測が 3, 6, 8、正解が 2, 4, 9 なら、誤差は 1, 2, −1、2乗すると 1, 4, 1 なので、損失は 31+4+1=2 です。
この数式は、統計の単元で学んだ分散の数式と、形がほとんど同じであることに気づいたでしょうか。「平均との差」が「予測との誤差」に変わっただけです。
損失関数が表しているのは、「このモデル(このaとb)が、データ全体に対してどれくらい間違っているか」という1つの数値です。損失が小さいほど、モデルの予測はデータによく当てはまっている ということになります。
つまり、機械学習の「学習」とは、突き詰めれば「この損失をできるだけ小さくするようなaとbを探す」作業だと言えます。以前、「学習は予測→ズレの確認→調整の繰り返し」と説明しましたが、この「ズレ」の正体こそが、今回学んだ損失関数だったのです。
次のレッスンでは、この損失を実際にどうやって小さくしていくのか、「勾配降下法」という手法を覗いてみます。