Sleep like a pillow

Deep Learning関係の話。

論文読み Adam Induces Implicit Weight Sparsity in Rectifier Neural Networks

 活性化関数にReLU、optimizerにAdamを使い、lossにL2正則化項を加えてDNNを学習させた場合に重みのスパース化(多くの重みがほぼ0になる)が起こりやすいという現象についての論文です。これを利用して、重みが0になったノードを削除してモデルのサイズを小さくするmodel reductionを提案しています。 著者は東芝理研の方で日経新聞の記事でも紹介されています。

Adam Induces Implicit Weight Sparsity in Rectifier Neural Networks

Abstract

 DNNでSOTAな性能を出すには大きなモデルを使う必要があるが、エッジデバイスのような環境では容量が足りないためmodel reductionの必要がある。 本論文では、ReLU、L2正則化、Adamを用いてDNNを学習させた場合に重みのスパース化が起こりやすいという現象を発見した。この現象を理論と実験両方から解析するとともに、 重みが0になったノードを削除するというシンプルなmodel reduction手法を提案する。

Proposed Method

 第 l層の重みを表す行列を {\bf W}^{(l)} \in \mathbb{R}^{W(l-1)H(l-1)C(l-1) \times C(l)}とする。 W(l-1), H(l-1)はそれぞれ第 l-1層のカーネルの幅と高さ、 C(l-1), C(l)はそれぞれ第 l-1層と第 l層のチャネル数。

  {\bf W}^{(l)}の列ベクトル {\bf w}_k^{(l)}について、2ノルム |w_k^{(l)}|しきい値 \xi未満である場合に削除する。

Theoretical Analysis

 ReLUを用いた場合、全体の50~90%のノードの出力が0になるという研究結果がある。 ほとんどの学習サンプルについてノードの出力が0以下である(not activated)とき、勾配は g_k^{(l)} \approx \lambda {\bf w}_k^{(l)}、重みの更新式は   {\bf w}_k^{(l)} \leftarrow (1 - \alpha \lambda)  {\bf w}_k^{(l)}と近似できる( \alphaは学習率)。これは0< \alpha \lambda<1の場合、  {\bf w}_k^{(l)}は0に減衰していくことを示している。このようにnot activatedな条件下では重みの勾配計算において正則化項は支配的になり、重みの0への収束を促していると言える。

 not activatedな条件下でAdamによる学習を行ったところ、重みはある程度まで減衰したのちに0付近で振動を始めることがわかった。このような振る舞いはmomentum SGDでは見られなかった。

f:id:uiiurz1:20181227225140p:plain
Adamの0付近での振動

Convergence Analysis

理論的な証明。 [要約] no activatedな条件下での重みの0への収束速度は、Adamを使った場合がSGDやmomentum SGDと比較してめちゃくちゃ速い。

Experiments

Demonstration of Sparsity

 MNISTとCIFAR-10を用いた実験の結果。

f:id:uiiurz1:20181228204956p:plain
MNIST
f:id:uiiurz1:20181228210637p:plain
CIFAR-10

 optimizerについてはAdamとRMSpropが高いスパース性を示している。RMSpropはAdamのハイパーパラメータ \beta_1を0にしたものと見做せるので、似たような収束の仕方をしたと言える。活性化関数についてはReLUとELUのスパース性が高い。ReLU系の活性化関数を用いた場合、勾配は原点付近を除いて負の領域ではほとんど消失するため。その他のハイパーパラメータについては、L2正則化なしの場合は全くスパース化しないため必要。

Comparisons on Model Reduction

 従来手法との比較。MNISTについては従来手法とほぼおなじスパース性で、精度は提案手法の方がわずかに高くなった。CIFAR-10についての結果は以下のようになった。

f:id:uiiurz1:20181228225851p:plain
従来手法との比較

 スパース性と精度はトレードオフであり、ハイパーパラメータを変えることで調整できる(提案手法の場合はL2正則化項の係数)。上図はハイパーパラメータを変えた際のスパース性と精度を表示したものである。提案手法は全体的に従来手法よりも高い精度を示している。また、従来手法はときどき精度が急激に下がるパラメータがあるが提案手法は安定しているため、モデルのサイズ調整をやりやすいと言える。

コメント

 スパース化といえばL1正則化というイメージだったので、L2正則化の代わりにL1正則化を使った場合にどういう結果になるのか気になる。AdamはSGDと並んでよく使われるoptimizerであり、ReLUについては最もよく使われる活性化関数(ReLUじゃない場合でも大体がReLU系のもの)。それにL2正則化を加えるというのはそこそこよく使われるハイパーパラメータだと思うのだが、今までしっかりと考察されてなかったのが意外だった。この論文の理論的な解析はとても分かりやすく書かれていて読みやすく勉強になった。

正則化について分かりやすいサイト