机器学习-神经网络(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

为学习率

相关推荐
艾莉丝努力练剑3 分钟前
【C++:map和set的使用】C++ map/multimap完全指南:从红黑树原理入门到高频算法实战
大数据·开发语言·c++·人工智能·stl·map
汤姆yu3 分钟前
基于大数据的全国降水可视化分析预测系统
大数据·开发语言·python
正在走向自律1 小时前
影刀RPA完全指南:从零入门到自动化高手(2/10)
运维·人工智能·自动化·rpa·影刀·rpa自动化工具·ai结合影刀
现在,此刻1 小时前
李沐深度学习笔记D1-什么是深度学习
人工智能·笔记·深度学习
haogexiaole1 小时前
余弦相似度、矩阵分解、深度学习物品的复杂、非线性特征
深度学习·线性代数·矩阵
墨染点香2 小时前
LeetCode 刷题【144. 二叉树的前序遍历】
数据结构·算法·leetcode
Hy行者勇哥2 小时前
多源数据抽取与推送模块架构设计
人工智能·个人开发
星空的资源小屋2 小时前
Text Grab,一款OCR 截图文字识别工具
python·django·ocr·scikit-learn
寒秋丶2 小时前
Milvus:Json字段详解(十)
数据库·人工智能·python·ai·milvus·向量数据库·rag
长桥夜波3 小时前
机器学习日报07
人工智能·机器学习