ドロップアウト(Dropout)

1. ドロップアウト(Dropout) とは [概要]

ドロップアウト(Dropout)とは,学習中のエポックごとに,異なるニューロンをランダムに除去したネットワーク構造で学習を繰り返すことにより,簡単な処理であるがディープニューラルネットの強力な正則化を行うことができるテクニックである [Srivastava et al., 2014].

エポックごとに,同じ割合だけランダムにニューロンの間引きをしながら学習することで,元の間引き無しネットワーク構造をフィットするのではなく,「間引きによって創られた部分ネットワーク群の推論値の平均近似」を,代わりにデータセットへフィットできるようになる.これが正則化の効果をもたらすので,DNNで起こりがちな「共適合(co-adaption)」を防ぐことにもつながり,パラメタータが多すぎるDNNの,データセットへの過剰適合を防ぐことができる.

ドロップアウトは「毎エポックで,ランダムに特定の場所のニューロンを無効化する」だけの処理なので,実装も簡単で計算負荷も低いテクニックである.それでいて,やっかいな過学習を防ぐことができることから,ディープラーニングにおいてドロップアウト()は,広く活用されている.全結合層畳み込み層直後の,各ReLU型活性関数の次にドロップアウト層を配置することが,標準的なネットワーク設計である.

2. ドロップアウト(Dropout)の処理の詳細と使われどころ

2節では,ドロップアウトの詳細な処理手順とその効果(2.1節)を,(1)学習時(2.1.1節) (2)テスト時(2.1.2節)に分けて紹介したのち,(2.2節)ではどのようなネットワークでドロップアウトが使われているかについて簡単にだけまとめたい

2.1 ドロップアウト(dropout)の処理手順と効果

2.1.1 学習時の処理と効果

図1は,4層のディープニューラルネットワークに対する,ドロップアウト層の挙動を示した図である. ドロップアウトを行わない普通の状態(図1-a)に対して,学習中に各サンプルごとに,全体のうち割合$p$のニューロンだけをランダムに無効化し,残ったユニットのみで構成されるサブネットワーク(図1-b)で順伝搬と逆伝搬による重みの更新をおこなう.ドロップ率$p$は,割合通常0.1~0.5程度に設定する.

ドロップアウト(Dropout))
図1 ドロップアウト(Dropout)

ディープニューラルネットは,学習用データセット量と比べるとあまりにパラメータ数が莫大すぎるのが普通であるので,正則化による対策なしで(図1-a)のネットワーク構造のまま学習を行うと,データセットに過学習しやすい.そこで,ドロップアウトでは,毎サンプルごとに残すユニットをランダムに替えた「部分ネットワーク(図1-b, c)」の重みのみを,そのエポックで更新する.そして,毎回のエポックでは,異なるユニットをドロップして,他のエポックとは異なる部分ネットワークを形成し,順伝搬・損失の計算と,重みの逆伝搬を行う.

この繰り返しにより,モデル構造をサンプルごとに変化させることができ,学習全体では,データセットに対して「毎回の部分ネットワーク(図1-b, c)の,全推論結果の平均近似を,データにフィットさせる」ことになる(※ これが「アンサンブル学習のようだ」と言われる).よって,元の間引きなしネットワーク(図1-a)を素直にフィットさせる場合と比べると,ランダムにゆらした平均近似を当てはめることになるので,データセットへの過学習を防ぐことができる.また,ドロップアウトを行うと,各ニューロンはよりロバストになる上,(間引いてスパースな順伝搬・逆伝搬になるので)学習も速くなる効果も生まれる.

2.1.2 テスト時

テスト時には,学習時の間引きされた層で計算していた状態との整合性を保つため,学習時にドロップした各ユニットから次ぎに接続する重み$w_i$を,$p$倍した$pw_i$に差し替える(元論文[Srivastava et al., 2014] Figure 2の話題).こうすることで,学習時に各サンプルごとにn回,更新したサブネットワーク重み群に対して,それらの合計重みを平均して近似することにもなっている.

2.2 ドロップアウトが使用されるネットワーク

コンピュータビジョンでは,AlexNetにおいて物体認識向けに使用されて初めて実績が出た.それを受けて,その次の世代のCNNバックボーンであるVGGNetでも使用され,以降の画像認識CNNでは,頻繁にドロップアウトが用いられるようになった.

また,近年使用頻度の高いTransformerも,残差接続を用いたとても深い巨大モデルであることから,ドロップアウトを用いた正則化を,学習時に行う.一方,Transformer登場以降のコンピュータビジョンでは,追加の損失関数に正則化を担当させることも多く,その場合はドロップアウトに頼らない設計のディープニューラルネットワーク設計にする場合も多い.

いずれにせよ,ドロップアウトは正則化テクニックである.よって,学習データ量とモデル規模の規模のバランス次第で,どの程度の強さで正則化するかをユーザーが見積もって決める.

関連書籍

References

  • [Srivastava et al., 2014] N. Srivastava, G. Hinton, A. Krizhevsky, I. Sutskever, and R. Salakhut- dinov, “Dropout: A simple way to prevent neural networks from over- fitting,” The Journal of Machine Learning Research, vol. 15, pp. 1929– 1958, 2014.

参照外部リンク