ドロップアウトDropout
学習中に一部を無作為に休ませる方法
- ドロップアウトは学習中にモデルの中の場所を一部無作為に選んで休ませる方法です。
- 休ませる場所は一歩ごとに新しく選び直されます。どの場所も特定の相方に頼れないようにするのが狙いです。
- 結果として複数の場所が似た役割を重ねて身につけ、一つが抜けても全体は揺らぎません。
- 休ませる割合は人が決めます。高すぎると学ぶべきことを学べず、低すぎると効果がありません。
- 学習中だけ休ませ、実際に使うときは全部つなげます。その代わり、強さを合わせる調整が一緒に入ります。
目次
1たとえで理解する
水車小屋の水車は、落ちてくる水が羽根の升目を満たしながら回ります。ところが水の流れがいつも同じ場所にばかり落ちると、いくつかの升目が力を担い、残りの升目はほとんど遊んでしまいます。見た目にはよく回っていても、実は二つ三つの升目だけに頼った水車です。
そこで板を何枚か用意しておき、回すたびに違う升目を選んでふさぎます。今日はこの升目、次はあの升目という具合です。どこがふさがれるか分からないので、どの升目も隣の升目がやってくれるだろうと頼ることができません。結局すべての升目が自分の分を受け止められるようになります。
ドロップアウトはこの板です。学習中に場所の一部を無作為にふさいで回し、残った場所が自分の力で仕事をこなせるようにします。実際に粉をひくときは板をすべて外し、全部の升目を使います。
2くわしく
一部の場所だけに頼るモデルの問題
モデルの中には値をやり取りする場所がたくさんあります。学習が長く続くと、そのうちの数か所が特定の組み合わせで手を組み、答えをほぼ一手に引き受けてしまうことがあります。残りの場所はその組み合わせを補う程度にしか育ちません。
こうしたモデルは学習に使った資料ではよく当たります。けれども初めて見る資料でその組み合わせがうまく働かないと、頼れる場所がなく大きく外します。一部に偏った構造は、資料が少し変わるだけで崩れてしまいます。
ドロップアウトはこの偏りを学習中に崩します。毎回違う場所が消えるので、特定の組み合わせが固まる隙がありません。どの場所も一人で使える信号を作っておく方向に学習が進みます。
一歩ごとに新しく選びます
休ませる場所はあらかじめ決めておきません。資料のかたまりを一つ処理するたびに、その場でくじを引くように新しく選びます。休むと決まった場所はその一歩の間だけ値を0にし、逆にたどって配分を計算するときも外れます。
そのため一歩ごとに少しずつ違うモデルを学習させているのと同じことになります。場所が数千あれば、できあがる組み合わせは事実上無限です。学習を終えたモデルは、こうして少しずつ違う無数のモデルをまとめ上げた結果に近づきます。複数のモデルの答えを平均すると安定するという昔からのやり方を、一つのモデルの中で真似ているわけです。
どれくらい休ませるか
休ませる割合は人が決めます。半分近く休ませる設定が広く使われますが、場所の数が少ないところではもっと低く設定します。割合が高すぎると残った場所が支えきれず学習がうまく進まず、低すぎると偏りを崩せず、かけた意味がなくなります。
層ごとに違う割合をかけることもあります。場所が密集した層には強めに、値が流れ込む最初の部分には弱めにかける具合です。資料がとても多い学習では、まったくかけないこともあります。覚えてしまうほど同じ資料を繰り返し見ないためです。逆に場所の数が少ないモデルで割合を高くかけすぎると、支える人手が足りない現場のようになり、学習そのものが立ち行かなくなります。
ドロップアウトをかけると学習が少し遅くなる点も覚えておくとよいでしょう。毎回一部が欠けたまま学ぶので、同じ成績にたどり着くまでに車輪をもっと回す必要があります。学習資料での成績だけを見るとかけない方が常によく見えますが、別に取り分けた資料で測ると順位が入れ替わります。
使うときは全部つなげます
学習が終わり実際に答えを受け取って使うときは、何も休ませません。同じ問いに毎回違う答えが出ては困るからです。ところが、そのまま全部つなげると問題が起きます。学習中は常に一部が欠けた状態で値が流れていたのに、いま全部つながると値がその分大きくなってしまうのです。
そこで強さを合わせる調整が一緒に入ります。学習中に生き残った場所の値をあらかじめ大きくしておくやり方が一般的です。こうしておけば、実際に使うときに何も補正をしなくても、値の大きさが学習時と釣り合います。
3もう少し正確に
ドロップアウトは学習段階で各場所を決まった確率で0にし、残った場所の値をその確率の分だけ割って大きくしておく方法です。値の大きさに罰を科す方式と目的が同じなので広い意味の正則化に分類されますが、損失に項を足すのではなく信号そのものを断つ点が違います。
たとえがずれる点もあります。水車の升目は目に見え数も決まっていますが、モデルの場所は値が流れる通り道に近く、一つずつ数えるのは難しいものです。また板は人が選んでふさぎますが、ドロップアウトは毎回無作為に選ばれます。最近の大きなモデルでは層と層の間ではなく別の場所にかけたり、資料が十分にあればまったく使わなかったりすることも多いと知っておくとよいでしょう。場所一つずつではなくまとまり単位で丸ごと休ませる変形もあり、答えを受け取るときにわざとつなげたまま何度も回して答えのばらつきを測る使い方もあります。
4やってみる
5よくある誤解
ドロップアウトがモデルの場所を実際に取り除くと思われがちですが、実際にはその一歩の間だけ値を0にするだけで、次の一歩ではまた戻ります。
ドロップアウトは答えを受け取るときも働き続けると考えられがちですが、実際には学習中だけ働かせ、使うときは全部つなげた状態で動かします。
割合を高めるほど過学習をよく防げると思われがちですが、実際には行き過ぎると残った場所が支えきれず、学習そのものが成り立たなくなります。
7ひとこと要約
つまりドロップアウトは学習中に場所の一部を無作為にふさぐ板であり、どちらか一方に頼らないモデルを作ります。
誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02