CNN(畳み込みニューラルネットワーク)とDNN(深層ニューラルネットワーク)の違いは、用語の定義をどこに置くかによって混乱が生じやすいテーマです。
そのため、まず言葉の整理を行ったうえで、構造・得意分野・設計思想の違いを体系的に説明します。
まず押さえるべき用語の整理(重要)
DNN(Deep Neural Network)とは
DNNとは、複数の層(深い構造)を持つニューラルネットワークの総称です。
- 入力層
- 複数の隠れ層
- 出力層
を持つネットワーク全般を指します。
この定義に基づくと、
- CNN(畳み込みニューラルネットワーク)
- RNN(再帰型ニューラルネットワーク)
- Transformer
なども、すべて広義にはDNNに含まれます。
実務でよく使われる「狭義のDNN」
一方、現場や入門書では「DNN」という言葉が、
全結合層(Fully Connected Layer)を積み重ねたネットワーク
(=MLP:多層パーセプトロン)
を指して使われることが多くあります。
本記事では、一般的な比較の文脈に合わせて、
CNN と「全結合型DNN(MLP)」の違い
として説明を進めます。
全結合型DNN(MLP)の特徴
構造の特徴
全結合型DNNは、以下のような構造を持ちます。
- 各層のすべてのニューロンが、次の層のすべてのニューロンと接続
- 入力は一次元の特徴量ベクトルとして扱われる
- 空間的・位置的な関係は特別扱いしない
入力 → 全結合層 → 全結合層 → 全結合層 → 出力
得意なデータ形式
- 表形式データ
- 数値特徴量が整理された構造化データ
例
- 売上・需要予測
- 顧客スコアリング
- 広告CTRやCV率予測
- レコメンドの基礎モデル
制約
画像のように次元が大きいデータをそのまま入力すると、
- パラメータ数が非常に多くなる
- 計算コストが高くなる
- 過学習しやすい
といった問題が生じやすくなります。
CNN(畳み込みニューラルネットワーク)の特徴
CNNとは何か
CNNは、画像や空間構造を持つデータを効率的に扱うために設計されたニューラルネットワークです。
全結合型DNNとは異なり、次のような設計思想を持っています。
CNNの中核となる考え方
局所性(Locality)
画像では、近くにあるピクセル同士が意味を持つことが多いため、CNNは小さな領域(局所)に注目して特徴を抽出します。
重み共有(Weight Sharing)
同じフィルタ(重み)を画像全体に適用することで、
- パラメータ数を大幅に削減
- 同じ特徴をどこにあっても検出可能
にします。
CNNの典型的な構造
入力(画像)
↓
畳み込み層(特徴抽出)
↓
ダウンサンプリング(プーリングまたはストライド付き畳み込み)
↓
畳み込み層
↓
(必要に応じて繰り返し)
↓
全結合層 or Global Average Pooling
↓
出力
※ プーリング層は一般的ですが、必須ではありません。
CNNと全結合型DNNの本質的な違い
構造の違い
| 観点 | 全結合型DNN(MLP) | CNN |
|---|---|---|
| 主な層 | 全結合層 | 畳み込み層 |
| 入力の扱い | ベクトル化 | 空間構造を保持 |
| 重みの扱い | 各結合で個別 | 重みを共有 |
| パラメータ数 | 入力次元に比例して増えやすい | 比較的少ない |
学習できる情報の違い
- 全結合型DNN:
「どの特徴が重要か」を学ぶ - CNN:
「どこに、どのようなパターンがあるか」を学ぶ
CNNが画像認識に強い理由
階層的な特徴学習
CNNは層を重ねることで、次のように段階的に特徴を学習します。
- 初期層:エッジ・線・角
- 中間層:模様・パーツ
- 深層:物体・文字・顔などの高次概念
これは画像認識に非常に適した性質です。
位置ずれに対するロバスト性
CNNは、
- 局所的な受容野
- ダウンサンプリング処理
- データ拡張(平行移動・回転など)
と組み合わせることで、入力の小さな位置ずれに対して比較的ロバストになります。
ただし、これは完全な不変性ではなく、近似的な性質である点には注意が必要です。
得意分野の違い
| 分野 | 全結合型DNN | CNN |
|---|---|---|
| 表形式データ | ◎ | △ |
| 画像認識 | △ | ◎ |
| 音声処理 | △ | ○(表現次第) |
| 動画解析 | △ | ◎ |
| 自然言語 | △ | △〜○(近年はTransformerが主流) |
「CNNとDNNは別物か?」という疑問への答え
- 広義の定義では
→ CNNはDNNの一種 - 実務的な比較文脈では
→ CNNと「全結合型DNN(MLP)」は異なるアーキテクチャ
この前提を明確にすることで、混乱はほぼ解消されます。
まとめ
- 全結合型DNN(MLP)
→ 構造化された数値データに強い汎用モデル - CNN
→ 空間構造を持つデータ(特に画像)に特化したDNN
以上、CNNとDNNの違いについてでした。
最後までお読みいただき、ありがとうございました。
