🔰 初心者
CNNにはいろんな種類があるみたいですが、どう進化してきたんですか?
🎓 上級者
CNNは1980年代から進化を続け、層が深くなるたびに精度も向上してきたんだ。代表的な7つのアーキテクチャを時系列で見ていこう。
🗺️ 進化の全体像
CNNアーキテクチャの進化
ネオコグニトロン(1980) → LeNet(1998) → AlexNet(2012) → VGGNet(2014) → GoogLeNet(2014) → ResNet(2015) → SENet(2017) → EfficientNet(2019)
CNNの原型 → 実用化の始まり → DL革命の火付け役 → シンプルで深い → 効率的で複雑 → 超深層を実現 → チャネル注意機構 → 効率と精度の両立
図1: CNNアーキテクチャの進化タイムライン(エラー率の推移付き)
🔬 1. ネオコグニトロン(1980年)
ネオコグニトロン — CNNの原型
福島邦彦(日本の研究者)が提案した、CNNの原型となるモデル。
生物の視覚野の仕組みをモデル化。S細胞(特徴検出)とC細胞(位置ずれの吸収)の階層構造を持つ。「畳み込み+プーリング」の基本アイデアを世界で初めて提案した。ただし誤差逆伝播法ではなく独自の学習法を使用。
🎓 上級者
まだ電気自動車がない時代に「電気で動く車を作ろう」と設計図を描いた先駆者のようなもの。直接は使われなかったが、後のCNNの基礎となったんだ。
ヒューベルとウィーゼルの視覚野研究(Hubel & Wiesel)
ネオコグニトロンの着想の元となったのが、デイヴィッド・ヒューベルとトルステン・ウィーゼルによる視覚野の研究(1962年)。猫の視覚野を電極で調べ、2種類の神経細胞を発見した。
単純型細胞(Simple Cell):特定の傾きや方向のエッジに反応する → CNNの畳み込み層に対応
複雑型細胞(Complex Cell):特徴の位置が多少ズレても反応する → CNNのプーリング層に対応
福島邦彦はこの研究をヒントに、単純型細胞をS細胞、複雑型細胞をC細胞としてネオコグニトロンを設計した。
ヒューベルとウィーゼルはこの業績で1981年にノーベル生理学・医学賞を受賞している。
✉️ 2. LeNet(1998年)
LeNet — 実用化された最初のCNN
ヤン・ルカン(Yann LeCun)が開発。手書き郵便番号の認識で米国郵便局で実用化。
畳み込み層x2 → プーリング層x2 → 全結合層(計7層)の構造。活性化関数はシグモイド関数(当時はReLUがまだなかった)。「畳み込み→プーリング→全結合」というCNNの基本パイプラインを確立した。
| 項目 | 内容 |
| 開発者 | ヤン・ルカン |
| 用途 | 手書き郵便番号の認識(米国郵便局で実用化) |
| 構造 | 畳み込み層x2 → プーリング層x2 → 全結合層(計7層) |
| 活性化関数 | シグモイド関数 |
| 意義 | CNNの基本パイプラインを確立 |
🔥 3. AlexNet(2012年)
AlexNet — DL革命の火付け役
アレックス・クリジェフスキー(ジェフリー・ヒントン研究室)がILSVRC 2012で圧勝。
8層(畳み込み5層+全結合3層)。エラー率16.4%で2位の26.2%に大差をつけた。「ディープラーニングは凄い」と世界に知らしめた。
AlexNetの3つの革新
1. ReLU関数:シグモイドより学習が速い
2. ドロップアウト:過学習を防ぐ
3. GPU利用:大量の計算を高速に処理
🧱 4. VGGNet(2014年)
VGGNet — シンプルに深く
オックスフォード大学のVGGグループが開発。ILSVRC 2014 準優勝。
16層(VGG16)または19層(VGG19)。すべての畳み込み層で3x3の小さなフィルタを使用。シンプルな構造で深くすることの有効性を証明した。
🔰 初心者
なぜわざわざ小さい3x3フィルタを使うんですか?
🎓 上級者
7x7フィルタ1枚だとパラメータ数は49個。でも3x3フィルタ3枚重ねるとパラメータ数は27個で済む。しかも同じ範囲(受容野7x7)を見られて、活性化関数が3回入るので表現力も高いんだ。
7x7フィルタ1枚
パラメータ数:49個
受容野:7x7
非線形変換:1回
3x3フィルタ3枚重ね
パラメータ数:27個(少ない!)
受容野:7x7(同じ!)
非線形変換:3回(表現力高い!)
🧩 5. GoogLeNet(2014年)
GoogLeNet — 効率的な深さ
Googleが開発。ILSVRC 2014 優勝(エラー率6.7%)。22層。
Inceptionモジュールが最大の特徴。パラメータ数はAlexNetの1/12なのに高精度を実現。
Inceptionモジュールとは?
入力に対して複数サイズのフィルタ(1x1、3x3、5x5)とMaxプーリングを同時に適用し、結果を結合する仕組み。「どのサイズが最適か? → 全部試せばいい!」という発想。
1x1畳み込みはチャンネル数の削減(次元削減)にも使われ、計算量を大幅に抑えている。
図2: Inceptionモジュール — 複数サイズのフィルタを並列適用して結合
🏆 6. ResNet(2015年)
ResNet — 超深層を実現
Microsoft Research(ヘ・カイミンら)が開発。ILSVRC 2015 優勝(エラー率3.57%=人間超え)。
152層という超深層ネットワーク。残差接続(Skip Connection)が最大の特徴。「層を深くすれば精度が上がる」を本当に実現した。
残差接続(Skip Connection)とは?
通常のネットワーク:入力 → [層A] → [層B] → 出力
残差接続あり:入力 → [層A] → [層B] → (+) → 出力
入力 ─────────────────────→ (+) へショートカット
層が何も学ばなくても「入力をそのまま通す」ことができる。勾配が途切れず、超深層でも学習が安定する。100階建てのビルにエレベーター(ショートカット)を設置するイメージ。
図3: ResNetのスキップ接続 — 入力を出力に直接足し算する
🎯 7. SENet(2017年)
SENet(Squeeze-and-Excitation Network)— チャネル注意機構
Hu Jieらが開発。ILSVRC 2017 優勝(エラー率2.25%)。ILSVRCの最後の大会で優勝したモデル。
SEブロック(Squeeze-and-Excitation Block)が最大の特徴。「どのチャネル(特徴マップ)が重要か?」をネットワーク自身が学習して、重要なチャネルを強調し、不要なチャネルを抑制する。既存のCNN(ResNet、Inceptionなど)に後付けで追加でき、少ないパラメータ増加で精度を向上させられる。
🔰 初心者
「チャネルの重要度」ってどういうことですか?
🎓 上級者
CNNの各層は複数のチャネル(特徴マップ)を出力するよね。たとえば「エッジを検出するチャネル」「色を検出するチャネル」「テクスチャを検出するチャネル」など。でも画像によって重要なチャネルは変わる。犬を見分けるときは毛並みのテクスチャが大事だし、車を見分けるときはエッジが大事。SEブロックは「今この入力では、どのチャネルに注目すべきか」を自動で判断する仕組みなんだ。
SEブロックの3ステップ
① Squeeze(絞る):各チャネルの特徴マップをGlobal Average Poolingで1つの数値に圧縮する
→ チャネルごとの「要約値」を得る
② Excitation(興奮させる):全結合層(FC層)2つ + シグモイド関数で、各チャネルの重要度(0〜1)を算出する
→ 「このチャネルはどれくらい重要か?」の重みを学習
③ Scale(スケーリング):元の特徴マップに重要度を掛け算する
→ 重要なチャネルは強調、不要なチャネルは抑制
図4: SEブロック — チャネルごとの重要度を学習して特徴マップを再調整
SENetの強み:どのCNNにも後付けできる
SEブロックは独立したモジュールなので、既存のCNNに簡単に組み込める:
・ResNet + SE → SE-ResNet(残差ブロックにSEブロックを追加)
・Inception + SE → SE-Inception(InceptionモジュールにSEブロックを追加)
パラメータの増加はわずか(約1%程度)なのに、精度が大幅に向上する。
この「チャネル方向のアテンション(注意機構)」というアイデアは、後のモデル(EfficientNetなど)にも影響を与えた。
⚖️ 8. EfficientNet(2019年)
EfficientNet — 効率と精度の両立
Google(タン・ミンシンら)が開発。複合スケーリング(Compound Scaling)が最大の特徴。
深さ・幅・解像度の3つをバランスよく同時に拡大する手法。従来モデルより少ないパラメータで同等以上の精度を実現。「どうスケールアップするか」に初めて体系的に取り組んだ。
複合スケーリングとは?
従来のスケールアップ(どれか1つだけ大きくする):
・深さだけ増やす → ある程度で頭打ち
・幅だけ増やす → 計算コスト爆増
・解像度だけ上げる → 効果が限定的
EfficientNetの複合スケーリング:
深さ x 幅 x 解像度 を同時にバランスよく拡大 → 少ないパラメータで高精度を実現!
🤖 9. NAS — ニューラルアーキテクチャ探索(Neural Architecture Search)
🔰 初心者
ここまでのモデルは全部人間が設計したんですよね?ネットワーク構造も自動で決められないんですか?
🎓 上級者
まさにその発想がNASだよ。「最適なネットワーク構造をAI自身に探させる」というアプローチなんだ。
NAS(Neural Architecture Search)
ネットワークの構造(層数、フィルタサイズ、接続方法など)を自動で探索する手法。
人間が試行錯誤してネットワーク構造を設計する代わりに、探索アルゴリズム(強化学習や進化的手法など)を使って最適な構造を自動的に見つけ出す。
Google Brain が2017年に提案(Zoph & Le)。膨大な計算リソースが必要だが、人間の設計を上回る構造を発見できる。
NASNet(2018年)
NASで発見された画像認識用のCNNアーキテクチャ。
小さなデータセット(CIFAR-10)で最適なセル構造(ビルディングブロック)を探索し、それを積み重ねて大きなネットワークに拡張する。ImageNetでも人間設計のモデルを上回る精度を達成した。
MNASNet(2019年)
モバイル向けに最適化されたNAS手法(Google)。
精度だけでなく推論速度(レイテンシ)も目的関数に含めて探索する。実機(スマートフォン)での推論時間を測定しながら探索することで、モバイル環境でも高速かつ高精度なモデルを自動設計できる。EfficientNetのベースネットワーク探索にも活用された。
NASとEfficientNetの関係
EfficientNetのベースモデル(EfficientNet-B0)はNASで発見された構造。それを複合スケーリングでB1〜B7に拡大している。つまり「NASで最適な基本構造を見つけ、複合スケーリングで最適にスケールアップ」という二段構えの設計。
| 手法 | 年 | 特徴 | ポイント |
| NAS | 2017 | ネットワーク構造を自動探索 | 強化学習等で構造を最適化。膨大な計算が必要 |
| NASNet | 2018 | NASで発見したCNN構造 | セル構造を探索→積み重ねて拡張 |
| MNASNet | 2019 | モバイル向けNAS | 精度+推論速度を同時に最適化 |
🔗 暗記のコツ:課題→解決の進化チェーン
🔰 初心者
モデルが多すぎて覚えられません...何かコツはありますか?
🎓 上級者
CNNの歴史は「課題→解決→新たな課題→次の解決...」の連鎖なんだ。問題と解決のセットで追っていけば、各モデルの特徴が自然と頭に入るよ。
課題:人間の視覚をコンピュータで再現したい
① ネオコグニトロン(1980)— 福島邦彦
解決:生物の視覚野をモデル化し、S細胞(特徴検出)+C細胞(位置ずれの吸収)でCNNの原型を作った
キーワード:福島邦彦 / S細胞・C細胞 / ヒューベル&ウィーゼルの視覚野研究がヒント
補足:誤差逆伝播法ではなく独自の学習法を使っていたため、汎用性に欠けた
▼
課題:独自の学習法で汎用的に使えない
② LeNet(1998)— ヤン・ルカン
解決:誤差逆伝播法で学習可能なCNNを構築。手書き郵便番号の認識で米国郵便局に実用化された
キーワード:ヤン・ルカン / 手書き郵便番号 / 7層 / シグモイド関数
補足:「畳み込み→プーリング→全結合」のCNN基本パイプラインを確立した
▼
課題:CNNの力が世間に知られていない+大規模画像認識が未解決
③ AlexNet(2012)— クリジェフスキー(ヒントン研究室)
解決:GPU活用+ReLU+ドロップアウトの3つの革新でILSVRC 2012を圧勝(エラー率16.4%)
キーワード:ReLU / ドロップアウト / GPU / 8層 / ILSVRC 2012優勝
補足:2位の26.2%に約10ポイント差をつけ、ディープラーニング革命の幕開けとなった
▼
課題:もっと深くしたいが、大きいフィルタだとパラメータが多すぎる
④ VGGNet(2014)— オックスフォード大 VGGグループ
解決:3x3の小さなフィルタだけを積み重ねて、シンプルに深く(16〜19層)した
キーワード:3x3フィルタ / VGG16・VGG19 / ILSVRC 2014準優勝(7.3%)
補足:3x3を3枚重ね=パラメータ27個で、7x7の49個より少なく同じ受容野をカバーできる
▼
課題:どのフィルタサイズが最適かわからない
⑤ GoogLeNet(2014)— Google
解決:Inceptionモジュールで1x1、3x3、5x5、MaxPoolを同時に適用して結合する
キーワード:Inceptionモジュール / 1x1畳み込み(次元削減) / 22層 / ILSVRC 2014優勝(6.7%)
補足:パラメータ数はAlexNetの1/12で高精度を実現。「全サイズ試す」という発想
▼
課題:層を深くしすぎると勾配消失で学習できなくなる
⑥ ResNet(2015)— Microsoft Research(ヘ・カイミン)
解決:残差接続(スキップ接続)で入力を直接出力に足す仕組みを導入し、152層の超深層を実現
キーワード:Skip Connection(残差接続) / 152層 / ILSVRC 2015優勝(3.57%)
補足:人間の認識精度(約5%)を初めて超えた。勾配が途切れないエレベーターのイメージ
▼
課題:全チャネルを均等に扱っており、重要な特徴が埋もれる
⑦ SENet(2017)— Hu Jieら
解決:SEブロックで各チャネルの重要度を学習し、重要なチャネルを強調・不要なチャネルを抑制
キーワード:Squeeze-and-Excitation / チャネル注意機構 / ILSVRC 2017優勝(2.25%)/ 最後のILSVRC
補足:既存のCNN(ResNet、Inception等)に後付けでき、わずかなパラメータ増加で精度向上
▼
課題:モデルのスケールアップが場当たり的(深さだけ、幅だけ等)
⑧ EfficientNet(2019)— Google(タン・ミンシン)
解決:深さ×幅×解像度を同時にバランスよく拡大する複合スケーリングを提案
キーワード:複合スケーリング(Compound Scaling) / 深さ×幅×解像度
補足:少ないパラメータで既存モデル以上の精度を実現。スケールアップに初めて体系的に取り組んだ
▼
課題:ネットワーク構造の設計自体が人間の試行錯誤に依存している
⑨ NAS(2017〜)— Google Brain
解決:ネットワーク構造をAIが自動探索。NASNet、MNASNet → EfficientNetのベースにも活用
キーワード:Neural Architecture Search / 強化学習 / NASNet / MNASNet
補足:「モデルを設計するAI」という発想。人間の設計を超える構造を発見できる
📋 暗記用キーワードまとめ
| モデル | 年 | 層数 | 直前の課題 | 核心の解決策 | ILSVRC |
| ネオコグニトロン | 1980 | - | 視覚の再現 | S細胞+C細胞 | - |
| LeNet | 1998 | 7 | 独自学習法の限界 | 誤差逆伝播で実用化 | - |
| AlexNet | 2012 | 8 | 大規模認識が未解決 | ReLU+GPU+ドロップアウト | 優勝(16.4%) |
| VGGNet | 2014 | 16/19 | パラメータ多すぎ | 3x3フィルタの積み重ね | 準優勝(7.3%) |
| GoogLeNet | 2014 | 22 | 最適フィルタ不明 | Inceptionモジュール | 優勝(6.7%) |
| ResNet | 2015 | 152 | 勾配消失で学習不能 | 残差接続(Skip Connection) | 優勝(3.57%) |
| SENet | 2017 | - | チャネルが均等扱い | SEブロック(チャネル注意機構) | 優勝(2.25%) |
| EfficientNet | 2019 | - | スケールアップが非効率 | 複合スケーリング | - |
| NAS / NASNet | 2017〜 | - | 構造設計が人間依存 | AIが構造を自動探索 | - |
🎯 G検定ポイント
- ヒューベルとウィーゼルは猫の視覚野で単純型細胞(→畳み込み層)と複雑型細胞(→プーリング層)を発見(1962年、ノーベル賞1981年)
- ネオコグニトロンは福島邦彦がCNNの原型を提案(1980年)。ヒューベルらの研究がヒント
- LeNetはヤン・ルカンが実用化した最初のCNN(手書き郵便番号認識)
- AlexNetはReLU+ドロップアウト+GPUでILSVRC 2012を圧勝しDL革命を起こした
- VGGNetは3x3フィルタの積み重ねでシンプルに深くした(ILSVRC 2014準優勝)
- GoogLeNetはInceptionモジュールで複数サイズのフィルタを同時適用(ILSVRC 2014優勝)
- ResNetは残差接続(Skip Connection)で152層の超深層を実現し人間を超えた(ILSVRC 2015優勝)
- SENetはSEブロック(Squeeze-and-Excitation)でチャネルの重要度を学習し再調整。ILSVRC 2017優勝(最後のILSVRC)。既存CNNに後付け可能
- EfficientNetは深さ×幅×解像度の複合スケーリングで効率と精度を両立
- NAS(Neural Architecture Search)はネットワーク構造をAIが自動探索する手法
- NASNetはNASで発見した構造、MNASNetはモバイル向けに精度+速度を同時最適化
- 進化の流れ:原型→実用化→DL革命→深層化→効率化→超深層→チャネル注意→スケーリング→構造の自動探索