Select Language

AI Technology Community

平均絶対誤差——L 1損失関数

平均絶対誤差(MAE)もよく使われる回帰損失関数の一つで、目標値と予測値の差の絶対値の和で、予測値の平均誤差の大きさを表し、誤差の方向は考慮しません(注:平均偏差誤差MBEは誤差の方向を考慮したもので、残差の和です)。その公式は以下の通りです:

平均絶対誤差と平均二乗誤差(L1&L2)の比較

通常、平均二乗誤差を使った方が解きやすいですが、平方絶対誤差は外れ値に対してより頑健です。以下では、この2種類の損失関数について具体的に分析しましょう。

どの機械学習モデルも、目的関数を最小にする点を見つけることが目標です。最小値のところでは、どの損失関数も最小値を取ります。では、どちらがより良い指標でしょうか?具体的な例を見てみましょう。下の図は、平均二乗平方根誤差と平均絶対誤差の比較です(ただし、平均二乗平方根誤差は平均絶対誤差と同じオーダーにするためのものです):

左の図では、予測値と目標値が非常に近く、誤差と分散も小さいですが、右の図では外れ値の存在により誤差が非常に大きくなっています。

平均二乗誤差(MSE)は、誤差が大きい点での損失が平均絶対誤差(MAE)よりもはるかに大きいため、外れ値に大きな重みを与えます。モデルは外れ値による誤差を減らすように努めるため、モデルの全体的な性能が低下します。

したがって、訓練データに多くの外れ値が含まれている場合、平均絶対誤差(MAE)の方が有効です。すべての観測値を処理する場合、MSEを使って最適化すると、すべての観測値の平均値が得られますが、MAEを使うとすべての観測値の中央値が得られます。平均値と比較して、中央値は外れ値に対してより頑健です。つまり、平均絶対誤差は外れ値に対して平均二乗誤差よりも良い頑健性を持っています。

ただし、MAEにも問題があります。特にニューラルネットワークの場合、極値点での勾配が大きく変化し、損失値が小さくても大きな誤差が生じるため、学習プロセスに不利です。この問題を解決するには、極値点を解く過程で学習率を動的に減少させる必要があります。MSEは極値点で良好な特性を持っており、固定学習率でも収束します。MSEの勾配は損失関数が減少するにつれて減少するため、最後の訓練過程でより正確な結果を得ることができます。

 

実際の訓練過程では、外れ値が実際の業務に非常に重要で検出する必要がある場合、MSEがより良い選択です。外れ値が壊れたデータ点である可能性が高い場合は、MAEがより良い結果をもたらします。(注:L1とL2は一般的にMAEとMSEと同じ性質を持っています)

まとめ:L1損失は外れ値に対してより頑健ですが、導関数が不連続であるため、最適解を見つける過程が非効率的です。L2損失は外れ値に敏感ですが、最適化過程でより安定して正確です。

しかし、現実には両方の損失関数でも処理が難しい問題があります。たとえば、あるタスクで90%のデータが目標値——150に一致し、残りの10%のデータの値が0~30の間である場合、MAEで最適化したモデルは150の予測値を得て、残りの10%を無視します(中央値に近づきます)。一方、MSEの場合は、外れ値が大きな損失をもたらすため、モデルは0~30の方向の値を選択する傾向があります。これらの結果は、実際の業務シーンでは望ましくありません。

post
回帰損失関数
2021-05-14 15:53:10join communtity
  • 5

    item of content
機械学習におけるすべてのアルゴリズムは、最小化または最大化する関数に依存しており、これを「目的関数」と呼びます。最小化される関数のことを「損失関数」と呼びます。損失関数は、予測モデルが期待される結果をどの程度正確に予測できるかを測定する尺度でもあります。関数の最小値を見つける最も一般的な方法は「勾配降下法」です。もし損失関数を連なる山脈に例えるなら、勾配降下法は愚公のように山を削って最低点に到達することを目指します。

損失関数は一種類だけではありません。異常値の存在、選択した機械学習アルゴリズム、勾配降下法の実行時間、予測の信頼度の見つけやすさや導関数の計算の難易度など、さまざまな要素に基づいて異なる損失関数を選択することができます。この記事では、さまざまな損失関数について学び、それらがデータサイエンスおよび機械学習においてどのように私たちを助けてくれるかを解説します。