Kerasにおける主要なレイヤーである Dense(全結合層)、Dropout、および BatchNormalization(バッチ正規化) について、それぞれの機能、使いどころ、パラメータを含めて詳しく説明します。
1. Dense(全結合)レイヤー
概要:
Dense レイヤーは、最も基本的なニューラルネットワークのレイヤーであり、各入力ニューロンがすべての出力ニューロンと接続されている「全結合層」を実現します。
主な用途:
-
入力データの特徴を圧縮・変換し、次のレイヤーへ情報を伝える。
-
多層パーセプトロン(MLP)などの基本構造に使用される。
構文例:
主な引数:
-
units: 出力の次元数(ニューロンの数)。 -
activation: 活性化関数('relu','sigmoid','softmax'など)。 -
kernel_initializer: 重みの初期化方法(例:'glorot_uniform')。 -
use_bias: バイアス項の使用有無。
2. Dropoutレイヤー
概要:
Dropout レイヤーは、過学習(オーバーフィッティング)の防止のために使用される正則化技術です。訓練時に、ランダムに一定割合のニューロンの出力を0にします。
主な用途:
-
モデルの汎化性能を高める。
-
大きなネットワークでの過学習を抑制。
構文例:
主な引数:
-
rate: ドロップアウト率(0〜1)。たとえば0.5は50%のニューロンを無効化。 -
seed: 乱数シード(再現性の確保に使用)。
注意点:
-
訓練時のみ適用され、推論時にはすべてのユニットが使用される。
3. BatchNormalization(バッチ正規化)レイヤー
概要:
BatchNormalization は、**ネットワークの各層の出力を標準化(平均0、分散1)**し、学習の安定性と収束の高速化を図るレイヤーです。
主な用途:
-
勾配消失問題の緩和。
-
初期値や学習率への依存性を減らす。
-
層ごとの出力のスケールのばらつきを整える。
構文例:
主な引数:
-
axis: 正規化する軸(通常は特徴量の軸、-1が多い)。 -
momentum: 移動平均のモメンタム(例:0.99)。 -
epsilon: 数値安定性のための小さな値(例:1e-3)。
補足:
-
正規化後に学習可能なスケール・バイアス項(
gamma,beta)が自動的に導入される。
まとめ
| レイヤー名 | 主な役割 | 主な用途 |
|---|---|---|
Dense |
全結合計算と活性化 | 特徴の変換や分類・回帰タスク |
Dropout |
ランダムに出力を無効化し過学習を防止 | 正則化、モデルの汎化性能向上 |
BatchNormalization |
ミニバッチごとに出力を正規化し学習を安定化 | 学習の高速化、初期化の影響を緩和 |
これらのレイヤーは、Kerasのモデル構築において非常に基本的かつ重要な構成要素です。組み合わせて使うことで、より高精度で安定したモデルを構築できます。
生成日:2025/05/22