Wide Residual Networks

ResNetを改良したWide Residual Networksを紹介した論文を英訳し、まとめてみた。
- 元論文
Wide Residual Networks

イントロ

CNNは年々層数が増えていき、多くの分野で利用されている。しかし、ネットワークが深いと勾配発散、消失など様々な問題が発生してしまう。

そのような状況の中、提案されたResNetはresidualモジュールを用いた手法で上記のような問題を解決した。 さらにResNetブロックの中身の改良や、層を深くする研究が行われてきた。

ResNetブロックでは、ショートカットとして恒等写像を利用している。恒等写像を利用することで、パラメータを少なくすることができるなど、様々なメリットがある。その反面、いくつかのブロックしか有用にならなかったり、多くのブロックがあっても各ブロックが少しの情報量しか持たないというデメリットもある。

本論文では、層を深くするのではなく、各層の幅を広げるという違う観点でネットワークを改良し、その有用性を調べた。

Wide Residual Networkの要素

ResNetとは、下のようなresidualモジュールを用いたネットワークであり、これをもとにしている。式で表すと、 x_{l+1}=x_l+F(x_l) となる。 なお、下図ではF(x)が2つの畳み込み層を表している。

f:id:Becon147:20191217204523p:plain
Residualモジュール
基本構造では、3×3の畳み込み層を直列につなげている部分を改良して、trainの速さ、精度などを調査していく。 小さいフィルターが効率的であることがわかっているので、今回は3×3より大きいフィルターは使用しない。 本論文では以下の部分を変化させている。

  • residualブロックの形

    residualモジュール内の畳み込み層の数やカーネルのサイズをB(a,b,c)のように表す。 例えば、基本構造ではB(3,3)となっている。

  • residualブロックの畳み込み層の数

     lを各ブロック内の畳み込み層の数を表している。 例えば、基本構造ではl=2となっている。

  • residualブロックの幅

    今回のネットワークの肝である、ブロックの幅をkで表す。例えば、基本構造ではk=1となっている。 なおk=1のネットワークをthin、k>1のネットワークをwideと呼ぶこととする。

これらを調節してできたネットワークを WRN-n-k-B(M)と表す。 なお、nは畳み込み層の総数を表している。

DropOutの有用性

Dropoutとは、ニューラルネットワークの学習時に一定確率でノードを不活性化することで、過学習、共適応を避けるための手法である。
現在では、Batch Normalizationに置き換えれており、Dropoutを利用するよりも精度が良いという研究結果が出ている。

本研究では、層の幅を広げることでパラメータ数が多くなってしまうため、dropoutを採用する。先行研究で、恒等写像の部分に用いると悪影響であることが示されているので、畳み込み層の部分に導入した。

実験結果

実験では、データセットとしてCIFAR-10を利用している。

  • ブロック内の畳み込みの形式比較

    ネットワークはWRN-40-2を利用する。ただし、パラメータ数を同じぐらいにするために、B(3,3)ではWRN-28-2,B(3,1,3)では、WRN-22-2を用いた。

    f:id:Becon147:20191214120409p:plain
    ブロック内の畳み込み形式による比較
    上図を見ると、(3,3),(3,1),(3,1,3)が有効であることが,パラメータ数が同数であればそれほど差異はない。

  • ブロック内の畳み込み層数の比較

    ネットワークはWRN-40-2を利用し、畳み込み層は全て3×3を用いる。パラメータ数は同程度になるように調整する。

    f:id:Becon147:20191214122228p:plain
    ブロック内の畳み込み数による比較
    上図より、B(3,3)が最適であることがわかる。 B(3,3,3),B(3,3,3,3)が劣化するのは、residual connectionが減ってしまうからだと考えられる。

  • ブロックの幅による比較

    f:id:Becon147:20191214123444p:plain
    ブロックの幅による比較
    層の深さを固定して、幅を広げると精度が上がる。
    一方で幅を固定して層を深くすると、depth=28までは精度が上がっていたが、depth=40になると精度が下がってしまった。

f:id:Becon147:20191214124730p:plain
他のCNNとの比較

他のCNNと比較すると、WRNsが有効であった。よってオリジナルのResNetの層の深さと幅の比は適切ではないことがわかる。

  • Dropoutの使用有無

    f:id:Becon147:20191214131802p:plain
    Dropoutの使用有無の比較
    パラメータ数が多い層では効果を発揮しており、正則化の手法として有効であることが示された。これはthin(k=1),wide(k>1)いづれでも有効であった。

f:id:Becon147:20191214132232p:plain
dropoutの有無とtraining lossとtest errorの推移

また、上図のようにResidualネットワークでは、急激にエラー率が上昇することがある。しかし、dropoutを用いるとそのような現象が解消していることがわかる。

  • 計算効率

    f:id:Becon147:20191217202523p:plain
    wideとthinのネットワークのtrain時間の比較
    上図が示すように、thin(l=1)のネットワークよりもwide(l>1)のネットワークの方が、明らかに速いことがわかる。

結論

Wide Residual Networksは、同等のパラメータ数を持つResNetよりも効率的であり、精度も高かった。 このことからresidual networkの重要な部分は、極端に深いネットワークではなく、residualブロックであるということがわかった。