0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

CIFAR10でアンサンブル学習の効果を検証してみた。

Posted at

導入

アンサンブル学習を用いることで単体モデルよりも優れた性能を出すことが期待されます。
今回はCIFAR10の画像分類においてアンサンブル学習の効果を試してみようと思います。

アンサンブル学習について

アンサンブル学習について何種類か紹介します。今回は異なる複数のモデルを用いるため下記の分類には該当しませんので飽くまで参考になります。

バギング

複数のモデルを組み合わせてモデルを作成する方法です。キーワードは複数の弱学習器で多数決、あるいは平均値をとることとなります。
Bootstrap aggregatingがバギングという名前の由来らしいです。

ブースティング

複数のモデルを組み合わせることはバギングと同じですが、こちらは直列的に組み合わせることが特徴です。前のモデルで間違えたところを補正するように学習します。

モデル選択

アンサンブルさせるモデルを選択したいと思います。
層数を変更する、チャンネル数を変更する、なども効果はありますが多様性のあるモデルを選択することで、より効果的に精度向上を図ることができます。
今回は以下の事前学習済みモデルを転移学習させ、単体精度とアンサンブル精度を比較していきます。

  • ResNet18
  • EfficientNet-B0
  • DenseNet

学習

学習条件

ざっくりとした条件ですが下表に基づき学習します。
他にはアーリーストッピングや層化k-foldなど導入してます。

Item Detail
バッチサイズ 128
最適化アルゴリズム AdamW
学習率 0.001

学習結果

ResNet

スクリーンショット 2025-09-15 22.47.27.png
層が浅く表現力が弱いためなのかF1スコアは最も低い結果になりました。

DenseNet121

スクリーンショット 2025-09-15 22.48.29.png
ResNetと比較して精度は高くなりましたが、EfficientNetと比較すると精度はやや劣る結果になりました。

EfficientNet

スクリーンショット 2025-09-15 22.45.21.png
EfficientNetは論文上でも過去のモデルと比較して、SoTAに近い精度を出しています。今回も同様、F1スコアは他二つに比べて最も優秀です。

アンサンブル結果

スクリーンショット 2025-09-15 22.54.55.png

そしてこちらが3つのモデルをアンサンブルした結果です。
上段がResNet,DenseNet,EfficientNet単体での予測精度、下段がそれらをアンサンブルさせた予測精度となります。単体でも十分な精度を出せていますが、3つのモデルをアンサンブルさせることで精度を改善させることが確認できました。
特筆すべきは単なる多数決でアンサンブルさせた精度よりも確率平均としてアンサンブルさせることで更なる精度向上が図れました。

総括

今回、ResNet,DenseNet,EfficientNetを転移学習させた単体モデルとアンサンブルモデルとの精度比較を行いました。
EfficientNet単体でも高精度な結果となりましたが、多様なモデルとアンサンブルさせることで更なる精度向上が可能となりました。
実務上は精度を上げることとモデル作成→学習で発生する工数のバランスを見極めることが大切となりそうですが、Kaggleなどではメダルを獲得できるかどうかを分けるポイントとなるため非常に重要なテクニックの一つだと思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?