アルゴリズム編

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

シグモイド関数のバックプロパゲーション レベル1

シグモイド活性化関数 \(\sigma(z) = \frac{1}{1 + e^{-z}}\) を考えます。順伝播時の入力が \(z = 0.4\) で、その時の出力が \(\sigma(0.4) \approx 0.5987\) でした。このシグモイドユニットの出力 \(\sigma\) に関する損失 \(L\) の勾配が \(\frac{\partial L}{\partial \sigma} = -1.2\) である場合、入力 \(z\) に関する損失 \(L\) の勾配 \(\frac{\partial L}{\partial z}\) を計算してください。結果は小数点以下4桁まで求めてください。

解説
解答と解説を表示
<h4>バックプロパゲーションと連鎖律 (シグモイド関数)</h4> <p>損失 \(L\) の入力 \(z\) に関する勾配 \(\frac{\partial L}{\partial z}\) を求めるには、連鎖律を適用します。</p> <div class="formula"> $\frac{\partial L}{\partial z} = \frac{\partial L}{\partial \sigma} \times \frac{d \sigma}{d z}$ </div> <p>ここで、\(\frac{\partial L}{\partial \sigma}\) は上流から伝わってきた勾配、\(\frac{d \sigma}{d z}\) はシグモイド関数のローカルな勾配(微分値)です。</p><h5>ステップ1: ローカル勾配 (\(\frac{d \sigma}{d z}\)) の計算</h5> <p>シグモイド関数 \(\sigma(z) = \frac{1}{1 + e^{-z}}\) の微分は、その出力値 \(\sigma(z)\) を使って簡単に計算できるという便利な性質があります。</p> <div class="formula"> $\frac{d \sigma}{d z} = \sigma(z) (1 - \sigma(z))$ </div> <p>問題文より、順伝播時の出力は \(\sigma(z=0.4) \approx 0.5987\) です。この値を使って、\(z=0.4\) における微分値を計算します。</p> <div class="formula"> $\frac{d \sigma}{d z}\bigg|_{z=0.4} \approx 0.5987 \times (1 - 0.5987) \approx 0.5987 \times 0.4013 \ \approx 0.240318..$ </div><h5>ステップ2: 連鎖律の適用</h5> <p>上流からの勾配 \(\frac{\partial L}{\partial \sigma} = -1.2\) と、計算したローカル勾配 \(\frac{d \sigma}{d z} \approx 0.2403\) を用いて、\(\frac{\partial L}{\partial z}\) を計算します。</p> <div class="formula"> $\frac{\partial L}{\partial z} = \frac{\partial L}{\partial \sigma} \times \frac{d \sigma}{d z} \ \approx -1.2 \times 0.2403 \ \approx -0.28836...$ </div><p>したがって、入力 \(z\) に関する損失 \(L\) の勾配を小数点以下4桁まで求めると、約 <strong>-0.2884</strong> です。</p><div class="key-point"> <div class="key-point-title">シグモイド関数の勾配の特徴</div> <ul> <li>シグモイド関数の微分値 \(\sigma(z)(1 - \sigma(z))\) は、\(z=0\) のとき最大値 0.25 をとり、\(|z|\) が大きくなるにつれて 0 に近づきます。</li> <li>この性質により、バックプロパゲーションで層を遡るごとに勾配が小さくなりやすく、勾配消失問題を引き起こす一因となります。</li> </ul> </div>
問題 1/3
カテゴリ一覧に戻る