悪魔は優しい

なんでもやるし、なんにもできないIT屋メモ。

cross_entropyで過学習。reduce_sumの修正。

calendar

CNNで学習中の正答率が同じ値ばかりになったり、低い値のまま進まなかったりした。
その場合、cross_entropyを求めるreduce_sumを変えると正答率が向上するようになった。

cross_entropy = -tf.reduce_sum(labels*y_*tf.log(y))

cross_entropy = -tf.reduce_sum(labels*tf.log(tf.clip_by_value(logits,1e-10,1.0)))

に変更する。
また、層を増やしたらまた同じ現象になったが、その場合は1e-10のところで1e-13にしたりして
わずかな数値も拾ってやると直った。

ちな、ここには、

cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))

と書いてあるが試していない。