全5007文字
PR
この記事は日経Robotics 有料購読者向けの記事ですが
日経Robotics デジタル版(電子版)』のサービス開始を記念して、特別に誰でも閲覧できるようにしています。
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です
本記事はロボットとAI技術の専門誌『日経Robotics』のデジタル版です

 ニューラルネットワークの学習で重要な役割を担っているのが正規化層(Normalization Layer)である。正規化層はニューラルネットワークの表現力の維持、学習の安定化、汎化性能の向上に貢献し、現在の深層学習の成功の主因の1つとみなせる。

著者の岡野原大輔氏
著者の岡野原大輔氏
[画像のクリックで拡大表示]

 正規化層は入力分布を元に入力を正規化した結果を返すような層である。

 多くの正規化層は入力分布の統計値を推定し、それを元に出力分布が次元毎に平均0、分散1となるよう、またはそれを次元毎に線形変換した結果を返す。正規化層は総結合層や畳み込み層の直後(活性化関数の直前)、スキップ接続のブロック内の最初、最後などで使われる。今回はなぜ正規化が重要なのかを説明した後に、現在使われている正規化層、新しい正規化層について紹介していく。

なぜ正規化層が重要か

 正規化層は様々な役割を持っている。ここでは代表的な役割を3つ紹介する。

 1つ目はニューラルネットワークの非線形性の表現力を保つ役割である。現在のニューラルネットワークは活性化関数としてReLU $f(x) = \max(x, 0)$のような区分線形関数を使う。ReLUの微分は入力が正の時$1$、負の時$0$となる。ニューラルネットワークでは、誤差逆伝播時に誤差には活性化関数の微分が繰り返し掛けられる。ReLUを使うことで勾配が発散したり、消失したりしにくくなるという非常に大きな利点がある。

 一方でReLUは$x=0$をまたぐ位置でしか非線形性を生み出さない。そのため、もし活性化関数への入力が常に正であったり負であるように偏っている場合は、活性化関数は線形関数になってしまう(図1)。入力分布が$x=0$をまたいで正にも負にも分布することで、非線形を生み出すことができる。

図1 2次元の入力に対し3層のReLUのネットワークを使った場合
図1 2次元の入力に対し3層のReLUのネットワークを使った場合
このとき、ReLUの境界面(線)が入力空間をどのように分割するかを示す。境界内は関数は線形になっている。もし入力が特定の境界内に偏っている場合は関数全体が線形になる。(図:M. Raghu et al., “On the Expressive Power of Deep Neural Networks” fig.1, https://arxiv.org/abs/1606.05336より引用)
[画像のクリックで拡大表示]

 2つ目は勾配降下法による学習を高速にする役割である。例えば、ニューラルネットワークより単純な線形回帰モデル$y = \mathbf{w}^T \mathbf{x}$を使って誤差$l = \frac{1}{2}||y - y^*||^2$($y^*$は正解)を最小化するような問題を考えてみよう。このとき、$y$についての勾配を$e_y = \frac{\partial l}{\partial y} = (y - y^*)$とした時、重みについての勾配は$\frac{\partial l}{\partial \mathbf{w}} = e_y \mathbf{x} $と表される。もし入力の値がすべて正であるならば、重みについての勾配の符号はすべて同じであり勾配降下法による最適化は、すべての次元の符号が同じ方向にしか進めない1)。例えば、パラメータが$m$次元だとすれば$2^m$ある象限のうち$2$つの象限の方向にしか進めないことになる。

 この議論はそのままニューラルネットワークにもあてはまり、各層の入力が偏っている場合、勾配降下法による収束が遅くなってしまう。また、入力の各次元のスケールが大きく異なる場合も、大きなスケールを持つ次元が更新幅も大きくなり、スケールが小さな次元は無視され使われなくなってしまう。結果としてスケールが小さな次元は無視されてしまう。入力を正規化しておくことで勾配降下法による収束を速めることができる。

 3つ目は汎化性能を上げる役割である。元々、正規化層はニューラルネットワーク内の各層の分布が変わっていく共変量シフトを防ぐことで学習を安定化させるという目的で導入された2)。しかし現在ではこの共変量シフトを抑えることによる安定化の効果は限定的であり3)、目的関数をなだらかにすることで安定化させていることが分かっている。

 正規化層を使うことで活性値や勾配が安定化し、勾配降下法の学習率を大きくしても発散せずに学習できるようになる。大きな学習率を使うことで汎化性能が低いシャープな解にはまることがなく、汎化性能が高いようなフラットな解に到達しやすくなる3-5)。フラットな解は汎化性能が高いことが分かっている。

代表的な正規化層

 正規化層を紹介する前に、ニューラルネットワークの各層の入力である特徴マップの形状を表すテンソルについて簡単に説明しよう。画像データを扱う場合は一般に$(N, C, H, W)$という形を持ったテンソル$\mathbf{x}$を特徴マップとして扱う。$N$はデータ数、$C$はチャンネル数、$H$は特徴マップの高さ、$W$は特徴マップの幅である。このデータは$N*C*H*W$個の要素からなり、$\mathbf{x}[n, c, h, w]$で$n$番目のデータの位置$(h, w)$にある$c$番目のチャンネルの値を表す。

 データを正規化するためには入力分布を最初に求める必要がある。理想は訓練データ全体から分布を推定し、その統計値に基づいて正規化することだが、学習が進み下層のパラメータが変わるにつれて特徴マップの分布も変わってしまい、そのたび訓練データ全体を走査することは計算量的に現実的ではない。

 そこで、全ての正規化層は毎回現在のバッチのみから分布を推定する。正規化層はテンソルのどの集団から統計量を推定するかで様々な変種がある。

バッチ正規化

 最初に導入されたバッチ正規化(Batch Normalization: BN)5)は最も広く使われている正規化層である。$(N, H, W)$の軸に沿って、各チャンネル毎$c$に平均$m_c$と分散$v_c$を求める。例えば平均は、$m_c = \sum_{n, h, w} \mathbf{x}[i, c, h, w] / (NHW)$と求められる。ここでの下付き字$c$はこれがチャンネル毎に異なることを表している。これらの統計値を使ってチャンネル$c$の要素$\mathbf{x}$を次のように正規化する。

\[ z = \frac{x - m_c}{\sqrt{v_c}} \]

さらに、学習可能なパラメータである$\gamma$と$\beta$で変換する。これにより正規化層の出力は元の入力も必要とあれば使えるだけでなく、そのスケールやバイアスも自動的に制御できるようになる。全体の式は次の通りになる。

\[ \text{BN}(h, m_c, v_c; \gamma_c, \beta_c) = \gamma_c \frac{x -m_c}{\sqrt{v_c}} + \beta_c \]

なお、統計量$m_c$や$v_c$についても誤差逆伝搬することに注意してほしい。

層正規化

 層正規化(Layer Normalization:LN)6)は$(C, H,W)$の軸に沿って$N$個の統計量を求めて、サンプル毎に正規化をする。層正規化はサンプル毎の統計量が大きく変わるような場合に有効であり、RNNやTransformerなどで利用されている。現在Transformerが注目されていることもあり、層正規化も広く使われる様になってきている。

事例正規化

 事例正規化(Instance Normalization:IN)7)は$(H,W)$の軸に沿って$NC$個の統計量を求め、事例-チャンネル毎に正規化する。しかし統計値を推定するサンプル数が少ないため($H*W$個)、安定化しにくい問題があった。この問題を解決するため、グループ正規化(Group Normalization:GN)8)ではチャンネルをいくつかのグループ$G$に分割し、$(G, H,W)$の軸に沿って統計量を計算し、$N*(C/G)$個の統計量を求め、事例-グループ毎に正規化する。事例正規化に比べて使える統計量が増え、学習が安定化するという利点がある。

次元間の相関をなくしさらに学習を加速させる白色化

 ここまでに紹介した正規化はいずれも次元毎に統計量を求め正規化を行っており、次元間の相関はみていなかった。一方で次元間の相関を取り除くように変換することで、さらに勾配降下法による収束が速くなることがしられている。このような操作を白色化と呼ぶ。目的関数の等高線が楕円で斜めになっている場合、それを同心円状にするような操作である。入力の前処理(ZCA:zero-phase component analysisなど)として行われていた。この白色化を行う層も提案されている。

 白色化を行うためには入力の共分散行列の固有値分解を行う必要がある。この操作は入力次元数の2乗のオーダーのコストが必要であり、計算量が大きく、毎回行うのは現実的ではないが、例えばすべての次元間ではなく次元をグループに分け、それぞれのグループ内のみで白色化することで計算量を抑えつつ、白色化の効果を得ることができる9)。また、畳み込み法を使う場合は入力はパッチ内サンプルとなる。このパッチ内サンプルに対し白色化することで、学習が速く収束するように変えることができる10)

今後の正規化層

 正規化層は学習の安定化、汎化に大きな役割を持ち、優れた正規化層を設計することができれば分野全体に大きなインパクトがある。今後も新しい正規化層が登場してくると考えられる。

1)Y. LeCun et al.,“Efficient backprop,” Neural networks:Tricks of the trade, 1998. http://yann.lecun.com/exdb/publis/pdf/lecun-98b.pdf
2)S. Ioffe et al., “Batch Normalization: Accelerating Deep Network Training by Reducing INternal Covariate Shift,” ICML 2015. https://arxiv.org/abs/1502.03167
3)S. Santurkar et al., “How Does Batch Normalization Help Optimization,” NeurIPS 2018. https://papers.nips.cc/paper/7515-how-does-batch-normalization-help-optimization.pdf
4)J. Bjorck et al.,“Understanding Batch Normalization,” NeurIPS 2018. https://arxiv.org/abs/1806.02375
5)P. Luo et al.,“Towards Understanding Regularization in Batch Normalization,” ICLR 2019. https://arxiv.org/abs/1809.00846
6)L. Ba et al., “Layer Normalization,” arXiv:1607.06450, 2016. https://arxiv.org/abs/1607.06450
7)D. Ulyanov et al., “Instance Normalization: The missing ingredient for fast stylization,” 2016. https://arxiv.org/abs/1607.08022
8)Y. Wu et al., “Group Normalization,” ECCV 2018. https://arxiv.org/abs/1803.08494
9)L. Huang et al., “Decorrelated Batch Normalization,” CVPR 2018. https://arxiv.org/abs/1804.08450
10)C. Ye et al., “Network Deconvolution,” ICLR 2020. https://arxiv.org/abs/1905.11926
岡野原 大輔(おかのはら・だいすけ)
Preferred Networks 代表取締役副社長
岡野原 大輔(おかのはら・だいすけ) 2006年にPreferred Infrastructureを共同創業。2010年、東京大学大学院博士課程修了。博士(情報理工学)。未踏ソフト創造事業スーパークリエータ認定。東京大学総長賞。