1. LeNetとは [概要]
LeNetとは,CNN(畳み込みニューラルネットワーク)の,最初の提案および実装である [LeCun et al., 1989], [LeCun et al., 1998a] .従来の「画像認識向けの3層MLP」を,LeNetでは「畳み込み層 – サブサンプリング層」を2回繰り返したのち,全結合層を3層つなげて識別するというCNN構造へと,初めて発展させた.これをLeCunらは,(MNIST データセットのような)「郵便の手書き数字画像からの文字クラス認識」向けに,LeNet(CNN)を研究開発し,論文としてもその成果を発表した.これは,LeNetは「局所不変性により,手書き文字にも対処できるようにした」というCNNの実用性を示した,かなり応用向けのプロジェクトの成果であったと言える.
この記事では,LeNetのネットワーク構造と特徴について,主に紹介する.加えて,初代CNNである「LeNet」は,古い研究で,部分構成も古典的(3層MLP世代的)であるので,「LeNetと,近年の(AlexNet以降の)CNNとの違い」についても整理したい.
LeNet の主提案は「畳み込み層 + プーリング層」の繰り返し構造を導入した(3層MLPよりも)深い4層以上から構成されるCNN構造である.これにより,その後のCNNが持つ局所平行移動不変性(local translation invariance)とパラメータ共有(parameter sharing)の利点を手に入れることができた.これにより,手書き数字画像のクラス識別では必須の「多様なクラス内での細かな変化」にも,対応できるようになった.
逆に言うと,当時のLeNetは,小さな入力グレー画像でサイズも (32 × 32)の画像にしか適用できなかった,AlexNet 以降に実現された,「ImageNetなどを用いた,大きな入力画像(224 x224)からの, 大規模クラス数間の物体認識」については取り組まれていなかった.
※ LeNetと呼んだ際,[LeCun et al., 1995], [LeCun et al., 1998a]などで提案された LeNet-5 (2節)のCNN構造のことをさすことが多い.
1.1 歴史的立ち位置:CNNの先駆的研究としてのLeNet
LeNetは,その後の画像認識CNNの基礎となった,先駆的研究である.
LeNetの前進であるネオコグニトロン [Fukushima and Miyake, 1982] の学習方法とは異なり,LeNetは誤差逆伝播(Back Propagation)を用いた勾配降下(Gradient Descent)を用いたCNNの学習を提案した.以降はこのLeNet方式の「誤差逆伝播によるCNNの学習」が一般的となる.
1.1.1 命名方法の慣習:ネットワーク名と層名の名付け方
LeNet の「LeCunのニューラルネットワーク」という名付け方は,現代のディープラーニングで定番化した「著者の名前や問題・目的などからDNNの略称を名付ける慣習」の元祖であるともいえる.例えば,LeNetの次に登場するCNNである AlexNet もこのルールに沿った.その後も,この「xxxNet」という名付け方はよく用いられる.
しかし,CNNバックボーンの場合では,その後は作者名ではなく,ネットワークの新規性(貢献)部分を用いてネットワーク名を名付るのが主流となっていった (ResNet や DenseNet など).また,機能や目的をネットワーク名にすることも多くなった(PoseNet や PointNetなど).
一方,LeNetの論文で使われているディープCNNの各層を「C1」や「P4」など「層の機能名(ConvolutionのCや,PoolingのPなど)+ 層の整理番号」で名付ける方式も,その後に定番化する.ただし,あまりこちらは一貫性があるものではなく,ルールで層の整理番号を名付けることが多いので,あまり統一性はない.また,Deep Learning ライブラリのクラス名・オブジェクト名の呼びかたへ,論文での呼称を寄せる研究も多くなり,「Conv4」や 「Pool5」のように,層の(機能的)名前を,もう少し長めに書いて整理番号化することが通例となった.
1.2 記事の構成
2節以降は,以下の構成でLeNetについて紹介する:
- 2節 LeNet の構造
- 3節 LeNet の特徴
- 4節 最近のCNNと異なる点
- 5節 まとめ
2. LeNet の構造
Yan LeCunらの, LeNetの著者たちは,当時米国ベル研のメンバーであった.USPS (アメリカ合衆国郵便公社)向けの「郵便番号の手書き文字の識別問題」を解く際に,誤差逆伝播法を応用して,まずLeNetの前身のニューラルネットワークが提案された [LeCun et al., 1989] .その後,約10年の研究開発期間を経て,最終的な LeNet-5のCNN構造がまとめられた [LeCun et al., 1998a] .
※ Lecun氏の書籍にも,このベル研時代の研究の推移について書かれている.また,Lecun氏本人からの説明で,CNNやEfficient Backprop [Lecun et al., 1998b]など,ニューラルネット全般の平易な一般向け解説もこの本では読める
手書き画像10クラスを識別するCNNを学習するための,MNIST データセットを用いてCNNを誤差伝播法で学習する.手書き文字識別器目的のLeNetの研究を通して,「簡潔なモデルなのに,スケーラビリティが出てくる」というCNNの実用性の高さを示した.
LeNet-5は,以下の図1のようなネットワーク構造を学習する:
LeNetの基本構造は,以下の順で入力画像から7層に順伝搬の接続を構成した [LeCun et al., 1998],ディープ畳み込みニューラルネットワークである :
- 入力:32 x 32 の画像 (グレースケール.画像全体で,画素値を正規化済み).
- C1:畳み込み層. [5 x 5] カーネル x 6チャンネル
- 活性化関数 tanh
- S2:サブサンプリング層. [2 x 2] 重み付き平均値プーリング,ストライド幅2
- 活性化関数:sigmoid
- C3:畳み込み層. [5 x 5] x 16チャンネル
- 活性化関数:tanh
- S4:サブサンプリング層. [2 x 2] 重み付き平均値プーリング,ストライド幅2
- 活性化関数:sigmoid
- C5:畳み込み層.[5 x 5] x 120チャンネル
- 活性化関数:tanh
- F6:全結合層.120ユニット x 84ユニット.
- 活性化関数:tanh
- 出力:10次元ベクトル (各次元の出力確率).
次の3節で,このLeNetの構造の特徴について整理する.
3. LeNet の特徴
LeNet の特徴は,主に以下の3つである(3.1~3.3節).いずれも,LeNetに限らず,CNN全般について当てはまる特徴である.
3.1「畳み込み層 – 活性化関数 – プーリング層」の繰り返しの元祖
90年代に研究されていたLeNetであるが,既に現在の画像認識むけCNNの基本ブロック構造である [畳み込み – 活性化関数 – プーリング層]の繰り返しにより,LeNetの前半が構成されている.
この提案により,3層パーセプトロン時代の「全結合層でラフに検出したのち,(非線形)活性化関数(tanh, シグモイド関数)でより高い応答部分のみを検出して,他の中途半端な量の応答は抑えて消す」という仕組みが,CNNの畳み込み層の「(空間)畳み込み演算」にも引き継がれることとなった.
これは,古典的な画像特徴抽出(例:Cannyエッジ検出)でよく行われていた処理構成の[畳み込み -> NMS(非極大値抑制)]による検出処理と,処理・目的が似ているまた,CNNではプーリング層(3.3節)によって,ダウンサンプリングすることで,同じフィルタサイズでも,元画像から考えると別の大きさ(スケール)の,空間フィルタを適用していることになる.これにより,「空間フィルタ+活性化関数」が検出するパーツのサイズを,層を経るごとに大きなパーツ(=フィルタサイズ)にしていき,特徴マップの抽象度も高めていくことができる.(この段落のより詳細は,以下のCNNの記事にて)
Deep Learning Book にも書かれていたように,活性化関数のことを,そのNMS(非極大値抑制)的な働きから検出器(detector)と呼んでいた時代もあった.つまりは,学習済みのフィルタで畳み込んだ結果を,活性化関数でより強く検出したものが,活性化関数後の各特徴マップになる.
ちなみに,のちのCNNでは,収束速度向上と正則化目的で,バッチ正規化も繰り返しモジュールの構成要素として用いることが定番となる.ただ,LeNetの時点では,入力画像のみ正規化を使用しており,これにより学習の収束を早めている
※ バッチ正規化も加えた繰り返し単位については,CNNの記事の後半4.5.2節 CNNのブロック構造 (バッチ正規化の登場以降)を参照.
また当時の重み初期化は,Efficient Backprop [Lecun et al., 1998b]にあるように,「ヒューリスティックに決められたガウス分布による初期化」が行われていたが,のちに正規化初期化手法(He初期化)が,重みパラメータ初期化の定番手法となる(詳しくは重み初期化の記事を参照).
3.2 畳み込み層の採用による「重み共有 + 疎接続」による,計算複雑性の回避.
LeNetで採用された「畳み込み層」では,後のCNNでも定番となる重み共有(weight sharing)の仕組みが採用されている.また,各畳み込み層は,各画像位置ではその局所近傍だけをカーネルで畳み込み層間のユニットを接続するので,全結合と比べると疎接続 (sparse connection)である.これら2つ「重み共有+ 疎な接続」により,全結合層と比べてパラメータ数を大幅に節約しつつも,全結合を用いた場合の識別精度を保ったまま,計算複雑性を回避することが可能となった.
また,LeNetの2D畳み込み層を主部品とするCNNは,古典的な画像フィルタリングと同じ,2次元画像畳み込み演算を,ニューラルネットワークで構築したことに相当する.つまり「各畳み込みカーネル + 活性化関数」が個別のパーツ検出器カーネルとして作用するようになった(※ よって,畳み込みニューラルネットワークと名付けられた).こうして,CNNでは,畳み込みカーネルのパラメータしか学習しなくて済むので,線形変換は全結合であった3層MLP時代よりも,パラメータ数も非常に少なくて済むようになった.
3.3 局所ごとの平行移動不変性
LeNetでは,学習可能なサブサンプリング層=プーリング層を導入した.これより,各特徴マップ上の解像度それぞれにおける [2 x 2] の範囲内で,局所平行移動不変性(translation invariance)を獲得できる.
LeNet だと,S2層とS4層で,空間解像度を前の層の半分にダウンサンプリングしている.よって,そのプーリング層の前後においての,フィルタカーネル[5 x 5] のサイズの中での応答が,[2 x 2] の範囲で平行移動でズレても,同一出力になる局所平行移動不変性が得られる.より具体的には,「小さいパーツ(C1層が担当)」,「中くらいのパーツ(C3層が担当)」,「画像全体の物体パーツ(C5層が担当)」が,活性化後の特徴マップの [2 x 2] の範囲で平行移動でずれたとしても,同じ物体クラスとして認識できるようになる.こうして,LeNetは手書き文字画像のような,「クラス内変動が大きい対象」の画像認識に有利な仕組みとなった.
4. AlexNet以降のCNNと異なる点
LeNetは,最初のCNNの提案であるので,近年の「AlexNet以降のCNN」の定番的な処理と異なる点も多い,以下にその代表的な異なる点を整理しておきたい:
- LeNetの畳み込み層は,ゼロパディング無しである.畳み込み層を経るごとに,特徴マップの縦横サイズが少しずつ縮んでいく.しかし,近年のCNNでは,ゼロパディングをおこない,畳み込み前後では特徴マップの空間サイズを,変化させない方が標準的である.
- LeNetのプーリング層は,カーネルサイズ[2 x 2]でストライド2であり,お互い重なりのない範囲同士で行われる.しかし,AlexNetではお互いの範囲に重なりのある,[3 x 3]カーネルでストライド2の「重なりありプーリング」が採用され,以降もよく使われることになる.
- 活性化関数には,これまで定番だったシグモイド関数の代わりに,彼らが使用を提案したtanh関数が主に使用されている.近年のCNN隠れ層の活性化関数はReLU [Nair and Hinton, 2010] 系の関数が定番であるが,LeNetの時点ではそもそもReLUが登場していない.
- 出力層は,まだsoftmax関数層ではなく,RBF(Radial Basis Function)である.
5. まとめ
以上,この記事では,CNNの元祖と言える,LeNetについて,なるべく簡潔に構造・機能を紹介した.また,その歴史的経緯(未来のCNNとの違いも含めて)について紹介した.
LeNet は,手書き文字10クラスの認識を解くために考案されたCNNである.LeNetは「畳み込み層,活性化関数,サブサンプリング(プーリング)層」の繰り返し構造を導入した.これにより,学習したフィルタ群をもちいて「空間フィルタリング+検出(活性化層)」を行うニューラルネットワークを提案した.
LeNetは,重み共有 + 疎結合,空間プーリングにより,省モデル化と(各層の段階での)局所並行移動不変性を実現した.これにより,バイナリ手書き数字画像のような「クラス内の文字形変化が激しい対象」でも,画像クラス識別モデルをうまく学習できるようになった.
関連記事
関連書籍
- 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之,講談社,2022.
- 5.6.2 代表的なCNNデザイン (p96)
- Deep learning for NLP and speech recognition, Kamath, Uday, John Liu, and James Whitaker. Springer, 2019.
References
- [Fukushima and Miyake, 1982] Fukushima, Kunihiko, and Sei Miyake. “Neocognitron: A self-organizing neural network model for a mechanism of visual pattern recognition.” Competition and cooperation in neural nets. Springer, Berlin, Heidelberg, 1982. 267-285.
- [LeCun et al., 1989] LeCun, Y., Boser, B., Denker, J. S., Henderson, D., Howard, R. E., Hubbard, W., & Jackel, L. D. (1989). Backpropagation applied to handwritten zip code recognition. Neural computation, 1(4), 541-551.
- [LeCun et al., 1995] LeCun, Y., Jackel, L. D., Bottou, L., Cortes, C., Denker, J. S., Drucker, H., … & Vapnik, V. (1995). Learning algorithms for classification: A comparison on handwritten digit recognition. Neural networks: the statistical mechanics perspective, 261(276), 2.
- [LeCun et al., 1998a] Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11):2278–2323, 1998.
- [LeCun et al., 1998b] LeCun, Y., Bottou, L., Orr, G. B., and Mu ̈ller, K. “Efficient backprop.”, (1998) In Neural Networks, Tricks of the Trade.
- [Nair and Hinton., 2010] Nair, V., Hinton, G.E.: Rectified linear units improve restricted boltzmann machines. In, ICML 2010.