Kaggle Dogs vs Catsをやってみる
これまで3回に渡って画像認識の初歩を学びました。
- Azure + Tensorflow + Kerasで画像認識やってみた part1: クラウドでGPU利用
- Azure + Tensorflow + Kerasで画像認識やってみた part2: MNISTお試し、CPU/GPU比較
- Azure + Tensorflow + Kerasで画像認識やってみた part3: 自分で用意したデータで画像認識
登録から3ヶ月、放置していたKaggleに挑みます。
だいたいTitanicから入るんでしょうが、今の僕は画像認識に関心があるので「Dogs vs Cats」を試してみます。
ダイジェスト
まずはデータをダウンロードします。
学習用のtrain.zipとテスト用のtest1.zipをダウンロードします。とっても重いです。
ダウンロードしたらしばらく犬猫画像を眺めて癒されます。
で、やることは食材の画像認識でやったことと同じですね。
CNNでやってみました。
AzureのGPUインスタンスを使いたくてしょうがいない。クレジット余っちゃってるしね。
さて、学習データの水増ししたら800s * 30epoch = 6.7h。
これはあかん。
そもそものデータ量が多いので水増しは不要ではないか?と思い、該当部分を削除。
ETA: 50s * epoch: 30 = 25min
これぐらいならオーケーですね。
結果、精度は0.7988。
チューニングなしで80%ってどれくらいなんでしょうか。そこらへんの感覚がないのでわからないですが。
Leaderboardを見てみるとトップ50は95%以上ですね。
人間のエラー率が5%と聞いたことがあるので、ここら辺は人間超えてるってことです。
3年前ということはTensorflowはなかったので、今回の手法は使えませんね。
先日Team AIのKaggle勉強会に参加してきましたが、ガチでやる方はフレームワークなど使わないって感じでした。
Kerasはとってもシンプルで、とりあえず動く、動いてしまった、というところです。しっかり理論も勉強しないと。