「カーネル」という用語は、CNNの畳み込み層とサポートベクターマシン(SVM)の両方で使われる。それぞれのカーネルに関する説明として、最も不適切なものを1つ選べ。
正解と解説を見る
解説
正解 D
この問題の論点:CNNとSVMのカーネルの違い
ポイント
CNNのカーネルは学習で値が決まる重みの配列です。SVMのカーネルは、設計者が選ぶ内積計算のための関数です。
選択肢ごとの解説
- A
適切
CNNのカーネルは3×3などの小さな重みの配列で、入力の上をずらしながら積和を計算します。入力が複数チャネルのとき、チャネルごとの2次元の配列をカーネル、それを束ねた全体をフィルタと呼び分けることもあります。
- B
適切
フィルタサイズや枚数は、学習の前に設計者が決めます。一方、カーネルの各値は重みとして初期化され、誤差逆伝播法で求めた勾配にもとづいて更新されます。人がフィルタを設計していた従来の画像処理との大きな違いです。
- C
適切
この工夫をカーネルトリックと呼びます。写像後の空間が非常に高次元でも、元の空間で内積の値だけを計算すればよいため、計算量を抑えたまま非線形な境界を学習できます。
- D
不適切 正解
SVMでは、ガウスカーネル(RBFカーネル)や多項式カーネルなどの関数の形を設計者が選び、その幅などのハイパーパラメータは交差検証などで決めます。学習で求めるのは各データに付く係数で、誤差逆伝播法は使いません。
試験での狙われ方
CNNのカーネルとSVMのカーネル関数のように、同じ名前で意味の違う用語は、説明を入れ替えた選択肢で取り違えやすいので注意します。
参考
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目18 畳み込み層)
- Goodfellow, Bengio, Courville, Deep Learning (2016) (9.1 The Convolution Operation)
- Cortes and Vapnik, Support-Vector Networks, Machine Learning 20 (1995)