解答と解説を表示
<h4>単一ニューロンの出力計算手順</h4>
<p>ニューロンの出力は、以下のステップで計算されます。</p>
<ol>
<li>入力と重みの内積を計算する。</li>
<li>内積にバイアスを加える(これを \(z\) とする)。</li>
<li>\(z\) を活性化関数(ここではシグモイド関数)に入力し、最終的な出力を得る。</li>
</ol><h5>ステップ1: 内積の計算</h5>
<div class="formula">
$ \mathbf{w} \cdot \mathbf{x} = (0.8 \times 1) + ((-0.2) \times 4)
= 0.8 - 0.8
= 0$
</div><h5>ステップ2: バイアスを加算</h5>
<div class="formula">
$z = (\mathbf{w} \cdot \mathbf{x}) + b
= 0 + 0.1
= 0.1$
</div><h5>ステップ3: 活性化関数の適用</h5>
<p>シグモイド関数 \( \sigma(z) = \frac{1}{1 + e^{-z}} \) を使用します。</p>
<div class="formula">
$\text{出力} = \sigma(0.1) = \frac{1}{1 + e^{-0.1}}$
</div>
<p>ここで、\(e^{-0.1} \approx 0.9048\) なので、</p>
<div class="formula">
$\sigma(0.1) = \frac{1}{1 + 0.9048} = \frac{1}{1.9048} \approx 0.52498...$
</div><p>したがって、ニューロンの出力は約 0.525 です。</p><div class="key-point">
<div class="key-point-title">シグモイド関数</div>
<p>シグモイド関数は、任意の入力を0から1の間の値に変換します。これは確率を出力する際などに用いられます。しかし、勾配消失問題を引き起こしやすいため、中間層ではReLUなどがより一般的に使われます。</p>
</div><h5>Pythonによる計算</h5>
<div class="code-block">
<pre>
import numpy as npdef sigmoid(z):
return 1 / (1 + np.exp(-z))x = np.array([1, 4])
w = np.array([0.8, -0.2])
b = 0.1z = np.dot(w, x) + b
output = sigmoid(z)print(f"Input x: {x}")
print(f"Weights w: {w}")
print(f"Bias b: {b}")
print(f"Linear combination z: {z:.4f}")
print(f"Sigmoid output: {output:.4f}")
# 出力:
# Input x: [1 4]
# Weights w: [0.8 -0.2]
# Bias b: 0.1
# Linear combination z: 0.1000
# Sigmoid output: 0.5250
</pre>
</div>