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算法的理解可以拆解成三部分:
- 反向传播
- 梯度下降
- 链式法则
下面我们简单的说下各部分的细节
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=21∑i=1n(yi−yi∗)2,这个总体的 l o s s loss loss就是我们要更新参数的依据。
2.2 梯度下降
我们现在想使用 l o s s loss 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=21∑i=1n(yi−yi∗)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(y−o1)2+

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





