「くずし字」識別チャレンジ 2位解法
皆さまお疲れさまでした。
ずっと1位だったので油断してたら2位になってしまいました…。
ソースコードを公開します。
https://github.com/ak110/probspace_kmnist
特にくずし字に特化したことはしておらず、普通の画像分類の各種手法を使っただけという感じです。
- ネットワーク: 30層くらいのResNet+Erase ReLU (その他細かいのは色々入ってるけどたぶんそれほど重要じゃないです。パラメータ数は26Mくらい。)
- Data Augmentation: mixup+RandomErasing or CutMixとその他適当に(affine, blur, unsharpmask, brightness, などなど)。
- Epoch数: 300
- optimizer: SGD+Nesterov momentum
- lr: 1e-3 * バッチサイズ * GPU数 + Cosine Annealing without restart
- バッチサイズ: 128
- GPU数: 2
- L2: 1e-4
- TTA: padding + 9 crops
- アンサンブル: 5-FoldのCV×3モデルの加重平均 (重みは勘)
MixFeatを入れておきながら300epochしか回さなかったのは足りてなかったかもしれません。MixFeat外すかもっと回せばよかった…。
3モデル作った時にはstackingもしようかと思いましたが、CVのスコアが0.9982とかだったのであまりうまく学習できなさそうな気がして無難に加重平均にしました。