Explorables

自信満々に誤るモデルから謙虚なアンサンブルへ

From Confidently Incorrect Models to Humble Ensembles

機械学習モデルは、訓練の過程でデータからパターンを学習します。しかし現実世界にデプロイされたモデルは、訓練で見たものとはどこか違うデータにしばしば遭遇します。このエクスプローラブルでは、そのような状況がどのようにモデルの挙動を狂わせるのか、そして私たちに何ができるのかを探っていきます。

ここでは、手書き数字のデータセット MNIST で訓練された画像分類器を例に見てみましょう。

描き込みに応じてモデルの予測が更新されます。たとえば 8 を 0 に変えたり、7 を 9 に変えてみてください。何度か描いてみて、いつもモデルの判定に納得できますか? 数字のあいだを揺れ動くような絵に対して、モデルの予測はどのように感じられるでしょうか?

モデルは自信満々に間違えることがある

次に、数字以外のものを分類させたらどうなるかを見るために、既定の画像セットをさらに広げてみます。画像を切り替えてみると、ある絵が別のものへ変化していくにつれて、モデルの予測がどのように推移するかが分かります。

一般的な機械学習モデルは、訓練していないデータ(分布外データと呼びます)に遭遇すると、学習時に見たデータを手がかりに無理やり予測しようとします。この例では、どんな絵を描いても分類器は数字のどれかだと答えようとします。

これは、この分類器(そして多くの分類器)があらかじめ決められたクラス集合を前提に設計されていることの帰結です。モデルは、その中でどれが最もありそうかを選び、自信度(スコア)を付けることしかできません。モデルの信頼度がどのように機能し、確率とどう結び付くのかを知りたければ、以前のエクスプローラブル Are Model Predictions Probabilities? もご覧ください。

しかし実際の応用では、靴の写真に対して「2」だと 100% の自信で報告されても困ります。その代わり、訓練データとまったく違うものに出会ったらスコアを下げて欲しいはずです。分布外の例に高いスコアを付けてしまう場合、私たちはそれを confidently incorrect(自信たっぷりに間違える) と呼びます。

モデルを組み合わせて過信を抑える

複数のモデルの出力を平均する アンサンブル という手法を使えば、自信満々に間違えないモデルを作ることができます。

Deep Ensembles では、異なるランダム初期化を持つ複数のモデルを訓練します。アンサンブルの各メンバーは異なる判断を学習し、分布外の入力に対しては予測が 食い違う のが普通です。単体のネットワークは誤った予測に過剰な自信を持つことがありますが、アンサンブルではそれぞれの予測を平均するため、分布外の入力に対する全体の自信は小さくなります。

訓練データから離れた領域では、モデルの予測に制約がほとんどありません。そのため、異なるモデルはそれぞれ過剰な自信を持ちながらも互いに異なる予測に落ち着きます。アンサンブルはこの食い違いを利用することで、最終的な予測の自信を下げられるのです。

なぜアンサンブルは効くのか?

なぜアンサンブルが「自信満々の誤り」を減らせるのかを理解するために、2 次元分類のケースを見てみましょう。下図では、2 次元の点が赤か青かを決めるアンサンブル分類器を描いています。背景色が、アンサンブルが下した判断を示しています。

単一モデル だけの場合、境界は非常に鋭く、ポイントが境界に近くてもすぐに強い自信で決定します。モデルの数が 増える につれ、モデル間の不一致が境界の幅として現れ、特に訓練データから離れた領域ではより広がります。

すべてのモデルの決定境界が単純な直線というわけではありません。下図は区分的に線形な境界を持つモデル(ある種の機械学習モデルでは一般的です)です。単純な線形境界より自由度が高いため、データから離れるほどアンサンブルの不確実性がいっそう強く現れることが分かります。

アンサンブルは有用な形で不確実性を高めますが、その現れ方はモデルのアーキテクチャに大きく依存します。青い点を右下に 動かす と、線形モデルと区分線形モデルでは決定境界が大きく異なることが見て取れます。

アンサンブルのその先へ

アンサンブルは、不確実性推定の質を高める手法のひとつに過ぎません。複数モデルの予測を 集約する ほかにも、大量のデータを取り入れる など様々な戦略があります。近年のモデルは巨大なので、複数モデルを常時維持するアンサンブルはメモリやレイテンシに厳しいアプリケーションでは現実的でない場合もあります。そのため、ひとつのモデルの内部にアンサンブルを実現するような、因数分解型や効率化された手法も多数提案されています。(参考)

ガウス過程 のようなベイズ的手法をご存じかもしれません。これらは考えうる(無限個の)モデルを適切に重み付けして平均を取ります。当然ながら計算コストは高いものの、最近ではうまい近似や、モデルの一部だけに組み込む方法など、実用的にするための研究が盛んです。

分布外データでの不確実性を改善するもうひとつの有力な方法は、より 大量のデータ で大きなモデルを事前学習することです。表現の質が全体的に向上すれば、良い決定境界を引きやすくなる期待が持てます。

Plex では、最新の大規模テキスト・ビジョンモデルの不確実性を高めるために、さまざまな手法を組み合わせています。その規模になるとフルのアンサンブルは巨大すぎるため、効率的なアンサンブルと追加データ、近似的なベイズ法を組み合わせて検証しています。戦略のひとつは、ニューラルネットワークの最終層だけをガウス過程に置き換えることです。これは最終層だけの無限アンサンブルを作るようなもので、現実的な規模に収まりつつ、推論時のデータが訓練データからどれだけ離れているかを決定境界に直接反映しやすくなる利点があります。

クレジット

Nithum Thain, Adam Pearce, Jasper Snoek, Balaji Lakshminarayanan // 2023 年 3 月

制作にあたり、Nicole Mitchell、Lucas Dixon、Alexander D’Amour から多大な協力を得ました。

自分の画像分類モデルで試してみたい方は、モデル訓練用 Colab をご覧ください。