作为深度学习领域的一个重要算法,BP算法为神经网络中权值计算找出最优权值值
BP算法优缺点
优点:
- 自适应,自主学习.通过不断的参数更新找出最适宜的权值
- 非线性映射
缺点: - 参数过多时,每次更新都需要操作过多权值,导致收敛速度慢
- 容易陷入局部最小值
BP算法主要组成
- 正向传播
- 逆向传播
正向传播
首先,我们要根据设计好的神经网络图来对参数进行正向传播,这里使用341的神经网络来作为例子
1.向隐藏层的正向传播
以此类推,我们相继求出h1,h2,h3和h4
(这里注意两个地方,一是b1和b2是偏置值,因此数据为1.二是权值总共有(3+1)*4=16个,因此要设16个权值,并不是只有v1到v4
2.向输出层的正向传播
由此,就完成了一次正向的传播
反向传播
反向传播的核心思想在于对误差进行权值的求偏导,找出权值为何值的时候误差最小
首先找出误差值
现在,我们要分析的问题是:error为何值时,权值最小,这里用求w1何值时最小来作为例子
这里的out2就是o1
因此,我们分类求出这三个值
现在,我们整合这三个式子
现在,我们找到了误差权值和最适权值的变化范围,直接更新
用同样的方法,找出w2,w3,w4,w5的最适权值,向隐藏层的一次反向传播就到此结束,但并不意味着找到了最适,我们还需要多次的反向传播,才能确定出最合适的权值
现在,我们要分析的问题是:error为何值时,权值最小,这里用由w1求v1何值时最小来作为例子
由于上面已经求出error关于net2偏导,这里不过多叙述
用同样的方法,找出v1,v2,v3,v4的最适权值,向输入层的一次反向传播就到此结束,但并不意味着找到了最适,我们还需要多次的反向传播,才能确定出最合适的权值