徹底解説 AIを理解するためのディープラーニング:畳み込みとプーリング
G検定などのAI学習で必ず登場するCNN(畳み込みニューラルネットワーク)。数式や計算手順は学んだけれど、「結局どうやって犬や猫を見分けているの?」というイメージが湧きにくいという方も多いのではないでしょうか。
この記事では、畳み込みとプーリングの計算の意味を、「具体的な図形や動物のパーツ」に例えてわかりやすく解説します。
この記事のポイント
- 畳み込み:画像の中から「特定のカタチ(パーツ)」を探し出す処理
- プーリング:パーツが「少しズレていてもOK」にする処理
- 層を重ねることで、「線」→「目・耳」→「猫」と理解が深まる
1. 畳み込みの正体は「パーツ探し」
畳み込み計算で登場する「フィルター(カーネル)」は、一言で言うと「探したい形の型抜き」のようなものです。
例えば、手書きの「7」という数字を認識させたいとします。「7」は「ー(横棒)」と「/(斜め線)」と「90度の角」で構成されています。CNNは学習を通して、自動的に次のようなフィルターを作り出します。
- フィルターA:「ー(横棒)」に反応するフィルター
- フィルターB:「/(斜め線)」に反応するフィルター
- フィルターC:「角(カド)」に反応するフィルター

これらを画像の上でスライドさせることで、「ここに横棒がある!」「ここに角がある!」という発見(特徴抽出)を行っているのです。
【図解】「斜め線」を見つける仕組み
前回の計算式を「形」として捉え直してみましょう。画像の中に「斜め線(\)」がある場合、同じ形のフィルターを通すとどうなるでしょうか。
画像(ここに斜め線がある)
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
フィルター(斜め線検出用)
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |
反応(大きな値!)
このように、「画像にある形」と「フィルターの形」が一致すると、掛け算の結果が大きくなります(ニューロンが発火する)。
逆に、画像が「横線」なのに「斜め線フィルター」を当てても、形が合わないため結果は「0」に近くなります。
つまり畳み込み層とは、大量のフィルターを使って「この画像には、どこに斜め線があり、どこに角があるか?」というパーツの地図(特徴マップ)を作っているのです。
2. 犬や猫はどうやって認識する?(層の深さと特徴)
では、ただの「線」や「角」を見つけるだけで、なぜ複雑な「猫」などがわかるのでしょうか。ここで重要になるのが「ディープ(層が深い)」という点です。
CNNは何層にも重なってできており、奥の層に行くほど「組み合わせ」を見ていきます。
- 【第1段階:浅い層】単純な形を見つける
- 「縦線」「横線」「斜め線」などの単純なエッジを検出します。
(生物の脳でいうと「単純型細胞」の働き) - 【第2段階:中間の層】パーツを見つける
- 第1段階で見つけた線を組み合わせて、「尖った形(耳)」「丸い形(目)」「独特のカーブ(鼻)」などを検出します。
- 【第3段階:深い層】物体全体を見つける
- 「尖った耳」+「丸い目」+「ヒゲ」=「これは猫だ!」と判断します。
もし「垂れた耳」+「長い鼻」なら「犬」と判断します。

このように、単純な図形の発見を積み重ねていくことで、最終的に複雑な物体を認識しているのです。
3. プーリングは「だいたい合ってればOK」にする処理
次にプーリング層の役割です。これは画像の情報を圧縮する処理ですが、同時に「位置のズレを許容する」という重要な役割があります。
例えば、猫の写真を撮るとき、猫が画像の「真ん中」にいることもあれば、少し「右端」にいることもありますよね。
- プーリングがない場合:
「右に1cmズレているから、これはさっき学習した猫とは別物だ!」と判定してしまう可能性があります。 - プーリングがある場合(Maxプーリング):
「このエリア(例えば2×2マス)の中に、猫の耳っぽい特徴(最大値)があればOK!」という処理をします。
耳が左上にある場合
| 7 | 1 |
| 2 | 0 |
最大値は同じ
耳が右下にズレた場合
| 1 | 2 |
| 0 | 7 |
結果は同じ
このように、特徴(値「7」)が枠内のどこにあっても、プーリング後には同じ「7」として出力されます。これにより、「だいたいこの辺に耳があれば猫」という、柔軟な認識が可能になるのです。
(生物の脳でいうと、空間的な位置ズレを吸収する「複雑型細胞」の働きに似ています)
4. 最後の仕上げ:全結合層(Fully Connected Layer)
畳み込みとプーリングを何度か繰り返すと、画像は元の形を失い、「特徴の強さ」を表す数値のブロック(特徴マップ)に変化しています。
しかし、最終的に欲しいのは「これは犬:80%、猫:20%」という確率の数字です。この最終判断を行うのが全結合層です。
データを一列に並べる「平坦化(Flattening)」
全結合層に通す前に、ブロック状になっているデータ(2次元・3次元)を、横一列のデータ(1次元)にバラす必要があります。これを平坦化(フラットニング)と呼びます。
特徴マップ
| 7 | 6 |
| 8 | 5 |
(2次元データ)
平坦化
| 7 |
| 6 |
| 8 |
| 5 |
(1次元データ)
全結合層(判定)
- 猫
80%
- 犬
20%
このように、抽出された特徴(7, 6, 8, 5など)を通常のニューラルネットワークに入力し、最終的な答えを出します。
イメージとしては、以下のような流れです。
- 畳み込み・プーリング: 「耳が尖っている」「目が丸い」などの材料(特徴)を集める。
- 全結合層: 「耳が尖っていて、目が丸いなら……それは猫だ!」と結論を出す。
まとめ:G検定攻略の視点
計算式だけでなく、それぞれの「役割」をイメージしておくと理解が早まります。
- 畳み込み層 = 「虫眼鏡」
画像の中から「特定のパーツ(線や角など)」を見つけ出す。 - プーリング層 = 「要約」
細かい位置の違いを無視して、「重要な特徴があるかどうか」だけを残す。
