みんなのAI
機械学習AI論文
読み込み中…

学ぶ

🏅マイ実績

Ch.04

損失関数 (MSE): 正解と予測の誤差を測る

回帰で「最もよくフィットする直線」を探すとき、予測の良さを一つの数で表す必要があります。各点で予測 y^\hat{y}y^​ と実測 yyy の差(誤差)を2乗して足したものが 二乗誤差の和 SSE(Sum of Squared Errors) で、これをデータ数で割ると 平均二乗誤差 MSE(Mean Squared Error) になります。このMSEが 0に近いほど モデルがデータに良くフィットしており、勾配降下法はこのMSEを最小化します。

チャプター別 機械学習図

チャプターを選ぶと、下の図がそのチャプターの内容に切り替わります。機械学習の流れを一覧で確認できます。

予測 y^\hat{y}y^​ と実測 yyy の差を2乗して平均したものがMSEです。

xy二乗誤差 = 面積(1辺 = |残差|)0.85SSE = 4.25   →   MSE = SSE ÷ 5MSE = 0.85

MSE =1n∑i(yi−y^i)2= \frac{1}{n}\sum_i (y_i - \hat{y}_i)^2=n1​∑i​(yi​−y^​i​)2 — 損失が小さいほど直線がデータに良くフィット。

損失関数 (MSE)

誤差を測るものさし — モデルがどれだけ外れているかをまとめて表す損失関数が必要です。実測 yyy と予測 y^\hat{y}y^​ の差を残差(誤差)といいます。この残差を2乗した (y−y^)2(y-\hat{y})^2(y−y^​)2 を全データで足すと 二乗誤差の和 SSE(Sum of Squared Errors) になります。SSEをデータ数 nnn で割ったものが 平均二乗誤差 MSE(Mean Squared Error) です。つまり MSE=1n∑(y−y^)2=SSE/n\text{MSE} = \frac{1}{n}\sum (y - \hat{y})^2 = \text{SSE}/nMSE=n1​∑(y−y^​)2=SSE/n で、この値が小さいほどモデルがよく当てはまっています。
なぜ2乗? — 残差が +2+2+2 でも −2-2−2 でも「2だけずれている」という意味は同じです。そのまま足すと +2+(−2)=0+2+(-2)=0+2+(−2)=0 のように打ち消すので、2乗して常に正にし、大きな誤差ほど重く見るために2乗を使います。
線形回帰とのつながり — Ch03の直線 y^=wx+b\hat{y}=wx+by^​=wx+b が「データに最も良くフィット」とは、二乗誤差の和 SSE をデータ数で割った MSE が最小になるように傾き www と切片 bbb を決めたということです。勾配降下法はこのMSEを減らす方向に www, bbb を更新します。
学習の目標を定める — 機械学習は「損失を最小化する」と要約されます。回帰でその損失がMSEなら、モデルはMSEが下がる方向にだけ動くので目標が明確です。
微分が容易 — 2乗関数は微分すると式がきれいになるため、勾配降下法で www, bbb をどう更新するか計算しやすく、深層学習でも同様の2乗誤差が広く使われます。
RMSEで単位を取り戻す — MSEは誤差を2乗して平均するため、単位が「yyy の2乗」になります(例:価格予測で単位が「円²」)。実務では「平均して何円、何度ずれますか?」のように元の単位で言いたいことが多いです。このときMSEの平方根をとった RMSE(Root Mean Squared Error, 平方根平均二乗誤差) を使います。RMSE =MSE= \sqrt{\text{MSE}}=MSE​ なので、MSEを理解すればRMSEも自然に理解できます。
回帰モデルの学習 — 線形回帰・ニューラルネット回帰などで、訓練データ上でMSEを計算し、それを減らす方向にパラメータを更新します。
モデル比較 — 複数の直線(モデル)のどれがデータに良くフィットするか比較するとき、それぞれのMSEを求め小さい方が良いモデルです。
検証・テスト — 学習後、未見データでMSEを計算すると汎化性能の客観指標になります。
損失関数(MSE)のまとめ
① 概念の流れ — 実測値 yyy と予測値 y^\hat{y}y^​ の差を残差(誤差) ei=yi−y^ie_i = y_i - \hat{y}_iei​=yi​−y^​i​ といいます。各点の残差を2乗して足すと二乗誤差の和(SSE) =∑i(yi−y^i)2= \sum_i (y_i - \hat{y}_i)^2=∑i​(yi​−y^​i​)2、これをデータ数 nnn で割ると平均二乗誤差(MSE) =1n∑i(yi−y^i)2=SSE/n= \frac{1}{n}\sum_i (y_i - \hat{y}_i)^2 = \text{SSE}/n=n1​∑i​(yi​−y^​i​)2=SSE/n です。単位を yyy と揃えたいときは RMSE =MSE= \sqrt{\text{MSE}}=MSE​ を使います。

② なぜ2乗するか — 誤差が +3+3+3 でも −3-3−3 でも「3だけずれている」という事実は同じです。そのまま足すと打ち消し合うので2乗して正の値にし、大きな誤差にはより大きなペナルティを課して、モデルが大きなミスをしないようにします。

③ 学習での役割 — MSEは「この値が小さくなる方向へ進め」という羅針盤です。勾配降下法はMSEを減らす方向に www, bbb を更新します。2乗関数は微分しやすい滑らかな曲線なので、最小点を求めるのに都合がよいです。

④ 使われ方 — 回帰(価格・気温・株価予測など)の訓練、モデル比較(MSEが小さいほど良い)、深層学習の出力層の損失として広く使われます。解法の流れと数値例は下の問題を解くための説明ブロックで確認してください。