ResNetやDenseNetのShortcutは勾配消失問題以外でも役立ってるかも

ResNetとDenseNetとは

ResNetとは2015年に考案された機械学習モデルの一つです。
最大の特徴はタイトルにもあるShortcut Connectionの存在です。
下図のように、あるinputに対して畳み込みを行ったあとの状態とinputをaddします。これによって元の重みをゴリゴリ後ろまで伝えていけるので、層を深くすることで起こる諸々の問題を解決出来ちゃうというわけです。

引用:http://torch.ch/blog/2016/02/04/resnets.html

DenseNetもおおよそ似たような感じで(こんな書き方すると怒られそうですが)、ちょっと前の層の値を後から利用することで層を深くすることに成功しています。

勾配消失以外のメリットについて

結論から書くと、ただの畳み込み層では対応できないような画像処理の可能性を広げる事にも成功している気がします。
一般的なCNNでは畳み込み層によって様々なフィルタを疑似的に発生させています。例えばエッジ強調フィルタやガウシアンフィルタなどです。こういったフィルタは畳み込み層の存在によって実現できていました。

一方で、フィルタをかけるだけでは実装出来ないような画像処理も存在します。ベタなところではアンシャープマスクです。アンシャープマスクは画像の高周波成分を強調する処理です。この処理では(元画像-何らかの処理でぼかした画像)の差分を元画像に足すことで画像の鮮鋭化を行います。画像がくっきりするというのは画像認識においてメリットが大きいです。
私の中では今までこういった処理は畳み込み層の中で行う事は出来ないため、事前の前処理として行うもんだという認識だったのですが、Shortcut Connectionでは「元の画像に足す」という処理が走るため、こういった前処理もモデル次第では不要になるのかもしれません。

何となく「ああ逆伝播で重みが飛んでいくから便利だなあ」くらいにしか考えていなかったのですが、それ以上のメリットがあるのかもしれませんね。

この記事が気に入ったらサポートをしてみませんか?