【どろっぷあうと】

ドロップアウト とは?

💡 ランダムに穴を開けながら学習する「意図的な欠席訓練」
📌 このページのポイント
ドロップアウト(過学習防止) 通常のネットワーク 全ニューロンが活性 ドロップアウト適用後 一部をランダムに無効化 学習のたびにランダムなニューロンを無効化することで 特定のニューロンへの依存を防ぎ、汎化性能を向上させる
ドロップアウトによる過学習防止のイメージ
ひよこ ひよこ

学習中にノードを消したら精度が下がらないの?

ペンギン先生 ペンギン先生

逆説的だけど、精度が上がることが多いんだよ。特定のノードに依存しすぎることを防げるから。たとえばサッカーチームで特定の選手がいないと機能しない戦術は弱い。どの選手が欠けても機能する戦術の方が強いよね。それと同じ発想だよ。

ひよこ ひよこ

どのくらいの割合でノードを消すの?

ペンギン先生 ペンギン先生

よく使われるのは20〜50%で、問題やネットワークの大きさによって調整するよ。全部のノードを有効にした状態がベースラインで、そこから実験しながら決めることが多いね。

ひよこ ひよこ

テストのときはどうするの?全部のノードを使うって言ってたけど、学習時より出力が大きくなりそう。

ペンギン先生 ペンギン先生

鋭いね。だからテスト時は残ったノードの重みに「1 - ドロップアウト率」を掛けてスケールを調整するんだ。学習時にドロップアウト率を掛けた逆数を重みに掛けておく「逆スケーリング」という方法を使う実装も多いよ。

ひよこ ひよこ

おもしろい!ドロップアウトって毎回違うノードを消すから、毎回推論結果が変わるってこと?

ペンギン先生 ペンギン先生

テスト時は全ノードを有効にするから通常は変わらないけど、「MC Dropout(モンテカルロドロップアウト)」という面白い使い方があって、テスト時もドロップアウトをかけたまま何十回も推論して分散を見るんだ。この分散が「モデルの不確実性」の推定になる。「この予測には自信がある・ない」を数値で表せて、医療AIなど信頼性が重要な場面で使われる。ドロップアウトを正則化以外の目的で使う発想は、多くのエンジニアが知らない活用法なんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ドロップアウト」って出てきたら「学習中にランダムにノードを消して過学習を防ぐ技術だな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Dropout」 = 脱落・無効化
💬 ノードが学習から「ドロップアウト(脱落)」するイメージだよ。2014年にHintonらが提案した手法だね
← 用語集にもどる