神经网络的学习方法还有很多,但Hebb具有标志性的意义,误差反传神经网络之前的只讲这一种,如果大家有兴趣可以参考
这本书进行进一步的了解。
下图是误差反传神经网络的结构示意图(来源,侵删) 如图所示,误差反传神经网络由输入层、输出层和中间层(或称隐层)组成。(和图上不一样的是,隐层通常是多层) 它的输出计算公式可以表示为:
误差反传神经网络是用一种叫梯度下降的方法进行训练的,关于梯度下降法可以参考:梯度下降是门手艺活…… - 无痛的机器学习 - 知乎专栏,本文将不会展开讲述。 使用梯度下降法后,权值调整公式如下: 其中: 同时阈值调整公式可以表示为: 关于误差反传神经网络的公式的推导,可以参考段首提供的文献。
讲了这么多公(fei)式(hua),误差反传神经网络的特点是什么呢?
误差反传神经网络作为一个多层的神经网络,它有非线性分类的能力(单层神经网络发展受约束的原因),而且和多层感知器不同的是,它具备良好和学习能力(这是第一个多层神经网络的学习算法)。这两个特点和它的易用性使得它成为现在使用最多的神经网络。
不过它还有许多缺点:样本需求量过大,易陷入局部最优······
但无论如何,它始终是这个领域最经典的算法(没有之一),带领神经网络的研究从低迷走向辉煌(在它之前,神经网络的前景并不被人看好,因为没有多层神经网络的训练方法),在这里向它的提出者们:由Rumelhart和McCelland为首的科学家小组致敬。
本人的BPNN实现:GitHub - mwsht/BPNN: Back Propagation Neural Network
PS:代码会溢出(在使用class指针数组时)大家可以帮忙检查一下。
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |