ディープラーニング編

RNNやCNN、Transformerの理解を問います

畳み込みニューラルネットワーク(CNN)のパラメータ数 レベル1

畳み込みニューラルネットワーク(CNN)において、入力サイズが32×32×3(高さ×幅×チャネル数)の画像に対して、以下のパラメータを持つ畳み込み層を適用した場合のパラメータ数を計算しなさい。- フィルタサイズ: 5×5 - フィルタ数(出力チャネル数): 16 - ストライド: 2 - パディング: 1 - バイアス: あり

解説
解答と解説を表示
<h4>畳み込み層 (Convolutional Layer) のパラメータ数</h4> <p>畳み込みニューラルネットワーク (CNN) の中核をなす畳み込み層は、画像などのグリッド状データから空間的な特徴を抽出する役割を担います。この層には、学習を通じて最適化される<strong>パラメータ</strong>、すなわち<strong>重み(カーネル/フィルタ)</strong>と<strong>バイアス</strong>が含まれます。パラメータ数は、モデルの表現力や複雑さ、そして学習に必要な計算リソースやデータ量を見積もる上で重要な指標となります。</p><h5>パラメータ数の構成要素</h5> <p>畳み込み層のパラメータ数は、主に以下の要素から構成されます。</p> <ol> <li> <strong>カーネル(フィルタ)の重み:</strong> カーネルは、入力特徴マップの局所領域に適用され、特定のパターン(エッジ、テクスチャなど)を検出するための重みの集合です。 <ul> <li><strong>1つのカーネルが持つ重みの数:</strong> これはカーネルの空間的なサイズ(高さ×幅)と、入力特徴マップの深さ(チャネル数)の積で決まります。入力がカラー画像(例: 3チャネル)であれば、カーネルも同じ深さ(3チャネル)を持つ必要があります。 <div class="formula"> $1カーネルあたりの重み数 = (カーネル高さ) × (カーネル幅) × (入力チャネル数) $ </div> 今回の問題では、カーネルサイズ 5x5、入力チャネル数 3 なので: <div class="formula"> $1カーネルあたりの重み数 = 5 × 5 × 3 = 75$ </div> </li> <li><strong>カーネルの総数:</strong> 畳み込み層は通常、複数のカーネルを持ち、それぞれが異なる特徴を捉えようとします。使用するカーネルの総数は、この層の<strong>出力チャネル数(フィルタ数)</strong>と等しくなります。</li> <li><strong>全カーネルの重み総数:</strong> 層全体の重みの総数は、1カーネルあたりの重み数にカーネルの総数を掛けたものになります。 <div class="formula"> $ 全重み数 = (1カーネルあたりの重み数) × (フィルタ数) $ </div> 今回の問題では、フィルタ数 16 なので: <div class="formula"> $ 全重み数 = 75 × 16 = 1200 $ </div> </li> </ul> </li> <li> <strong>バイアス:</strong> 通常、各出力チャネル(各カーネル)に対して1つのバイアス項が追加されます。バイアスは、カーネルによる重み付き和の後に加算され、活性化関数の発火しきい値を調整する役割を持ちます。 <div class="formula"> $ バイアス総数 = フィルタ数(出力チャネル数) $ </div> 今回の問題では: <div class="formula"> $ バイアス総数 = 16$ </div> </li> </ol><h5>総パラメータ数の計算</h5> <p>畳み込み層の総パラメータ数は、上記の全カーネルの重み総数とバイアス総数の合計です。</p> <div class="formula"> $総パラメータ数 = 全重み数 + バイアス総数 \\ = 1200 + 16 = 1216$ </div> <p>したがって、この畳み込み層のパラメータ数は <strong>1216</strong> となります。</p><div class="key-point"> <div class="key-point-title">重要ポイント:パラメータ数計算の特性</div> <ul> <li><strong>入力サイズ非依存性:</strong> 畳み込み層のパラメータ数は、カーネルサイズ、入力チャネル数、出力チャネル数(フィルタ数)によって決まり、<strong>入力特徴マップの空間的なサイズ(高さ、幅)には依存しません</strong>。これは、同じカーネルが入力の異なる場所で繰り返し適用される「重み共有」の性質によるものです。</li> <li><strong>ストライドとパディングの影響:</strong> ストライド(カーネルの移動幅)やパディング(入力の周囲に追加するピクセル)は、出力特徴マップのサイズには影響しますが、<strong>パラメータ数には影響しません</strong>。</li> <li><strong>モデル複雑度との関連:</strong> パラメータ数はモデルの複雑さを示す指標の一つです。パラメータ数が多いほどモデルの表現力は高まりますが、過学習のリスクが増加し、より多くの学習データや計算リソースが必要になる傾向があります。</li> </ul> </div><h5>参考:全結合層との比較</h5> <p>全結合層(Dense Layer)では、パラメータ数は (入力次元数 + 1) × 出力次元数 となり、入力の次元数に直接依存します。CNNの畳み込み層は重み共有により、特に高解像度の画像入力に対して、全結合層よりも大幅に少ないパラメータ数で空間的な特徴を効率的に抽出できる利点があります。</p>
問題 1/1
カテゴリ一覧に戻る