1 背景与历史
1.1 手書き文字認識の課題
1990年代以前、手書き文字の自動認識はパターン認識分野における重要な課題であった。特に郵便番号や小切手番号など、実用的な文書処理システムでは、変形やノイズを含む文字を高い精度で認識する必要があった。従来の手法では手動で設計された特徴量(エッジ、ループ、ストロークなど)に依存しており、認識率は限定的であった。
1.2 Yann LeCunとAT&Tベル研究所
1980年代後半から1990年代初頭にかけて、AT&Tベル研究所に所属していたYann LeCunは、生物学的視覚皮質の構造に着想を得たニューラルネットワークの研究に着手した。彼は、局所受容野と重み共有の概念を導入することで、画像全体を効率的に処理できるアーキテクチャを模索した。この研究は、後の畳み込みニューラルネットワーク(CNN)の原型となる。
1.3 LeNetの登場と影響
LeNetは、1998年にYann LeCunらによって発表された一連のCNNアーキテクチャである。特に、LeNet-5という名称で知られる5層構造が代表格として広まった。このネットワークは、手書き数字認識ベンチマークであるMNISTデータセットにおいて、当時としては驚異的な認識性能を示した。LeNetの成功は、深層学習の可能性を実証し、その後のAlexNet、VGGNet、ResNetなどの発展に直接的な影響を与えた。
2 アーキテクチャ
2.1 全体構成の概要
LeNet-5は、入力層(32×32ピクセルのグレースケール画像)から出力層(10クラス分類)まで、畳み込み層、サブサンプリング(プーリング)層、全結合層を交互に配置したシンプルな構造を持つ。全体の層数は7層(入力層含む)であるが、通常はC1、S2、C3、S4、C5、F6、出力層の7層として説明される。
2.2 畳み込み層
2.2.1 C1層(畳み込み)
C1層は6枚の5×5フィルタを使用し、32×32の入力画像から28×28×6の特徴マップを生成する。この層は、エッジやコーナーなどの低レベルな視覚特徴を抽出する役割を担う。
2.2.2 C3層(畳み込み)
C3層は16枚の5×5フィルタを使用し、S2層の出力(14×14×6)から10×10×16の特徴マップを生成する。この層では、S2層の特徴マップの一部のみを入力として接続する「非完全接続」方式を採用しており、異なる組み合わせの特徴が学習される。
2.3 プーリング層(サブサンプリング)
2.3.1 S2層
S2層は2×2の平均プーリングを適用し、28×28×6の入力を14×14×6に縮小する。各プーリング領域では平均値を取り、さらに重みとバイアスによるスケーリングが行われた後に活性化関数が適用される。この操作により、空間的な位置ずれに対するロバスト性が向上する。
2.3.2 S4層
S4層もS2層と同様の仕組みで、10×10×16の入力を5×5×16に縮小する。これにより、より高次の特徴表現が得られる。
2.4 全結合層
2.4.1 C5層(全結合)
C5層は120ユニットからなる全結合層で、S4層の5×5×16=400の出力を全て接続する。ここで、特徴マップは1次元ベクトルに変換され、高次元の特徴空間でクラス判別の準備が行われる。
2.4.2 F6層と出力層
F6層は84ユニットの全結合層で、C5層の出力を受け取り、さらに出力層(10ユニット、ソフトマックスまたはRBF関数)に渡される。出力層の各ユニットは0から9の数字に対応し、最も活性化の高いユニットが認識結果となる。
2.5 活性化関数(tanh/sigmoid)
LeNet-5では、活性化関数として主にハイパボリックタンジェント(tanh)が使用された。tanh関数は、出力を-1から1の範囲に収めるため、ネットワークの学習が安定しやすい。一部の層ではシグモイド関数も使用されたが、現代のReLUと比較して勾配消失問題が発生しやすい点が欠点とされる。
3 学習と最適化
3.1 データセット(MNIST)
LeNetの学習と評価には、MNISTデータセットが使用された。MNISTは、60,000枚の訓練画像と10,000枚のテスト画像からなる手書き数字データセットで、各画像は28×28ピクセルに正規化されている。このデータセットは、機械学習の分野で最も有名なベンチマークの一つである。
3.2 誤差逆伝播法
LeNetの学習には、誤差逆伝播法(バックプロパゲーション)が用いられた。損失関数として平均二乗誤差(MSE)が採用され、確率的勾配降下法(SGD)により重みが更新された。当時はGPUが一般的ではなく、CPUによる逐次計算が主流であったため、学習には時間を要した。
3.3 ハイパーパラメータと学習率
ハイパーパラメータとしては、学習率(約0.001~0.01)、バッチサイズ(数十~数百)、エポック数(数十回)などが適宜調整された。特に学習率は手動で調整され、過学習を防ぐために早期打ち切り(アーリーストッピング)が利用されることもあった。
4 応用と発展
4.1 郵便番号認識システム
LeNetの初期の実用的応用として、米国郵政公社向けの郵便番号自動読み取りシステムが挙げられる。封筒に書かれた手書き数字をリアルタイムで認識し、仕分け作業の効率化に貢献した。
4.2 銀行小切手の読み取り
また、銀行業界においても、小切手に記入された金額や口座番号の自動読み取りにLeNetが採用された。特に、米国内の大手銀行で導入され、手作業による入力ミスの削減に役立った。
4.3 派生アーキテクチャ(LeNet-4, LeNet-5など)
LeNetシリーズには、LeNet-1、LeNet-4、LeNet-5など複数のバリエーションが存在する。LeNet-4はやや規模が小さく、LeNet-5が最も広く普及した。さらに、後続の研究では、Batch NormalizationやDropoutの追加、活性化関数のReLUへの変更など、現代的な改良が加えられた派生モデルも登場している。
5 遺産と文化的影響
5.1 深層学習ブームの先駆け
LeNetは、2012年のAlexNet登場以前の「ディープラーニング冬の時代」において、CNNの有効性を示した数少ない成功例である。その原理は、現在の画像認識、物体検出、セグメンテーションなど、広範な応用の理論的基盤を提供した。
5.2 教材としてのLeNet
学習済みモデルやソースコードが入手しやすいことから、LeNetは深層学習の入門教材として現在でも広く利用されている。例えば、TensorFlowやPyTorchのチュートリアルでは、LeNetをベースとした手書き数字認識の実装が標準的な例題として採用されている。
5.3 ミーム的利用(「古いけど偉大」ネタ)
深層学習コミュニティにおいて、LeNetは「古いながらもアイデアは洗練されている」存在として、しばしば軽いノスタルジーや敬意を込めて話題にされる。「LeNetはCNNの祖父である」といった表現や、現代の巨大モデルと対比させる「シンプル・イズ・ベスト」ネタとして、SNSや技術ブログで取り上げられることがある。