LoginSignup
34
25

More than 5 years have passed since last update.

機械学習におけるクラス分類問題の各関数の意味解説

Last updated at Posted at 2016-12-22

クラス分類問題の関数

  • 機械学習系のクラス分類問題の関数にはSoftmax関数やCross Entropy関数が使用されている

  • 調べると「情報量が~、エントロピーとは~」となり、どういう働きをしているのか理解が困難

  • 今回は数学的な難しさは置いておいて、どういう嬉しさがあるのかを簡単に説明

image

image

クラス分類CNNの流れ

  • 説明に入る前に全体の流れを復習

  • 𝑁クラス分類器学習時の処理の流れは以下

  1. 画像入力
  2. N次元のベクトルを答えとして生成
  3. Softmax関数で正規化
  4. Cross Entropyで誤差計算
  5. 逆誤差伝播法で誤差最小化

N次元ベクトルを出力

  • N個のクラスがある分類問題を解かせる場合、画像を一枚入力して、N次元のベクトルを出力

  • 別に1次元のベクトル(数値?)にして、最適化してもよかったはず・・・。(うまくいくかはわからない)

  • なぜN次元にしたか=答えがOne-hotで示せる

image

image

答えをOne-hotにする嬉しさ

答え𝒚をOne-hotベクトルとすることで、Cross Entropyに入れたとき、和の部分が消え、logだけの簡単な関数になる

image

image

Softmax関数

  • やってることは単に正規化
  • 正規化とは数値を0~1の範囲に収めること
  • これができるのもN次元ベクトルのおかげ
  • eを使っているのは誤差伝播のときに微分する必要があるため

image

クラス分類問題で正規化する嬉しさ

  • 正規化することで𝑥_𝑖 は0~1になっている
  • さらに総和が1になる
  • これは各クラスに属する確率と考えられる

image

誤差伝播

  • 誤差伝播時は誤差関数を微分し、その傾きに比例して更新値を決定する
  • logのグラフをみると正解クラスに属する確率𝑥_𝑖が0に近いほど微分したときの傾きは大きくなり、1に近いほど傾きは小さくなる
  • logの形は誤差関数に最適!

image

まとめ

  • N次元出力、Softmax関数、Cross Entropy関数、逆誤差伝播について解説した
  • logの関数の形(0~1範囲の勾配)が肝
  • クラス分類問題以外の問題を解くときも誤差関数の形をきちんと設計することが大切

正確には(発展)

  • 正確には微分するのは𝑥についてではなく、畳み込みなどの重み𝑤についてだと考えるべき
  • だが誤差関数の重みについての微分は𝑥についての微分と出力𝑦との積で求まる
  • よって誤差関数を考える際は𝑥についての微分について議論すればよい

参考: http://qiita.com/Ugo-Nama/items/04814a13c9ea84978a4c

スライド版:http://www.slideshare.net/ssuser6e1346/ss-70327136

34
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
25