MSE(Mean Squared Error / 平均二乗誤差)は、機械学習で最も広く使われる損失関数であり、回帰モデルの評価指標です。誤差を二乗することで大きな誤差を厳しくペナルティし、数学的に扱いやすい性質を持っています。この記事では MSE の計算式から理論的背景、実践的な使い方まで解説します。
MSE とは何か
MSE は Σ(yi - ŷi)² / n で計算されます。各サンプルの予測誤差を二乗し、その平均を取った値です。値は 0 以上で、0 に近いほど良い予測です。単位は元のデータの二乗になる(例:円の予測なら円²)ため、直感的な解釈には RMSE(MSE の平方根)が好まれます。
二乗する意味
誤差を二乗する理由は主に2つです。第一に、正の誤差と負の誤差が相殺されるのを防ぎます(絶対値でも可能ですが、二乗の方が数学的に扱いやすい)。第二に、大きな誤差に対してより強いペナルティを与えます。誤差が 2倍 になると MSE への寄与は 4倍 になるため、外れ値的な大きな誤差を特に重視します。
MSE のバイアス-バリアンス分解
MSE は理論的に MSE = Bias² + Variance + Noise に分解できます。Bias はモデルの系統的な偏り(的の中心からのずれ)、Variance はモデルの予測のばらつき(的の散らばり)、Noise はデータ固有の不可避な誤差です。この分解により、MSE が高い原因を特定し、適切な対策(正則化や特徴量追加など)を取れます。
MSE と最小二乗法の関係
MSE の最小化は、統計学の最小二乗法と同一です。さらに、誤差が正規分布に従う仮定のもとでは、MSE の最小化は最尤推定と一致します。つまり、MSE を損失関数に使うことは、暗黙的に「誤差が正規分布に従う」と仮定していることになります。
MSE を損失関数として使うメリット
MSE は至る所で微分可能であり、勾配が滑らかです。これは勾配降下法との相性が非常に良く、学習が安定して収束しやすいことを意味します。また、正規方程式による解析解が存在する(線形回帰の場合)ため、計算効率も高いです。これが MSE が損失関数として最も広く使われる理由です。
MSE の単位問題
MSE の単位は元のデータの二乗です。例えば価格(円)の予測なら MSE の単位は円² となり、直感的に解釈できません。「MSE = 9,000,000 円²」と言われても、予測がどれだけずれるかイメージしにくいでしょう。そのため評価時には RMSE(= √MSE)に変換し、元のスケールで解釈するのが一般的です。
Weighted MSE
標準の MSE はすべてのサンプルを等しく扱いますが、Weighted MSE では重要なサンプルにより大きな重みを付けることができます。例えば、最新のデータにより大きな重みを付けたり、特定の価格帯の予測精度を重視したりする場合に有用です。
MSE が外れ値に敏感な理由と対策
誤差を二乗するため、外れ値の影響が増幅されます。1件の大きな誤差が全体の MSE を支配してしまうことがあります。対策として、Huber Loss(小さな誤差には MSE、大きな誤差には MAE を適用)や Quantile Loss(特定の分位点に焦点を当てる)が使われます。これらは MSE のメリットを活かしつつ、外れ値の影響を軽減します。
Qast での MSE の内部活用
Qast の内部では、多くの回帰アルゴリズムが MSE を損失関数として学習を行います。リーダーボードでは MSE よりも解釈しやすい RMSE が表示されますが、モデルの学習過程では MSE が最適化されていることを理解しておくと、モデルの振る舞いをより深く把握できます。
MSE はモデル学習の損失関数として最適です。評価時には RMSE に変換して元のスケールで解釈しましょう。外れ値が気になる場合は Huber Loss の採用を検討してください。


