斎藤康毅著
「ゼロから作るDeep Learning - Pythonで学ぶディープラーニングの理論と実装」
「ゼロから作るDeep Learning - Pythonで学ぶディープラーニングの理論と実装」
隅々まで完全理解とまでは行かないが、最後のページまで来た。途中でPythonコードをタイプしながら実行したり、考え込んだりだったが、Deep Learningの基本をソースコードレベルで一定の理解ができた。この書籍は、how toものではない。理論がしっかり分かる。しかも、基礎にとどまらず、最新の技術も取り入れている。そのため、最終的に作ったPythonコードは、MNIST(手書き数字画像セット)に対する世界コンテストランキングの第34位にあたる認識率(= 99.35%)を誇る!
このランキングを以下に示すが、認識率ではなく、誤認識率(エラー率)で順位づけしている。100% - 99.35% = 0.65%が今回の対応性能である。
MNISTの誤認識率(error %)世界第34位の性能! |
1万件の手書き数字画像(学習用の6万件とは独立に用意された)の誤認識率が、わずか0.65%というのは驚きではないでしょうか!
認識率 99.35% !(背景は誤認識となった数字画像例。確かに紛らわしいですね。) |
●以下のような多層の畳込みニューラルネットワーク構造を採用
conv - relu - conv- relu - pool -
conv - relu - conv- relu - pool -
conv - relu - conv- relu - pool -
affine - relu - dropout - affine - dropout - softmax
●重み初期値設定にHe法、重み更新法にAdam最適化を適用
しかし、それだけのことはあります。上記にような認識率(誤認識率)を得るために学習にはかなりの計算時間がかかります。最近では、CPUではなくGPUの数値(並列)演算を利用するようです。ですが、ここでは、手持ちのNote PC(2コアCPU、2.4GHz)でやって見ました!実に、約6時間かかりました。もちろん、このNote PC、CPU稼働率100%近くで6時間走り続けましたが無事でした。この学習結果をPythonのピックルファイルに格納して利用することで、評価結果(認識結果)はすぐに得られます。
0 件のコメント:
コメントを投稿