モデル解説

CNN(畳み込みニューラルネットワーク)とは

CNN(Convolutional Neural Network / 畳み込みニューラルネットワーク)は、画像を2次元のまま扱い、 小さなフィルタ(カーネル)を画像上でスライドさせて局所的なパターン(エッジ・質感・形の部品)を抽出するニューラルネットワークです。 手書き数字認識デモでは、描いた数字の画像を畳み込み層で特徴マップに変換しながら、0〜9 のどれかを推論しています。

畳み込みの仕組みConvolution & Pooling

畳み込み層は「3×3 などの小さなフィルタ」を画像上で1画素ずつずらしながら、各位置でフィルタと画像の内積を計算します。 その結果は特徴マップ(どこに・どんなパターンがあるかの地図)になります。 同じフィルタを画像全体で使い回す(重み共有)ため、「どの位置に書かれても同じ特徴を検出」でき、パラメータ数も抑えられます。

3×3 フィルタ 入力画像 28×28 2次元構造を保ったまま 畳み込み スキャン 特徴マップ(32ch) フィルタごとに1枚の反応地図 Pooling 縮小 半分に集約 位置ずれへの耐性を獲得 ×3ブロック 深い層の特徴 形の部品・組み合わせ Flatten 全結合層(MLP部) 512 → 256 ユニット 出力 10 0〜9 の確率 Softmax 畳み込みで局所特徴を抽出 → プーリングで縮小 → 深い層で抽象化 → 全結合層で分類
CNN の情報の流れ:畳み込み層が「どこにどんなパターンがあるか」の特徴マップを作り、最後に全結合層が分類します。

浅い層はエッジや線の方向といった単純な特徴を、深い層は「角」「輪郭」「数字の部品」のような抽象的な特徴を学習します。 デモの「ネットワーク動作」パネルに表示される各層の反応が、この特徴マップです。

プーリングの役割Max Pooling

畳み込みの後には Max Pooling(2×2 領域の最大値だけ残して縦横半分に縮小)を挟みます。 数字を少しずれて書いても、強い反応の位置だけが残るため位置ずれへの耐性が生まれ、同時に計算量も削減されます。

このデモの CNN モデルArchitecture

MLP との違いvs MLP

CNN(このページ)MLP(多層パーセプトロン)
入力の扱い 画像を 2次元のまま処理 — 上下左右の近さ(位置関係)が活きる 画像を 784 個の1列に潰して入力 — 位置関係は考慮されない
結合方式 局所結合 — 3×3 の狭い範囲だけを見る 全結合 — 全入力を一度に見る
重み共有 あり — 同じフィルタを全位置で使い回す(効率的・位置不変) なし — 結合ごとに独立した重み

詳しい対比は MLP(多層パーセプトロン)とは の対比表もあわせてご覧ください。

産業用途では: 本デモのような小さな CNN から、MobileNetV2・EfficientNet のような軽量高効率設計へと発展します。 ER-FlowScan Suite の実務モジュール(欠陥検出・対象識別など)でもこの系統のアーキテクチャが使われています — 詳しくは 機械学習解説 04章「アーキテクチャの進化」 を参照してください。

関連ページFurther Reading