TIM Labs

MNISTで学習データの個数をケチってみた

| コメント(0) | トラックバック(0)
学習データ数を減らして実験をしてみよう。
オリジナルは、MNISTの学習用データ数の60000であるが、10000, 2000, 500と減らしながら実験してみた。
もちろん、時間がもったいないので GPU を利用した。

学習データ 60000個
Chainer$ python train_mnist0.py -g 0
GPU: 0
# number: 60000
# unit: 1000
# Minibatch-size: 100
# epoch: 20

epoch       main/loss   validation/main/loss  main/accuracy  validation/main/accuracy  elapsed_time
1           0.193926    0.0882014             0.941183       0.9735                    2.43387       
2           0.075335    0.0752461             0.976834       0.976                     4.83063       
3           0.0480114   0.074878              0.984965       0.978                     7.23542       
・・・・・・・・・・・・・・・      中  略      ・・・・・・・・・・・・・・・             
18          0.00998753  0.104438              0.996899       0.9828                    43.1969       
19          0.00818152  0.0978973             0.997833       0.9821                    45.6029       
20          0.00540837  0.0948488             0.998149       0.9817                    48.0003       
Chainer$
学習データ 10000個
Chainer$ python train_mnist0.py -g 0 -n 10000
GPU: 0
# number: 10000
# unit: 1000
# Minibatch-size: 100
# epoch: 20

epoch       main/loss   validation/main/loss  main/accuracy  validation/main/accuracy  elapsed_time
1           0.4188      0.217062              0.8749         0.9334                    0.925599      
2           0.153328    0.196418              0.9534         0.9377                    1.74652       
3           0.0852114   0.139428              0.9756         0.9561                    2.58325  
・・・・・・・・・・・・・・・      中  略      ・・・・・・・・・・・・・・・             
18          7.43423e-05  0.158279              1              0.9674                    14.9663       
19          6.48571e-05  0.159226              1              0.9674                    15.7797       
20          5.74103e-05  0.160547              1              0.9673                    16.6219       
Chainer$
学習データ 2000個
Chainer$ python train_mnist0.py -g 0 -n 2000
GPU: 0
# number: 2000
# unit: 1000
# Minibatch-size: 100
# epoch: 20

epoch       main/loss   validation/main/loss  main/accuracy  validation/main/accuracy  elapsed_time
1           0.949915    0.49678               0.7335         0.8402                    0.648741      
2           0.315252    0.36667               0.9065         0.8894                    1.21073       
3           0.16682     0.316182              0.957          0.9049                    1.80692       
・・・・・・・・・・・・・・・      中  略      ・・・・・・・・・・・・・・・             
18          0.00063135  0.327181              1              0.9257                    10.3965       
19          0.000569121  0.328971              1              0.925                     10.9622       
20          0.000512893  0.331511              1              0.9251                    11.5304       
Chainer$
学習データ 500個
Chainer$ python train_mnist0.py -g 0 -n 500
GPU: 0
# number: 500
# unit: 1000
# Minibatch-size: 100
# epoch: 20

epoch       main/loss   validation/main/loss  main/accuracy  validation/main/accuracy  elapsed_time
1           1.814       1.16017               0.456          0.7062                    0.596051      
2           0.66647     0.718226              0.85           0.7652                    1.12284       
3           0.345737    0.635446              0.888          0.7999                    1.65856       
・・・・・・・・・・・・・・・      中  略      ・・・・・・・・・・・・・・・             
18          0.00110594  0.596009              1              0.863                     9.70698       
19          0.00101897  0.600444              1              0.8626                    10.2394       
20          0.000941102  0.6048                1              0.8626                    10.7713       
Chainer$
学習データが60000個から500個に減っても、速度は4倍程度しか高速になっていない。
やはり、GPUを使う場合、色々オーバーヘッドが多いということであろうか。

いや、それよりも、テスト時の正解率の減少の方が問題だ。
98%を超えていた正解率が、86%で終わっている。

そうだ、正解率など、学習経過を延々と数字で見るのではなく、パッと一瞬で分かる方法が欲しいものだ。
どうすれば良いだろうか?

トラックバック(0)

トラックバックURL: http://labs.timedia.co.jp/mt/mt-tb.cgi/596

コメントする

このブログ記事について

このページは、fujiが2017年4月10日 00:00に書いたブログ記事です。

ひとつ前のブログ記事は「データ解析のための統計モデリング入門 GLMの応用範囲をひろげる 読書メモ1」です。

次のブログ記事は「データ解析のための統計モデリング入門 GLMの応用範囲をひろげる 読書メモ2」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。