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

学ぶ

🏅マイ実績

Ch.05

損失関数 (MSE・クロスエントロピー・R²): 正解と予測の誤差を測る

損失関数は、モデルの誤りを一つの数にまとめます。回帰(連続値の予測)では予測 y^\hat yy^​ と実測 yyy の差から 平均二乗誤差(MSE) を使うのが代表的で、さらに R2R^2R2(決定係数)で「モデルがどれだけ変動を説明できたか」を見ます。分類では、正解クラスに対する予測確率のずれを クロスエントロピー で測ります。下の図は損失のうち回帰の例としてMSEがどう小さくなるかを示します。

チャプター別 機械学習図

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

回帰損失の例: 予測 y^\hat yy^​ と実測 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・クロスエントロピー・R²): 正解と予測の誤差を測る

回帰: MSE
モデルの誤りを一つの損失にまとめる必要があります。
- 残差 — 実測 yyy と予測 y^\hat yy^​ の差。
- SSE — 各点の (y−y^)2(y-\hat y)^2(y−y^​)2 をすべて足した二乗誤差の和。
- MSE — SSEをデータ数 nnn で割った平均二乗誤差。
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乗すれば常に正になり、大きさだけを比べられます。
- 大きな誤差ほど強く罰され、大きなミスを避けやすくなります。
線形回帰
直線 y^=wx+b\hat y = wx + by^​=wx+b がデータによく合うとは、SSEを nnn で割った MSE が最小になるように www, bbb を選ぶことです。
勾配降下法は、このMSEを減らす方向に www, bbb を少しずつ更新します。
回帰: MSEは残差の二乗平均
MSEは、残差 yi−y^iy_i-\hat y_iyi​−y^​i​ を二乗して平均を取った誤差スコアです。予測が真の値に近づくほど残差が小さくなり、MSEも小さくなります。
MSEの式を読み解く
MSE=1n∑i(yi−y^i)2\text{MSE} = \frac{1}{n}\sum_i (y_i - \hat y_i)^2MSE=n1​∑i​(yi​−y^​i​)2
- iii — サンプル番号。
- yiy_iyi​ — その点の実測値。
- y^i\hat y_iy^​i​ — 予測値。
- yi−y^iy_i - \hat y_iyi​−y^​i​ — 残差。
- (yi−y^i)2(y_i - \hat y_i)^2(yi​−y^​i​)2 — その点の二乗誤差。
- ∑i\sum_i∑i​ — すべての点を足すと SSE。
- 1n\frac{1}{n}n1​ — 平均してMSE。
予測が実測に近いほど残差とMSEは小さくなります。

分類: クロスエントロピー
クロスエントロピーは、分類で「正解クラスである確率」のずれに基づいて損失を決める方法です。
二値分類は、下の 二値クロスエントロピーを読み解くで ℓ\ellℓ を要素ごとに解釈します。
二値クロスエントロピーを読み解く
ℓ=−(ylog⁡p^+(1−y)log⁡(1−p^))\ell = -\big(y\log\hat p + (1-y)\log(1-\hat p)\big)ℓ=−(ylogp^​+(1−y)log(1−p^​))
- y∈{0,1}y \in \lbrace 0,1 \rbracey∈{0,1} — ラベル。
- p^\hat pp^​ — クラス1の確率(0~1)。
- log⁡\loglog — 通常は自然対数。
y=1y=1y=1 のとき — (1−y)log⁡(1−p^)=0(1-y)\log(1-\hat p)=0(1−y)log(1−p^​)=0 となり ℓ=−log⁡p^\ell = -\log\hat pℓ=−logp^​ です。p^\hat pp^​ が高いほど損失は小さくなります。
y=0y=0y=0 のとき — ylog⁡p^=0y\log\hat p=0ylogp^​=0 となり ℓ=−log⁡(1−p^)\ell = -\log(1-\hat p)ℓ=−log(1−p^​)。1−p^1-\hat p1−p^​ はクラス0の確率です。
ylog⁡p^y\log\hat pylogp^​ と (1−y)log⁡(1−p^)(1-y)\log(1-\hat p)(1−y)log(1−p^​) では どちらか一方だけが有効になり、正解側の確率を高める方向に学習が進みます。
多クラス — 正解クラス kkk については、1サンプルあたりの損失を通常
ℓ=−log⁡p^k\ell = -\log \hat p_kℓ=−logp^​k​
(ソフトマックスの確率と組で使うことが多い)とします。正解クラスの予測確率 p^k\hat p_kp^​k​ が低いほど損失が大きくなり、学習はその確率を押し上げます。

R2R^2R2(決定係数):「平均で当てる」よりどれだけ良いか
回帰では MSE/RMSEで誤差の大きさを見ますが、さらに一歩進んで「モデルが 基準線(平均予測)よりどれだけよく説明できたか」を知りたいときに R2R^2R2 も見ます。
R2=1−∑i(yi−y^i)2∑i(yi−yˉ)2=1−SSESSTR^2 = 1 - \frac{\sum_i (y_i-\hat y_i)^2}{\sum_i (y_i-\bar y)^2} = 1 - \frac{\text{SSE}}{\text{SST}}R2=1−∑i​(yi​−yˉ​)2∑i​(yi​−y^​i​)2​=1−SSTSSE​
まず記号を整理
- yiy_iyi​:iii番目のデータの実際の値。
- y^i\hat y_iy^​i​:iii番目のデータの予測値。
- yˉ\bar yyˉ​:全 yiy_iyi​ の平均。
- SSE = ∑i(yi−y^i)2\sum_i (y_i-\hat y_i)^2∑i​(yi​−y^​i​)2 :モデルの二乗誤差和(小さいほど良い)
- SST = ∑i(yi−yˉ)2\sum_i (y_i-\bar y)^2∑i​(yi​−yˉ​)2 :基準線(平均だけで当てる)での二乗誤差和
計算手順(超シンプル)
1. まず yˉ\bar yyˉ​ を求めます(実測値の平均)。
2. 基準線の誤差である SST=∑i(yi−yˉ)2\text{SST} = \sum_i (y_i-\bar y)^2SST=∑i​(yi​−yˉ​)2 を計算します。
3. モデルの誤差である SSE=∑i(yi−y^i)2\text{SSE} = \sum_i (y_i-\hat y_i)^2SSE=∑i​(yi​−y^​i​)2 を計算します。
4. R2=1−SSE/SSTR^2 = 1 - \text{SSE}/\text{SST}R2=1−SSE/SST を使います。
解釈ガイド(最重要)
- R2=1R^2 = 1R2=1:SSE=0 → ほぼ完全な一致
- R2=0R^2 = 0R2=0:SSE=SST → 平均だけで当てるのと同程度
- R2<0R^2 < 0R2<0:SSE>SST → 平均の基準線より悪い
つまり R2R^2R2 は「基準線に対して二乗誤差がどれだけ減ったか」を比率で示します。
短い数値例
真の値が y=[3,5,7]y=[3,5,7]y=[3,5,7] で、平均 yˉ=5\bar y=5yˉ​=5 だとします。
- 基準線(平均だけ):SST=(3−5)2+(5−5)2+(7−5)2=4+0+4=8\text{SST}=(3-5)^2+(5-5)^2+(7-5)^2=4+0+4=8SST=(3−5)2+(5−5)2+(7−5)2=4+0+4=8
- モデルの予測 y^=[4,5,6]\hat y=[4,5,6]y^​=[4,5,6] のとき:
SSE=(3−4)2+(5−5)2+(7−6)2=1+0+1=2\text{SSE}=(3-4)^2+(5-5)^2+(7-6)^2=1+0+1=2SSE=(3−4)2+(5−5)2+(7−6)2=1+0+1=2
したがって
R2=1−2/8=0.75R^2 = 1 - 2/8 = 0.75R2=1−2/8=0.75
→ モデルは「平均予測」に比べて二乗誤差を約75%減らしたことになります。
注意:R2R^2R2だけに頼らない
- R2R^2R2は比率なので、データセットが違うと値の比較が難しいことがあります。
- 実務では通常 RMSE + R2R^2R2(誤差の大きさ + 説明力)をセットで報告します。

なぜ重要か

学習の方向 — 回帰で損失がMSEなら、MSEが下がる方向にだけ更新でき目標が明確です。
MSEは最適化しやすい — 2乗は滑らかで微分しやすく、勾配降下に向きます。
RMSE — MSEは二乗の単位;MSE\sqrt{\text{MSE}}MSE​ で yyy と同じ単位に戻して解釈できます。
タスクに合わせる — 連続値はMSE、クラス確率はクロスエントロピーが自然で、最尤とも整合します。Ch.05 ロジスティック回帰でシグモイドの p^\hat pp^​ と損失のつながりを続けます。

どのように使われるか

回帰の学習 — 価格・気温などで MSE を最小化。
モデル比較(回帰) — MSE が小さい方が良いフィット。
DNNの回帰出力 — 数値予測の出力層でMSEをよく使います。
分類 — ロジスティック、ソフトマックス分類、ニューラル分類では クロスエントロピー を最小化するのが一般的です。