アンサンブルを使用した特定のニューラル ネットワークのパフォーマンスの向上

[AI ガイド] この記事では、最近の 2 つの興味深い論文について説明します この論文の一般的なアイデアは、統合手法を通じて特定のニューラル ネットワークのパフォーマンスを向上させることです。2 つの論文は次のとおりです。

  1. Garipov らによって提案された「損失曲面、モード接続性、および DNN の高速アンサンブル」。
  2. Izmailov et al.による「重みの平均化は、より広い最適化とより良い一般化につながります」

従来のニューラル ネットワーク アンサンブル手法

従来のアンサンブル アプローチでは、いくつかの異なるモデルを統合し、同じ入力を使用してモデルの予測を行い、その後、何らかの平均化手法を使用してアンサンブル モデルの最終予測を決定します。
平均化では、単純な投票や平均化を行うことも、アンサンブル モデルの 1 つを使用して、入力の正しい値やラベルを学習および予測することもできます。
Ridge Regression (リッジ回帰) は特別な統合予測手法であり、Kaggle コンペティションのチャンピオンによって使用されるモデル統合手法でもあります。
スナップショット アンサンブル: 各学習率サイクルの終了時に対応するモデルを保存し、モデル予測中に保存されたすべてのモデルを同時に使用して予測を行います。

アンサンブル手法を深層学習と組み合わせると、複数のニューラル ネットワークの予測を組み合わせて最終的な予測結果を生成できます。通常、異なる構造のニューラル ネットワークを統合すると、優れたパフォーマンスを備えた統合モデルが得られます。これは、各モデルが異なるトレーニング サンプルで間違いを犯す可能性があるためです。そのため、そのような統合された手法により、モデルの最終的なパフォーマンスを最大化できます。
ここに画像の説明を挿入ここに画像の説明を挿入
スナップショット アンサンブル: アニーリング戦略での循環学習率の使用

ただし、同じ構造のニューラル ネットワーク モデルをアンサンブルすることもでき、このアンサンブルでも驚くほど良い結果が得られます。スナップショット アンサンブルの論文では、この統合手法に基づいて、著者は優れたトレーニング手法を提案しています。2 つの同一のニューラル ネットワークをトレーニングする場合は、ウェイト スナップショット戦略を採用し、トレーニング後に同じ構造でウェイトが異なる統合モデルを作成します。このようにして得られた統合モデルにより最終テストのパフォーマンスが向上することが実験により証明されており、これも非常に簡単な方法であり、一度に 1 つのモデルをトレーニングするだけで済むため、計算にかかる時間コストが大幅に削減されます。

トレーニングで循環学習率戦略を使用したことがない場合は、その使用方法を学ぶ必要があります。これは、現時点で最も高度なトレーニング手法であり、実装が非常に簡単で、計算量が大きくなく、追加コストがほとんどかからず、大きな効果が得られます。

上記で紹介したすべての例は、モデル空間統合手法、つまり、複数のモデルを組み合わせ、単一モデルの予測を統合して最終的な予測結果を生成する手法に基づいています。

そして、この記事で取り上げる論文では、著者は重み空間に基づいた新しいアンサンブル手法を提案しています。このアプローチでは、異なるトレーニング段階で同じネットワークからの重みを組み合わせてモデルをアンサンブルし、この結合された重みのアンサンブルを使用して予測を行います。このアプローチには次の 2 つの利点があります。

  • トレーニング後は、重みを組み合わせたアンサンブル モデルのみが得られ、後続のモデル予測が高速化されます。重みを組み合わせて使用​​すると、トレーニング後に後続の予測段階を高速化するモデルが得られます。
  • 実験結果は、重みを結合するこのアンサンブル手法が現在の最先端のスナップショット アンサンブル手法を上回ることを示しています。

以下では、その仕組みを詳しく見ていきます。しかしその前に、損失曲面 (損失曲面) と一般化問題 (一般化可能な解) について知っておく必要があります。

重量空間におけるソリューション

最初の重要な洞察は、トレーニングされたネットワークが実際には多次元重み空間内の点であるということです。特定のモデル構造では、ネットワークの重みの異なる組み合わせごとに個別のモデルが生成されます。どのモデル構造にも重みの組み合わせが無限にあるため、解も無限に存在します。ニューラル ネットワークをトレーニングする目的は、トレーニング データセットとテスト データセットの損失関数の値を最小化する、重み空間指向の特定のソリューションを見つけることです。

トレーニング中に重みを変更することにより、トレーニング アルゴリズムはネットワーク構造を変更し、重み空間での解決策を探索します。勾配降下アルゴリズムは損失平面上で伝播し、平面の高さは損失関数の値によって与えられます。

局所最適解と大域最適解

多次元ウェイト空間の幾何学的特性を視覚化して理解することは非常に困難です。同時に、これも非常に重要です。基本的に、確率的勾配降下法アルゴリズムはトレーニング中に、この高度に多次元の空間で損失平面を通過し、適切な解決策を見つけようとします。つまり、損失値を探索します。損失面 最も低い「点」。誰もが知っているように、このような損失平面には多くの局所最適解がありますが、すべての局所最適解が大域最適解になるわけではありません。


ここに画像の説明を挿入
ヒントンはかつてこう言いました:「14 次元空間の超平面を扱うときは、3 次元空間を想像して、大声で『これは 14 次元空間だ』と自分に言い聞かせることができます。これは誰でもできます。」最適な解決策。平坦領域の最小値は、トレーニング中とテスト中に同様の損失を生成しますが、損失を減らすと、トレーニング中とテスト中に非常に異なる結果が生成されます。言い換えれば、大域最小値は局所最小値よりも一般的です。

良いソリューションと悪いソリューションを区別できる 1 つの指標は、その平坦性です。モデルは、トレーニング データセットとテスト データセット上で、類似しているが同一ではない損失平面を生成するためです。テスト損失平面がトレーニング損失平面からわずかにオフセットされることが想像できます。局所最適の場合、損失が低い点はテスト中のこの遷移により損失値が大きくなる可能性があります。これは、この局所最適があまり一般化できないことを意味します。つまり、損失はトレーニング中は低くなりますが、テスト中は高くなります。一方、全体的に最適なソリューションの場合、この変化により、トレーニングとテストの損失が互いに近くなります。

上で、局所最適解と大域最適解の違いについて説明しました。これは、この記事で焦点を当てる新しい手法には大域最適解が含まれるためです。

スナップショット アンサンブル (スナップショット統合)

トレーニングの開始時に、SGD は重量領域で大きなジャンプを生み出します。その後、学習率を徐々に小さくするコサイン アニーリング戦略により、SGD は局所最適解に収束し、スナップショット アンサンブルを通じてモデルがセットに追加され、モデルの統合が実現されます。その後、学習率がより大きな値にリセットされ、モデルが別の局所最適値に収束する前に SGD が再び大きく上昇します。

スナップショット アンサンブル法の期間の長さは 20 ~ 40 回の反復です。長い周期学習率では、重み空間内で可能な限り類似しないモデルを見つけることができます。モデルが類似しすぎると、アンサンブル内の個々のネットワークの予測が近づきすぎて、アンサンブルの利点が無視できるほどになります。

スナップショット アンサンブル手法によって得られる結果は非常に良好で、モデルのパフォーマンスを大幅に向上させることができますが、高速ジオメトリック アンサンブル手法の効果は高速ジオメトリック アンサンブル手法よりも優れています。

Fast Geometric Ensembling (FGE) (高速幾何学統合)

高速幾何アンサンブル (FGE) はスナップショット アンサンブル手法とよく似ていますが、いくつかの注目すべき特性があります。スナップショット アンサンブルではコサインの代わりに線形区分的循環学習率を使用します。第 2 に、FGE のサイクル長はスナップショット アンサンブルのサイクル長よりもはるかに短く、1 サイクルあたりの反復回数はわずか 2 ~ 4 回です。

直感的には、各期間の終わりのモデルは互いに近く、それらを組み合わせても何のメリットももたらさないため、短い期間は間違っていると考えるかもしれません。しかし、著者らが発見したように、異種モデル間には低損失の接続パスがあるため、これらのパスに沿って小さなステップで移動し、遭遇したモデルを統合して良好な結果を得ることが可能です。したがって、スナップショット アンサンブル手法と比較して、FGE は改善が見られ、より少ないステップで目的のモデルを取得できるため、学習速度も速くなります。
ここに画像の説明を挿入左: 従来の直観では、極小値は損失値の高い領域によって分離されていると考えられています。極小値の経路に沿って探索する場合にも同じことが当てはまります。中央と右のパネル: 確かに、極小値の間にはより低い損失値を持つパスがいくつかあります。FGE は、これらのパスに沿ってアンサンブル モデルを生成します。

スナップショット アンサンブルまたは FGE 手法を最大限に活用するには、複数のトレーニング モデルを保存し、各モデルに対して予測を行って、最終的な予測を平均する必要があります。したがって、より良い統合パフォーマンスを得るには、より多くの計算を支払う必要があります。これは、「フリーランチなし」の法則の具体化であり、この「ランダム加重平均」論文の動機でもあります。

確率的加重平均 (SWA)

確率的加重平均 (SWA) は FGE 手法に非常に近いですが、計算上のペナルティがわずかです。SWA はあらゆるモデル構造とデータセットに適用でき、これらのデータセットで良好な結果を示します。この論文は、SWA がグローバル ミニマムに向かう傾向があり、これには上で説明した利点があることが示されています。SWA は、従来の意味での統合アプローチではありません。トレーニングの最後にモデルを取得します。このアンサンブル モデルのパフォーマンスは、スナップショット アンサンブルや FGE よりも優れています。
ここに画像の説明を挿入

左のパネル: W1、W2、および W3 は 3 つの独立してトレーニングされたネットワークを表し、Wswa はそれらの平均です。中央のパネル: SGD と比較して、Wswa はテスト セットで優れたパフォーマンスを示しています。右: Wswa はトレーニング中により悪い損失を示しますが、一般化し、より良く一般化することに注意してください。

SWA の観点は、各学習率サイクルの終了時の極小値が、損失平面上の損失値が低い領域 (点 W1、W2、W3 など) の境界に蓄積される傾向があるという経験的観察に基づいています。左の図では、境界の赤い領域に位置します)。このような点の損失値を平均することにより、より低い損失値、より優れた一般化および汎用性を備えた大域的な最適解を得ることができます (上の左図の Wswa など)。

Wswa の仕組みは次のとおりです。多くのモデルを含むアンサンブルではなく、2 つの個別のモデルのみが必要です。

  • 最初のモデルは、モデルの重みの平均値 (式内の w_swa など) を保存するために使用されます。これにより、トレーニング後の最終モデルが得られ、それを予測に使用します。
  • 2 番目のモデルは、重み空間 (式の w として) をトラバースし、周期学習率を使用して探索するために使用されます。

確率的重み平均の重み更新式:ここに画像の説明を挿入各学習率エポックの終了時に、2 番目のモデルの現在の重みは、古い平均重みと 2 番目のモデルの新しい重みセットの間の重み付き平均を取ることによって更新されます。モデルの(式は左側に示されています)。このアプローチに従うと、1 つのモデルをトレーニングし、トレーニング中に両方のモデルをメモリに保存するだけで済みます。予測段階では、平均重みを持つモデルのみが必要で、それに対して予測を行うことができます。これは、予測を行うために複数のモデルを必要とする上記のアンサンブル手法を使用するよりもはるかに高速です。

エピローグ

この論文の著者は、この論文の実装を PyTorch 上でオープンソース化しました。また、素晴らしい fast.ai ライブラリには SWA の実装があり、誰でも使用できます。

参考:

1.確率的重み平均化 — 深層学習で最先端の結果を得る新しい方法
2.深層学習の最新の方法: スナップショット アンサンブルと OUT! ランダム加重平均は未来です!

おすすめ

転載: blog.csdn.net/Joker00007/article/details/130855037