ディープニューラルネットワークのトレーニングは困難な作業です。 長年にわたり、研究者たちは学習プロセスを高速化し、安定させるためのさまざまな方法を提案してきました。 正規化は、この点で非常に効果的であることが証明されている手法です。 この記事では、それぞれのアプローチについて、その理由と思考プロセスを理解するのに役立つ類推と視覚化を使用して確認します。 なぜ正規化なのか?たとえば、2 つの機能を持つ単純なニューラル ネットワーク モデルを構築します。 2 つの特徴は、0 から 65 までの範囲の年齢と、0 から 10,000 までの範囲の給与です。これらの特徴をモデルに入力し、勾配を計算します。 異なるサイズの入力は異なる重みの更新につながり、最小値に向かうオプティマイザーのステップは不均一になります。これにより、損失関数の形状も不均衡になります。この場合、オーバーシュートを回避するために学習率を低くする必要があり、これは学習プロセスの速度低下を意味します。 したがって、私たちの解決策は、入力を正規化し、平均(中心化)を減算して標準偏差で割ることで特徴を縮小することです。 このプロセスは「ブリーチング」とも呼ばれ、すべての値の平均がゼロ、分散が 1 になるため、収束が速くなり、トレーニングがより安定します。 これは素晴らしい解決策です。では、ネットワーク内のすべてのレイヤーでアクティベーションを正規化してみませんか? 次に、活性化の正規化方法を見てみましょう。 バッチ正規化2015年にセルゲイ・ヨッフェとクリスチャン・セゲディ[3]は、内部共変量シフトの問題に対処するためにこの考え方を採用しました。 以前は、重みの更新により入力層の分布が変化し続けました。そのため、次のレイヤーは常に新しい分布に適応する必要があり、収束が遅くなり、トレーニングが不安定になる可能性があります。 バッチ正規化は、各レイヤーの後の分布を制御および最適化する方法を提供します。 プロセスは入力正規化と同じですが、学習可能な 2 つのパラメータ γ と β を追加します。 退屈な数式よりもコードで説明した方がはるかにわかりやすいので、BN コードは次のようになります。 BatchNorm ( x 、 ガンマ、 ベータ、 eps = 1e-5 ) を定義します。 これら 2 つのパラメータは、ネットワークに沿ったバックプロパゲーションを通じて学習されます。活性化をスケーリング (γ) およびシフト (β) することで分布を最適化します。 分布が固定されているため、学習率を高め、収束速度を加速することができます。 計算の改善に加えて、BN は正規化手法としても使用できます。 データセット統計の近似によって生成されるノイズにより、ドロップアウトの必要性がなくなります。 しかし、それは諸刃の剣です。 この見積りは、大規模なバッチにのみ適用されます。 バッチ サイズが小さい場合、パフォーマンスは大幅に低下します。 BN のもう 1 つの欠点は、バッチ処理に依存していることです。 複数の例をまとめて渡すのではなく、単一の例を渡した場合、ネットワークは事前に計算されたトレーニングの平均と分散を使用する必要があり、異なる結果になった可能性があります。 この問題の重要性により、バッチ処理への依存を避けるための代替アプローチが生み出されました。 レイヤーの正規化これは、2016年にGeoffrey E. Hintonらによってバッチサイズの制約を軽減する最初の試みでした[4]。この方法を提案する主な理由は、BN を再帰型ニューラル ネットワークに適用する代替方法を見つけることが不可能であるためです。 ディープニューラルネットワークでは、層の数が固定されているため、各 BN 層の統計情報を保存することが容易です。 ただし、RNN では、入力形状と出力形状の長さが異なります。 したがって、この場合は、バッチ全体ではなく、単一の時間ステップ (サンプル) の統計を使用して正規化することをお勧めします。 定義LayerNorm ( x , gamma , beta , eps = 1e-5 ): この方法では、バッチ(N)内の各例は[C、H、W]次元にわたって正規化されます。 BN と同様に、トレーニングを高速化および安定化でき、バッチ サイズによる制限はありません。 この方法は、バッチ サイズが 1 のオンライン学習タスクに使用できます。 インスタンスの正規化ドミトリー・ウリヤノフらは2016年の論文[5]でインスタンス正規化を紹介した。 これは、バッチ処理への依存を減らしてスタイル転送ネットワークを改善するためのもう一つの試みです。 定義InstanceNorm ( x , ガンマ, ベータ, eps = 1e-5 ): バッチとチャネル全体の正規化により、画像から特定のコントラスト情報を削除できるため、一般化に役立ちます。 このアプローチは、Pix2Pix や CycleGAN などの生成モデルで人気となり、StyleGAN2 で使用される有名な Adaptive Instance Normalization の先駆けとなりました。 グループの正規化グループ正規化は2018年の論文[1]で導入され、CNNのBN制限に直接対処しています。 これは主に、バッチが多数のマシンに分割される分散学習を対象としています。 これらは、6 ~ 8 個、場合によっては 1 ~ 2 個といった少数の例に基づいてトレーニングされます。 GN は、レイヤーとインスタンスの混合として理解できます。 GN はチャネルをグループに分割し、グループ間で正規化します。 この方式により、計算はバッチ サイズに依存しなくなります。 定義GroupNorm ( x 、 ガンマ、 ベータ、 G 、 eps = 1e-5 ): GN は、小さなバッチでトレーニングされた BN よりも優れていますが、大きなバッチでは結果に勝てません。ただし、出発点としては良いです。 活性化の正規化方法は基本的には聞いたことがあり、よく使います。次に重みの正規化方法を紹介します。 重量標準化入力とレイヤー出力はすでに正規化されており、残っているのは重みだけです。特に出力を正規化したい場合には、制御なしに大きくなる可能性があるからです。 重みを正規化することで、よりスムーズな損失とより安定したトレーニングを実現します。 定義WeightStand ( w , eps = 1e-5 ): 重みの標準化は、グループ正規化の補助として適しています。 1 つのサンプルのみが使用される BN (ビッグ バッチ正規化) の場合、これらの方法を組み合わせると、より良い結果が得られます。 さらに、バッチ チャネル正規化と呼ばれる BCN 方式を提案した人もいます。つまり、各レイヤーは BN と GN の両方を使用します。 要約する正規化はディープラーニングの基本的な概念です。 計算を高速化し、トレーニングを安定させます。 長年にわたり、さまざまな技術が開発されてきました。この記事では、それに関連する現在の方法を整理します。お役に立てば幸いです。 |
>>: インテリジェント運転ビッグデータの最先端の研究の進歩と典型的な応用
知っていましたか? LeNet 畳み込みニューラル ネットワークは iOS デバイス上で直接トレーニ...
[[210849]]データサイエンスが人工知能の発展において輝くにつれ、データマイニングと機械学習が...
11月7日、ゼネラルモーターズの自動運転会社クルーズは、自動運転タクシーは4~5マイルごとに人間の支...
[51CTO.comより引用] 2018年11月30日から12月1日まで、WOT2018グローバル人...
紙: http://wanghao.in/paper/NatureMedicine21_MSA.pd...
近年、人工知能(AI)はビジネスや業界でますます注目を集めています。企業が AI を使用する方法も、...
ICLR 2022の授賞式を利用して、MIT、コーネル、Google、Microsoftが新しいSO...
ChatGPT が一般公開されて以来、LLM (大規模言語モデル)、RAG (検索拡張生成)、ベクタ...
[[276295]]タグ: AI、機械学習、ディープラーニング一言でまとめると、AI の分野に参入...
OpenAI の無敵という神話は崩れ去った。 Claude 3 (中国語対応)が一夜にして発売され...
年齢を重ねるにつれて、私たちの体はさまざまな病気や障害に悩まされるようになります。それはまるで逆方向...