HKENTO's Blog

日々の記録をつけます セキュリティとかその他のこと

代表的なCNNのアーキテクチャについて

CNNについて調べているとLeNetやVGGなど名前のついた構成のネットワークがでてくるのでまとめてみました。各項目の最後に原著論文を載せています。

LeNet

1998年に提案された、現Facebook AI ResearchのYann LeCun先生によるCNNの元祖となるネットワーク。畳込み層とプーリング層を交互に重ねたネットワークで、この時点ですでに現在使われているアーキテクチャとほぼ同じ形になっている。活性化関数がシグモイド関数な点、プーリング層がMaxプーリングではなくサブサンプリングで縮小している点などが特徴。

Gradient-Based Learning Applied to Document Recognition

AlexNet

LeNetが登場してから14年ほど経った2012年に発表された、トロント大のHinton教授を含むチームによるネットワーク。ImageNetを使った画像認識コンペILSVRCで圧倒的な成績を残し、ディープラーニングの火付け役となった。

畳み込み層とプーリング層、そして正規化層と呼ばれる局所的正規化(LRN ― Local Response Normalization)を行う層を重ねた14層のネットワーク。活性化関数はReLUで、Dropoutを用いているのが特徴。他にもData Augmentationなども行っていて、現在使われているCNNでの主要な手法がこの時点ですでに活用されている。

当時はGPU一台にネットワークのすべてのパラメータ(重みなど)を乗せることができなかったので、パラメータを半分にした同一構造のネットワークを2つのGPUに乗せて学習させ、最後に結合していたとか。

ImageNet Classification with Deep Convolutional Neural Networks

VGG

2014年のILSVRCで2位になった、オックスフォード大学のVGGチームのネットワーク。AlexNetをより深くした、畳み込み層とプーリング層から成るどノーマルなCNNで、重みがある層(畳み込み層や全結合層)を16層、もしくは19層重ねたもの。それぞれVGG16やVGG19と呼ばれる。

小さいフィルターを持つ畳み込み層を2〜4つ連続して重ね、それをプーリング層でサイズを半分にするというのを繰り返し行う構造が特徴。大きいフィルターで画像を一気に畳み込むよりも小さいフィルターを何個も畳み込む(=層を深くする)方が特徴をより良く抽出できるらしい。(理由はよくわかってないが、活性化関数を通る回数が増えるため、表現力が増す?)

コンペでは2位に終わったが(1位は後述のGoogLeNet)、とてもシンプルなアーキテクチャなのでよく使われるらしい。

VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION

GoogLeNet

前述したとおり、2014年のコンペで1位になったアーキテクチャ。このアーキテクチャは通常の入力層から出力層まで縦一直線な構造ではなく、インセプション構造と呼ばれる横にも層が広がる構造をしている。このため、Inceptionモデルとも呼ばれる。

横への層の広がりは、異なるサイズのフィルターの畳み込み層を複数横に並べて、それを結合するという形になっている。

Going deeper with convolutions

構造にいくつかのバージョンが存在するらしく、現在の最新はInception-v3らしい。

Rethinking the Inception Architecture for Computer Vision

ResNet

Microsoft(当時)のKaiming He氏による、2015年のILSVRCで優勝したネットワーク。それまでのネットワークでは層を深くしすぎると性能が落ちるという問題があったが、それを「スキップ構造」によって解決し、152層もの深さ(前年優勝のGoogLeNetでも22層)を実現した。

スキップ構造は、ある層への入力をバイパスし層をまたいで奥の層へ入力してしまうというもので、これにより勾配の消失や発散を防止し、超多層のネットワークを実現している。

Deep Residual Learning for Image Recognition


もちろんこれらのモデルの派生系になるアーキテクチャも多数存在していますが、基本形として語られる構造はこのくらいわかっていれば話についていけなくなることはないと思います。多分。

参考文献

ゼロから作るディープラーニング

AlexNet

[ディープラーニング] AlexNet – Tech Memo

AlexNet論文 | 有意に無意味な話

VGG

機械学習論文読み:VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION - Qiita

ResNet

[Survey]Deep Residual Learning for Image Recognition - Qiita