Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Dropout Layer

ドロップアウト層は、学習中に活性化値の一部をランダムにゼロにすることで、ネットワークが特定のユニットだけに依存できないようにし、過学習を抑制します。

ドロップアウト層は、ニューラルネットワークの正則化コンポーネントであり、各学習ステップで入力の割合pをランダムにゼロに設定し、推論時にはすべての値をそのまま通します。どのユニットも任意のステップで無効になる可能性があるため、ネットワークは特定の少数のニューロンや、それらの間の壊れやすい共適応に依存できません。その結果、汎化性能が高く、過学習しにくい冗長な特徴を学習します。学習データへの過学習も抑えられます。Geoffrey Hintonらが2012年にこの手法を導入し、Srivastava, Hinton, et al.が2014年に詳細を発表しました。ドロップアウトはPyTorch、TensorFlow、その他多くの深層学習フレームワークに組み込まれたレイヤーで、全結合分類ヘッドからTransformerまで、さまざまなアーキテクチャで使用されています。

ドロップアウトの仕組み#

学習中、レイヤーはフォワードパスごとに新しいランダムマスクをサンプリングし、確率1 − pで各要素を保持し、確率pでゼロにします。そのため、各ステップでは異なる縮小サブネットワークが学習され、テスト時に使われるネットワーク全体は、重みを共有する指数関数的な数のサブネットワークの平均を近似します。このため、ドロップアウトは低コストなアンサンブル学習と表現されることがあります。両フェーズで期待活性化値を同じに保つため、最新のフレームワークでは反転ドロップアウトを使用します。学習中に残った値に1 / (1 − p)を掛けるため、推論時にはレイヤーは何も行いません。PyTorchでは、nn.Dropoutはモジュールの学習モードまたは評価モードに従います。

import torch
from torch import nn

torch.manual_seed(0)
dropout = nn.Dropout(p=0.5)
x = torch.ones(10)

# 学習モード: 値の約半分がゼロになり、残りの値は1 / (1 - p) = 2倍にスケーリングされます
dropout.train()
print("Train:", dropout(x))

# 評価モード: レイヤーはすべての値を変更せずに通します
dropout.eval()
print("Eval: ", dropout(x))

学習モードでは10個の値のうち6個が除去され、残りの4個は2.0になり、期待値は1.0に保たれます。評価モードでは、10個すべての値が1.0のままです。

一般的なドロップアウトのバリエーション#

  • 空間ドロップアウト: PyTorchのnn.Dropout2dは特徴マップのチャネル全体をゼロにします。チャネル内で隣接するピクセル間には強い相関があり、ピクセルを1つずつ除去しても正則化効果がほとんどないため、畳み込みネットワークに適しています。
  • 確率的深度(DropPath): 個々の活性化値ではなく、サンプルごとに残差ブランチ全体をランダムにスキップします。Vision Transformerや最新のCNNの学習で標準的に使われています。
  • モンテカルロドロップアウト: 推論時もドロップアウトを有効にし、同じ入力に対してモデルのフォワードパスを複数回実行します。予測のばらつきから、安全性が重要なシステムでモデルの不確実性を低コストで推定できます。GalとGhahramaniは、この手法を近似ベイズ推論として解釈しました。
  • DropConnect: 活性化値ではなく個々の重みをランダムにゼロにし、各接続に個別のマスクを適用します。

ドロップアウトの実践#

ドロップアウト率は、他のハイパーパラメーターと同様に調整します。Srivastavaらは、幅広いネットワークとタスクで隠れユニットを確率0.5で除去すると良好に機能し、入力ユニットでは保持率を1に近づけると最適になることを示しました。初期のTransformerではp = 0.1が使われていました。率が高すぎると収束が遅くなり、学習不足を引き起こす可能性があります。また、ドロップアウトをバッチ正規化の直前に置くと、学習時とテスト時の分散シフトによって精度が低下することがあります。多くの畳み込みニューラルネットワークは、主にバッチ正規化、データ拡張、重み減衰に依存し、ドロップアウトは分類ヘッドに使用します。Ultralytics YOLO26の分類モデルもこのパターンに従っています。プーリング後の1,280チャネルの特徴と最終線形分類器の間にドロップアウト層が1つあり、その率は学習引数dropoutで設定します(デフォルトは0.0です)。

from ultralytics import YOLO

# ドロップアウト層を含むヘッドを持つYOLO26分類モデルを読み込みます
model = YOLO("yolo26n-cls.pt")

# 小規模なMNISTサブセットで、分類ヘッドに10%のドロップアウトを適用して学習します
results = model.train(data="mnist160", epochs=10, imgsz=64, dropout=0.1)

実際のアプリケーション#

  • 医用画像解析: ラベル付きスキャンはコストが高いため、診断用分類器は数千枚の画像を使って事前学習済みバックボーンをファインチューニングすることがよくあります。分類ヘッドのドロップアウトは、このような小規模なデータセットから個々の症例をヘッドが記憶するのを抑制します。
  • 自然言語処理: BERTなどのTransformerエンコーダーは、事前学習とファインチューニング中に、アテンション重みを含むすべてのレイヤーに確率0.1のドロップアウトを適用します。
  • バッチ正規化: バッチ正規化は各レイヤーの入力を標準化して学習を安定させます。バッチ統計量から生じるノイズは軽微で、ユニットは削除しません。
  • ラベルスムージング: ラベルスムージングは、ワンホットラベルを平滑化して学習ターゲットを正則化し、すべての活性化値をそのまま維持します。
  • プルーニング: プルーニングでは重要度の低い重みを恒久的に削除してモデルを小さくします。一方、ドロップアウトによるゼロ化は1回の学習ステップだけ続き、パラメーター数は変わりません。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう