「詳解ディープラーニング」という本でニューラルネットワークを勉強しているのですが、p179,p180に書いてある文章の意味がわかりません。
内容としては、DNNで学習し、途中まで検証データに対する精度が上がっていたのに急にガクンと精度が悪くなってしまった。これは勾配消失問題同様、ソフトマックス関数(シグモイド関数)から伝わる勾配の値が小さくなりすぎて、0に丸め込まれて計算されてしまっているからだ。なので交差エントロピー誤差関数の計算の時にlogの中の出力値yに下限値を設定することでこれを防ぐことができると述べられており、実際精度が悪くなることが無くなっています。
勾配消失問題というのは活性化関数を微分する時に値が小さくなってしまうので前半の中間層あたりが更新されなくなってしまう現象のことですよね?
上記の文章全体の意味もわからないし、勾配消失問題と何が同様なのかもわかりません。
誤差関数
python
1def loss(y, t): 2 cross_entropy = \ 3 tf.reduce_mean(-tf.reduce_sum( 4 t * tf.log(tf.clip_by_value(y, 1e-10, 1.0)), 5 axis=1)) 6 return cross_entropy
補足情報
活性化関数はReLUで作られています.