読者です 読者をやめる 読者になる 読者になる

ウォンツテック

技術的な話や会社設立に関わる話などを適当にしていきます

Deep Learning

Deep Learning 勉強 2

損失関数

訓練データがテストデータのに如何に近づいたかを図るための関数
損失関数の結果が0に近いほど正解に近い。
損失関数には以下の二つがあるらしい

2乗和誤差: \frac{1}{2} \sum_k (y_k - t_k) ^2
交差エントロピー誤差: - \sum_k t_k log y_k

4.2 損失関数の交差エントロピー誤差

cross_entropy_errorで微小な値を追加しているので少し考察

 log(y + delta) = log(y ( 1 + delta/y))]
  = log y + log ( 1 + delta/y )

ここでdeltaは微小な値なので 1+ delta/yは限りなく1に近い
これより  log (1 + delta/y)は限りなく0に近いことになるため

 log (y + delta) \fallingdotseq log y

といえる。

4.2.4 バッチ対応版交差エントロピー誤差の実装

tがラベル表現だったらの箇所の意味がいまいちわからなかったけど
バッチサイズが5だとすると、tがone_hot表現の時は

t1 = [[0, 0, 0, 1],
      [1, 0, 0, 0],
      [0, 1, 0, 0],
      [1, 0, 0, 0],
      [0, 0, 1, 0]]

という表現で行が各々のテストデータの結果で、列が出力の数。
tがラベル表現の時は

t2 = [3, 0, 1, 0, 2]

というように各々のテストデータの結果の正解インデックスの値ということ