テクニカルガイド

重みの初期化

トレーニングを開始する前にニューラル ネットワークの開始重みを設定する方法。これにより、信号と勾配が深い層まで健全に保たれるかどうかが大きく決まります。

このガイドを聴くAIによるナレーション · ~2 min

このページでは2分の読書
  1. 概要
  2. ディープダイブ
  3. 現実世界の実装
  4. 重み初期化の未来
  5. 実践する
  6. 探検を続けましょう
  7. よくある質問

概要

Good initialization is the difference between fast convergence and a model that never learns.

ディープダイブ

トレーニングの前に、すべてのウェイトに開始値が必要です。それらをすべてゼロに設定することは致命的です。同じ重みは同じ勾配を生成するため、ニューロンは決して区別されません。これは対称性を破る問題です。ランダムな初期化は対称性を破りますが、スケールは非常に重要です。大きすぎるとアクティベーションとグラデーションが爆発します。小さすぎると消えてしまいます。原則的なスキームでは、層のサイズに基づいて分散を選択し、層間で信号の分散をほぼ一定に保ちます。 Xavier (Glorot) の初期化は、入力と出力のユニットの数によって分散をスケールし、tanh ネットワークとシグモイド ネットワークに適合します。彼 (Kaiming) の初期化は入力の数によってスケールされ、ReLU が入力の半分を破棄することを考慮しており、ReLU ベースのディープ ネットと CNN の標準となっています。初期化を適切に行うと、正規化と適応オプティマイザーが引き継ぐまで、初期のトレーニングが安定した状態に保たれます。

現実世界の実装

ReLU 活性化を使用する CNN は He 初期化で初期化されるため、信号が消失することなく深い畳み込みスタックが学習されます。

Tanh アクティベーションを含むネットワークは、Xavier 初期化を使用して、レイヤー間でアクティベーションの分散を安定に保ちます。

エンジニアが誤ってすべての重みをゼロに初期化してしまった場合、すべてのニューロンが同一のままであるためにネットワークが学習に失敗することがわかります。

フレームワークのデフォルト (PyTorch の Kaiming、Keras の Glorot ユニフォーム) は、レイヤーの作成時に原則に基づいた初期化を自動的に適用します。

重み初期化の未来

正規化層と残留接続により、トレーニングの正確な初期化に対する感度が多少低くなりましたが、非常に深いネットワークや正規化のないネットワークでは依然として重要です。活発な研究には、トランスフォーマーとアテンションに合わせたスキーム、正規化層なしでネットワークをトレーニングさせる方法、初期化のみからトレーニング可能性を予測するダイナミック アイソメトリやニューラル タンジェント カーネルなどの理論が含まれます。サンプル バッチからスケールを調整するデータ依存の初期化も、成長のもう 1 つの方向です。

実践する

なぜそれが重要なのか

  • 費用と予算. アーキテクチャの決定により、パフォーマンスと運用コストが何年にもわたって推進されます。
  • より明確な判決. 技術教育は、チームが最新のスタックだけでなく、適切なスタックを選択するのに役立ちます。
  • 品質管理. より良いエンジニアリングの選択により、本番環境での信頼性に関するインシデントが減少します。

気をつけてください

  • 1 つのベンチマークを最適化すると、より広範なシステムの弱点が隠れる可能性があります。
  • インフラストラクチャとメンテナンスのコストは過小評価されがちです。
  • システムが複雑になるにつれて、セキュリティと可観測性のギャップが拡大する可能性があります。

次のステップ

  1. 実装前にレイテンシ、品質、コストの目標を定義します。
  2. 現実的な負荷とデータ条件でのベンチマーク。
  3. エラー、ドリフト、ユーザーへの影響を計測器で監視します。
  4. スケーリングの前に、ロールバックとインシデント対応のパスを準備します。

探検を続けましょう

無料ニュースレター

毎日のAIブリーフィングを受け取る

毎週平日の朝に英語で書かれた3つの検証済みAIストーリー。無料で永続的、広告なし。

毎週平日に1通のメール。ワンクリックで購読解除。住所を販売または共有しません。

自分自身をテストしてください

Take the Weight Initialization quiz

すべての回答に即時フィードバック、合格後は検証可能なID付きの共有可能な証明書を取得。

クイズを開始する

無料AI教育をサポート。AI Understandingは501(c)(3)の非営利団体です — 広告なし、課金壁なし、常に。 寄付をする

よくある質問

What is Weight Initialization?

トレーニングを開始する前にニューラル ネットワークの開始重みを設定する方法。これにより、信号と勾配が深い層まで健全に保たれるかどうかが大きく決まります。適切な初期化は、高速収束と決して学習しないモデルの違いです。

すべての重みをゼロに初期化することが致命的な間違いになるのはなぜですか?

同じ重みを使用すると、すべてのニューロンが同じ出力と勾配を計算するため、同じように更新され、レイヤーは個別の特徴を学習できなくなります。

彼 (Kaiming) の初期化は、どの活性化関数のために特別に設計されていますか?

初期化では、入力の約半分をゼロにする ReLU を補償するために、分散を 2 / fan_in でスケールします。

原則に基づいた重み初期化スキームの主な目標は何ですか?

Xavier や He のようなスキームでは、層のサイズから重みの分散を選択するため、信号が伝播するときに信号が消えたり爆発したりすることはありません。

Xavier (Glorot) の初期化は、どのアクティベーションを使用するネットワークに最適ですか?

Xavier は、tanh や Sigmoid などの対称的で飽和したアクティベーションに対して、前方分散と後方分散のバランスをとります。

He の初期化で 1 / fan_in ではなく 2 / fan_in の分散が使用されるのはなぜですか?

ReLU は正の入力のみを渡し、信号の約半分を破棄するため、分散を 2 倍にすると、期待される活性化分散が復元されます。