【シーエヌエヌ】

CNN とは?

最終更新:
💡 画像の特徴を学ぶ「AIの目」

畳み込み層を使って、局所的なパターンを学習するニューラルネットワーク。画像認識でよく使われ、1次元の信号などにも応用される。

📌 このページのポイント
CNN:局所の特徴を学習して使う 画像分類の構成例 入力画像 畳み込み層 同じフィルタ 特徴マップ プーリング 縮小する例 必須ではない 分類の処理 全結合層など 特徴を使う 分類結果 猫・犬など 候補を判断 フィルタの値は学習で調整する 畳み込み・活性化などを重ねる構成もある
画像分類の構成を簡略化した例。矢印はデータの流れで、活性化や畳み込みの反復は省略している。プーリングや全結合層が全CNNに必須なわけではない。
ひよこ ひよこ
畳み込みって何をしてるの?
ペンギン先生 ペンギン先生
例えば3×3のフィルタを画像上でずらし、重なった値を掛け算して足し合わせるよ。実際には複数の入力チャネルやバイアスも扱う。同じフィルタを各位置に使い、フィルタの値は学習で調整する。人が全ての線や角の検出規則を手作業で決めるわけではないんだ
ひよこ ひよこ
層が深くなると何が変わるの?
ペンギン先生 ペンギン先生
前の層が抽出した特徴を、次の層が組み合わせて使えるよ。単純な特徴から複雑な形の表現へ、と考えると理解しやすい。ただし「何層目は必ず目を認識する」という固定の役割ではなく、学習データや構成で変わるんだ。プーリングを使うかどうかも構成によるよ
ひよこ ひよこ
CNN以外に画像認識の方法ってあるの?
ペンギン先生 ペンギン先生
Vision Transformer(ViT)もあるよ。画像を小さなパッチへ分け、その列をTransformerで処理する方法なんだ。どちらが速いか、どれくらい正確かは、モデルやデータ、実行環境で比較しよう。CNNという名前だけで常に計算効率が良いとは決まらないよ
ひよこ ひよこ
CNNはいつごろから研究されているの?
ペンギン先生 ペンギン先生
先駆的な研究には、福島邦彦氏の1980年のネオコグニトロン論文があるよ。層を重ねて視覚パターンを認識する構成を提案したものだね。LeCunらの1998年の論文では、勾配に基づく学習とCNNを手書き文字・文書認識に用いている。手書き文字認識は、早い時期からの代表的な応用なんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「CNN」って出てきたら「フィルタで画像の特徴を段階的に抽出して認識する、画像認識の定番ニューラルネットワークだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Convolutional Neural Network」 = 畳み込みニューラルネットワーク
💬 convolutionは数学の「畳み込み」を指すよ。CNNではフィルタをずらして掛け合わせる処理を畳み込みと呼び、PyTorchのConv2dなどは厳密には相互相関として定義しているんだ

参考資料

← 用語集にもどる