機械学習における損失関数の役割と代表的な損失関数

損失関数とは

よりよい予測モデルを作成するためには、まずモデルの予測精度を評価し、その次に、評価に基づいて適切なモデルのパラメータを求めるという手順を踏みます。

モデルの予測精度を評価する際に用いるのが損失関数です。

損失関数予測と実際の値のズレの大きさを表す関数で、損失関数の値が小さければより正確なモデルと言えます。

ニューラルネットワークをはじめする機械学習モデルは損失関数の値が最小となるようなパラメータを様々な方法で求めます。

損失関数に用いられる様々な関数

回帰タスク、分類タスクそれぞれに用いる代表的な損失関数について紹介します。

損失関数

用いられるタスク

平均二乗誤差

回帰

平均絶対誤差

回帰

平均二乗対数誤差

回帰

交差エントロピー誤差

分類

平均二乗誤差(Mean Squared Error)

平均二乗誤差は、回帰タスクにおいて最もメジャーな損失関数です。線形回帰モデル、ニューラルネットワーク、決定木といった様々なモデルで用いられます。

平均二乗誤差は以下の式で表されます。

平均二乗誤差

MSE(yi,yi^)=1ni=1n(yiyi^)2 MSE( y_i, \hat{y_i}) = \displaystyle \frac{ 1 }{ n } \sum_{i = 1}^{ n } (y_i - \hat{y_i})^2

 yi y_iは実値、 yi^ \hat{y_i} は予測値

平均二乗誤差の性質として外れ値に対して敏感であることが挙げられます。そのため、外れ値を含むデータに平均二乗誤差を用いてモデルを構築すると、予測結果が不安定になる傾向があります。

平均絶対誤差(Mean Absolute Error)

平均絶対誤差は、平均二乗誤差に比べて外れ値に強いことが知られています。

平均絶対誤差は、以下の式で表されます。

平均絶対誤差

MSLE(yi,yi^)=1ni=1n{log(1+yi)log(1+yi^)}2 MSLE( y_i, \hat{y_i}) = \displaystyle \frac{ 1 }{ n } \sum_{i = 1}^{ n } \{ log(1 + y_i) - log( \hat{1 + y_i} ) \}^2

 yi y_iは実値、(\hat{y_i} \)は予測値

平均二乗対数誤差(Mean Squared Logarithmic Error)

平均二乗対数誤差を用いたモデルは予測が実値を上回りやすくなるという傾向があります。これは、来客人数の予測モデルなど予測より実際の値が上回ると困る場合などに有用です。

平均二乗対数誤差は、以下の式で表されます。

平均二乗対数誤差

MSLE(yi,yi^)=1ni=1n{log(1+yi)log(1+yi^)}2 MSLE( y_i, \hat{y_i}) = \displaystyle \frac{ 1 }{ n } \sum_{i = 1}^{ n } \{ log(1 + y_i) - log( \hat{1 + y_i} ) \}^2

 yi y_i は実値、yi^\hat{y_i} は予測値

交差エントロピー誤差(cross entropy error)

交差エントロピー誤差は、分類タスクに用いられ、以下の式で表されます。

交差エントロピー誤差

E=k  tklogyk E = -\displaystyle \sum_{ k }^{  } t_k \log y_k

tk t_k は実際のカテゴリーを0,1を用いて表す(正解であれば1、不正解に対しては0)。yk y_k は予測確率。

例を用いて交差エントロピー誤差について考えてみましょう。

写真の動物が犬、猫、馬のどれであるか分類するモデルを作りました。

モデルで写真を判定してみると、犬である確率は20%、猫である確率は30%、馬である確率は50%であると予測しました。

この写真の正解は馬である時、クロスエントロピー誤差はいくつになるでしょうか。

クロスエントロピー誤差は以下のように求められます。

E=(0×log0.2+ 0× log0.3+1×log0.5)=log0.5 E = - ( 0 \times {\log 0.2} + 0 \times {\log 0.3} + 1 \times {\log 0.5} ) = - \log 0.5

交差エントロピー誤差は実際のカテゴリーに対する予測確率のみを評価するので、犬、猫の予測確率に対しては0を掛けます。

まとめ

このページでは、損失関数の役割と代表的な関数について説明しました。適切な損失関数を設定することで理想的なモデルが構築できるようになります。

今回紹介した損失関数以外にも様々な損失関数が存在するので、必要に応じてそれらについても理解を深めましょう。

関連サービス

講座一覧ページ

記事一覧はこちら

無料で統計学を学ぶ