STL10 CNN コンペ accuracy: 0.904625 0.92925
ソースコード github.com/yashikota/stl10-cnn-compe
ネットワーク 正規化 活性化 畳み込み の順番が精度良い → 後から調べたら WideResNetで 実装されてた 😭 活性化はSwish Mishは精度 悪なった
ネットワーク
optuna PFNが出しているハイパーパラメータ自動最適化ツール 学習率や重み、バッチサイズ、最適化関数などを自動で最適化 ランダムサーチやグリッドサーチと違ってベイズ最適化を使ってるため速く高精度 ネットワークの層数やチャンネル数も探索できるが、今回は不使用 途中からAdamの バッチサイズ128に固定 https://optuna.org
データ増強 STL10のTrainは各ジャンル500 → 少ない なので外部のデータセットのデータを注入して増やす - CIFAR10 (train, test): 各 6000 CIFARNET (train, test): 各 20,000 Dogs vs. Cats (train): 犬猫 12,000 Monkey-Species-Collection (train, test): 猿 1400 [自作] ImageNet Monkey (train): 猿 10,400 The Oxford-IIIT Pet Dataset( train, test): 犬猫 5000 Horse2zebra (train, test): 馬 1200 0: airplane, 1: bird, 2: car, 3: cat, 4: deer, 5: dog, 6: horse, 7: monkey, 8: ship, 9: truck
データ拡張 AutoAugment: 回転・反転・色変換などの画像変換の種類とその強度を学習中に自 動最適化させるデータ拡張手法 今回は AutoAugmentPolicy に CIFAR10で学習した物を使用 v2.AutoAugment(policy=v2.AutoAugmentPolicy.CIFAR10) ただし最適なパラメータを探索するコストが大きい (policy適応したら探索なし?) NVIDIA Tesla P100での結果 → P100はRTX 2080ぐらいの性能 改善手法もある (割愛)
データ拡張
transform 去年にtransformのv2が出た 処理が早くなって CutMixやMixUpに対応した 今後の機能追加はv2だけ ただし ToTensor は非推奨に