ImageNet classification challengeのTest Setの結果がMicrosoftのResNetを超えたgoogleの論文
Microsoftはtop-5 errorが3.57%だったが、こちらは3.08%
論文のポイント
・Residual connectionを使った
・Residual connectionに改良を入れた(bottleneckを1x7と7x1にした)
・不安定対策でscalingを入れた
Residual Connection
MicrosoftのResNetはこんな感じ
Architecture
3つのArchitectureで評価を行っている。
Architecture毎の違いは下記の通り
Inception-ResNet-v1: InceptionとResNetのhybridで計算コストが少ない方
Inception-ResNet-v2: InceptionとResNetのhybridで計算コストが多い方
Inception-v4: ResNetなしでInceptionを改良したもの
Inception-v4
Inception-ResNet-v1 and Inception-ResNet-v2
各ブロックの図は論文にあるが数が多いので割愛。
ちなみにresidual connectionを使ったブロックは下記のような感じになっている。
scaling
filter数が1000を超えると、学習が不安定になる(値が0になる)。
Microsoftの論文のようにwarm-upをしても改善しない。
この論文では、下の図のように残差を0.1から0.3の間で値をscale downしたら安定したらしい。
このScale downは不必要なものだけど、trainingの安定には役立ったと書いてあった。
Training Methodology
momentum 0.9
RMSProp decay 0.9 epsion 1.0
learning rate 0.045で2 epochごとに0.94倍
Experimental Results
・validationの時に、性能が悪くなる1700 blacklistデータを除いたもので行った。
・これらはbenchmarkを測定するときだけ使えばいい。
・最初の論文では含まれているので、差がtop-1で0.3%、top-5で0.15%でるけど、差が一定だからcurveの比較には問題ないと思う。
論文にはたくさん結果が掲載されているが、代表的なものだけ
Inception-v4とInception-ResNet-v2の比較
最終的な性能は同じぐらいだが、ちょっとだけresidual versionの方が性能がいい。あと、学習の収束が速い。
ensembleの結果
Top-5 Errorで3.08%で、1位だったMicrosoftを上回っている
最後に
ものすごい力技のような気がするのは気のせいか。