神经网络的参数更新(BP算法)

本文详细介绍了BP算法的历史背景、核心原理及应用过程。首先回顾了BP算法的发展历程,接着深入浅出地讲解了反向传播、梯度下降及链式法则等关键概念。

1. BP算法的提出

  BP算法最初是由Paul Werbos在1974其博士论文中首次论证。 David E. Rumelhart 、Geoffrey Hinton、Ronald J. Wlilliams 三人在1986年再次发表在了1986年10月9日的Nature上,(原始论文地址这个要收费,文末有免费的paper地址,整个paper篇幅不长,有兴趣的可以下来读一读。) 目前我们通常说的BP算法多指86年提出的算法。

2. BP算法的理解

BP算法的理解可以拆解成三部分:

  1. 反向传播
  2. 梯度下降
  3. 链式法则

下面我们简单的说下各部分的细节

2.1 反向传播

  何为反向传播?就是使用预测值与实际值的差异来反向更新网络的参数。这里的差异指通过损失函数计算出的 l o s s loss loss,举例,如: l o s s = 1 2 ∑ i = 1 n ( y i − y i ∗ ) 2 loss=\frac{1}{2}\sum_{i=1}^{n}{(y_i-y_i^*)^2} loss=21i=1n(yiyi)2,这个总体的 l o s s loss loss就是我们要更新参数的依据。

2.2 梯度下降

  我们现在想使用 l o s s loss loss来更新参数,怎么更新呢?我们先从简单的入手,如下这个网络。(偏置项没有画)

w1
w2
w3
w4
w5
w7
w6
w8
x1
h1
X2
h2
O1
O2

  我们是怎么计算出loss的?根据公式 l o s s = 1 2 ∑ i = 1 n ( y i − y i ∗ ) 2 loss=\frac{1}{2}\sum_{i=1}^{n}{(y_i-y_i^*)^2} loss=21i=1n(yiyi)2
l o s s = 1 2 ( y − o 1 ) 2 + 1 2 ( y − o 2 ) 2 o 1 = s i g m o i d ( h 1 ∗ w 5 + h 2 ∗ w 6 + b 2 ) o 2 = s i g m o i d ( h 1 ∗ w 7 + h 2 ∗ w 8 + b 2 ) h 1 = s i g m o i d ( x 1 ∗ w 1 + x 2 ∗ w 2 + b 1 ) h 2 = s i g m o i d ( x 1 ∗ w 3 + x 2 ∗ w 4 + b 1 ) loss=\frac{1}{2}(y-o_1)^2 + \frac{1}{2}(y-o_2)^2\\ o_1=sigmoid(h_1*w_5+h_2*w_6 +b_2)\\ o_2=sigmoid(h_1*w_7+h_2*w_8 +b_2)\\ h_1=sigmoid(x_1*w_1+x_2*w_2 +b_1)\\ h_2=sigmoid(x_1*w_3+x_2*w_4 +b_1) loss=21(yo1)2+

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值