ドロップアウト(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登場以降のコンピュータビジョン (2019年ごろ以降)では,追加の損失関数に正則化を担当させることも多く,その場合はドロップアウトに頼らないネットワーク設計にする場合も多い.

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

関連書籍

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.

参照外部リンク