2026年版・4-2

CNNの構造と計算の一問一答

G検定(ジェネラリスト検定)「ディープラーニングの要素技術」から、CNNの構造と計算に関する4択問題を10問。「答えと解説を見る」を開くと、正解とその理由がその場で読めます。会員登録は不要です。

この分野の演習

全10問/解説つき・基本無料

アプリ形式で解く(全480問) ディープラーニングの要素技術の要点解説を読む
問題

上から順に解いてみてください。答えは各問の下で確認できます。本試験は多肢選択式で、問い方は問題ごとに異なりますが、ここでは4択で出題しています。

問14-2

縦横32×32、3チャネル(RGB)の画像に、5×5のフィルタを10枚使い、ストライド1、パディング2で畳み込みを行う。出力される特徴マップの形(縦×横×チャネル数)として、最も適切なものを1つ選びなさい。

  • ①32×32×10
  • ②32×32×3
  • ③28×28×10
  • ④32×32×30
答えと解説を見る
正解 ①32×32×10
解説
縦横の大きさは「(入力+2×パディング−フィルタ)÷ストライド+1」で求めます。(32+2×2−5)÷1+1=32なので、縦横は入力と同じ32×32です。
出力のチャネル数は、使ったフィルタの枚数で決まります。フィルタ1枚は入力の3チャネルすべてにまたがって計算し、1枚の特徴マップを出力するため、10枚のフィルタからは10チャネルの特徴マップが得られます。したがって出力の形は32×32×10です。

他の選択肢が不適切な理由
・32×32×3:出力のチャネル数を入力のチャネル数(3)のままにしています。出力のチャネル数はフィルタの枚数で決まります。
・28×28×10:パディングを0として計算した縦横の大きさで、この問題のパディング2を見落としています。
・32×32×30:入力のチャネル数(3)とフィルタの枚数(10)を掛けた値をチャネル数にしています。フィルタ1枚は全チャネルの結果を足し合わせて1枚の特徴マップにします。

覚え方のポイント
畳み込み層の出力は「縦横=出力サイズの式」「チャネル数=フィルタの枚数」の2つで決まります。入力のチャネル数は、フィルタ1枚あたりの重みの数(縦×横×入力チャネル数)に影響します。
問24-2

CNNの最後の畳み込み層が、縦横7×7、512チャネルの特徴マップを出力している。これにGlobal Average Poolingを行ってから、10クラスを出力する全結合層につなぐとき、この全結合層のパラメータの数(重みとバイアス)として、最も適切なものを1つ選びなさい。

  • ①250,890
  • ②5,130
  • ③5,120
  • ④512
答えと解説を見る
正解 ②5,130
解説
Global Average Pooling(GAP)は、各チャネルの特徴マップ全体の平均をとり、チャネル1つにつき1つの値にまとめます。7×7×512の特徴マップは、GAPによって512個の値になります。
これを10クラスの全結合層につなぐと、重みは512×10=5,120個、バイアスは出力の数と同じ10個なので、合計は5,130個です。
もしGAPを使わず、特徴マップを1列に並べて(平坦化して)つなぐと、入力は7×7×512=25,088個になり、パラメータは25,088×10+10=250,890個に増えます。GAPを使うとパラメータを大幅に減らせ、過学習も抑えやすくなります。

他の選択肢が不適切な理由
・250,890:GAPを使わずに特徴マップを平坦化してつないだ場合の値です。
・5,120:重みの数だけで、バイアスの10個を加え忘れています。
・512:GAPの出力の数で、全結合層のパラメータの数ではありません。

覚え方のポイント
全結合層のパラメータ数=(入力の数×出力の数)+出力の数(バイアス)。GAPは入力の数をチャネル数まで減らすため、全結合層のパラメータを劇的に減らせます。
問34-2

CNNで用いられる「1×1の畳み込み」の主な役割として、最も適切なものを1つ選びなさい。

  • ①縦横の大きさを半分にして、位置のずれに強い特徴を取り出す。
  • ②チャネル数は変えずに、特徴マップの縦横の大きさを2倍に広げる。
  • ③縦横の大きさは変えずに、チャネル数を減らしたり増やしたりする。
  • ④フィルタの要素の間を空けて、少ない重みで広い範囲を見渡す。
答えと解説を見る
正解 ③縦横の大きさは変えずに、チャネル数を減らしたり増やしたりする。
解説
1×1の畳み込みは、各画素の位置で、全チャネルの値を重み付きで足し合わせる処理です。空間方向(縦横)には広がりがないため、特徴マップの縦横の大きさは変わりませんが、フィルタの枚数を変えることで出力のチャネル数を自由に調整できます。
GoogLeNetのInceptionモジュールでは、3×3や5×5の畳み込みの前に1×1の畳み込みでチャネル数を減らし、計算量とパラメータ数を大きく抑えています。

他の選択肢が不適切な理由
・縦横を半分にして位置のずれに強くする:これはプーリング層(ストライド2のプーリング)の説明です。
・縦横の大きさを2倍にする:これは転置畳み込みなどのアップサンプリングの説明です。
・要素の間を空けて広い範囲を見渡す:これはDilated(Atrous)畳み込みの説明です。

覚え方のポイント
1×1畳み込みは「チャネル方向だけの全結合」と考えると分かりやすくなります。GoogLeNetやResNetのボトルネック構造、MobileNetのPointwise畳み込みで使われています。
問44-2

次の4×4の特徴マップに、大きさ2×2・ストライド2の最大値プーリング(Max Pooling)を行ったときの出力として、最も適切なものを1つ選びなさい。
1行目:1, 3, 2, 4
2行目:5, 6, 1, 2
3行目:7, 2, 9, 0
4行目:1, 4, 3, 8

  • ①[[3.75, 2.25], [3.5, 5]]
  • ②[[6, 4], [7, 8]]
  • ③[[5, 4], [7, 9]]
  • ④[[6, 4], [7, 9]]
答えと解説を見る
正解 ④[[6, 4], [7, 9]]
解説
2×2・ストライド2の最大値プーリングでは、特徴マップを重ならない2×2の区画に分け、各区画の最大値を取り出します。
左上の区画(1, 3, 5, 6)の最大値は6、右上(2, 4, 1, 2)は4、左下(7, 2, 1, 4)は7、右下(9, 0, 3, 8)は9です。したがって出力は[[6, 4], [7, 9]]となり、縦横の大きさは半分の2×2になります。

他の選択肢が不適切な理由
・[[3.75, 2.25], [3.5, 5]]:各区画の平均をとった値で、平均値プーリング(Average Pooling)の結果です。
・[[6, 4], [7, 8]]:右下の区画の最大値を9ではなく8としており、誤りです。
・[[5, 4], [7, 9]]:左上の区画の最大値を6ではなく5としており、誤りです。

覚え方のポイント
プーリング層には学習するパラメータがなく、決まった規則(最大値や平均値)で縮小するだけです。小さな位置のずれがあっても同じ値が出やすくなり、位置のずれに強くなります。
問54-2

画像分類を学習したCNNの各層が捉える特徴についての説明として、最も適切なものを1つ選びなさい。

  • ①入力に近い浅い層は縁や色の変化を、深い層ほど物体の部分や全体の形を捉える。
  • ②入力に近い浅い層ほど物体全体の形を捉え、深い層になるほど縁や色の変化を捉える。
  • ③どの層も同じ種類の特徴を捉えるため、層を深くしても表現力は変わらない。
  • ④各層が捉える特徴は、学習の前に人が設計したフィルタによってすべて決まる。
答えと解説を見る
正解 ①入力に近い浅い層は縁や色の変化を、深い層ほど物体の部分や全体の形を捉える。
解説
学習済みのCNNの中を調べると、入力に近い浅い層のフィルタは、縁(エッジ)の向きや色の変化といった単純で局所的な特徴に反応し、層が深くなるにつれて、模様や物体の部品(目や車輪など)、さらに物体全体の形といった、より複雑で抽象的な特徴に反応するようになることが知られています。
浅い層で取り出した単純な特徴を、深い層が組み合わせていくことで、複雑な特徴を表現できるようになります。浅い層の特徴は多くの画像に共通して役立つため、転移学習で学習済みの浅い層を再利用する理由にもなっています。

他の選択肢が不適切な理由
・浅い層ほど全体の形、深い層ほど縁:浅い層と深い層の説明が逆になっています。
・どの層も同じ特徴で深くしても変わらない:層ごとに捉える特徴は異なり、層を重ねることで複雑な特徴を表現できます。
・人が設計したフィルタで決まる:CNNのフィルタの値は、データから学習によって決まります。人が特徴を設計する従来の画像処理との大きな違いです。

覚え方のポイント
CNNは「浅い層=単純な特徴(縁・色)→深い層=複雑な特徴(部品・物体)」と、特徴を階層的に組み立てます。これが「特徴量を自動で学習する」というディープラーニングの強みです。
問64-2

3×3の畳み込み層(ストライド1)を2層重ねたとき、2層目の出力の1つの画素が、元の入力画像のどれだけの範囲の影響を受けるか(受容野)として、最も適切なものを1つ選びなさい。

  • ①6×6
  • ②5×5
  • ③9×9
  • ④3×3
答えと解説を見る
正解 ②5×5
解説
受容野とは、ある出力の値が、入力のどの範囲から影響を受けているかを表すものです。1層目の3×3の畳み込みでは、出力1画素は入力の3×3の範囲を見ています。2層目の出力1画素は1層目の出力の3×3の範囲を見ており、その3×3の範囲は、入力では左右・上下に1画素ずつ広がった5×5の範囲に相当します。
VGGは、5×5のフィルタ1層の代わりに3×3のフィルタを2層重ねることで、同じ受容野を少ないパラメータ(25に対し18、チャネル数が同じ場合)で実現し、活性化関数による非線形性も増やしました。

他の選択肢が不適切な理由
・6×6:3×3の受容野を単純に足し合わせた値で、重なりの部分を考慮していません。
・9×9:3×3の受容野を掛け合わせた値です。受容野は掛け算では広がりません。
・3×3:1層だけの受容野です。層を重ねると受容野は広がります。

覚え方のポイント
ストライド1の3×3畳み込みを重ねると、受容野は1層ごとに2ずつ広がります(3→5→7…)。深い層ほど画像の広い範囲の特徴を捉えられる理由です。
問74-2

フィルタの要素どうしの間に間隔を空けて畳み込むことで、パラメータの数を増やさずに受容野を広げる手法として、最も適切なものを1つ選びなさい。

  • ①Depthwise畳み込み
  • ②転置畳み込み(逆畳み込み)
  • ③Dilated畳み込み
  • ④1×1畳み込み
答えと解説を見る
正解 ③Dilated畳み込み
解説
Dilated畳み込み(Atrous畳み込み、拡張畳み込み)は、3×3などのフィルタの要素の間に間隔を空けて、入力の飛び飛びの位置に重みを掛ける畳み込みです。重みの数は3×3の9個のままでも、間隔を空けることでより広い範囲を見渡せます。
画像の縮小(プーリング)をしすぎずに広い範囲の文脈を捉えたいセマンティックセグメンテーションのDeepLabや、音声の長い時間の依存関係を扱うWaveNetなどで用いられています。

他の選択肢が不適切な理由
・Depthwise畳み込み:チャネルごとに別々のフィルタで畳み込む方法で、計算量を減らすための工夫です。受容野を広げる手法ではありません。
・転置畳み込み(逆畳み込み):特徴マップの縦横の大きさを拡大(アップサンプリング)する処理です。
・1×1畳み込み:チャネル数を調整する処理で、空間方向の受容野は広がりません。

覚え方のポイント
「Dilate=広げる」「Atrous=穴のあいた」という意味です。DeepLab(セグメンテーション)とWaveNet(音声生成)の両方に登場する点を押さえましょう。
問84-2

セマンティックセグメンテーションのデコーダ部分やGANの生成器などで、特徴マップの縦横の大きさを大きくする(アップサンプリング)ために用いられ、拡大の仕方自体も学習する層として、最も適切なものを1つ選びなさい。

  • ①最大値プーリング
  • ②ストライド2の畳み込み
  • ③Global Average Pooling
  • ④転置畳み込み
答えと解説を見る
正解 ④転置畳み込み
解説
転置畳み込み(Transposed Convolution)は、通常の畳み込みとは逆に、小さな特徴マップから大きな特徴マップを作り出す処理です。フィルタの重みを学習するため、どのように拡大するかもデータから学べます。
画素ごとにクラスを判定するセグメンテーション(FCNやU-Netなど)では、縮小した特徴マップを元の画像の大きさに戻す必要があり、GANの生成器ではノイズから画像を作り上げる際に使われます。なお、拡大した画像に格子状の模様(チェッカーボード状のむら)が出やすいという課題も知られています。

他の選択肢が不適切な理由
・最大値プーリング:区画の最大値をとって縦横を縮小する処理で、拡大ではありません。
・ストライド2の畳み込み:フィルタを2画素ずつずらすため、縦横はおよそ半分に縮小されます。
・Global Average Pooling:各チャネルを1つの値にまとめる処理で、大きさは小さくなります。

覚え方のポイント
「縮小=プーリング・ストライド」「拡大=転置畳み込み(逆畳み込みとも呼ばれる)」と対にして覚えましょう。
問94-2

入力チャネル数32、出力チャネル数64、フィルタの大きさ3×3の畳み込みを、Depthwise畳み込み(3×3)とPointwise畳み込み(1×1)に分けて行うとき、重みの数の合計として、最も適切なものを1つ選びなさい(バイアスは考えない)。

  • ①2,336
  • ②18,432
  • ③2,048
  • ④288
答えと解説を見る
正解 ①2,336
解説
Depthwise畳み込みでは、入力の各チャネルに1枚ずつ3×3のフィルタを当てるので、重みは3×3×32=288個です。続くPointwise畳み込み(1×1)では、32チャネルを64チャネルに変換するので、重みは1×1×32×64=2,048個です。合計は288+2,048=2,336個になります。
通常の3×3の畳み込みなら3×3×32×64=18,432個が必要なので、およそ8分の1に減っています。この工夫を使ってスマートフォンなどでも動くようにしたモデルがMobileNetです。

他の選択肢が不適切な理由
・18,432:通常の3×3畳み込みの重みの数で、分解しない場合の値です。
・2,048:Pointwise畳み込みの重みだけで、Depthwise畳み込みの288個を加え忘れています。
・288:Depthwise畳み込みの重みだけで、Pointwise畳み込みの分が含まれていません。

覚え方のポイント
Depthwise Separable畳み込み=「空間方向(Depthwise)」と「チャネル方向(Pointwise)」の分業です。MobileNetとセットで覚えましょう。
問104-2

3×3のフィルタ、ストライド1で畳み込みを行うとき、出力の縦横の大きさを入力と同じに保つために必要なパディングの幅(上下左右それぞれに0を詰める画素数)として、最も適切なものを1つ選びなさい。

  • ①2
  • ②1
  • ③3
  • ④0
答えと解説を見る
正解 ②1
解説
出力の大きさは「(入力+2×パディング−フィルタ)÷ストライド+1」です。ストライド1、フィルタ3のとき、出力が入力と同じ大きさNになるには、N+2×パディング−3+1=N、つまり2×パディング=2となり、パディングは1です。
一般に、ストライド1で大きさを保つには「(フィルタの大きさ−1)÷2」のパディングが必要で、5×5のフィルタなら2になります。大きさを保つことで、層を深く重ねても特徴マップが小さくなりすぎず、画像の端の情報も失われにくくなります。

他の選択肢が不適切な理由
・2:5×5のフィルタで大きさを保つ場合の幅です。3×3のフィルタでパディング2にすると、出力は入力より2画素大きくなります。
・3:7×7のフィルタで大きさを保つ場合の幅です。
・0:パディングをしないと、3×3のフィルタでは出力が縦横とも2画素小さくなります。

覚え方のポイント
ストライド1で大きさを保つパディング=(フィルタの大きさ−1)÷2。3×3なら1、5×5なら2、7×7なら3です。

G検定は一般社団法人日本ディープラーニング協会の登録商標です。本ページは一般社団法人日本ディープラーニング協会とは一切関係ありません。

G検定の対策問題(全480問)に戻る

非公式の資格試験対策サイトです。一般社団法人日本ディープラーニング協会とは一切関係ありません。

※本ページでは、アクセス解析(Googleアナリティクス)と、広告の配信・成果の計測(A8.net)のためにCookie等を利用し、閲覧に関する情報をGoogle LLC・株式会社ファンコミュニケーションズへ送信しています。詳しくはプライバシーポリシーをご覧ください。

※本ページの問題・解説は、生成AI(人工知能)を活用して作成しています。

【PR】