【シーエヌエヌ】
CNN とは?
💡 画像の特徴を段階的に見抜く「AIの目」
📌 このページのポイント
- 正式名称は「Convolutional Neural Network(畳み込みニューラルネットワーク)」
- 畳み込み層でフィルタを使って画像の局所的な特徴(エッジ・模様など)を抽出する
- プーリング層で特徴マップを縮小し、位置ずれに強い表現を作る
- 画像分類・物体検出・セグメンテーションなど画像系タスクの基盤技術
畳み込みって何をしてるの?
層が深くなると何が変わるの?
最初の層は「エッジ」や「色の変化」みたいな単純な特徴を見つけて、次の層はそれを組み合わせて「目」や「車輪」みたいなパーツを認識する。さらに深い層では「猫の顔」「自動車」みたいな複雑な概念を理解するんだ。階層的に抽象度が上がるのがポイントだよ。
CNN以外に画像認識の方法ってあるの?
最近はVision Transformer(ViT)という、自然言語処理で成功したTransformerを画像に応用したモデルも人気だよ。画像をパッチ(小さな区画)に分割してTransformerで処理するんだ。ただCNNは計算効率が良くて実績も豊富だから、今でも広く使われているよ。
CNNの「畳み込み」って具体的に何をしてるの?
小さなフィルター(たとえば3×3のマス目)を画像の上で少しずつずらしながら、フィルターと重なった部分の数値を掛け算して足し合わせるんだ。縦線を検出するフィルター、横線を検出するフィルターなど、様々なパターンを自動的に学習するよ。実はCNNのアイデアは1980年代に日本のNHK放送技術研究所の福島邦彦氏が提案した「ネオコグニトロン」が先駆けなんだ。これをヤン・ルカンがバックプロパゲーションで学習可能にしたのが現在のCNNで、手書き数字認識(MNIST)から始まって今や自動運転の目にまでなっているよ。
まとめ:ざっくりこれだけ覚えればOK!
「CNN」って出てきたら「フィルタで画像の特徴を段階的に抽出して認識する、画像認識の定番ニューラルネットワークだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「Convolutional Neural Network」 = 畳み込みニューラルネットワーク
💬 「Convolution(畳み込み)」は数学の演算の一種。フィルタを画像上でスライドさせて特徴を抽出する処理がこの演算に似ていることから名付けられたよ