CNNアーキテクチャの進化

ネオコグニトロンからEfficientNet・SENetまで
🔰 初心者

CNNにはいろんな種類があるみたいですが、どう進化してきたんですか?

🎓 上級者

CNNは1980年代から進化を続け、層が深くなるたびに精度も向上してきたんだ。代表的な7つのアーキテクチャを時系列で見ていこう。

🗺️ 進化の全体像
CNNアーキテクチャの進化

ネオコグニトロン(1980) → LeNet(1998) → AlexNet(2012) → VGGNet(2014) → GoogLeNet(2014) → ResNet(2015) → SENet(2017) → EfficientNet(2019)

CNNの原型 → 実用化の始まり → DL革命の火付け役 → シンプルで深い → 効率的で複雑 → 超深層を実現 → チャネル注意機構 → 効率と精度の両立

CNNアーキテクチャ進化タイムライン エラー率 16.4% 7.3% 6.7% 3.57% 2.25% 人間(約5%) 1980 ネオコグニトロン (福島邦彦) 1998 LeNet (ヤン・ルカン) 2012 AlexNet DL革命! 2014 VGGNet 2014 GoogLeNet 人間超え! 2015 ResNet 最後のILSVRC 2017 SENet 2019 EfficientNet 黎明期 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畳み込みはチャンネル数の削減(次元削減)にも使われ、計算量を大幅に抑えている。

Inceptionモジュールの構造 入力(Previous Layer) 1x1 Conv Path 1 1x1 Conv Path 2 3x3 Conv 1x1 Conv Path 3 5x5 Conv 3x3 MaxPool Path 4 1x1 Conv 結合(Concatenation) 出力(Next Layer) 1x1 Conv(次元削減) 3x3 Conv 5x5 Conv MaxPool
図2: Inceptionモジュール — 複数サイズのフィルタを並列適用して結合
🏆 6. ResNet(2015年)

ResNet — 超深層を実現

Microsoft Research(ヘ・カイミンら)が開発。ILSVRC 2015 優勝(エラー率3.57%=人間超え)。
152層という超深層ネットワーク。残差接続(Skip Connection)が最大の特徴。「層を深くすれば精度が上がる」を本当に実現した。
残差接続(Skip Connection)とは?

通常のネットワーク:入力 → [層A] → [層B] → 出力

残差接続あり:入力 → [層A] → [層B] → (+) → 出力
入力 ─────────────────────→ (+) へショートカット

層が何も学ばなくても「入力をそのまま通す」ことができる。勾配が途切れず、超深層でも学習が安定する。100階建てのビルにエレベーター(ショートカット)を設置するイメージ。

ResNetの残差接続(Skip Connection) メインパス: F(x) 入力 x 畳み込み Conv ReLU 畳み込み Conv + ReLU 出力 F(x) + x ショートカット接続: x(Identity) 出力 = F(x) + x → 層が何も学ばなければ F(x)=0 なので、入力がそのまま通る
図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(スケーリング):元の特徴マップに重要度を掛け算する
→ 重要なチャネルは強調、不要なチャネルは抑制

SEブロック(Squeeze-and-Excitation Block) 入力 特徴マップ H × W × C ① Squeeze Global Average Pooling → 1 × 1 × C ② Excitation FC → ReLU → FC → Sigmoid チャネル重要度 (0〜1の重み) × ③ Scale 元の特徴マップ(ショートカット) 出力 再調整済み H × W × C 重要なチャネル → 重み大(強調)  不要なチャネル → 重み小(抑制)
図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で最適な基本構造を見つけ、複合スケーリングで最適にスケールアップ」という二段構えの設計。

手法特徴ポイント
NAS2017ネットワーク構造を自動探索強化学習等で構造を最適化。膨大な計算が必要
NASNet2018NASで発見したCNN構造セル構造を探索→積み重ねて拡張
MNASNet2019モバイル向け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細胞-
LeNet19987独自学習法の限界誤差逆伝播で実用化-
AlexNet20128大規模認識が未解決ReLU+GPU+ドロップアウト優勝(16.4%)
VGGNet201416/19パラメータ多すぎ3x3フィルタの積み重ね準優勝(7.3%)
GoogLeNet201422最適フィルタ不明Inceptionモジュール優勝(6.7%)
ResNet2015152勾配消失で学習不能残差接続(Skip Connection)優勝(3.57%)
SENet2017-チャネルが均等扱いSEブロック(チャネル注意機構)優勝(2.25%)
EfficientNet2019-スケールアップが非効率複合スケーリング-
NAS / NASNet2017〜-構造設計が人間依存AIが構造を自動探索-

🎯 G検定ポイント