1.モデルのアンサンブルは貴方が思っているよりも凄い(1/2)まとめ
・アンサンブルとカスケードは既存のモデルを集めてその出力を組み合わせて解とする手法
・アンサンブルはよく知られているがディープモデルの中核要素とは見なされていない事が多い
・アンサンブルやカスケードによって最先端モデルの効率と精度の両方が向上可能である
2.モデルのアンサンブルとカスケード
以下、ai.googleblog.comより「Model Ensembles Are Faster Than You Think」の意訳です。元記事の投稿は2021年11月10日、Xiaofang WangさんとYair Alonさんによる投稿です。
とっても実務的に参考になるお話です。
ベンチマーク結果などでは「単一のモデルでXXのスコアを達成した。他の上位モデルはアンサンブルであった」と言う論調を見かける事があり、アンサンブルって少しチート(正攻法ではない)的な扱いを受けている印象がありましたが、積極的にアンサンブルを使っていく事はアリなのだなと思います。
小さなモデルが集まって凄い事になる感じを表現したかったアイキャッチ画像のクレジットはPhoto by Judi Neumeyer on Unsplash
新しい機械学習アプリケーションのためにディープラーニングモデルを構築する際、研究者はResNetsやEfficientNetsなどの既存のネットワークアーキテクチャを手始めに使用することが多いです。
最初のモデルの精度が十分に高くない場合、より大きなモデルを作成することは魅力的な選択肢ですが、実際には目下の課題に対する最適なソリューションではないかもしれません。そんな時は、タスクに最適化された新しいモデルを新規に設計することで、より良いパフォーマンスが得られる可能性があります。しかし、そのような取り組みは困難であり、多くのリソースを必要とします。
論文「Wisdom of Committees: An Overlooked Approach to Faster and More Accurate Models」では、モデルアンサンブル(model ensembles)と、そのサブセットであるモデルカスケード(model cascades)について説明します。
これらはいずれも、既存のモデルを集めてその出力を組み合わせることで新しいモデルを構築するシンプルなアプローチです。
私たちは、簡単に構築できる少数のモデルからなるアンサンブルが、最先端のモデルと同等またはそれ以上の精度を持ちながら、かなり効率的であることを実証しました。
モデルアンサンブルとモデルカスケードとは?
アンサンブルとカスケードは、複数のモデルの利点を活用してより良いソリューションを実現する関連アプローチです。
アンサンブルは、複数のモデルを並行して実行し、その出力を組み合わせて最終的な予測を行います。
カスケードは、アンサンブルの概念に含まれますが、収集したモデルを順次実行し、予測の信頼性が十分に高まった時点で解とします。単純な入力に対しては、カスケードはより少ない計算量で済みますが、より複雑な入力に対しては、より多くのモデルを呼び出すことになるので、結果的に計算コストが高くなる可能性があります。
モデルアンサンブルとモデルカスケードの概要
上図は、アンサンブルとカスケードの両方とも2つのモデルの組み合わせで構成されていますが、任意の数のモデルを使用することができます。
単一のモデルと比較して、収集したモデルの予測に多様性がある場合、アンサンブルは精度を向上させることができます。例えば、ImageNetに収録されている画像の大半は、現代の画像認識モデルでも分類が容易です。しかし、モデル間で予測が異なるので、アンサンブルの恩恵をかなり受けられる画像も多くあります。
アンサンブルはよく知られていますが、ディープモデルアーキテクチャの中核をなす構成要素とは見なされていない事が多く、研究者がより効率的なモデルを開発する際に検討されることはほとんどありません。(いくつかの特筆すべき例外研究はあります)。
そこで本研究では、アンサンブル手法の効率に関する包括的な分析を行い、既存の学習済みモデルの単純なアンサンブルまたはカスケードによって、最先端モデルの効率と精度の両方を高めることができることを示します。
モデルアンサンブルの導入を促進するために、以下のような有益な特性を示します。
(1)簡単に構築可能
アンサンブルの構築には、複雑な技術(例:早期終了ポリシー学習(early exit policy learning))は必要ありません。
(2)メンテナンスが容易
アンサンブルは個々のモデルを独立して学習できるため、維持・展開が容易です。
(3)トレーニング費用が安価
アンサンブルに含まれるモデルの学習コストは、同程度の精度を持つ単一モデルよりも低いことが多いです。オンデバイスでの高速化。計算コスト(FLOPS)の削減は、実際のハードウェア上で実行する際のスピードアップにつながります。
効率性と学習速度
アンサンブルが精度を向上させることは驚くべきことではありませんが、アンサンブルで複数のモデルを使用すると、実行時に余分な計算コストがかかる場合があります。
そこで、同じ計算コストの単一モデルよりもアンサンブルの方が精度が高くなるかどうかを調査しました。
私達は、EfficientNet-B0からEfficientNet-B7を分析しました。これらは、ImageNetの入力に適用されたときの精度と計算コスト(FLOPS)が異なる一連のモデル群です。アンサンブルの予測値は、個々のモデルの予測値を平均することで計算されます。
その結果、大規模な計算(50億 FLOPS以上)が必要な場面では,アンサンブルの方が非常に費用対効果が高いことが分かりました。例えば、2つのEfficientNet-B5モデルのアンサンブルは、1つのEfficientNet-B7モデルの精度に匹敵しますが、使用するFLOPSは50%ほど少なくなります。
これは、このような状況では、大規模なモデルを使用する代わりに、複数のかなり小規模なモデルのアンサンブルを使用するべきであり、精度を維持しながら計算要件を削減できることを示しています。
さらに、アンサンブルの学習コストも大幅に削減できることがわかりました。(例:2つのB5モデル:合計96TPU日、1つのB7モデル:160TPU日)。
実際には、モデルのアンサンブル学習を複数のアクセラレータで並列化することで、さらにコストを削減することができます。このパターンは、ResNetおよびMobileNetモデル群にも当てはまります。
大規模計算領域(5B FLOPS以上)では、アンサンブルが単一モデルよりも優れています。
3.モデルのアンサンブルは貴方が思っているよりも凄い(1/2)関連リンク
1)ai.googleblog.com
Model Ensembles Are Faster Than You Think
2)arxiv.org
Wisdom of Committees: An Overlooked Approach To Faster and More Accurate Models