LeNet: 最初のCNN構造

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」は,古い研究で,部分構成も古典的(3層MLP世代的)であるので,「LeNetと,近年の(AlexNet以降の)CNNとの違い」についても整理したい.

LeNet の主提案は「畳み込み層+プーリング層」の繰り返し構造を導入した,(3層MLPよりも)深いCNN構造である.これにより,その後のCNNが持つ局所平行移動不変性(local translation invariance)パラメータ共有(parameter sharing)の利点を手に入れることができた.これにより,手書き数字画像のクラス識別では必須の「多様なクラス内での細かな変化」にも,対応できるようになった.

逆に言うと,当時のLeNetは,小さな入力グレー画像(32 × 32画素)にしか適用できず,AlexNet 以降に実現された,大きな画像や大規模クラス数間の識別については取り組まれていなかったと言える.

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バックボーンの場合では,その後は作者名ではなく,ネットワークの新規性(貢献)部分を用いてネットワーク名を名付るのが主流となっていった (ResNetDenseNet, SE-Netなど).また,機能や目的をネットワーク名にすることも多くなった(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の構造
図1 LeNet-5 のCNN構造

LeNetの基本構造は,以下の順で入力画像から7層に順伝搬の接続を構成した [LeCun et al., 1998],ディープ畳み込みニューラルネットワークである :

  • 入力:32 x 32 の画像 (グレースケール.画素値を画像全体で正規化済み).
  • C1:畳み込み層. [5×5 カーネル] x 6チャンネル
  • 活性化関数 tanh
  • S2:サブサンプリング層. [2×2 重み付き平均値プーリング],ストライド幅2
  • 活性化関数:sigmoid
  • C3:畳み込み層. [5×5 カーネル] x 16チャンネル
  • 活性化関数:tanh
  • S4:サブサンプリング層. [2×2 重み付き平均値プーリング],ストライド幅2
  • 活性化関数:sigmoid
  • C5:畳み込み層. [5×5 カーネル] x 120チャンネル (※ 特徴マップ5×5とカーネル5×5から,1x1x120ユニットを出力)
  • 活性化関数:tanh
  • F6:全結合層.120ユニットx 84ユニット.
  • 活性化関数:tanh
  • 出力:10次元ベクトル (各次元の出力確率).

次の3節で,このLeNetの構造の特徴について整理する.

3. LeNet の特徴

LeNet の特徴は,主に以下の3つである(3.1~3.3節).いずれも,CNN全般について当てはまる特徴である.

3.1「畳み込み層 – 活性化関数 – プーリング層」の繰り返しの元祖

90年代に研究されていたLeNetであるが,既に現在の画像認識CNNの基本構造である「畳み込み – 活性化関数 – プーリング層」の繰り返しにより,LeNetの前半が構成されている.

この提案により,3層パーセプトロン時代の「全結合層(線形)でラフに検出したのち,活性化関数(非線形)でより高い応答部分のみを検出して,他の中途半端な量の応答は抑えて消す」という仕組みが,CNNの畳み込み演算でも引き継がれることとなった.これは,古典的な画像特徴抽出(例:Cannyエッジ検出)でよく行われていた処理構成の「畳み込み -> 非極大値抑制(Non maximum suppression )」による検出処理と,処理・目的が似ている.Deep Learning Book にもあるように,活性化関数のことを,そのNMS的な働きから検出器(detector)と呼ぶこともある.つまりは,学習済みのフィルタで畳み込んだ結果を,活性化関数でより強く検出したものが,活性化関数後の各特徴マップになる.

また,CNNではプーリング層(3.3節)によって,ダウンサンプリングすることで,同じフィルタサイズでも,元画像から考えると別の大きさ(スケール)の空間フィルタを適用していることになる.これにより,空間フィルタ+活性化関数が検出するパーツのサイズを,層を経るごとに大きなパーツ(=フィルタサイズ)にしていき,特徴マップの抽象度も高めていくことができる.

ちなみに,のちのCNNでは,収束速度向上と正則化目的で,「バッチ正規化」も繰り返しモジュールの構成要素として用いることが定番となる.LeNetの時点では,入力画像のみ正規化を使用しており,学習の収束を早めている.(バッチ正規化も加えた繰り返し単位については,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では,学習可能なサブサンプリング層(Subsampling Layer)を導入した.これより,各特徴マップ上の解像度それぞれにおける2 x 2の範囲内で,局所における平行移動不変性(translation invariance)を獲得できる.

まだ抽象的な説明であるので,具体的に説明してみたい.LeNet だと,S2層とS4層で,空間解像度を前の層の半分にダウンサンプリングしている.よって,そのサブサンプリング層の前後で,局所平行移動不変性を手に入れることができる.よって,フィルタカーネル5 x 5のサイズの中での応答が,2 x 2 の範囲で平行移動でズレても,同一出力になるという利点が得られる.

より具体的には,「小さいパーツ(C1層が担当)」「中くらいのパーツ(C3層が担当)」,「画像全体の物体パーツ(C5層が担当)」が,活性化後の特徴マップの 2 x 2 の範囲で平行移動でずれたとしても,同じ物体クラスとして認識できる.これにより,LeNetは手書き文字のような,クラス内変動が大きい対象の認識に有利となった.

4. LeNet が,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は,重み共有+疎結合,空間プーリングにより,省モデル化と局所不変性を実現した.これにより平行移動不変なモデルをニューラルネットワークで学習できる.これにより,バイナリ手書き数字画像のような「クラス内の文字形変化が激しい対象」でも,画像クラス識別モデルをうまく学習できるようになった.

関連記事

関連書籍

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.

外部参照リンク