はじめに
本記事では、テーブルコンペ(時系列データ)に1回だけ参加したことがある機械学習初心者が小麦コンペに約2週間だけ取り組んだことについて色々書きます。
結果としてはnotebookをそのままsubmitしてプライベート上位50%です。
kaggleをやったことない人、これからやってみようとしてる人にむけて「素人が2週間取り組むとこんな感じだよ」という雰囲気になると思います。
コンペ中にとったメモをもとに書きますが、正しい認識をもとににかけてるとも限らないので、信じすぎないよう、指摘等お願いします。
参加登録を7/24にした
もうこの時点で2週間きっているのですが、主目的としては画像コンペってどういうことをしているのか?を少しでも学ぶことです。
Object Detectionという分野だった
色々概要を読んでわかったのですがコードコンペかつObject Detectionという物体検証タスク種類で、CIFER-10のような画像分類とは違ったものでした。
今回のコンペでは小麦の頭の部分(なんていうかわからん)を矩形で囲みなさいというタスクです。
インターネットoffのnotebookの提出
大まかな流れとしては
- インターネットonのnotebookで学習して重みのファイルを作る。
- 重みをインプットデータに使って、予測をする(インターネットoffの)notebookを作成して提出。
という流れで、"training-efficientdet"と"inference-efficientdet"のように2つで1つのノートブックが公開されている。
EDAのnotebookを読んだメモ
このnotebookの中で大きい矩形のアノテーションは削除してトレーニングしたほうが良いと分析されていましたが、今回は自分で試すことが出来ませんでした。結果に影響が出せるのか気になります。
pytorchが多い
個人的には今後kerasを勉強していこうと思っているのですがpytorchの勢いが良いように感じてます。実際に小麦コンペの公開notebookを見てもpytorchが多かったのでpytorch学ぶか?となってます。
今回はpytorchのお作法を学ぶまでは余裕がなかったです。
知らないアルゴリズムが多い
さらっとnotebookを見たり、調べたりした所下記アルゴリズムを発見
- CenterNet
- FasterRCNN
- RetinaNet
- YOLOv3
- EfficientDet
- YOLOV5
- 最新ですごいけど本コンペでは使用は違反とのこと
ここらへんのアルゴリズムの歴史とか特徴も抑えていかなければいけませんね...
テクニック
- 画像タスクで有効と言われてるdata augmentationは物体認識でも有効(というか必須?
- テスト時にもTest Time Augmentation (TTA) というデータ拡張のようなものを実施
- WBFというアンサンブルのようなものがある
- Cutout/Random Erasing
- 入力画像をランダムなマスクで欠落させることで、より強い正則化の効果を作り出す
学習時間
画像ということでしっかりかかるようで数日かかると書いてあるものも確認。
まとめ
今回は時間の少なさと要領の悪さからコードの写経までできず実装部分の勉強はできませんでした。画像タスクにおける大まかな流れにしか触れられなかったので、基礎力の低さも感じました。
次のコンペはもう少し時間をかけてやることになるのでしっかり学びたいと思います。
なかなか上位者の開放とか見ても理解に至れない部分が多いですが今後色々発信されてくると思うので楽しみです。