1行定義
カーネル(畳み込み)とは、CNNの畳み込み層で入力の上をずらしながら当てる小さな重みの配列で、局所的な特徴を取り出す役割をもつもののことです。
くわしく
カーネルは、CNN(畳み込みニューラルネットワーク)の畳み込み層で使う、3×3や5×5などの小さな重みの配列です。シラバスでは「カーネル」が教師あり学習と畳み込み層の両方に出てくるため、このページではSVMのカーネルと区別して「カーネル(畳み込み)」と表記しています。
畳み込みでの働き
カーネルを入力画像の左上に重ね、重なった画素の値とカーネルの値を掛け合わせて合計します。この合計にバイアスを加えた値が、出力の1マスになります。カーネルを少しずつずらしながら同じ計算を繰り返すと、特徴マップができあがります。カーネルが表す模様に似た部分ほど、大きな値が出ます。
従来の画像処理では、縦のエッジを強調するSobelフィルタのように、カーネルの値を人が設計していました。CNNでは、カーネルの値は重みとして誤差逆伝播法で学習されます。人が決めるのは、カーネルの大きさや枚数です。
フィルタとの関係
カーネルとフィルタは、ほぼ同じ意味で使われることの多い言葉です。厳密には、カラー画像のように複数のチャネルをもつ入力では、チャネルごとのカーネルを束ねたものを1枚のフィルタと呼びます。3チャネルの入力に3×3のフィルタを使うなら、1枚あたり3×3×3=27個の重みをもちます。フィルタの枚数が、出力される特徴マップのチャネル数になります。
大きさの選び方
カーネルが大きいほど一度に広い範囲を見られますが、重みが増えます。VGGは3×3の小さなカーネルを何層も重ね、少ない重みで広い範囲を見る構成をとりました。出力の縦横の大きさは、入力の大きさをW、カーネルの大きさをK、パディングをP、ストライドをSとして、(W + 2P − K) ÷ S + 1で求めます。割り切れないときは、割り算の結果の小数点以下を切り捨てます。
SVMのカーネルとの違い
SVMのカーネルは、データを高次元の空間に写したときの内積を、写像を計算せずに求める関数のことで、別物です。
覚え方
「画像の上をすべっていく、小さな重みの窓」と覚えます。
G検定での出題
出題のされ方
フィルタとの関係、カーネルの大きさと出力サイズやパラメータ数の計算、値を人が設計せず学習で求める点、SVMのカーネルとの取り違えが問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| カーネル(畳み込み)このページの用語 | CNNの畳み込み層で入力の上をずらしながら当てる小さな重みの配列で、局所的な特徴を取り出す役割をもつもの |
| カーネルトリック | データを高次元の空間に写像したあとの内積を、写像を直接計算せずにカーネル関数で元の空間のまま求める、計算上の工夫 |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
3チャネルの画像に、3×3のカーネルをもつフィルタを64枚適用する畳み込み層の重みの数は、バイアスを除くと1,728個である。
答えを見る
答え ◯ 正しい
フィルタ1枚の重みは3×3×3=27個で、それが64枚なので27×64=1,728個です。バイアスを64個加えると1,792個になります。
-
CNNのカーネルの値は、エッジ検出などの目的に合わせて、人があらかじめ設計して与える。
答えを見る
答え × 誤り
カーネルの値は重みとして、誤差逆伝播法による学習で決まります。人が決めるのは、カーネルの大きさや枚数などのハイパーパラメータです。
-
ストライドが1でチャネル数も変えない場合、3×3のカーネルの畳み込み層を2層重ねると、5×5のカーネルの層1つと同じ広さの入力範囲を見られ、重みの数も少なく済む。
答えを見る
答え ◯ 正しい
入力と出力のチャネル数をどちらもCとすると、3×3を2層では18C²個、5×5を1層では25C²個の重みです。VGGが小さなカーネルを重ねた理由の1つです。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目18 畳み込み層)
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press (2016) (9 Convolutional Networks)
- Karen Simonyan, Andrew Zisserman, Very Deep Convolutional Networks for Large-Scale Image Recognition (2014)
- 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)