Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 畳み込み層 | Convolutional Neural Networks
Pythonで学ぶコンピュータビジョンの基礎

畳み込み層

メニューを表示するにはスワイプしてください

畳み込み層の理解

畳み込み層は、**畳み込みニューラルネットワーク(CNN)**の中核要素。畳み込みとは、**フィルター(またはカーネル)**と呼ばれる小さな行列が画像上をスライドし、エッジ、テクスチャ、形状を検出する処理。これにより、CNNは従来のネットワークよりも効率的に画像を処理可能。

CNNは画像全体を一度に解析するのではなく、小さな領域に分割し、異なるレベルで特徴を検出。初期層エッジのような単純なパターンを認識し、深い層は複雑な構造を検出。

畳み込みの仕組み

畳み込みは、**フィルター(カーネル)**が画像上を移動し、以下の手順で行われる:

  1. 画像の左上にカーネルを適用。
  2. カーネルと画素値の要素ごとの積を計算。
  3. 積の合計を出力画素として生成。
  4. ストライドに従ってカーネルを移動し、繰り返す。
  5. 検出されたパターンを強調する特徴マップを生成。
畳み込み GIF

複数のフィルターは、CNNが垂直エッジ、曲線、テクスチャなどの異なる特徴を捉えるのに役立つ。

フィルター(カーネル):

フィルターは画像から意味のあるパターンを抽出する上で重要な役割を果たす。異なる種類のフィルターは、さまざまな特徴の識別に特化している:

  • エッジ検出フィルター:急激な輝度変化を検出することで物体の境界を識別(例:Sobel、Prewitt、Laplacianフィルター);

  • テクスチャフィルター:波やグリッドのような繰り返しパターンを捉える(例:Gaborフィルター);

  • シャープ化フィルター:高周波成分を強調することで画像の詳細を強調;

  • ぼかしフィルター:ノイズを低減し画像を滑らかにする(例:ガウシアンぼかしフィルター);

  • エンボスフィルター:エッジを強調し、奥行きを強調することで3D効果を付加。

カーネルの比較

各フィルターは特定のパターンを検出するように学習され、深層CNNにおける階層的な特徴表現の構築に寄与します。

畳み込み層は同じフィルターを画像全体で再利用することでパラメータ数を削減し、CNNの効率性を高めます。一方、特殊な局所接続層では必要に応じて異なるフィルターを異なる領域に適用します。

畳み込み層を積み重ねることで、CNNは詳細なパターンを抽出でき、画像分類、物体検出、ビジョンタスクにおいて高い性能を発揮します。

ハイパーパラメータ:

  • ストライド: フィルターが1ステップで移動する距離を制御;
  • パディング: 出力サイズを調整するために画素を追加(sameパディングはサイズを維持、validパディングは縮小);
  • フィルター数(深さ): フィルター数が多いほど特徴検出能力が向上するが、計算量も増加。
Note
ノート

: 24×24のグレースケール画像に3×3カーネルと64 filtersを使用した場合、出力サイズは22×22×64となり、次のように計算されます:

(WF+1)×(HF+1)×D==(243+1)×(243+1)×64==22×22×64,(W - F + 1) \times (H - F + 1) \times D =\\= (24 - 3 + 1) \times (24 - 3 + 1) \times 64 =\\= 22\times22\times64,

ここで:

  • WW: 入力画像の幅 = 24;
  • HH: 入力画像の高さ = 24;
  • FF: フィルター(カーネル)のサイズ = 3(3×3カーネルを想定);
  • DD: フィルター数(出力の深さ) = 64。

次の章の前に

畳み込み層出力サイズを減少させることができますが、その主な目的は特徴抽出であり、次元削減ではありません。一方、プーリング層は重要な情報を保持しつつ、明示的に次元を削減し、より深い層での効率性を確保します。

1. CNNにおける畳み込み層の主な役割は何ですか?

2. 畳み込み時にフィルターがどれだけ移動するかを決定するハイパーパラメータはどれですか?

3. 畳み込み層で複数のフィルターを適用する目的は何ですか?

question mark

CNNにおける畳み込み層の主な役割は何ですか?

正しい答えを選んでください

question mark

畳み込み時にフィルターがどれだけ移動するかを決定するハイパーパラメータはどれですか?

正しい答えを選んでください

question mark

畳み込み層で複数のフィルターを適用する目的は何ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 3.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 3.  2
some-alt