1行定義
CNNとは、小さなフィルタを入力の上でずらしながら特徴を取り出す畳み込み層を中心に組み立てた、ニューラルネットワークのことです。
くわしく
CNN(畳み込みニューラルネットワーク)は、画像認識の中心となってきたニューラルネットワークです。画像全体を一度に見るのではなく、小さな窓を少しずつずらしながら見ていく点に特徴があります。
基本の構成
- 畳み込み層:フィルタ(カーネル)と呼ぶ小さな重みの表を入力の上でずらし、重なった値と掛け合わせて合計します。結果を並べたものが特徴マップです。縦の線や角など、フィルタが表す模様がどこにどの程度あるかを示します。
- プーリング層:特徴マップの小さな領域を、最大値や平均値で1つの値にまとめます。サイズが縮み、位置のわずかなずれにも強くなります。
- 全結合層:最後に特徴をまとめ、分類などの結果を出します。近年は、大きな全結合層の代わりにグローバルアベレージプーリングを使う設計も一般的です。
畳み込みとプーリングを重ねるほど、前の層の特徴を組み合わせた、より複雑な特徴を捉えられるようになります。
全結合層だけのネットワークとの違い
全結合層だけで画像を扱うと、すべての画素とすべてのユニットを結ぶため、重みの数が膨大になります。畳み込み層は、近くの画素だけを見ます(局所結合)。さらに、同じフィルタをすべての位置で使い回します(重み共有)。このためパラメータが少なく済み、対象が画像のどこにあっても同じ特徴を見つけられます。
歴史
視覚野の単純型細胞と複雑型細胞の働きを参考にした、福島邦彦のネオコグニトロン(1980年)が原型とされます。その後、ヤン・ルカンらが誤差逆伝播法で学習するCNNを手書き数字の認識に応用し、LeNetとして知られるようになりました。2012年のILSVRCでAlexNetが大差で優勝してから、CNNは画像認識の標準的な手法になりました。
覚え方
「小さな窓で画像をなぞり、模様の地図を作る」と覚えます。
G検定での出題
出題のされ方
畳み込み層・プーリング層・全結合層の役割分担、局所結合と重み共有によってパラメータが少なく済む理由、ネオコグニトロンやLeNetからの系譜、出力サイズの計算が問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| CNNこのページの用語 | 小さなフィルタを入力の上でずらしながら特徴を取り出す畳み込み層を中心に組み立てた、ニューラルネットワーク |
| 多層パーセプトロン | 入力層と出力層の間に隠れ層をもち、各層が前の層のすべてのユニットと結合した、順伝播型のニューラルネットワーク |
違いを表で比べる
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
CNNの畳み込み層では、1枚のフィルタの重みを、入力のすべての位置で共通に使う。
答えを見る
答え ◯ 正しい
重み共有と呼ばれます。位置ごとに別の重みを持つ全結合層に比べて、パラメータ数が大幅に少なくなります。
-
CNNは画像専用の手法であり、音声や文章のような1次元の系列データには使えない。
答えを見る
答え × 誤り
1次元の畳み込みを使えば、音声の波形や文章などの系列データにも適用できます。音声生成のWaveNetも畳み込みを使ったモデルです。
-
層を重ねたCNNでは、入力に近い層ほど線や色の変化のような単純な特徴を、出力に近い層ほど物体の部品のような複雑な特徴を捉える傾向がある。
答えを見る
答え ◯ 正しい
後ろの層は、前の層の特徴を組み合わせて、より広い範囲の複雑な模様を表せるようになるためです。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目18 畳み込み層)
- Yann LeCun, Léon Bottou, Yoshua Bengio, Patrick Haffner, Gradient-Based Learning Applied to Document Recognition, Proceedings of the IEEE 86(11), 2278–2324 (1998)
- Kunihiko Fukushima, Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position, Biological Cybernetics 36, 193–202 (1980)
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press (2016) (9 Convolutional Networks)