ホームページ > テクノロジー周辺機器 > AI > バッチ正規化:理論と四面体の実装

バッチ正規化:理論と四面体の実装

Joseph Gordon-Levitt
リリース: 2025-03-06 11:00:15
オリジナル
210 人が閲覧しました

深いニューラルネットワークトレーニングは、しばしば勾配の消失/爆発や内部共変量シフト、トレーニングの鈍化、学習の妨害などのハードルに直面することがよくあります。 正規化技術は解決策を提供し、バッチ正規化(BN)が特に顕著です。 BNは、収束を加速し、安定性を改善し、多くの深い学習アーキテクチャの一般化を強化します。このチュートリアルでは、BNのメカニック、数学的基盤、およびTensorflow/Kerasの実装について説明しています。

機械学習の正規化は、MIN-MAXスケーリング、Zスコアの正規化、ログ変換などの方法を使用して、リスケール機能へのログ変換などの方法を使用して、入力データを標準化します。これにより、外れ値の効果が軽減され、収束が改善され、公正な特徴の比較が保証されます。 正規化されたデータにより、学習プロセスへの特徴が平等に貢献し、大規模な機能が支配的になり、最適ではないモデルのパフォーマンスにつながります。 これにより、モデルは意味のあるパターンをより効果的に識別できます。

ディープラーニングトレーニングの課題には以下が含まれます

内部共変量シフト:
    トレーニング中のレイヤー全体でアクティベーションの分布が変化し、適応と学習を妨げています。
  1. 消失/爆発グラデーション:勾配は、バックプロパゲーション中に小さすぎるか大きくなり、効果的な体重の更新が妨げられます。
  2. 初期化感度:初期重みがトレーニングに大きな影響を与えます。初期化が不十分な場合、収束が遅くなったり失敗したりする可能性があります
  3. バッチ正規化は、各ミニバッチ内のアクティベーションを正規化し、トレーニングを安定化し、モデルのパフォーマンスを改善することにより、これらに取り組んでいます。
  4. バッチ正規化は、トレーニング中のミニバッチ内のレイヤーのアクティブ化を正規化します。各機能のアクティベーションの平均と分散を計算し、これらの統計を使用して正規化します。 学習可能なパラメーター(γおよびβ)は、正規化された活性化を拡張してシフトし、モデルが最適な活性化分布を学習できるようにします。
出典:Yintai MaとDiego Klabjan。

BNは、通常、層の線形変換(たとえば、完全に接続された層でのマトリックス増殖または畳み込み層の畳み込み)および非線形活性化関数(例:Relu)の後に適用されます。 重要なコンポーネントは、ミニバッチ統計(平均と分散)、正規化、および学習可能なパラメーターを使用したスケーリング/シフトです。

BNは、各ミニバッチ内のアクティブ化を正規化することにより、内部共変量シフトに対処し、後続の層への入力をより安定させます。これにより、より高速な収束により、より高速な学習率が可能になり、初期化の感度が低下します。 また、特定の活性化パターンへの依存を減らすことにより、過剰適合を防止し、正規化します。

バッチ正規化の数学:Batch Normalization: Theory and TensorFlow Implementation

BNは、トレーニングと推論中に異なる動作を行います。

トレーニング:

  • 正規化:平均(μb)および分散(σbb2
  • )は、ミニバッチの各機能について計算されます:
>

Batch Normalization: Theory and TensorFlow Implementation

Batch Normalization: Theory and TensorFlow Implementation

アクティベーション(xi

)が正規化されています:

Batch Normalization: Theory and TensorFlow Implementation

(εは数値の安定性のための小さな定数です)。
  • スケーリングとシフト:
  • 学習可能なパラメーターγおよびβスケールとシフト:

Batch Normalization: Theory and TensorFlow Implementation

推論:

バッチ統計は、移動平均(運動量因子α)を使用してトレーニング中に計算された実行統計(実行平均と分散)に置き換えられます:

Batch Normalization: Theory and TensorFlow Implementation

Batch Normalization: Theory and TensorFlow Implementation

これらの実行統計と学習γとβは、推論中に正規化に使用されます。

tensorflow実装:

import tensorflow as tf
from tensorflow import keras

# Load and preprocess MNIST data (as described in the original text)
# ...

# Define the model architecture
model = keras.Sequential([
    keras.layers.Conv2D(32, (3, 3), activation='relu', input_shape=(28, 28, 1)),
    keras.layers.BatchNormalization(),
    keras.layers.Conv2D(64, (3, 3), activation='relu'),
    keras.layers.BatchNormalization(),
    keras.layers.MaxPooling2D((2, 2)),
    keras.layers.Flatten(),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.BatchNormalization(),
    keras.layers.Dense(10, activation='softmax')
])

# Compile and train the model (as described in the original text)
# ...
ログイン後にコピー

実装上の考慮事項:

  • 配置:線形変換後およびアクティベーション機能の前に。
  • バッチサイズ:バッチサイズの大きいサイズは、より正確なバッチ統計を提供します。
  • 正規化:
  • bnは正則化効果を導入します
  • 制限と課題:

非ボリューションアーキテクチャ:
    BNの有効性はRNNとトランスで削減されます。
  • 小型バッチサイズ:
  • 信頼性の低いバッチ統計。
  • 計算オーバーヘッド:
  • メモリとトレーニング時間の増加。
  • 制限の緩和:
適応バッチ正規化、仮想バッチ正規化、およびハイブリッド正規化手法は、いくつかの制限に対処できます。

バリエーションと拡張:レイヤー正規化、グループ正規化、インスタンス正規化、バッチ繰り込み、および重量正規化は、特定のニーズに応じて代替または改善を提供します。

結論:バッチ正規化は、深いニューラルネットワークトレーニングを改善する強力な手法です。 その利点、実装の詳細、制限を覚えておいて、プロジェクトで最適なパフォーマンスのためにそのバリエーションを検討してください。

以上がバッチ正規化:理論と四面体の実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート