趣味のPython・深層学習

中級者のための実装集

残差ネットワークの本質

はじめに

近年、深層学習モデルの性能は目覚ましい進化を遂げてきました。しかしその一方で、ネットワークの層が極端に深くなるにつれ、勾配消失問題などの新たな課題が生じてきました。この問題を解決するため、2015年にMicrosoft ResearchのHe氏らによって残差ネットワーク(ResidualNet、ResNetと略される)が提案されました。

恒等写像の導入

ResNetの最大の特徴は、ネットワークに恒等写像(Identity mapping)を導入した点にあります。従来のネットワークでは、入力データに対して何らかの変換を行うことで特徴抽出を行っていました。しかし、ResNetでは入力データをそのまま出力に加算するショートカット結合(skip connection)が追加されています。

y = F(x, {Wi}) + x

上記の式で、xは入力、F(x, {Wi})は従来のネットワークによる変換、yは出力を表しています。ショートカット結合によって、x(入力データ)がyに加算されることで、恒等写像が実現されています。

残差の学習

ショートカット結合により、ネットワークは入力データxをベースにした上で、残差F(x, {Wi})-xを学習することになります。つまり、扱う情報量が減り、勾配消失問題のリスクが低下するのです。

また、このアーキテクチャにより、深層ネットワークの中に浅層ネットワークが自然と内包される形となります。初期段階では浅層ネットワーク(ショートカット結合)のみが機能し、徐々に残差F(x, {Wi})が最適化されていく、という具合です。

高い汎化性能

ResNetはILSVRC(ImageNet Large Scale Visual Recognition Challenge)などの画像認識タスクで高い性能を発揮し、深層学習の新しい地平を切り開きました。恒等写像の導入により、層が深くなるほど性能が向上する良好な挙動を示しています。

ResNetの登場以降、多くのネットワークがこの設計思想を取り入れ、Computer Visionを中心に幅広い分野で応用が進んでいます。残差ネットワークは、深層学習モデルの新しい構築法を我々に提示した、極めて重要な技術innovation(革新)であると言えるでしょう。