BP(Back)网络是1986年由何、李为首的一组科学家提出的。 它是根据误差反向传播算法训练的多层前馈网络。 其学习规则是采用最速下降法,通过反向传播不断调整网络的权重和阈值,使网络的误差平方和最小。 BP神经网络模型拓扑包括输入层、隐含层和输出层。
血压神经元
第 j 个神经元的净输入值 Sj 为:
净输入经过传递函数 ( ) f (·) 后,得到第 j 个神经元的输出:
式中,f是单调上升函数,而且一定是有界函数,因为细胞发射的信号不可能无限增加,必须有最大值。
事实上,对于单个神经元来说,如果忽略传递函数,本质上就是一个LR算法。
反向传播
反向传播是BP神经网络的一个特性,因此这部分内容将进行详细说明。
1)误差函数
第 p 个样本的误差:
其中,tp是期望输出,yp是经过网络后的输出,有p个学习样本和m个输出节点。
全局错误:
这里没有具体的公式推导,而是更直观的解释,如下图:
情况一:
当误差对权重的偏导数大于零时,权重调整量为负,实际输出大于期望输出,向减小的方向调整权重,使得与实际产量和预期产量减少。
情况二:
当误差对权重的偏导数小于零时,权重调整为正,实际输出小于期望输出,权重向增大方向调整,使得实际输出与实际输出的差值小于期望输出。产量和预期产量减少。
BP神经网络的优缺点
优势:
(1)网络本质上实现了从输入到输出的映射函数,数学理论已经证明它有能力实现任何复杂的非线性映射。 这使得它特别适合解决内部机制复杂的问题;
(2)网络可以通过学习具有正确答案的样本集来自动提取“合理”的解决规则,即具有自学习能力;
(3)网络具有一定的推广和泛化能力。
问题:
(1)BP算法的学习速度很慢。 主要原因有:
①由于BP算法本质上是梯度下降法,而它要优化的目标函数非常复杂,不可避免地会出现“锯齿现象”,这使得BP算法效率低下;
②有麻痹现象。 由于优化目标函数非常复杂,当神经元输出接近0或1时,不可避免地会出现一些平坦区域。在这些区域中,权重误差变化很小,使得训练过程几乎陷入停顿。 ;
③ 为了让网络执行BP算法,不能用传统的一维搜索方法来求出每次迭代的步长,而必须提前将步长更新规则赋予网络。 这种方法会导致算法效率低下。
(2)网络训练更容易失败,原因如下:
①从数学角度来看,BP算法是一种局部搜索优化方法,但它解决的问题是寻找复杂非线性函数的全局极值。 因此,算法很可能陷入局部极值,导致训练失败;
②网络的逼近和泛化能力与学习样本的典型性密切相关,从问题中选取典型样本实例形成训练集是一个非常困难的问题。
(3)应用问题的实例规模与网络规模的矛盾难以解决。 这就涉及到网络能力的可能性与可行性的关系,即学习复杂度的问题;
(4)网络结构的选择没有统一、完整的理论指导,一般只能凭经验选择。 为此,有人将神经网络的结构选择称为一门艺术。 网络的结构直接影响网络的逼近能力和泛化性能。 因此,如何在应用中选择合适的网络结构是一个重要的问题;
(5) 新添加的样本必须影响已成功学习的网络,并且表征每个输入样本的特征数量也必须相同;
(6)网络的预测能力(也称泛化能力、泛化能力)与其训练能力(也称逼近能力、学习能力)之间的矛盾。 一般来说,当训练能力较差时,预测能力也较差,并且在一定程度上,随着训练能力的提高,预测能力也会提高。 然而,这种趋势是有极限的。 当达到这个极限时,随着训练能力的提高,预测能力却下降,这就是所谓的“过拟合”现象。 此时网络已经学习了太多的样本细节,无法反映样本中包含的模式。