Kaggleに挑戦-23
Peking University/Baidu - Autonomous Driving
Can you predict vehicle angle in different settings?
*1月21日の締め切りに向けて、お手本のプログラムコードを理解し、動かし、性能向上を図る。
・GPUが使えるようになる土曜日に予測精度が上がるように、準備しよう。(あと24時間、前回のsubmit後、20位くらい下がった)
*今日は、トレーニングの概略を把握しよう!
・最適化関数:Kerasでは、RMSpropとAdamを使ってきた。学習率lrの調整は自動化に至らず、エポック毎にマニュアルで変更していた。
・Pytorchは、lrの自動変更がしやすくなっている。
・お手本コードでは、lr_scheduler.StepLR()が使われていて、3 epochs毎にlrの値を1/10にしているようだ。step_size=3, gamma=0.1
・lrをどのように変化させるのがベストなのかが理論的に解明できればいいけど、たぶん、試行錯誤の世界なんだろうな。ステップ関数とか、指数関数とか、振動関数とか、振動減衰関数とか・・・。
・生産装置とか、検査装置のファインチューニングのような用途では、パラメータ―の最適化を突き詰めることが重要であり、そのような目的にディープラーニングを用いる場合には、安定して高い予測精度が出せるlrのコントロール方法を探し出すことが、重要になるだろう。
・緻密にやりすぎると過学習に陥りやすいので、ラフなフィッティングと緻密なフィッティングを繰り返すことで、汎化性能が上がることもあるかもしれない。F.chollet氏がDNNは理学ではなく工学だと言っているようにに、思い込みを排除して、様々なパターンについて実験し、得られた結果については冷静に、ち密に分析し、より最適な方法を探索するのがよい。
*明日は、Kaggle-kernelのGPUの使用時間がリセットされるはずなので、Focal lossの検討をやってみる。
つづく