プログラミングの用語一覧へ
このページの目次

畳み込み層とは?

最終更新:2026/08/18

3秒でわかる

小さなフィルタを画像の上で滑らせ、輪郭や模様といった特徴を取り出す層。少ない重みで位置のずれに強く、画像認識のモデルの中心を担います。

もう少し詳しく

どういうものか

畳み込み層は、小さなフィルタ(カーネル)を入力の上で少しずつずらしながら重ね合わせ、その都度の積和を並べて新しい画像状のデータを作る層です。出てくるデータを特徴マップと呼びます。フィルタの数値は学習で決まり、縦の輪郭に強く反応するもの、特定の模様に反応するものといった役割を、モデルが自分で獲得していきます。

なぜ必要か

画像をそのまま全結合層へ流すと、28 かける 28 の小さな画像でも 784 個の入力になり、少し大きい画像では重みの数が現実的でなくなります。加えて、猫が画面の左にいても右にいても同じ猫だ、という当たり前の性質を学ぶために、位置ごとの学習をやり直す羽目になります。畳み込みは同じフィルタを全体で使い回すので、重みの数が桁違いに少なく、位置がずれても同じ特徴を拾えます。

具体例

import torch.nn as nn layer = nn.Conv2d( in_channels=3, # 入力はRGBの3<a href="/glossary/channel" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">チャンネル</a> out_channels=32, # フィルタを32枚使う kernel_size=3, # 3x3のフィルタ stride=1, # 1画素ずつずらす padding=1, # 周囲を埋めて大きさを保つ )

出力の大きさは、入力の辺の長さから計算できます。

出力 = (入力 + パディング*2 - カーネル) / ストライド + 1 = (32 + 1*2 - 3) / 1 + 1 = 32

つまずきやすいところ

パディングを 0 のままフィルタを重ねると、層を通るたびに縦横が縮み、深い構成では途中で大きさが尽きます。3 かける 3 のフィルタなら padding を 1 にすると大きさが保たれます。もうひとつは入力の形の取り違えで、PyTorch はチャンネルが前、TensorFlow は後ろという並びの違いがあり、そのまま渡すと次元が合わずエラーになります。フィルタ枚数を増やすと表現力は上がりますが、計算時間はほぼ比例して伸びます。

似た用語との違い

役割
畳み込み層フィルタで局所的な特徴を抽出する
プーリング層領域をまとめて縮小し、位置のずれに強くする
全結合層抽出済みの特徴から最終的な分類を出す


覚え方

同じ虫めがねを画像の全域で使い回す層、と考えると要点を外しません。使い回すからこそ重みが少なく済み、被写体がどこに写っていても同じ特徴として拾えます。層を重ねるほど、輪郭から部品、部品から物体全体へと、見えるものの単位が大きくなっていきます。

知識のつながり

サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

現在地畳み込み層プログラミング

LEARN BY DOING

この用語を、教材で使ってみる

直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

AI活用コースの全編を見る