机器学习-神经网络(BP神经网络前向和反向传播推导)

1.1 神经元模型

神经网络(neural networks)方面的研究很早就已出现,今天"神经网络"已是一个相当大的、多学科交叉的学科领域.各相关学科对神经网络的定义多种多样,本书采用目前使用得最广泛的一种,即"神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应"[Kohonen,1988]. 我们在机器学习中谈论神经网络时指的是"神经网络学习",或者说,是机器学习与神经网络这两个学科领域的交叉部分.

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

1943年,[McCulloch and Pitts,1943]将上述情形抽象为图5.1所示的简单模型,这就是一直沿用至今的"M-P神经元模型".在这个模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过"激活函数"(activation function)处理以产生神经元的输出.理想中的激活函数是图5.2(a)所示的阶跃函数,它将输入值映射为输出值"0"或"1",显然"1"对应于神经元兴奋,"0"对应于神经元抑制.

然而,阶跃函数具有不连续、不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数. 典型的Sigmoid函数如图5.2(b)所示,它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内,因此有时也称为"挤压函数"(squashing function).

把许多个这样的神经元按一定的层次结构连接起来,就得到了神经网络.

事实上,从计算机科学的角度看,我们可以先不考虑神经网络是否真的模拟了生物神经网络,只需将一个神经网络视为包含了许多参数的数学模型,这个模型是若干个函数相互(嵌套)代入而得. 有效的神经网络学习算法大多以数学证明为支撑.

1.2 感知机与多层神经网络

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

神经网络默认的方向是从输入到输出,信息可以看成是向前传递的,因此从输入到输出进行信息传递的多层神经网络也称为多层前馈型神经网络。

单层感知器能够解决线性问题,但无法解决非线性问题。处理非线性问题需要多层神经网络,即多层感知器模型(Multi-Layer Perceptron,MLP)。在多层神经网络中,有输入层、中间层(又称隐藏层,可有多层)和输出层。每一层神经元只接受来自前一层神经元的输入。

1.3 BP神经网络

向前传播:

输入层->隐含层:i->h

计算神经元输入加权求和:

神经元h1输出oh1:

隐含层->输出层:h->o

计算神经元输入加权和:

神经元o1的输出:

反向传播:

计算误差:

在这题中为:

隐含层->输入层:h->o

隐含层->隐含层:h->i

为学习率

相关推荐
TMT星球几秒前
WPS 365推出“AI医药报告写作助手”,撰写效率提升超60%
人工智能·wps
人工智能AI技术1 分钟前
从零实现“AI版GTA”:用谷歌Genie 3搭建你的第一个可交互3D世界
人工智能
cool_switch1 分钟前
效率革新:深度体验一款面向开发者的“一站式”AI PPT生成方案
人工智能·powerpoint
双层吉士憨包1 分钟前
2026数据爬虫实战:如何高效采集Google地图数据的动态IP策略
大数据·网络·人工智能
LeeeX!1 分钟前
YOLOv13全面解析与安卓平台NCNN部署实战:超图视觉重塑实时目标检测的精度与效率边界
android·深度学习·yolo·目标检测·边缘计算
历程里程碑2 分钟前
滑动窗口------滑动窗口最大值
大数据·python·算法·elasticsearch·搜索引擎·flask·tornado
光羽隹衡2 分钟前
计算机视觉——Opencv(图像透视变换)
人工智能·opencv·计算机视觉
Mr_Xuhhh3 分钟前
C语言字符串与内存操作函数模拟实现详解
java·linux·算法
穿过锁扣的风4 分钟前
从感知器到BP神经网络:深度学习入门核心笔记
笔记·深度学习·神经网络
AI_56785 分钟前
Python正则表达式终极指南:从模式匹配到文本工程的智能跃迁
人工智能·python·正则表达式