SegNet失敗 – 勉強記録 #13

Pocket

お久しぶりです。

車をぶつけたりテニスの試合があったりとで結構ばたばたしてたのでここ5日間はあまりたくさんはできてないけど、進捗報告。

Kaggle

まずはKaggleの方から。というかKaggleしかやってねえ。
例のごとく航空写真から船を見つけるというコンペティションをやってる。以下のリンクから詳細に飛べるよ。
Kaggleのコンペティションのページはこちら

実はこのコンペティションで使われている画像、船がそもそもいない画像がほとんどで空のデータを提出すると0.847というスコアが出てしまう。

このスコアより上のものが出たら、正しく学習できてるということになるがそれが実現できているチームは実に全体の10%しかないという状況。結構笑える。

SegNetでの学習は失敗

で僕自身は友達がUNetというモデルを試していたので他のだいたいモデルとしてSegNetを使うことに。

この数日間でやってたのはこいつの学習。
学習率を変えて学習させてみたけどほとんど学習が進む気配がなく終了。

SegNetはあまり意味がないという結論にとりあえず落ち着いた。

検討事項は結構あって、
– 活性化関数がそもそもおかしい(ReLU関数を使ってる)
– 損失関数の設定が間違っている
– 教師データの与え方がまずい

などあるがKaggleのDiscussionとかをみる限り、UNet以外のモデル名が一切出てこないのでやはりUNetで学習させるしかなさそう。

UNetで色々試して学習中

とりあえずモデルをUNetに戻して今は

  • 教師データをとりあえず増やす
  • 損失関数をMSE(二乗和の平方根)からクロスエントロピーちっくな適当な損失関数を定義

という2点を実装して学習を進めている。(なうですよ、なう)

ぶっちゃけPytorchの内容をほとんど理解していないというお笑い種状態ではあるがTensorFlowでCIFAR-10やった経験が割と活きてる気がする。

教師データを増やす方法はこれ以外にも画像の適当な場所を切り取るランダムクロップだったり適当に画像を回転させるランダムローテートだったりとがあるからそのあたりも使えるか実証する必要がありそう。

気の遠くなるようなトライアンドエラーだなぁ。

でもこの先に入賞があると信じて進んでいくよ。

Udemy

ごめんなさい、全く進められてない。
WordPressの途中で完璧にストップしてる。なんだかんだで夏休み始まってから20日以上たっているのに講座が1つ終わっていないのは予想外だったから少しブーストかける必要がありそう。
明日あたりがんばろ(これいうの何回目かな)

明日すること

明日は
– Kaggleで今やっている学習モデルの学習を完遂させる
– Udemyの動画を1つでもいいから前に進める (明日はこっちの方が優先度高めで)

でいこうと思う。

ちょっとペースを取り戻さなければ。

Pocket