Web教科書

畳み込みニューラルネットワーク(畳み込み、プーリング、全結合)

徹底解説 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
=

反応(大きな値!)

3

このように、「画像にある形」と「フィルターの形」が一致すると、掛け算の結果が大きくなります(ニューロンが発火する)。

逆に、画像が「横線」なのに「斜め線フィルター」を当てても、形が合わないため結果は「0」に近くなります。

つまり畳み込み層とは、大量のフィルターを使って「この画像には、どこに斜め線があり、どこに角があるか?」というパーツの地図(特徴マップ)を作っているのです。

2. 犬や猫はどうやって認識する?(層の深さと特徴)

では、ただの「線」や「角」を見つけるだけで、なぜ複雑な「猫」などがわかるのでしょうか。ここで重要になるのが「ディープ(層が深い)」という点です。

CNNは何層にも重なってできており、奥の層に行くほど「組み合わせ」を見ていきます。

【第1段階:浅い層】単純な形を見つける
「縦線」「横線」「斜め線」などの単純なエッジを検出します。
(生物の脳でいうと「単純型細胞」の働き)
【第2段階:中間の層】パーツを見つける
第1段階で見つけた線を組み合わせて、「尖った形(耳)」「丸い形(目)」「独特のカーブ(鼻)」などを検出します。
【第3段階:深い層】物体全体を見つける
「尖った耳」+「丸い目」+「ヒゲ」=「これは猫だ!」と判断します。
もし「垂れた耳」+「長い鼻」なら「犬」と判断します。

このように、単純な図形の発見を積み重ねていくことで、最終的に複雑な物体を認識しているのです。

3. プーリングは「だいたい合ってればOK」にする処理

次にプーリング層の役割です。これは画像の情報を圧縮する処理ですが、同時に「位置のズレを許容する」という重要な役割があります。

例えば、猫の写真を撮るとき、猫が画像の「真ん中」にいることもあれば、少し「右端」にいることもありますよね。

  • プーリングがない場合:
    「右に1cmズレているから、これはさっき学習した猫とは別物だ!」と判定してしまう可能性があります。
  • プーリングがある場合(Maxプーリング):
    「このエリア(例えば2×2マス)の中に、猫の耳っぽい特徴(最大値)があればOK!」という処理をします。

耳が左上にある場合

7 1
2 0
どちらも
最大値は同じ

耳が右下にズレた場合

1 2
0 7

結果は同じ

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など)を通常のニューラルネットワークに入力し、最終的な答えを出します。

イメージとしては、以下のような流れです。

  1. 畳み込み・プーリング: 「耳が尖っている」「目が丸い」などの材料(特徴)を集める。
  2. 全結合層: 「耳が尖っていて、目が丸いなら……それは猫だ!」と結論を出す。

まとめ:G検定攻略の視点

計算式だけでなく、それぞれの「役割」をイメージしておくと理解が早まります。

  • 畳み込み層 = 「虫眼鏡」
    画像の中から「特定のパーツ(線や角など)」を見つけ出す。
  • プーリング層 = 「要約」
    細かい位置の違いを無視して、「重要な特徴があるかどうか」だけを残す。
タイトルとURLをコピーしました