ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと

https://oshiete.goo.ne.jp/qa/9622886.html
↑のページで質問していた内容について

例えば
x1=2,x2=3,x3=1, w1=0.5,w2=0.5,w3=1, b=2 だとすると、z=5.5
重みとバイアスの値を少し変えて、
w1=0.3,w2=0.7,w3=1.1, b=2.2 とするとz=6
ということは、Δoutputの値は6-5.5=0.5になればいいということでしょうか?
また、その計算過程の部分で、dσ/dw1,dσ/dw2dσ/dw3,dσ/dbの値の出し方について教えて頂けないでしょうか。お願いいたします。

A 回答 (2件)

聞きかじり程度の知識ですが



z = (x1 * w1) + (x2 * w2) + (x3 * w3) + b
σ = 1 / (1+exp(-z))
Δσ = ∂σ/∂w1*Δw1 + ∂σ/∂w2*Δw2 + ∂σ/∂w3*Δw3 + ∂σ/∂b*Δb

∂σ/∂z
= -1 * (1+exp(-z))^-2 * exp(-z) * -1
= exp(-z) / (1+exp(-z))^2
= (1-1+exp(-z)) / (1+exp(-z))^2
= (1+exp(-z)) / (1+exp(-z))^2 - 1 / (1+exp(-z))^2
= 1 / (1+exp(-z)) - 1 / (1+exp(-z)) * 1 / (1+exp(-z))
= σ - σ * σ
= (1-σ)σ

∂z/∂w1 = x1
∂z/∂w2 = x2
∂z/∂w3 = x3
∂z/∂b = 1

∂σ/∂w1 = ∂σ/∂z * ∂z/∂w1 = (1-σ)σ * x1
∂σ/∂w2 = ∂σ/∂z * ∂z/∂w2 = (1-σ)σ * x2
∂σ/∂w3 = ∂σ/∂z * ∂z/∂w3 = (1-σ)σ * x3
∂σ/∂b = ∂σ/∂z * ∂z/∂b = (1-σ)σ

x1=2, x2=3, x3=1, w1=0.5, w2=0.5, w3=1, b=2 のとき
z = 5.5
σ = 0.99592986228...
∂σ/∂w1 = 0.00810714338... > 0
∂σ/∂w2 = 0.01216071508... > 0
∂σ/∂w3 = 0.00405357169... > 0
∂σ/∂b = 0.00405357169... > 0

ここからわかるのは、
ニューロンの出力をプラス方向に変化させたいなら、各パラメーターはプラス方向に調整する。
ニューロンの出力をマイナス方向に変化させたいなら、各パラメーターはマイナス方向に調整する。
特に w2 を調整すると効果が高い。
    • good
    • 0

> Δoutputの値は6-5.5=0.5になればいいということでしょうか?



outputはシグモイド関数を通した値なので
Δoutputは、σ(6) - σ(5.5)です。

また、この部分の説明は、重みwの微小変化で、出力がほぼ線形に変化するということを
言いたいだけだと思うので、「~になればいい」ではなく、
wが微小変化した結果として「~になる」ということです。



> その計算過程の部分で、dσ/dw1,dσ/dw2dσ/dw3,dσ/dbの値の出し方について

z = (x1 * w1) + (x2 * w2) + (x3 * w3) + b
σ = 1 / (1+exp(-z))
output = σ(z)

∂output/∂w1 = ∂σ(z)/∂w1 = ∂σ(z)/∂z * ∂z/∂w1
= (1-σ(z))σ(z) * x1


前述のように、wの微小変化により、outputがほぼ線形に変化することを言いたいだけなので、
実際に数値をいれて云々はこの段階では、あまり意味がないのではないでしょうか。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!