最近機械学習の勉強をしているので練習として、スプラトゥーン2のイカとタコを見分けてみたいと思います。
といってもすでに実践している方がいらしたので、さらに精度を上げる+実際に間違えた画像を表示して少しでもディープラーニングのお気持ちを理解したいと思います。
概要
↑で参考にあげているページから学習データをいただきまして、図の人工知能部分に学習させます。 最終的には、画像を与えるとイカガール・イカボーイ・タコガール・タコボーイの中からどちらに近いか判定ができるようになります。
結論
テストデータ999枚に対し、989枚正解(99.9%)を達成しました。
コードはこちら github.com
誤った画像について、目視で確認していきます。
3行2列目の画像はもうすこし頑張ってほしいところですが、その他の画像は人間でも判断がつきにくく、 概ねいい感じに学習できている気がします。
実装
詳細は実行環境は省きます(GCPで構築した記憶があるのですがメモを紛失しました...)。
- フレームワーク: keras
- モデル: EfficientNet
- 学習方法: 転移学習(ファインチューニング)
- 学習データの水増し: horizontal flip, random erase
おまけ