目录
神经网络,是机器学习的一个分支,学名应该叫人工神经网络,与之对应的是生物神经网络(CNN),如下图所示:
1. 神经元模型
在细致了解人工神经网络之前,我们需要对M-P神经元模型有大致的了解,在M-P神经元模型中,神经元接收到其他n个神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元收到的总输入值将与神经元的阈值进行比较,然后通过激活函数(active function)处理以产生神经元的输出。
把许多这样的神经元按一定的层次结构连接起来,就得到了神经网络。神经网络可视为一个包含很多参数的数学模型,这个模型是若干个函数相互嵌套代入而得。有效的神经网络大多以数学证明为支撑。
激活函数
关于激活函数的选择,理想的激活函数是如下图所示的阶跃函数,它将输入值映射为“0”(神经元抑制),“1”(神经元兴奋)。
但是,阶跃函数具有不连续不光滑等不太好的性质,因此实际常用Sigmoid函数作为激活函数。如下图所示,它把可能在较大范围内变化的输入值挤压到(0,1)输出值的范围内,因此有时也称为挤压函数(squashing function)
2. 感知机与多层网络
感知机(Perceptron):由两层神经元组成,输入层接受外界输入信号后传递给输出层,输出层是M-P神经元(也称:阈值逻辑单元(threshold logic unit)),为二类分类的线性分类模型(激活函数为阶跃函数)。
感知机的学习目标是求得能对数据集T中的正负样本完全正确划分的超平面:
从集合角度来看,给定一个线性可分的数据集T,感知机的学习目标是求得能对数据集T中的正负样本完全正确划分的超平面,其中即为超平面方程
注意:n维空间的超平面方程:
(1)n维空间的超平面方程不唯一
(2)法向量垂直于超平面
(3)法向量和位移项b确定一个唯一的超平面
(4) 法向量 指向的那一半空间为正空间,另一半为负空间
多层网络:常见的神经网络如下图所示的层级结构,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接,这样的神经网络结构通常称为“多层前馈神经网络”。注意,“前馈”并不意味着网络信号不能向后传,而是指网络拓扑结构上不存在环或回路。
其中,输入层神经元接收外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出。换言之,输入层神经元仅是接受输入,不进行函数处理,隐层和输出层包含功能神经元。
3. 误差逆传播算法
误差逆传播算法(BP)是迄今为止最成功的神经网络学习算法,BP网络如下所示:
神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”以及每个功能神经元的阈值。
首先介绍一下,BP算法的总体流程:
具体细节可见西瓜书,此处敲打公式不便。