G検定(ジェネラリスト検定)
どろっぷあうと
ドロップアウト
Dropout
ドロップアウトとは、ニューラルネットワークの学習中に、ユニットとその結合を一時的にランダムに取り除く手法です。各ユニットは固定の確率pで残り、特定のユニット同士がもたれ合う共適応(co-adaptation)が起きにくくなるため、過学習を抑えられます。
詳しい説明
ドロップアウトが防ごうとしていること
ニューラルネットワークは、訓練データに合わせすぎて、見たことのないデータでは予測が当たらなくなることがあります。この現象を過学習と呼びます。ドロップアウトを提案した2014年の論文の題名は「Dropout: A Simple Way to Prevent Neural Networks from Overfitting」で、日本語にすると「ドロップアウト: ニューラルネットワークの過学習を防ぐ単純な方法」です。題名のとおり、ドロップアウトは過学習を抑えるための手法です。
論文が問題にしたのは、ユニット同士の共適応(co-adaptation)です。ユニットとは、ニューラルネットワークの層を構成する1つ1つの計算の単位のことです。共適応とは、あるユニットが別の特定のユニットの出力があることを前提にして働くようになり、複数のユニットが互いにもたれ合う状態を指します。もたれ合ったユニットの組は訓練データの細かな癖に合わせやすく、これが過学習につながります。
学習中にユニットを取り除く仕組み
論文は核となる考え方を「The key idea is to randomly drop units (along with their connections) from the neural network during training」と書いています。学習中に、ニューラルネットワークからユニットをその結合ごとランダムに落とす、という意味です。
取り除く対象は隠れ層のユニットだけではありません。入力を受け取る可視層(入力層)のユニットも取り除く対象になります。取り除くのは一時的な操作で、ユニットそのものがネットワークから消えるわけではありません。ある時点で落ちたユニットも、別の時点では残ることがあります。
どのユニットを落とすかはランダムに決まります。最も単純な場合、各ユニットは他のユニットと関係なく、固定の確率pで残ります。言いかえると、各ユニットは1からpを引いた確率で落とされます。落とされたユニットは、そのときの計算に加わりません。そのユニットにつながる結合も、一緒に使われなくなります。
ユニットが毎回ランダムに落とされると、あるユニットは特定の相手がいつもいることを当てにできなくなります。そのため各ユニットは、他のどのユニットが残っていても役に立つ特徴を学ぶ方向へ押されます。論文が述べる共適応を防ぐ効果とは、このことです。
数値で見る残るユニットと落ちるユニット
ここでは架空の数値で、ある隠れ層の6個のユニットに確率p=0.5のドロップアウトを当てる様子を見ます。ユニットにA〜Fの名前を付け、それぞれに0以上1未満の乱数を1つずつ引きます。引いた乱数がpより小さければそのユニットは残り、p以上なら落ちる、という決め方にします。
1回目に引いた乱数が、Aは0.31、Bは0.72、Cは0.08、Dは0.55、Eは0.44、Fは0.91だったとします。0.5より小さいのはA・C・Eの3個なので、この3個が残ります。B・D・Fの3個は落ち、この回の計算ではB・D・Fとそれらにつながる結合が使われません。
2回目に引き直した乱数が、Aは0.66、Bは0.12、Cは0.27、Dは0.83、Eは0.49、Fは0.05だったとします。このときはB・C・E・Fの4個が残り、AとDが落ちます。残る個数は毎回ちょうど3個になるとは限りません。p=0.5は各ユニットが半々の確率で残るという意味で、6個のうち平均すれば3個が残るという程度の目安です。
入力層に同じ決め方を当てる場合は、pを1に近い値にします。例えば入力層の5個のユニットにp=0.8を当て、引いた乱数が0.12、0.95、0.40、0.67、0.83だったとします。0.8より小さい1番目・3番目・4番目の3個が残り、0.8以上の2番目と5番目が落ちます。p=0.8なら、平均して5個のうち4個が残ります。
残す確率pの決め方
論文によると、pは検証用のデータ(検証セット)で性能を比べて選ぶこともできますし、単純に0.5に決めてしまうこともできます。0.5という値は、多くのネットワークと多くのタスクでほぼ最適だと論文は述べています。
ただし入力ユニットについては、残す確率を0.5よりも1に近い値にするのが普通だとされています。入力ユニットは元のデータそのものを受け取る場所なので、半分も落とすと、ネットワークに届く情報が大きく欠けてしまうからです。前の節の例で、隠れ層にはp=0.5、入力層にはp=0.8を当てたのはこの考え方に合わせたものです。
指数個の間引かれたネットワークを組み合わせるという見方
ユニットをいくつか落としたあとに残るネットワークは、論文で「間引かれたネットワーク(thinned network)」と呼ばれます。1回目の例ならA・C・Eだけが残ったネットワーク、2回目の例ならB・C・E・Fだけが残ったネットワークが、それぞれ1つの間引かれたネットワークです。
各ユニットは残るか落ちるかの2通りなので、取り除く対象のユニットがn個あれば、間引かれたネットワークは最大で2のn乗通りあります。先の例の6個のユニットだけでも2の6乗で64通りあり、実際のネットワークのようにユニットが数百、数千とあれば、その数はユニットの数に対して指数的に増えます。
ドロップアウトを使った学習では、ランダムに選ばれた間引かれたネットワークの1つを使って学習する、という操作を何度も繰り返すことになります。これらの間引かれたネットワークは、同じ元のネットワークの重みを共有しています。論文は、ドロップアウトがこの指数個の間引かれたネットワークを近似的に組み合わせる効果を持つと述べています。たくさんのネットワークを別々に作って組み合わせるのではなく、1つのネットワークの中でそれに近いことをしている、という見方です。
提案した研究者
ドロップアウトの論文は、ニティッシュ・スリヴァスタヴァ(Nitish Srivastava)、ジェフリー・ヒントン(Geoffrey Hinton)、アレックス・クリジェフスキー(Alex Krizhevsky)、イリヤ・サツケヴァー(Ilya Sutskever)、ルスラン・サラフトディノフ(Ruslan Salakhutdinov)の5人の共著です。2014年に学術誌Journal of Machine Learning Researchの第15巻に掲載されました。
試験で問われること
G検定
- ドロップアウトは、ニューラルネットワークの学習中に、ユニットとその結合を一時的にランダムに取り除く手法です。取り除く対象には隠れ層のユニットと入力層のユニットの両方が含まれます。
- 単純な場合、各ユニットは固定の確率pで残ります。pは検証セットで選ぶか、単純に0.5に決めることができ、0.5は多くのネットワークとタスクでほぼ最適とされます。入力ユニットでは、残す確率を0.5より1に近くするのが普通です。
- ユニットが毎回ランダムに落とされるため、特定のユニット同士がもたれ合う共適応(co-adaptation)が起きにくくなり、過学習が抑えられます。
- ユニットを落としたあとに残るネットワークを間引かれたネットワークと呼びます。ドロップアウトは、ユニットの数に対して指数的に多い間引かれたネットワークを近似的に組み合わせる効果を持つとされます。
- ドロップアウトの論文は、スリヴァスタヴァ、ヒントン、クリジェフスキー、サツケヴァー、サラフトディノフの5人が2014年にJournal of Machine Learning Researchで発表しました。
最終更新日: 2026/09/23