Help us understand the problem. What is going on with this article?

交差エントロピー誤差をわかりやすく説明してみる

※コメントで説明の一部に誤りを指摘頂いたので記事を修正しました(2020/3/30)

教師あり機械学習では必須の損失関数。
教師あり機械学習の場合、学習するというのは損失関数の値を小さくする事とほぼ同義になります。

損失関数について詳しく知りたい方は、最適化から見たディープラーニングの考え方という論文をご覧下さい。
損失関数に限らず、損失関数の最適化手法や活性化関数などについてもわかりやすく説明されています。

そして、損失関数には幾つもの種類がありますが、交差エントロピー誤差は有名な損失関数の一つです。
本記事では、交差エントロピー誤差をわかりやすく説明してみます。
なお、英語では交差エントロピー誤差のことをCross-entropy Lossと言います。Cross-entropy Errorと英訳している記事もありますが、英語の文献ではCross-entropy Lossと呼んでいる記事の方が多いです1

交差エントロピー誤差を式で表現すると次のようになります。なお、この$log$は自然対数(底が$e$)です。

H(p, q) = -\sum_{x} p(x) log(q(x))

$p$は真の確率分布、$q$は推定した確率分布です。
$p$と$q$の確率分布が似ていると交差エントロピー誤差は小さくなり、似ていないと交差エントロピー誤差は大きくなります。
ただ、式だけだといまいちイメージが付きませんよね…。

式だけだとわかりにくいので、わかりやすいように例をあげます。
今、写真に映っている果物が、

  • バナナ
  • りんご
  • みかん

のどれかを予測するとします。

写真に映っている果物がバナナの場合、真の確率分布$p$は(1, 0, 0)となります。
そして、推定した確率分布$q$が(0.8, 0.1, 0.1)だったとします。
この場合、交差エントロピー誤差は次のようになります。

\begin{align}
H(p, q)& = -(1*log0.8 + 0*log0.1 + 0*log0.1) \\
& = -(log0.8) \\
& = -(-0.09) \\
& = 0.09
\end{align}

一方、推定した確率分布$q(x)$が(0.3, 0.4, 0.3)だったとします。
この場合、交差エントロピー誤差は次のようになります。

\begin{align}
H(p, q)& = -(1*log0.3 + 0*log0.4 + 0*log0.3) \\
& = -(log0.3) \\
& = -(-0.52) \\
& = 0.52
\end{align}

交差エントロピー誤差は後者よりも前者の方が小さくなっており、真の確率分布$p$に近いのは前者の確率分布$q$であることが分かります。
直感とも一致するので、交差エントロピー誤差が損失関数として適していることが分かります。

2乗和誤差との違い

2乗和誤差を式で表現すると次のようになります。
交差エントロピー誤差と異なり、シンプルで直感的にも分かりやすい式となります。

L = -\frac{1}{2}\sum_{x=1}^{N} (p(x) - q(x))^2

計算式が異なるので両者は違う誤差関数ですが、どちらの誤差関数を使えば良いのでしょうか?
結論としては、交差エントロピー誤差の方が使われることが多いです。

理由は、交差エントロピー誤差は確率的勾配降下法との相性が良いからです。
確率的勾配降下法という手法は、大雑把に言えば、微分から傾きを求めて損失関数が小さくなる方向に進んでいくことで最適化を図る手法です。
その際に、

  • 自然対数$log(x)$を微分すると$1/x$
  • $e^x$を微分しても積分しても$e^x$

という性質が計算式が複雑になるのを防ぎます。
損失関数の最適化手法としては確率的勾配降下法が使われることが多く、そのため交差エントロピー誤差が使われる場面も多くなります。


  1. 「"Cross-entropy loss"」のGoogleの検索結果は約187,000件に対し、「"Cross-entropy error"」のGoogleの検索結果は約28,800件(2019年12月23日時点) 

kenta1984
研究員、機械学習エンジニア。東芝、リクルート、クックパッドを経て、現在はグロービスAI経営教育研究所で機械学習、自然言語処理の研究開発に従事。
globis
グロービスは 1992 年の創業以来、社会人を対象とした MBA、人材育成の領域で Ed-Tech サービスを提供し、現在は日本 No.1 の実績があります。これらの資産と、さらに IT や AI を活用することで、アジア No.1 を目指しています。
http://www.globis.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした