【機械学習】平均二乗誤差(MSE)と平均絶対誤差(MAE)の違いは?外れ値に厳しい採点官と優しい採点官

こんにちは。ゆうせいです。

機械学習モデルの性能を測る「誤差関数」。前回は、回帰問題で使われる「平均二乗誤差」と、分類問題で使われる「交差エントロピー」の違いについてお話ししましたね。

今回は回帰問題に絞って、よく似た2つの誤差関数、「平均二乗誤差(MSE)」と「平均絶対誤差(MAE)」の違いに迫ります。どちらもモデルの予測と正解の「ズレ」を測るものさしですが、実はその性格は大きく異なります。

まるで、大きな失敗にとても厳しい採点官と、どんな失敗も平等に見てくれる優しい採点官のようです。どちらの採点官を選ぶかで、モデルの育ち方が変わってくるんですよ!


平均絶対誤差 (MAE) とは?

平均絶対誤差(Mean Absolute Error, MAE)は、その名の通り「誤差の絶対値」を「平均」したものです。

数式で書くとこうなります。

L = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|

| \cdot | という記号は絶対値を表し、中身がマイナスでもプラスにしてしまう、というルールです。

MAEの性格:全ての誤差を平等に扱う公平な採点官

MAEの最大の特徴は、誤差の大きさに比例してペナルティを与えることです。

例えるなら、宅配ピザの配達時間を予測するモデルを考えてみましょう。

  • 予測より5分早く着いた(誤差-5分)
  • 予測より5分遅く着いた(誤差+5分)

MAEにとっては、この2つの誤差はどちらも「5分のズレ」として平等に扱われます。10分のズレは、5分のズレのちょうど2倍悪い、という非常にシンプルで直感的な評価をします。


平均二乗誤差 (MSE) とは?

一方、平均二乗誤差(Mean Squared Error, MSE)は、「誤差を2乗」して「平均」したものです。

L = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2

こちらは誤差を2乗(同じ数を掛ける)しているのがポイントです。

MSEの性格:大きなミスを決して許さない厳しい採点官

MSEの最大の特徴は、大きな誤差に対して、より大きなペナルティを与えることです。

誤差を2乗するとどうなるか、見てみましょう。

  • 誤差が「2」の場合、2の2乗でペナルティは「4」
  • 誤差が「10」の場合、10の2乗でペナルティは「100」

誤差が5倍(2から10へ)になっただけなのに、ペナルティは25倍(4から100へ)にも跳ね上がりました!

これは、モデルがとんでもなく大きな間違い(外れ値のような予測)をすることを、MSEが非常に嫌うことを意味します。小さなミスは多少許容するけれど、大きなミスは絶対に許さないぞ!という厳しい姿勢の採点官なのです。


一番の違いは「外れ値」への態度

ここまで来ると、もうお分かりかもしれませんね。MAEとMSEの最も大きな違いは、「外れ値(outlier)」、つまり、他のデータから大きく外れた値に対する反応です。

  • MAE(平均絶対誤差): 外れ値があっても、その誤差をそのままの値で評価します。そのため、外れ値の影響を受けにくく、ロバスト(頑健)であると言われます。
  • MSE(平均二乗誤差): 外れ値があると、その誤差を2乗するためペナルティが急激に大きくなります。モデルは、その巨大なペナルティを避けるために、外れ値に過剰に引っ張られやすくなります
平均絶対誤差 (MAE)平均二乗誤差 (MSE)
性格公平・寛容厳格
誤差の評価誤差の大きさに比例誤差が大きくなるほど急激にペナルティが増加
外れ値への態度影響を受けにくい(ロバスト)影響を非常に受けやすい(敏感)

じゃあ、どっちを使えばいいの?

どちらが良い、というわけではないのです。あなたの解きたい問題や、データの性質によって使い分けるのが正解です!

MAEを選ぶとき

データのなかに、ノイズや、あまり重要視したくない外れ値が含まれている場合に適しています。

例えば、住宅価格の予測で、数件だけ超高級物件(明らかに相場から外れている)のデータが混じっているとします。ここでMSEを使うと、モデルがその超高級物件に必死に合わせようとして、一般的な物件の予測精度が下がってしまうかもしれません。

MAEを使えば、超高級物件の影響を比較的抑えながら、全体的な傾向をうまく学習させることができます。

MSEを選ぶとき

予測が大きく外れることが致命的な問題となる場合に適しています。

例えば、工場の機械の故障時期を予測するモデルを考えてみてください。予測が1日ずれるのは許容できても、1ヶ月もずれると生産ラインが止まり大損害です。

このような「大きな誤差は絶対に避けたい!」という強い要求がある場合は、大きな誤差に厳しいペナルティを与えるMSEが最適です。モデルは大きな間違いをしないように、より慎重に学習を進めてくれるでしょう。


次のステップへ

今回は、MAEとMSEという2人の採点官の違いを解説しました。

  • MAEは外れ値に優しく、全体的な傾向を捉えるのが得意。
  • MSEは外れ値に厳しく、大きな間違いを防ぐのが得意。

この違いを理解できると、モデルがなぜそのような予測をするのか、より深く洞察できるようになります。

もし、この2つの「いいとこ取り」をしたくなったら、「Huber損失(Huber Loss)」という誤差関数について調べてみることをお勧めします。Huber損失は、誤差が小さいときはMSEのように、誤差が大きいときはMAEのようの振る舞う、非常に賢い誤差関数です。

自分のデータと対話しながら、最適な誤差関数を選んでみてください!るよう、一歩ずつ学習を進めていきましょう!


セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。