LESSON

CNN画像分類クイズ

Step 3 で学んだ CNN、転移学習、データ拡張の知識を確認しましょう。10問中8問以上の正解で合格です。


Q1. 畳み込み層の出力サイズ

入力サイズ 64x64、カーネルサイズ 5x5、ストライド 2、パディング 2 の場合、出力サイズはいくつですか?

  • A: 30x30
  • B: 31x31
  • C: 32x32
  • D: 33x33

正解: C

解説: 出力サイズ = (入力 - カーネル + 2*パディング) / ストライド + 1 = (64 - 5 + 4) / 2 + 1 = 63/2 + 1 = 31.5 → 切り捨てで 31 + 1 = 32。


Q2. プーリング層の役割

Max Pooling の主な役割として最も適切なものはどれですか?

  • A: パラメータ数を増やして表現力を向上させる
  • B: 特徴マップの空間サイズを縮小し、位置ズレへのロバスト性を高める
  • C: 新しい特徴を学習するための非線形変換
  • D: バッチ間の統計量を正規化する

正解: B

解説: プーリング層はパラメータを持たず、特徴マップの空間サイズを縮小します。各領域の最大値を取ることで、特徴の正確な位置よりも「その特徴があるかどうか」が重要になり、微小な位置ズレに対するロバスト性が向上します。


Q3. ResNet の残差接続

ResNet の残差接続(Skip Connection)が解決する主な問題はどれですか?

  • A: 過学習を防止する
  • B: 推論速度を向上させる
  • C: 勾配消失/劣化問題を緩和し、深いネットワークの学習を可能にする
  • D: メモリ使用量を削減する

正解: C

解説: 層が深くなるほど勾配が消失し、学習が困難になる問題がありました。残差接続により勾配が直接浅い層まで伝わるため、100層以上のネットワークでも安定した学習が可能になりました。


Q4. 転移学習のアプローチ

NetShop の商品画像が500枚しかない場合、最も適切な転移学習のアプローチはどれですか?

  • A: ImageNet 学習済みモデルの全層を高い学習率でファインチューニング
  • B: ImageNet 学習済みモデルの畳み込み層を凍結し、分類層のみ学習
  • C: モデルをゼロからランダム初期化して学習
  • D: 畳み込み層だけを学習し、分類層は凍結する

正解: B

解説: データが少ない場合(500枚程度)、全層をファインチューニングすると過学習のリスクが高くなります。畳み込み層を凍結して分類層のみを学習する特徴抽出アプローチが最も安全です。


Q5. データ拡張の適用タイミング

データ拡張について正しい説明はどれですか?

  • A: 学習データと検証データの両方に同じ拡張を適用すべき
  • B: 学習時のみ適用し、検証・テスト時には適用しない
  • C: データ拡張を使えば過学習は完全に防げる
  • D: データ拡張はデータ量が多い場合のみ有効

正解: B

解説: データ拡張は学習時のみ適用します。検証・テスト時にランダムな変換を適用すると、評価結果が不安定になります。検証・テストでは Resize + CenterCrop + Normalize のみを適用します。


Q6. CNN の階層的特徴学習

CNN の浅い層と深い層で学習される特徴の説明として正しいものはどれですか?

  • A: 浅い層で物体全体を認識し、深い層でエッジを検出する
  • B: すべての層で同じレベルの特徴を学習する
  • C: 浅い層でエッジやテクスチャ、深い層で物体全体のパターンを学習する
  • D: 浅い層でクラス判定し、深い層で特徴抽出する

正解: C

解説: CNN の特徴抽出は階層的です。浅い層はエッジやコーナーなどの低レベル特徴、中間層はテクスチャやパーツ、深い層は物体全体のパターンなど高レベルの特徴を学習します。


Q7. BatchNorm の配置

CNN ブロックにおける BatchNorm の一般的な配置として正しいものはどれですか?

  • A: Conv → ReLU → BatchNorm → Pool
  • B: Conv → BatchNorm → ReLU → Pool
  • C: BatchNorm → Conv → Pool → ReLU
  • D: Conv → Pool → BatchNorm → ReLU

正解: B

解説: 一般的な CNN ブロックは Conv → BatchNorm → ReLU → Pool の順です。BatchNorm は活性化関数の前に配置し、入力の分布を正規化することで学習を安定させます。


Q8. ファインチューニングの学習率

ファインチューニング時の学習率設定として最も適切なものはどれですか?

  • A: すべての層に同じ高い学習率(1e-2)を設定
  • B: 浅い層に高い学習率、深い層に低い学習率を設定
  • C: 浅い層に低い学習率、深い層/分類層に高い学習率を設定
  • D: 学習率はランダムに設定する

正解: C

解説: 事前学習済みの浅い層は汎用的な特徴(エッジ等)を既に学習しており、大きく変える必要がありません。深い層や新たに追加した分類層はタスク固有の調整が必要なため、より高い学習率を設定します。


Q9. Global Average Pooling

分類 CNN の最終段で Global Average Pooling を使う利点として正しいものはどれですか?

  • A: 精度が必ず向上する
  • B: 全結合層と比較してパラメータ数を大幅に削減し、過学習を抑制できる
  • C: 入力画像のサイズを自由に変更できなくなる
  • D: 学習時間が必ず長くなる

正解: B

解説: Global Average Pooling は特徴マップ全体の平均を取り、チャンネルごとに1つの値に変換します。全結合層が不要になるためパラメータ数が大幅に削減され、過学習の抑制につながります。また、任意の入力サイズに対応できるメリットもあります。


Q10. Mixup と CutMix

Mixup によるデータ拡張の説明として正しいものはどれですか?

  • A: 画像の一部をランダムに削除する
  • B: 画像の一部を別の画像で置き換える
  • C: 2つの画像とラベルを線形補間で混合する
  • D: 画像にガウスノイズを加える

正解: C

解説: Mixup は2つの画像を lambda * x1 + (1-lambda) * x2 で混合し、ラベルも同じ比率で混合します。これにより決定境界が滑らかになり、汎化性能が向上します。画像の一部を別画像で置き換えるのは CutMix です。


結果

10問中の正解数を確認してください。

  • 10問正解: 素晴らしい!CNN の基礎を完全に理解しています。Step 4 に進みましょう。
  • 8-9問正解: 合格です。間違えた問題を復習してから次へ進みましょう。
  • 7問以下: Step 3 のレッスンを再度読み直してから、もう一度挑戦しましょう。

推定所要時間: 30分