Caffeにおけるネットワーク構築の中心は「レイヤー(Layer)」の積み重ねによって成り立っています。各レイヤーは特定の計算処理を担っており、ネットワーク全体の構造や性能に大きく影響します。以下に、Caffeでよく使われる基本的なレイヤーについて詳しく説明します。
1. Convolution Layer(畳み込み層)
役割: 画像などの入力に対してフィルタ(カーネル)を適用し、特徴マップ(Feature Map)を抽出します。
主なパラメータ:
-
num_output: 出力チャネル数(フィルタの数) -
kernel_size: フィルタサイズ(例: 3, 5) -
stride: フィルタの移動幅 -
pad: パディングサイズ(入力の周囲に0を追加)
2. Pooling Layer(プーリング層)
役割: 特徴マップの空間的なサイズを縮小し、過学習の防止や計算量の削減を行います。最大値や平均値を取ることが多いです。
主な種類:
-
MAX: 最大プーリング -
AVE: 平均プーリング
主なパラメータ:
-
kernel_size: プーリングのウィンドウサイズ -
stride: プーリングの移動幅
3. ReLU Layer(整流線形ユニット)
役割: 活性化関数として、非線形性を導入します。入力が0未満なら0に、0以上ならそのまま出力します。
特徴: パラメータは不要。学習・推論の高速化や勾配消失の軽減に寄与します。
4. InnerProduct Layer(全結合層)
役割: 入力ベクトルに対して重み付き線形変換を行い、出力を生成します。分類タスクの最終段などで使用されます。
主なパラメータ:
-
num_output: 出力ユニットの数(=クラス数など)
5. Softmax Layer(ソフトマックス層)
役割: 出力値を0〜1の範囲に正規化し、確率として解釈できるようにします。分類タスクで出力層として用います。
補足: 一般的なレイヤー構成例
このような構成は、典型的な画像分類モデル(例えばMNISTやCIFAR-10など)でよく見られます。
まとめ
| レイヤー名 | 主な目的 |
|---|---|
| Convolution | 特徴抽出 |
| Pooling | 特徴の要約・次元削減 |
| ReLU | 非線形性の導入 |
| InnerProduct | 特徴の統合・出力の生成 |
| Softmax | 出力の確率化(分類) |
これらの基本レイヤーを適切に組み合わせることで、Caffeでは柔軟かつ効率的にニューラルネットワークを設計・学習することができます。必要に応じてBatchNormやDropoutなどの補助的なレイヤーを加えることで、性能向上や過学習防止にも対応できます。
生成日:2025/05/23