目录
2.2多层感知器
一、什么是神经网络
人工神经网络简称为神经网络或者类神经网络,在经典的神经网络中一般包括输入层(Input Layer)、隐藏层(Hidden Layer)、输出层(Output layer),其中隐藏层也被称为中间层,没有中间层的神经网络被称为单层神经网络,包含一个或多个隐藏层的神经网络则被称为多层神经网络。输入层和输出层的节点数一般是固定的,中间层则可以自由增减;神经网络结构图中箭头方向代表预测过程时数据的去向,与训练时有一写差别;结构图中圆圈代表神经元,连接线代表神经元之间的连接,每个连接线所对应的权值是不一样的,是根据训练所得出的。
图1 神经网络结构图
1.1 神经元
从生物学的角度上讲,一个神经元通常具有很有个树突,主要用于数据接收;而轴突只有一条,轴突尾部有很多轴突末梢可以给其他的多个神经元传递数据。轴突末梢与其它神经元的树突产生连接,从而传递信号。而连接的位置在生物学上叫做“突触”。
神经网络是一个类神经元的搭建。神经元模型是一个包含输入,输出与计算功能的模型。输入层类似于树突,输出层则类似于轴突,计算的过程则可以类比为细胞核。在神经元模型内,有向箭头代表的是值的加权传递。
图2 神经元模型
连接是数据元中最重要的东西,每个连接上都有一个权值,每个权值的值都各不相同。
一个神经网络的训练就是为了让权值的值调整到最佳,使得整个神经网络的预测效果达到最好。我们使用a来表示输入,用w来表示权值。一个有向箭头可以理解为;在输入层传递的信号大小为a,经过这个加权后这个信号变为a*w,因此在输出层时,信号的大小变为a*w。由此可见最后的输出结果,则是在进行a和w进行线性加权的和之后叠加了一个函数g。
神经元可以看作一个计算与存储单元。计算是神经元对其的输入进行计算功能。存储是神经元会暂时存储计算结果,并传递给下一层。当我们用“神经元”组成网络之后,描述某个“神经元”时,我们更多地会用“单元”来指代,有时也会用“节点”来代替。
1.2 常见的激活函数
(t1)sigmoid函数因其在logistic回归中的重要地位,值域在0到1之间。
函数定义式:
值域:(0,1)
图3 sigmoid函数图像
(2)tanh函数具有很多神经网络所钟爱的特征。它是完全可微分的,反对称,对称中心在原点。
函数定义式:
值域:(-1,1) 图4 tanh函数图像
特点:与sigmiod函数相似;tanh比sigmiod函数更容易训练,具有优越性。
(3)SoftMax函数用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。对于长度为K的任意实向量,Softmax函数可以将其压缩为长度为K,值在[0,1]范围内,并且向量中元素的总和为1的实向量。
函数定义式:
定义域:R
值域:[0,1]
图5 SoftMax函数图像
特点:在零点不可微;负输入的梯度为零,因此会产生用不激活的死亡神经元。
1.3 人工神经网络模型种类
目前,已有近40种神经网络模型,其中有反传网络、感知器、自组织映射、Hopfield网络、波耳兹曼机、适应谐振理论等。根据不同的拓扑结构,神经网络模型可以分为:
(1)前向网络
网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示。这种网络实现信号从输入空间到输出空间的变换,它的信息处理能力来自于简单非线性函数的多次复合。网络结构简单,易于实现。反传网络是一种典型的前向网络。
(2)反馈网络
网络内神经元间有反馈,可以用一个无向的完备图表示。这种神经网络的信息处理是状态的变换,可以用动力学系统理论处理。系统的稳定性与联想记忆功能有密切关系。Hopfield网络、波耳兹曼机均属于这种类型。
二、感知器的介绍
2.1 单层感知器
在感知器中拥有俩个层次,一个为输入层,另一个为输出层。输入层里的“输入单元”只负责传输数据,不做计算;输出层里的“输出单元”则需要对前一层的输入进行计算。我们把需要计算的层次称之为“计算层”,并把拥有一个计算层的神经网络层职位“单层神经网络”。
已知一个神经元的输出可以向多个神经元传递,那么在输出层加入一个新的的输出单元时,除了连接线上权值发生变化外,新的输出单元的值除了权值外应与原本输出层一致。
感知器与神经元不同,感知器中的权值时根据训练得出的。因此,根据以前的知识我们知道,感知器类似一个逻辑回归模型,可以做线性分类的任务。
2.2 多层感知器
简单的来说,多层感知器中是拥有俩层及以上的计算层的神经网络。神经网络经过“预训练”的过程,这可以方便的让神经网络中的权值找到一个接近最优解的值,之后在经过“微调”对于整个网络进行训练。这两个技术的运用大幅度的减少了训练多层神经网络的时间,为多层神经网络相关的学习方法赋予了一个新名词--深度学习。
增加神经网络的层次,可以更深入的表示特征,以及提升的函数模拟能力。更深入的表示特征可以这样理解,随着网络的层数增加,每一层对于前一层次的抽象表示更深入。在神经网络中,每一层神经元学习到的是前一层神经元值的更抽象的表示,通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力;更强的函数模拟能力是由于随着层数的增加,整个网络的参数就越多,而神经网络其实本质就是模拟特征与目标之间的真实关系函数的方法,更多的参数意味着其模拟的函数可以更加的复杂,可以有更多的容量去拟合真正的关系。