前回の結果は、こんな感じになった。
エポック数は20から30に増やしている。
CIFAR-10$ python train_cifar1.py -g 0
GPU: 0
# number: 50000
# units: [1000, 1000]
# Minibatch-size: 100
# epoch: 20
epoch main/loss validation/main/loss main/accuracy validation/main/accuracy elapsed_time
1 1.86715 1.73653 0.32922 0.3812 2.75118
2 1.66337 1.59714 0.40486 0.4357 5.40721
3 1.57334 1.57614 0.44104 0.4358 8.07569
4 1.51226 1.49099 0.46104 0.4785 10.7339
5 1.46874 1.46533 0.47504 0.4749 13.3348
6 1.42551 1.45455 0.49212 0.4804 15.9548
7 1.39173 1.42694 0.50112 0.4923 18.5731
8 1.36098 1.43224 0.51336 0.4911 21.168
9 1.33312 1.4021 0.52336 0.5021 23.7716
10 1.31362 1.41015 0.52904 0.4992 26.3923
11 1.27622 1.38601 0.5428 0.5111 29.0275
12 1.25692 1.4047 0.55126 0.5059 31.6632
13 1.23182 1.40042 0.5605 0.5099 34.2548
14 1.20969 1.39606 0.56652 0.5132 36.8616
15 1.17579 1.40497 0.57774 0.5122 39.4807
16 1.15794 1.38415 0.58356 0.5161 42.1522
17 1.13568 1.45162 0.592 0.5038 44.7706
18 1.11563 1.40237 0.5983 0.5241 47.4012
19 1.08962 1.41428 0.60758 0.5191 50.014
20 1.06738 1.45898 0.617439 0.5032 52.6235
CIFAR-10$
学習の精度はまだまだ上昇しそうだが、テストの精度が50%をやや超えたあたりでもう上昇する気配がない。
テストの精度が51%としたとき、これは学習していると言えるのだろうか。
まず、画像データについて考えよう。
The CIFAR-10 は、10種類の写真の識別である。これは、手書き数字の判別とまったく同じだ。
もし何も学習できなくてテストをしたら、正解率の期待値は10%のはずである。
デタラメに答えていたら10%なのが、学習により51%になったので、結構学習したと考えられる。
しかし、半分は分類ミスを犯しているので、良い成績とは言いがたい。
まあ、これも、手抜きのせいであるのはわかっている。
そろそろ、単純な全結合ニューラルネットワークだけでなく、畳み込みニューラルネットワークを使うことを模索してみよう。