G検定 › Web参考書 › 第5章

畳み込み層(カーネル・フィルタ、ストライド、パディング、特徴マップ、パラメータ数)

第5章 ディープラーニングの要素技術 / 節 2

シラバスのキーワード: 畳み込み操作カーネルフィルタ特徴マップストライドパディング畳み込みニューラルネットワーク (CNN)Dilated ConvolutionAtrous ConvolutionDepthwise Separable Convolution

本文を読んだあと、覚えているか確認してください。

マンガで学ぶ 畳み込みとプーリング

Ai と みお の4ページ。上から順に読んでください。

畳み込みとプーリングの解説マンガ 1/4ページ畳み込みとプーリングの解説マンガ 2/4ページ畳み込みとプーリングの解説マンガ 3/4ページ畳み込みとプーリングの解説マンガ 4/4ページ

このマンガのページ マンガ一覧

畳み込み操作

小さなフィルタ(カーネル、例えば3×3)を入力の上でずらしながら、重なる部分の積和を計算して1つの値を出す操作です。出力を特徴マップといい、フィルタの枚数が出力のチャネル数になります。学習によって各フィルタはエッジや模様など異なる特徴に反応するようになります。

ストライドとパディング

パディングなし・ストライド1のとき、出力サイズは「入力サイズ − フィルタサイズ + 1」です。5×5の入力に3×3のフィルタなら3×3、幅1のゼロパディングを加えると5×5になります。

パラメータ数

フィルタ1枚の重みは「フィルタの縦×横×入力チャネル数」で、これにフィルタ枚数を掛け、フィルタごとのバイアスを足します。RGB入力に3×3のフィルタ16枚なら 3×3×3×16+16 = 448 個です。入力画像のサイズによらない点が全結合層との違いです。

全結合層との違い

畳み込み層は近くのピクセルだけを見る局所性と、同じフィルタを画像全体で使い回すパラメータ共有によって、パラメータ数を大幅に減らし、位置のずれに強い特徴を抽出します。隣接要素に相関があり、同じパターンがどこに現れても同じ意味を持つデータ(画像、音声のスペクトログラム、時系列)に適しています。

派生手法

試験で問われる観点

この節の練習問題(10問)

答えを見る前に選んでから開いてください。同じ問題は章別演習でランダム出題されます。

  1. 問1
    畳み込み層に関する用語の説明として、最も適切なものを選びなさい。
    1. 1特徴マップと呼ばれる小さな重みの行列を入力上でずらしながら積和演算を行い、その結果を並べた出力をカーネル(フィルタ)という
    2. 2カーネル(フィルタ)は入力の各領域から最大値や平均値を取り出して縮小する窓のことで、その出力を並べたものをストライドという
    3. 3カーネル(フィルタ)と呼ばれる小さな重みの行列を入力上でずらしながら積和演算を行い、その結果を並べた出力を特徴マップという
    4. 4カーネル(フィルタ)と呼ばれる入力画像と同じ大きさの重み行列で1回の積和演算を行う処理を畳み込みといい、その結果をプーリングという
    答えと解説

    正解: 3

    畳み込み層では、3×3などの小さなカーネル(フィルタ)を入力の左上から順にスライドさせ、重なった領域の要素ごとの積の和を計算します。その結果を2次元に並べたものが特徴マップで、カーネルの種類ごとに1枚ずつ得られます。同じカーネルを画像全体で共有するため、全結合層に比べてパラメータが大幅に少なく、位置に依らず同じ特徴を検出できます。

  2. 問2
    畳み込み層のハイパーパラメータである「ストライド」と「パディング」の説明の組み合わせとして正しいものを選びなさい。
    1. 1ストライド: 入力の周囲に0などの値を追加して、出力サイズの縮小を防いだり端の情報を活かしたりする処理。パディング: カーネルを動かす間隔
    2. 2ストライド: 1つの層で用いるカーネルの枚数。パディング: 特徴マップの小領域ごとに最大値を取って縮小し、位置のずれに対する不変性を得る処理
    3. 3ストライド: カーネルの縦横のサイズ。パディング: 出力の各チャネルをミニバッチ単位で正規化して、学習を安定させたり収束を速めたりする処理
    4. 4ストライド: カーネルを動かす間隔。パディング: 入力の周囲に0などの値を追加して、出力サイズの縮小を防いだり端の情報を活かしたりする処理
    答えと解説

    正解: 4

    ストライドはカーネルを何画素ずつ動かすかを表し、大きくすると出力の特徴マップが小さくなります。パディングは入力の外周に0などを付け加える処理で、畳み込みのたびにサイズが縮むのを防ぎ、端の画素も中央と同じように処理できるようにします。両者を入れ替えた説明は誤りです。カーネルの枚数は出力チャネル数、小領域ごとに最大値を取るのはプーリング、ミニバッチ単位で正規化するのはバッチ正規化で、ストライドやパディングの意味ではありません。

  3. 問3
    全結合層と比較したときの畳み込み層の特徴として、最も適切なものを選びなさい。
    1. 1同じカーネルを入力全体で共有するためパラメータ数が少なく、局所的な特徴を位置に依らず検出できる
    2. 2入力のすべての画素と出力のすべてのノードが結合するためパラメータ数が多く、位置ごとに異なる特徴を検出できる
    3. 3入力の順序や位置関係を無視して処理するためパラメータ数が少なく、時系列データや表形式データに適している
    4. 4画素ごとに独立した重みを持ちカーネルを共有しないため、同じ特徴でも現れる位置が変わると検出できない
    答えと解説

    正解: 1

    畳み込み層は、小さなカーネルを入力の各位置で共有する(パラメータ共有)ため、全結合層に比べてパラメータ数が桁違いに少なく、また画像内のどこにあっても同じ模様を検出できます。近くの画素同士の関係(局所性)を活かせることから、画像のような格子状のデータに適しています。全結合層は入力と出力のすべてが結合し、畳み込み層は音声や文章の1次元データにも適用できます。

  4. 問4
    畳み込みの派生手法の説明として、最も適切なものを選びなさい。
    1. 1Dilated(Atrous)Convolutionはプーリング層の代わりにストライドを大きくして解像度を下げる手法で、Depthwise Separable Convolutionは複数の解像度の特徴マップを結合して物体の大きさの変化に対応する手法である
    2. 2Dilated(Atrous)Convolutionはカーネルの要素の間隔を空けることでパラメータを増やさずに受容野を広げる手法で、Depthwise Separable Convolutionはチャネルごとの畳み込みと1×1畳み込みに分解して計算量を減らす手法である
    3. 3Dilated(Atrous)Convolutionはカーネルを大きくして受容野を広げる手法でパラメータ数はその分増え、Depthwise Separable Convolutionは全結合層を1×1畳み込みに置き換えて位置情報を保つ手法である
    4. 4Dilated(Atrous)Convolutionはチャネルごとの畳み込みと1×1畳み込みに分解して計算量を減らす手法で、Depthwise Separable Convolutionはカーネルの要素の間隔を空けて受容野を広げる手法である
    答えと解説

    正解: 2

    Dilated Convolution(Atrous Convolution)は、カーネルの要素を飛び飛びに配置して、同じパラメータ数で広い範囲(受容野)を見られるようにする手法で、セマンティックセグメンテーションのDeepLabなどで使われます。Depthwise Separable Convolutionは、通常の畳み込みを「チャネルごとに独立した空間方向の畳み込み」と「1×1畳み込みによるチャネル方向の結合」に分解して計算量とパラメータを大幅に減らす手法で、MobileNetの中核です。

  5. 問5
    入力が3チャネル(RGB)のカラー画像で、3×3のフィルタを16枚持つ畳み込み層のパラメータ数(重みとバイアスの合計)として正しいものを選びなさい。
    1. 1448
    2. 2144
    3. 3160
    4. 4432
    答えと解説

    正解: 1

    フィルタ1枚の重みは 3×3×3チャネル=27個で、16枚なので重みは 27×16=432個です。これに各フィルタに1つずつ付くバイアス16個を加えて448個になります。入力画像のサイズによらずパラメータ数が決まる点が、全結合層との大きな違いです。

  6. 問6
    5×5の入力に対し、3×3のフィルタをストライド1、パディングなしで畳み込んだときの出力の特徴マップのサイズとして正しいものを選びなさい。
    1. 17×7
    2. 23×3
    3. 34×4
    4. 45×5
    答えと解説

    正解: 2

    パディングなしの場合、出力サイズは「入力サイズ − フィルタサイズ + 1」で計算でき、5−3+1=3 なので3×3になります。入力の周囲に幅1のゼロパディングを加えると出力は5×5となり入力と同じサイズを保てます。ストライドを2にすると出力はさらに小さくなります。

  7. 問7
    畳み込み層のフィルタの枚数と出力の関係の説明として、最も適切なものを選びなさい。
    1. 1フィルタの枚数は入力のチャネル数と一致させる必要があり、RGB画像なら3枚、グレースケール画像なら1枚のフィルタを用いる
    2. 21つの畳み込み層に置けるフィルタは1枚であり、縦線や横線など複数の特徴を抽出するには、特徴の種類ごとに層を分ける必要がある
    3. 3フィルタの枚数は出力の特徴マップのチャネル数に対応し、フィルタごとに異なる特徴(縦線、横線、色の変化など)を抽出する
    4. 4フィルタの枚数は出力の特徴マップの縦横のサイズに対応し、枚数を増やすほど出力の解像度が高くなり細かな特徴を抽出できる
    答えと解説

    正解: 3

    畳み込み層は複数のフィルタを持ち、各フィルタが入力全体に適用されて1枚の特徴マップを出力します。したがってフィルタの枚数が出力のチャネル数になります。学習によって各フィルタはエッジや模様など異なる特徴に反応するようになります。出力の縦横サイズはフィルタサイズ・ストライド・パディングで決まり、枚数は入力チャネル数とは独立に設定できます。

  8. 問8
    次のデータのうち、畳み込み層の適用が最も適しているものを選びなさい。
    1. 1各項目が互いに独立で並び順に意味がなく、隣接する項目の間に相関がないアンケートの回答データ
    2. 2商品IDと購入数だけを記録し、隣接するレコード同士に関係がなく順序が意味を持たない購買データ
    3. 3顧客ごとの年齢・年収・居住地域などを列に持ち、列の順序を入れ替えても意味が変わらない表形式データ
    4. 4隣接するピクセル同士に強い相関があり、同じ模様が画像のどこに現れても同じ意味を持つ画像データ
    答えと解説

    正解: 4

    畳み込み層は、近くの要素同士に関係があり(局所性)、同じパターンがどの位置に現れても同じ意味を持つ(並進不変性)データに適しています。画像がその典型で、音声のスペクトログラムや時系列にも応用されます。列の並び順に意味がない表形式データやアンケート、購買データにはこれらの性質がなく、畳み込みの利点が生かせません。

  9. 問9
    スマートフォン上で動く画像分類モデルを作るため、精度を大きく落とさずに畳み込み層の計算量を減らしたい。最も適切な方法を選びなさい。
    1. 1Depthwise Separable Convolutionを使う
    2. 2Dilated Convolutionを使い、より広い受容野で特徴を見る
    3. 33×3のフィルタを7×7の大きなフィルタに替える
    4. 4畳み込み層をすべて全結合層に置き換える
    答えと解説

    正解: 1

    Depthwise Separable Convolutionは、チャネルごとの空間方向の畳み込みと1×1のチャネル方向の畳み込みに分けて計算量を削減する手法で、MobileNetで使われています。Dilated Convolutionはパラメータを増やさずに受容野を広げる手法で、計算量の削減が目的ではありません。大きなフィルタや全結合層への置き換えは、パラメータ数と計算量をかえって増やします。

  10. 問10
    畳み込み層に関する記述として、不適切なものを選びなさい。
    1. 1ストライドを大きくすると、出力の特徴マップは小さくなる
    2. 2パディングを加えると、端の情報を使い出力サイズを保てる
    3. 3パラメータ数は、入力画像のサイズに比例して増える
    4. 4学習により、各フィルタはエッジや模様などに反応するようになる
    答えと解説

    正解: 3

    畳み込み層のパラメータ数は、フィルタの縦×横×入力チャネル数にフィルタ枚数を掛け、バイアスを足したもので、入力画像のサイズによりません。これが全結合層との違いです。ストライドを大きくすると出力が小さくなること、パディングで端の情報を使い出力サイズを保てること、各フィルタが異なる特徴に反応するよう学習されることは正しい記述です。