AI_ML_DL’s diary

人工知能、機械学習、ディープラーニングの日記

Kaggleに挑戦-21

Kaggleに挑戦-21

 

あけましておめでとうございます。本年もよろしくお願いいたします。

 

Peking University/Baidu - Autonomous Driving

Can you predict vehicle angle in different settings?

*1月21日の締め切りに向けて、お手本のプログラムコードを理解し、動かす。

 

*さて、このコンペもいよいよあと20日となった。GPUの使用時間制限と、残り日数から考えて、あと3回submitできるかどうかだ。物まねだけでは、トップ10%どころか、top30%すら届きそうにない。みなさんのnotebooksとdiscussionをよく読んで、理解して、コードに反映して、スコアアップにつなげたい。

 

*この課題を難しくしているのは、姿勢評価で、前処理のところが複雑になることだと思う。お手本のnotebookを見ることができて、前処理を含め全体の流れも悪くないと、50位以内の人がコメントされているので、計算資源のある人たちにとっては、取り組みやすそうに思う。

*精度が上がりにくい要因として、検出対象物の占める面積が狭いことがあげられている。非常に小さくしか見えていない車はマスクされているようであるが、それ以外でも、視野全体からすると、かなり小さい車も検出して、姿勢を予測することが求められている。

・これに対処するには、ある程度の解像度が必要だということで、学習に投入する画像の解像度が高い方が良い、ということがあげられている。これには、計算資源による限界がある。今参考にしているお手本は1024x320だが、1284x384(1.5倍)とか、1536x512(2.4倍)の画像を用いている人が上位にいて、精度への影響は大きい、とコメントしている。

・もう一つは、損失関数で、discussionによれば、CenterNetの論文Objects as Pointsの中で言及されており、Focal Lossというのが、予測精度を上げるには効果が大きいようである。

*Focal Lossを理解して実装できれば、もう少し上位に行けそうな感じである。ちょっと式を作ってやってみようとしたが、学習のところなので、GPUが使えないとどうにもならない。あと2日と13時間でリセット、と表示されている。BrokenPipeErrorへの対策がとれれば自由に計算できるのだが。

*Kaggle-kernelのGPUが1週間に30時間しか使えないのは、非常に大きな制約だ。

*Focal Lossの検討と、BrokenPipeError対策を並行して進めよう!

・BrokenPipeErrorの原因:いろいろ調べているが、自分の状況に似たものを見つけられず、よくわからない。なんとなくであるが、画像が大きく、ネットワークの層数が多く、GPUの能力を超えていることが原因となっている可能性がありそうだ。もしそうなら、当面の解決方法はない。GTX1050Tiも過去のものになってしまったか。2080Ti搭載だと、35万円くらいするようだし、それでも十分かどうかわからない。マシンの能力に頼らず、何か工夫でもできれば良いのだが。

 

*Focal Lossに集中しよう。CenterNetに示されている式も、CenterNetが引用しているFocal Loss for Dense Object Detectionに示されている式も、簡単に実装できそうな気がする。お手本にしているnotebookには、Focal Lossを計算しようとした跡が残っているようにみえる。

・2日間で、10位くらい下がった。メダルから遠い位置にいても、順位がついてしまうと、がんばって上に上がろうとする動機になることを実感する。

 

つづく

 

f:id:AI_ML_DL:20200101010236p:plain

style 063

f:id:AI_ML_DL:20200101010320p:plain

DeepDream