アルゴリズム編

最適化アルゴリズム、損失関数問題に関する計算問題

重み更新量の計算 (ミニバッチ学習) レベル1

ある重み \(w\) に対する3つのデータサンプルからの勾配がそれぞれ \(g_1 = 2.0, g_2 = 1.5, g_3 = 2.5\) でした。ミニバッチサイズが3で、学習率 \(\eta = 0.05\) の場合、このミニバッチに対する重み \(w\) の更新量 \(\Delta w = -\eta \times \frac{1}{N} \sum_{i=1}^{N} g_i\) を計算してください。

解説
解答と解説を表示
<h4>ミニバッチ学習における重み更新</h4> <p>機械学習モデルの学習では、多くの場合、データセット全体を一度に使うのではなく、小さな「ミニバッチ」に分割してパラメータ(重み)を更新します。これにより、計算効率と学習の安定性のバランスを取ります。</p><h5>ミニバッチ学習の更新プロセス</h5> <ol> <li><strong>ミニバッチの選択:</strong> データセットからランダムに N 個のサンプルを選び、ミニバッチを形成します。</li> <li><strong>勾配の計算:</strong> ミニバッチ内の各サンプル \(i\) について、現在のパラメータ \(w\) における損失関数の勾配 \(g_i = \nabla L_i(w)\) を計算します。</li> <li><strong>勾配の平均化:</strong> ミニバッチ全体の平均勾配 \(\bar{g}\) を計算します。\(\bar{g} = \frac{1}{N} \sum_{i=1}^{N} g_i\)</li> <li><strong>パラメータ更新:</strong> 平均勾配 \(\bar{g}\) と学習率 \(\eta\) を用いて、パラメータを更新します。</li> </ol> <p>この問題で求められているのは、ステップ4における<strong>重みの更新量 \(\Delta w\)</strong> です。</p> <div class="formula"> $\Delta w = -\eta \times \bar{g} = -\eta \times \left( \frac{1}{N} \sum_{i=1}^{N} g_i \right)$ </div> <p>更新量 \(\Delta w\) は、パラメータをどれだけ変化させるかを示す値です。実際のパラメータ更新は \(w_{new} = w_{old} + \Delta w\) となります。</p><h5>今回の問題における計算</h5> <p>与えられた値は以下の通りです。</p> <ul> <li>ミニバッチ内の各サンプルの勾配: \(g_1 = 2.0, g_2 = 1.5, g_3 = 2.5\)</li> <li>ミニバッチサイズ: \(N = 3\)</li> <li>学習率: \(\eta = 0.05\)</li> </ul><h6>ステップ1: ミニバッチ内の勾配の合計を計算</h6> <div class="formula"> $ \sum_{i=1}^{3} g_i = 2.0 + 1.5 + 2.5 = 6.0$ </div><h6>ステップ2: ミニバッチ内の勾配の平均を計算</h6> <div class="formula"> $\bar{g} = \frac{1}{N} \sum_{i=1}^{N} g_i = \frac{6.0}{3} = 2.0$ </div><h6>ステップ3: 重みの更新量 \(\Delta w\) を計算</h6> <div class="formula"> $\Delta w = -\eta \times \bar{g} \\\\ \Delta w = -0.05 \times 2.0 \\\\ \Delta w = -0.1$ </div><p>したがって、このミニバッチに対する重みの更新量 \(\Delta w\) は <strong>-0.1</strong> です。</p><div class="key-point"> <div class="key-point-title">ミニバッチ学習 vs 他の学習方法</div> <ul> <li><strong>バッチ学習 (Batch GD):</strong> 全データを使用。更新は安定するが、大規模データでは計算コスト大。</li> <li><strong>確率的勾配降下法 (SGD):</strong> サンプル1つずつ使用。計算は速いが、更新ノイズが大きい。</li> <li><strong>ミニバッチ学習:</strong> 両者の中間。計算効率と安定性のバランスが良い。GPUによる並列計算にも適しているため、ディープラーニングで広く使われる。</li> </ul> </div>
問題 1/3
カテゴリ一覧に戻る