損失関数

損失関数とは

データセットが \(\{(\boldsymbol{x}_i,y_i)\}_{i=1}^N\) と与えられたとします。 \(\boldsymbol{x}_i\) は説明変数で、\(y_i\) は目的変数です。 モデル(予測器)を、パラメータ \(\boldsymbol{\theta}\) を用いて \(f(\boldsymbol{x} ; \boldsymbol{\theta})\) とすると、\(y_i\) の予測値 \(\hat{y}_i\) は次式で与えられます。

\[ \hat{y}_i=f(\boldsymbol{x}_i ; \boldsymbol{\theta}) \quad (i=1,\cdots,N) \]

パラメータ \(\boldsymbol{\theta}\) を、できるだけ \(y_i\) と \(\hat{y}_i\) が等しくなるように定めたいです。 そこで、 \(y_i\) と \(\hat{y}_i\) の誤差を表す関数を考えます。

定義(損失関数)

目的変数 \(y\) とその予測 \(\hat{y}=f(\boldsymbol{x} ; \boldsymbol{\theta})\) との誤差を表す関数

\[ L(y,\hat{y}) \quad (\ge0) \]

損失関数という。

この損失関数を最小化するような \(\boldsymbol{\theta}\) を求める最適化問題を考えます。

回帰の損失関数

ここでは、回帰で用いられる損失関数をいくつか紹介します。

定義(二乗損失)

目的変数 \(y\) とその予測値 \(\hat{y}\) に対して

\[ \ell(y,\hat{y}) = \frac{1}{2}(y-\hat{y})^2 \]

二乗損失という。

定義(絶対損失)

目的変数 \(y\) とその予測値 \(\hat{y}\) に対して

\[ \ell(y,\hat{y}) = |y-\hat{y}| \]

絶対損失という。

定義(ε感度損失)

目的変数 \(y\) とその予測値 \(\hat{y}\) に対して

\[ \ell(y,\hat{y}) = \max\{|y-\hat{y}|-\epsilon,0\} \]

ε感度損失という。

定義(フーバー損失)

目的変数 \(y\) とその予測値 \(\hat{y}\) に対して

\[ \ell(y,\hat{y}) = \begin{cases} \dfrac{1}{2}(y-\hat{y})^2 & (|y-\hat{y}| \le \alpha) \\ \alpha|y-\hat{y}|-\dfrac{1}{2}\alpha^2 & (|y-\hat{y}| \gt \alpha) \end{cases} \]

フーバー損失という。

分類の損失関数

\[ \ell(y,\hat{y}) = \begin{cases} 0 & (y\hat{y} \gt 0) \\ 1 & (y\hat{y} \lt 0) \end{cases} \]

これを0-1損失といいます。 しかし、これは不連続で非凸なので学習に用いるには都合が悪いです。 そこで、連続で凸となる別の関数を損失として使用します。

ここでは、分類で用いられる損失関数をいくつか紹介します。

定義(指数損失)

目的変数 \(y\in\{-1,+1\}\) とその予測値 \(\hat{y}\in\mathbb{R}\) に対して

\[ \ell(y,\hat{y}) = e^{-y\hat{y}} \]

指数損失という。

定義(ロジスティック損失)

目的変数 \(y\in\{-1,+1\}\) とその予測値 \(\hat{y}\in\mathbb{R}\) に対して

\[ \ell(y,\hat{y}) = \log(1+e^{-y\hat{y}}) \]

ロジスティック損失という。

定義(ヒンジ損失)

目的変数 \(y\in\{-1,+1\}\) とその予測値 \(\hat{y}\in\mathbb{R}\) に対して

\[ \ell(y,\hat{y}) = \max\{1-y\hat{y},0\} \]

ヒンジ損失という。

定義(交差エントロピー損失)

目的変数 \(y\in\{0,1\}\) とその予測値 \(\hat{y}\in(0,1)\) に対して

\[ \ell(y,\hat{y}) = -y\log\hat{y}-(1-y)\log(1-\hat{y}) \]

交差エントロピー損失という。

演習問題

問題
解答