机器学习—神经网络

BP神经网络的综述

1.1神经网络的定义

神经网络(neural network) 是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。

神经网络中最基本的成分是神经元 (neuron) 模型,即上述定义中的简单单元,在生物神经网络中,每个神经元与其他神经元相连,当它兴奋时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位,如果某神经元的电位超过了一个阈值 (threshold),那么它就会被激活,即兴奋起来,向其他神经元发送化学物质。

1.2感知机与多层网络

感知机 (perceptron) 由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是 M-P 神 经元,亦称阈值逻辑单元(threshold logic unit)。

感知机能容易地实现逻辑与、或、非运算。

需注意的是,感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元 (functional neuron),其学习能力非常有限。

机器学习—神经网络

要解决非线性可分问题,需考虑使用多层功能神经元。更一般的,常见的神经网络是下图所示的层级结构,每层神经元与下一层神经元全互连,神经元之间不存在同层互连,也不存在跨层连接,这样的神经网络结构通常称为多层前馈神经网络 (multi-layer feedforward neural networks),其中输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出,换言之,输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元。

机器学习—神经网络

1.3 BP神经网络与BP算法

多层网络的学习能力比单层感知机强得多,训练多层网络,

的简单感知机学习规则就不够用了,这就需要更强大的学习算法。

机器学习—神经网络

误差逆传播(error BackPropagation, BP)算法就是其中最杰出的代表,它是迄今最成功的神经网络算法,现实任务中使用神经网络时,大多是在使用 BP 算法进行训练,值得指出的是,BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络,但通常说 BP 网络时,一般是指用 BP 算法训练的多层前馈神经网络。

BP 网络及算法中的符号:

给定训练集 , 即输入示例由 d 个属性描述,输出 l 维实值向量, 下图给出了一个拥有 d 个输入神经元、l 个输出神经元、q 个隐层神经元的多层前馈网络结构.

机器学习—神经网络

BP算法的工作流程:

对每个训练样例, BP算法执行以下操作:先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果;然后计算输出层的误差(第4-5行),再将误差逆向传播至隐层神经元(第6行),最后根据隐层神经元的误差来对连接权和阈值进行调整(第7行).该迭代过程循环进行,直到达到某些停止条件为止,例如训练误差已达到一个很小的值.图1.4给出了在2个属性、5个样本的西瓜数据上,随着训练轮数的增加,网络参数和分类边界的变化情况.

机器学习—神经网络

机器学习—神经网络

需注意的是,BP 算法的目标是要最小化训练集 D 上的累积误差。

但上面介绍的标准 BP 算法 每次仅针对一个训练样例更新连接权和 阈值,即更新规则是基于单个的 推导而得的,如果类似地推导出基于累积误差最小化的更新规则,就得到了累积 误差逆传播(accumulated error backpropagation) 算法,累积 BP 算法与标准 BP 算法都很常用。

标准 BP 算法与累积 BP 算法的比较:

标准 BP 算法每次更新只针对单个样例,参数更新得非常频繁,而 且对不同样本进行更新的效果可能会出现抵消现象,因此,为了达到同样的累积误差极小点,标准BP算法往往要进行 更多次的迭代,累积 BP 算法直接针对累积误差最小化,它在读取整个训练集 D 一遍后才对参数进行更新,其参数更新的频率低得多,在很多任务中,累积误差下降到一定程度后,进一步下降会非常缓慢,这时标准 BP 往往会更快获得较好的解,尤其是在训练集 D 非常大时更明显。

Original: https://www.cnblogs.com/liangren-na/p/16437773.html
Author: 良人呐
Title: 机器学习—神经网络

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/587953/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球