CNNとは、画像の縦横の並びを保ったまま局所的な特徴を抜き出すニューラルネットワークです。スマートフォンの顔認証や自動運転の歩行者検知、医療画像の病変診断に至るまで、画像認識の中核を担い続けています。人工知能の勉強を始めたものの、数式や専門用語の壁にぶつかって構造の理解に苦労していませんか。
従来の機械学習では、画像のピクセルを1列に並び替えてから処理していました。これでは上下左右のピクセル同士の繋がりが断ち切られてしまいます。CNNはこの欠点を克服し、人間が目で輪郭や質感を認識する仕組みを数式へと落とし込みました。
本稿では、CNNの基礎概念から畳み込み層・プーリング層の厳密な計算手順、そして後発のアーキテクチャとの違いまで順序立てて解説します。
CNN(畳み込みニューラルネットワーク)とは?画像の空間情報を保つ基本の仕組み

畳み込みニューラルネットワーク(Convolutional Neural Network、略称CNN)は、格子状のデータ構造を効率的に処理するディープラーニング手法です。2次元の広がりを持つ画像から、局所的な特徴を順に抽出して大局的な判断を下します。
入力された画像に対して小さなフィルターをスライドさせながら計算を進める点が最大の特徴です。この処理により、被写体が画像の中心にあっても右端にあっても、同じ模様として識別できます。
コンピューターは画像を縦横の数値配列(ピクセルの明るさや色情報の集まり)として読み込みます。白黒画像であれば縦×横の2次元行列、カラー画像であれば赤・緑・青の各成分を重ねた3次元テンソルです。
CNNは入力データを平らにならさず、縦・横・奥行きの3次元形状を維持したまま各層へ受け渡します。これによって「目の上に眉毛がある」「輪郭の内側に鼻がある」といった空間的な配置情報を失わずに学習が進みます。
画像生成や画像解析の現場でも、このCNNの原理が土台として機能しています。画像処理ツール全体の動向に関心がある方は、AIデザインツールやAI画像生成のカテゴリも参考にしてください。
一般のニューラルネットワーク(全結合層)ではなぜ画像処理が難しいのか?

初期の多層パーセプトロンに代表される全結合層(Fully Connected Layer)は、画像認識において効率面と構造面で明確な限界を抱えていました。すべての入力ノードと出力ノードを接続する構造が、高解像度の画像データに対して過剰な計算負荷を生じさせたためです。
全結合層では、2次元の画像を1本の長い数列(1次元ベクトル)に変換してから入力します。例えば1000ピクセル×1000ピクセルのRGBカラー画像を入力する場合、必要なノード数は300万個に跳ね上がります。次の層に1000個のニューロンを用意しただけで、重みパラメータの総数は30億個に達する計算です。
パラメータ数が膨らむと、計算機メモリを大量に消費するだけでなく、学習データに過剰に適応してしまう過学習を引き起こします。実用的な速度で推論を完了させることは困難でした。
もうひとつの致命的な欠陥は、空間的な位置情報の消失です。1次元に並べ替えた段階で、あるピクセルのすぐ上や斜めにあったピクセルとの距離関係が失われます。対象物の位置が少し左にずれたり傾いたりしただけで、まったく異なる入力データとして処理されてしまう脆弱性がありました。
全結合層と畳み込み層の根本的な構造差を下の表に示します。
| 比較項目 | 全結合 | 畳み込みニューラルネットワーク |
|---|---|---|
| 入力データの形状 | 1次元ベクトル(平坦化が必須) | 2次元・3次元の形状を保持 |
| 重みの共有 | なし(接続ごとに独立した重み) | あり(同じカーネルを全域で共有) |
| パラメータ数 | 入力サイズに比例して爆発的に増大 | カーネルサイズに依存するため極めてコンパクト |
| 位置ズレへの耐性 | 弱い(少しの移動で別画像と判定) | 強い(スライド計算とプーリングで吸収) |
| 主な適用領域 | テーブルデータ分析・単純な識別 | 画像・動画・スペクトログラム解析 |
全結合層は全体を網羅的に見る反面で無駄が多く、畳み込み層は必要な領域だけを絞り込んで効率的に特徴を拾い上げます。
畳み込み層(Convolutional Layer)が担う特徴抽出の計算手順
畳み込み層は、入力画像に対して特定の模様を検出するフィルターを掛け合わせ、特徴マップと呼ばれる新しいデータを生成する階層です。エッジ(輪郭)や明暗の境目といった低次の特徴を正確に捉えます。
処理の基本単位は「カーネル(またはフィルター)」と呼ばれる小さな行列です。一般的には3×3や5×5の正方行列が用いられます。カーネル内の各要素には重み係数が割り当てられており、この数値は機械学習の訓練プロセスを通じて自動的に最適化されます。
畳み込みの計算手順は明快です。
- 入力画像の左上にカーネルを重ね合わせる
- 重なり合ったピクセル値とカーネルの数値をそれぞれ掛け算する(要素ごとの積)
- 掛け算した結果をすべて足し合わせる(総和の計算)
- 合計値にバイアス項を加え、特徴マップの対応する位置に書き込む
- カーネルを右方向へ一定幅スライドさせ、同様の積和演算を繰り返す
- 右端に達したら下の行に移り、画像全体を走査し終えるまで計算を続ける
カラー画像(RGBの3チャンネル)を扱う場合は、カーネル側も3層構造(3×3×3)を持ちます。それぞれのチャンネルごとに積和演算をおこなった後、3つの数値を合算して1つの特徴マップを出力します。異なるカーネルを64個使えば、64枚の異なる特徴マップが得られる仕組みです。
浅い畳み込み層では水平線や垂直線、斜めのエッジといった原始的な形状を拾います。層を深く重ねるにつれて、それらの線が組み合わさった円や多角形、さらには「目」「鼻」「車輪」といった具体的なパーツ単位の特徴を認識できるようになります。
プーリング層(Pooling Layer)が担うデータの圧縮と位置ズレ耐性
プーリング層は、畳み込み層で抽出された特徴マップの縦横サイズを縮小し、計算量を削減するとともに位置の変化に強い表現を作る階層です。解像度を意図的に下げるダウンサンプリングの役割を果たします。
画像内の被写体は、常に同じ位置・同じ角度で写るわけではありません。写真の右上に猫がいる場合でも、中央にいる場合でも「猫がいる」と判定する必要があります。プーリング処理を挟むことで、細かな位置のズレや微小な歪みの影響を打ち消す効果が生まれます。
プーリング層には学習すべき重みパラメータが存在しません。あらかじめ定めた規則に従って局所領域の数値を1つにまとめる固定処理をおこなうため、計算コストが低く抑えられます。
代表的な手法として「最大プーリング(Max Pooling)」と「平均プーリング(Average Pooling)」の2種類が存在します。両者の特性の違いを整理します。
| プーリング手法 | 処理内容 | 主な | 多用される |
|---|---|---|---|
| 最大プーリング(Max Pooling) | 領域内の最大値だけを取り出す | 輪郭やエッジなどの強い特徴を際立たせる | 通常の畳み込み層の直後・画像分類タスク |
| 平均プーリング(Average Pooling) | 領域内の全数値の平均値を算出する | 全体の背景情報や滑らかな濃淡を維持する | ネットワーク最終盤(Global Average Pooling) |
最大プーリングは強い特徴を優先して残す性質があり、画像分類タスクの途中で標準的に利用されます。
たとえば2×2の領域でストライド2の最大プーリングを適用すると、特徴マップの面積は4分の1(縦横半分)に縮小されます。解像度を適度に落とすことで、次段の畳み込み層がより広い範囲の文脈を捉えられるようになります。
畳み込み処理を制御する3大パラメータ(カーネル・ストライド・パディング)
畳み込み層を設計する際、エンジニアは出力される特徴マップのサイズや計算特性を3つのハイパーパラメータで調整します。設計意図に合わせた適切なパラメータ選定が、モデル全体の精度を大きく左右します。
第1のパラメータは「カーネルサイズ(Kernel Size)」です。フィルターの縦横寸法を指します。3×3の小さなカーネルを多段に重ねる手法が現代の標準です。5×5や7×7の大きなカーネルを1回使うよりも、3×3を複数回重ねたほうが非線形表現力が増し、パラメータ総数も削減できるためです。
第2のパラメータは「ストライド(Stride)」です。カーネルを1回の操作で何ピクセル分移動させるかを表す移動幅です。ストライドを1に設定するとカーネルは1ピクセルずつ密に移動し、元の解像度を保った詳細な特徴マップが作られます。ストライドを2以上に設定すると、出力サイズが半分以下に間引かれ、プーリング層を使わずにサイズ縮小を代行できます。
第3のパラメータは「パディング(Padding)」です。入力画像の周囲を一定の値(多くは数値の0)で囲む処理を指します。
パディングを一切行わない「Validパディング」では、端のピクセルに対してカーネルが重なる回数が少なくなり、畳み込みを通すたびに特徴マップが小さくなります。画像の端にある情報が切り捨てられてしまう問題も生じます。
これに対して、入力と同じ縦横サイズを保つように周囲に0を追加する処理を「Sameパディング(またはZero Padding)」と呼びます。画像の端に位置する情報もしっかり計算に取り込むことが可能です。
入力サイズ W、カーネルサイズ K、パディング P、ストライド S と置いた場合、
出力サイズ O は次の数式で一意に求まります。
O = (W - K + 2P) / S + 1
この計算規則を把握しておくことで、何層重ねたときにどの程度の解像度になるかを正確に見積もることができます。
全結合層と活性化関数が果たす最後の分類判断
畳み込み層とプーリング層を何回も通過させただけでは、画像の最終的なラベル(「犬」「猫」「自動車」など)を確率として出力できません。特徴抽出の後に、活性化関数による非線形変換と、全結合層による集約処理が必要です。
畳み込み計算の直後には、必ず活性化関数を通します。最も一般的に使われるのは「ReLU(Rectified Linear Unit)」です。入力が0以下の場合は0を出力し、0を超える正の値であればそのまま出力するシンプルな関数です。
ReLUを挟まなければ、どれだけ層を深く重ねても単なる線形計算の合成に過ぎず、複雑な境界線を学習できません。ReLUは計算が単純でありながら、ディープラーニングの大敵である勾配消失問題を劇的に緩和します。
複数の畳み込みとプーリングを経て凝縮された3次元の特徴マップは、最終段階で1次元の平らなベクトルへと変換されます。この平坦化(Flatten)処理の後に全結合層を1〜2層接続します。抽出された無数の特徴(耳の形、毛並み、目鼻の距離など)を総合し、各クラスへの帰属度を重み付け計算するためです。
そして出力層では「ソフトマックス関数(Softmax)」を適用します。すべての出力値の合計が1.0(100%)になるよう変換し、「犬である確率85%、猫である確率12%、自動車である確率3%」といった確率分布として最終的な推論結果を導きます。
近年では全結合層の重みパラメータ膨張を防ぐため、特徴マップごとの平均値をそのまま取り出す「グローバルアベレージプーリング(Global Average Pooling)」を採用し、全結合層そのものを最小限に抑える設計が主流です。
データ分析やモデル運用の観点からは、AIデータ分析ツールの動向を追うと活用像が明確になります。
CNNの代表的な発展アーキテクチャの系譜
CNNの歴史は、層をいかに深くしつつ勾配消失や計算量の爆発を防ぐかという挑戦の連続でした。2010年代初頭から現在に至るまで、いくつかの決定的なモデル構造が提案されています。
1998年にヤン・ルカン氏が手書き数字認識用に開発した「LeNet」がCNNの原点です。そして2012年の画像認識コンペティションILSVRCで圧勝し、ディープラーニングブームの火付け役となったのが「AlexNet」でした。AlexNetはGPUによる並列計算とReLU関数、ドロップアウトを導入し、従来手法を大きく引き離す認識精度を実証しました。
2014年には、3×3の極小カーネルのみを規則的に積み重ねた「VGG」が登場します。構造の明快さと汎用性の高さから、特徴抽出器として長く重宝されました。同じ年にGoogleが発表した「GoogLeNet」は、異なるサイズのカーネルを並列に並べたInceptionモジュールを取り入れ、パラメータ数を抑えながら高精度を叩き出しました。
そして2015年、ディープラーニングの歴史を大きく塗り替えたのが「ResNet(Residual Network)」です。それまでのCNNは、層を20層以上に深くすると学習が進まなくなる劣化問題に直面していました。ResNetは入力を数層先へそのまま足し合わせる「スキップ接続(残差接続)」を考案し、152層という驚異的な深層化を可能にしました。
現在でもResNetの残差ブロック思想は、あらゆる深層学習モデルの基礎部品として組み込まれています。
CNNとRNN・Vision Transformer(ViT)の違いとは?
画像以外のデータを扱うアルゴリズムや、近年生み出された新しい画像認識手法とCNNを比較することで、各モデルの得意不得意が鮮明になります。代表格であるRNN(再帰型ニューラルネットワーク)およびTransformerを画像に応用したViTとの違いを整理します。
RNNは文章や時系列データのように、順序に意味がある連続データを順番に処理するネットワークです。前のステップの隠れ状態を次のステップへ引き継ぎながら計算します。画像のように上下左右が同時に相互作用する2次元データの全体把握には向きません。
一方で2020年以降に急速にシェアを伸ばしたのが「Vision Transformer(ViT)」です。自然言語処理で成功したTransformerの自己注意機構(Self-Attention)を画像処理に移植したモデルです。画像を16×16ピクセルなどのパッチに分割し、パッチ同士の広域な関係性を直接計算します。
これら3つの主要な深層学習構造の違いを下表で比較します。
| 比較項目 | CNN | RNN | Vision |
|---|---|---|---|
| 主な対象データ | 画像・動画・スペクトログラム | テキスト・音声波形・時系列数値 | 画像・マルチモーダルデータ |
| 得意な処理領域 | 局所的なパターンの抽出 | 時間的な順序関係の追跡 | 画像全体の広域な関係性の把握 |
| 帰納バイアス | 強い(近接ピクセルを重視) | 強い(直前ステップを重視) | 弱い(事前知識なしに全体を学習) |
| 必要データ量 | 中規模データでも安定して学習 | 中規模データから対応 | 莫大なデータ量と事前学習が必須 |
| エッジ推論適性 | 極めて高い(計算が軽量で高速) | 中程度(並列化に難あり) | 低〜中(メモリ・計算負荷が大きい) |
CNNは「近くのピクセル同士に関係性がある」という強い前提(帰納バイアス)をあらかじめ備えているため、少ない画像データからでも堅実に学習が収束します。
対照的にViTは前提を持たずに画像全体を平等に見渡すため、膨大な画像群で事前学習させた場合にはCNNを上回る最高精度を記録します。ただしデータ量が少ない環境では学習が難しく、計算負荷も高くなります。
自動運転車の車載カメラや工場の外観検査カメラといった現場では、軽量かつ即座に推論できるCNNが不動の選択肢であり続けています。テキストや画像処理を組み合わせた高度な自動化に関心がある場合は、AIエージェントやAI自動化の分野も役立ちます。また、API経由でモデルを制御する実践的な基盤についてはFunction callingとは?AIが外部APIを操る仕組み・実装・料金まで完全ガイドでも紹介しています。
画像認識以外におけるCNNの活用領域
CNNは画像分類のためだけに作られた技術ではありません。縦横にグリッド状に並んだデータであれば、どのような領域にも畳み込みの計算ロジックを転用できます。産業界の幅広いシーンでCNNが実用化されています。
代表的な活用分野が「音声認識・音響解析」です。音声の波形データはそのままでは1次元ですが、短時間フーリエ変換を施すと、時間軸と周波数軸からなる2次元画像(スペクトログラム)へ変換できます。このスペクトログラムをCNNに入力することで、異常音の検知や話者認識、楽曲のジャンル分類を画像認識と同じ要領で高精度に実行できます。
自然言語処理においても、1次元畳み込み(1D-CNN)がテキスト分類や感情分析に利用されてきました。文章を構成する単語埋め込みベクトルを行列として並べ、連続する単語の並び(N-gram)をカーネルでスキャンして特徴を抜き出します。Transformerに比べ計算が格段に軽いため、省電力サーバーでの分類器として今なお実用されています。
さらに医療・バイオインフォマティクス領域では、MRIやCTスキャンの3次元立体スキャン画像に対して3D-CNNを適用し、腫瘍の自動検出や体積測定をおこないます。化合物の分子構造グラフを画像類似のテンソルに変換して創薬スクリーニングに役立てる事例も一般化しています。
動画編集や映像解析の自動化技術については、AI動画生成の最新ツール群や、InVideo AIの評判と口コミ|良い点・悪い点と有料プランで元が取れる人(2026年版)でも現場での活用実態を詳しく取り上げています。
CNNモデルの実装と学習を進める実践的な手順
独自のデータセットを使ってCNNを実務に導入する場合、ゼロからアーキテクチャを設計して重みを学習させるケースは少数派です。既存の学習済みモデルを再利用する「転移学習(Transfer Learning)」が定番のアプローチです。
効率的にCNNモデルを構築する手順は4段階に集約されます。
第1段階は「データセットの収集と前処理」です。解像度を一定サイズ(例: 224×224ピクセル)に揃え、RGB値の範囲を0〜1に正規化します。画像数が限られている場合は、反転、回転、明暗調整、部分拡大などをランダムに加える「データ拡張(Data Augmentation)」を実施し、学習データのバリエーションを意図的に増やします。
第2段階は「ベースモデルの選定」です。ImageNetなどの巨大データセットで学習を済ませたResNet50やEfficientNetなどをフレームワーク(PyTorchやTensorFlow)から呼び出します。自前で数百万枚の画像を用意して数週間計算させる手間を省けます。
第3段階は「ファインチューニングと学習設定」です。ベースモデルの畳み込み層(特徴抽出部)の重みを固定したまま、最上部の分類層(全結合層)だけを自前のクラス数に合わせて付け替えて訓練します。データ量に余裕がある場合は、畳み込み層の後半部分も低い学習率で一緒に再学習させます。
第4段階は「モデルの評価と軽量化」です。混同行列(Confusion Matrix)を描いて誤認識の傾向を分析します。推論速度を上げる必要がある場合は、TensorRTやONNX形式へエクスポートし、モデルの量子化(FP32からINT8への変換)を行って現場のデバイスへデプロイします。
AI PICKS編集部の判定
画像認識の現場において、CNNは枯れた技術どころか費用対効果の観点で今なお「第一候補」に据えるべき選択肢です。
研究論文やベンチマークテストではVision Transformer(ViT)が上位を独占していますが、実務での採用を一律にViTへ切り替える判断は推奨しません。ViTを実戦配備するには膨大な教師データと高性能GPUインフラが前提となり、運用コストが跳ね上がります。
中小規模のプロジェクトやエッジ推論を伴う現場では、ResNetやMobileNetといった軽量CNNをファインチューニングする手法が手堅いです。限られた画像枚数でも過学習を起こしにくく、CPUや低価格エッジボード上でも軽快に動きます。
開発工数と推論レイテンシをシビアに管理したい実務開発であれば、まずは実績のある軽量CNNから検証をスタートするのが賢明な一手です。
よくある質問(FAQ)
Q. CNNを実装する際におすすめのフレームワークは?
PyTorchが一択です。直感的なコード体系と充実したコミュニティサポートがあり、事前学習済みモデルを扱うtorchvisionライブラリも使い勝手に優れています。研究現場から実務の本番運用まで幅広く支持されています。
Q. 畳み込み層のカーネルサイズはどう決めるべき?
基本的には3×3のサイズを採用するのが通例です。5×5や7×7の大きなカーネルを少数使うよりも、3×3の小さなカーネルを多層に重ねる構成のほうが、非線形な表現力を高めつつパラメータ数を抑制できるためです。
Q. CNNの学習で過学習を防ぐ主な対策は?
データ拡張(画像の反転や回転)の適用、プーリング層の直後や全結合層でのドロップアウト(Dropout)の導入、重み減衰(L2正則化)、そして検証用データの損失推移を監視して学習を打ち切る早期終了(Early Stopping)が効果的です。
Q. なぜ全結合層の前にグローバルアベレージプーリングを使うケースが増えた?
全結合層は多数の重みパラメータを持つため過学習を起こしやすい弱点があります。特徴マップ1枚全体の数値を平均して1つの値に圧縮するグローバルアベレージプーリングを用いることで、パラメータ数を一気に削減し、過学習を大幅に抑え込めるためです。
Q. Vision TransformerがあるのにCNNを学ぶ意義はある?
あります。ViTの内部でも局所特徴を捉えるために畳み込み構造を取り入れたハイブリッドモデル(ConvNeXtなど)が数多く開発されています。計算資源が限られた現場でのエッジAI実装では依然としてCNNが主力であり、基盤技術としての実用性は揺らいでいません。
Q. カラー画像と白黒画像で畳み込みの計算はどう変わる?
入力チャンネル数が異なります。白黒画像は1チャンネルですが、カラー画像は赤・青・緑の3チャンネルです。カラー画像の場合、カーネルも3層の厚みを持ち、チャンネルごとに計算された積和の値を合算して1枚の特徴マップを生成します。
あわせて見たいツール・カテゴリ
AIの活用範囲を広げるためには、画像認識だけでなくテキスト処理や自動化の仕組みを組み合わせる視点が欠かせません。次のカテゴリや解説記事も参考にしてください。
- AI画像生成ツールの人気動向
- AIデザインツールの最新カテゴリ
- AI動画生成ツールの比較一覧
- AIデータ分析ツールの活用法
- AIエージェントによる業務自動化
- AIリサーチ向けツールの概要
- AI自動化ツールの機能比較
- AIコーディングツールの活用事例
- zetaみたいなサイトは?AIチャット類似3候補
- Sakana ChatとChatGPTを徹底比較|性能・コスト・日本語力で選ぶ答え (2026年版)
- Sakana ChatとClaudeの比較|性能・コストで選ぶAIチャット2026
CNNで画像を認識し、その結果をもとに言語モデルや自動化エージェントを動かす連携設計が、実務アプリケーション開発における王道の構成です。

