ML Backpropagation算法的计算过程举例

Backpropagation计算过程举例

初始权重(initialize weights)是随机产生的(如-1~1之间)
初始化可以选择均值为0,方差为1/n_in的正态分布,n_in为输入的实例个数,Python中可使用np.random.normal函数来初始化权重:
np.random.normal(0, 1/3, size=(2, 3))初始化了均值为0,方差为1/3的2行3列矩阵,对应输入层3个结点、隐藏层2个结点的情况

正向计算结点值

X为实例向量,w为权重,θ为偏向(bias),对于input layer是没有偏向的,其他偏向θ值可以定在-0.5~0.5之间
如下图
由node4对应所有实例计算出的结果(0.332)即是node4对应的的值
最开始所有层w,b都会初始化一个值
以下[3,2,1]的神经元结构为例:input layer为所有x值,每一个结点代表一个x的值

在这里插入图片描述
如:node4 = x1 * w14 + x2 * w24 + x3 * w34 + θ4 =0.2+0+(-0.5)+(-0.4)=-0.7(相当于中间变量Z或activation a)
θ为偏向bias,算出来node4=-0.7也就是node4对于output的输入值

反向更新权重和偏向

利用公式计算每一个结点的error
输出层node6的error计算:
在这里插入图片描述
T表示实际值,O表示最终输出值,下标 j 表示结点的索引值
隐藏层的node4和node5的error计算:
在这里插入图片描述
j 表示当前层的某个结点,k表示与之连线的下一层的结点,因此对于node4,其Err_k即为node6的error值,w_ij为当前结点与下一结点的连接权重,node5同理
在这里插入图片描述
更新weight的公式:
在这里插入图片描述
其中l为学习率,其余的参数同上面error计算的参数一致

更新bias的公式:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值