一个具体的BP算法示例

简单的神经网络

根据身高H和体重W,我们可以建立以下的神经网络:
在这里插入图片描述

损失函数

根据上一节的内容,我们可以知道,损失函数可以定义如下:
L o s s = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 Loss = \frac{1}{n} \sum_{i=1}^n (y_i-\hat y_i)^2 Loss=n1i=1n(yiy^i)2
所以,损失函数实际是上包括 w 1 , w 2 , w 3 , w 4 , w 5 , w 6 , b 1 , b 2 , b 3 ​ w_1, w_2, w_3, w_4, w_5, w_6, b_1, b_2, b_3​ w1,w2,w3,w4,w5,w6,b1,b2,b3 9个变量的多元函数,即 L o s s ( w 1 , w 2 , w 3 , w 4 , w 5 , w 6 , b 1 , b 2 , b 3 ​ ) Loss(w_1, w_2, w_3, w_4, w_5, w_6, b_1, b_2, b_3​) Loss(w1,w2,w3,w4,w5,w6,b1,b2,b3)

h 1 h_1 h1 h 2 h_2 h2 的净输出为:
n e t h 1 = w 1 ∗ H + w 2 ∗ W + b 1 net_{h_1} = w_1*H + w_2 * W + b_1 neth1=w1H+w2W+b1
n e t h 2 = w 3 ∗ H + w 4 ∗ W + b 2 net_{h_2} = w_3*H + w_4 * W + b_2 neth2=w3H+w4W+b2
为了让输出避免线性相关,我们使用 Sigmod函数进行计算: S ( x ) = 1 1 − e − x S(x) = \frac{1}{1-e^{-x}} S(x)=1ex1
另外,由于 S ′ ( x ) = e x ( 1 + e − x ) 2 = S ( x ) ( 1 − S ( x ) ) S^{'}(x) = \frac{e^x}{(1+e^{-x})^2}=S(x)(1-S(x)) S(x)=(1+ex)2ex=S(x)(1S(x))所以 ∂ o u t h 1 ∂ n e t h 1 = S ′ ( n e t h 1 ) = o u t h 1 ∗ ( 1 − o u t h 1 ) \frac{\partial out_{h_1}}{\partial net_{h_1}}=S^{'}(net_{h_1})=out_{h_1}*(1-out_{h_1}) neth1outh1=S(neth1)=outh1(1outh1)
求对应的实际输出,分别为:
o u t h 1 = S ( h 1 ) o u t h 2 = S ( h 2 ) out_{h_1} = S(h_1)\\ out_{h_2} = S(h_2) outh1=S(h1)outh2=S(h2)
从而最终的输出为: O = w 5 ∗ o u t h 1 + w 6 ∗ o u t h 2 + b 3 O = w_5 * out_{h_1} + w_6 * out_{h_2} + b_3 O=w5outh1+w6outh2+b3
所以损失函数的表达式为:
L o s s = ( y i − y ^ i ) 2 = ( y i − O ) 2 Loss = (y_i-\hat y_i)^2 = (y_i - O)^2 Loss=(yiy^i)2=(yiO)2

随机梯度下降(SGD)

w i + ← 1 − η ∗ ∂ O ∂ w i w_i^+ \leftarrow 1- \eta * \frac{\partial O}{\partial {w_i}} wi+1ηwiO

现在让我们来求 w 1 w_1 w1 的变化率: ∂ L o s s ∂ w 1 = ∂ L o s s ∂ O ∗ ∂ O ∂ o u t h 1 ∗ ∂ o u t h 1 ∂ n e t h 1 ∗ ∂ n e t h 1 ∂ w 1 \frac{\partial Loss}{\partial {w_1}} = \frac{\partial Loss}{\partial O} * \frac{\partial O}{\partial out_{h_1}} * \frac{\partial out_{h_1}}{\partial net_{h_1}} * \frac{\partial net_{h_1}}{\partial {w_1}} w1Loss=OLossouth1Oneth1outh1w1neth1
代入可得: ∂ L o s s ∂ w 1 = ( O − y i ) ∗ w 5 ∗ o u t h 1 ( 1 − o u t h 1 ) ∗ H \frac{\partial Loss}{\partial {w_1}} = (O - y_i) * w_5*out_{h_1}(1-out_{h_1}) * H w1Loss=(Oyi)w5outh1(1outh1)H

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值