本次学习我们将介绍BP前向神经网络算法以及从BP延申的LM神经网络算法。了解神经网络算法的概念,算法原理。
一、BP神经网络算法
1、概念
神经网络算法实际上是一种叠加的算法,对于每一个神经元来说,对输入信号$X=[x_1,x_2,…,x_m]^T$的输出$y$为$Y=f(u+b)$,其中$u=\sum_{i=1}^m{w_ix_i}$,如图所示:
这里说到激活函数,我们可以看看激活函数的种类:
信号每经过一个神经元就会进行模型的运算,再将结果输出给下一个神经元,一层接一层就构成了神经网络,这里展示一个三层BP的神经网络结构。
我们可以举个例子,比如你是否喜欢喝酒是$x_1$,你是否喜欢蹦迪是$x_2$,你是否喜欢睡觉是$x_3$,输入之后在第二层每个神经元就结合这三个元素计算了起来,最后会输出$y$代表你会不会喜欢去夜店,如果我们有一万个不同的人回答这个问题,用8000个人的回答训练这个模型,最后模型会判断剩下2000人到底会不会喜欢去夜店。当然这是一种输出,神经元也可以有多种输出。
注意,信号是正向传播的,但误差逆向传播,因为在神经元的训练过程中,每一个神经元学习的时候会根据误差调整自己以及之前的模型参数
2、算法过程
这个算法图清晰的说明了信号正向传播训练,误差逆向修正权值。这里的学习率,误差越小,学习率也会下降,误差越大,学习率也会增大,这样是为了更快的逼近好的权值。
综上可以看出,基于梯度下降算法(初始阶段优化)和牛顿法(收敛快)结合的多层前馈网络,特点:迭代次数少,收敛速度快,精度高
LM对初值(权值、阈值)较为依赖,是BP算法的改进版,接下来我们看看LM算法改进在了哪里