神经网络(Artificial Neural Networks):人工神经网络的简称,是一种应用类似于大脑神经突触联接的结构或网络,进行信息处理的数学模型。神经网络是一门重要机器学习技术,它是目前最火热的研究方向—深度学习之基础。
下面我们从 “人造” 神经网络的起点-神经元开始讲起,沿着神经网络的“树突”,一步步来到神经网络的世界。
·1943 年,沃伦·麦卡洛克 和 沃尔特·皮茨参考生物神经元的结构,发表了抽象的神经元模型MP。
·1949年,心理学家Hebb提出Hebb学习率,计算科学家们开始用调整权值的方法来让机器学习。
·1958年,计算科学家 Rosenblatt 提出了由两层神经元组成的神经网络,--“感知器”。
·1958年 - 1969年,许多学者和科研机构纷纷投入到神经网络的研究中,这个时期是神经网络的第一次兴起。
·1969年,Minsky出版《Perceptron》,书中论证了感知器的弱点,尤其无法解决XOR(异或)问题,而将计算层增加到两层的计算量过于庞大,提出研究更深层的网络是没有价值的。神经网络的研究陷入了冰河期。这个时期又被称为“AI winter”。
·1986年,Rumelhar 和 Hinton 等人提出反向传播(Backpropagation,BP)算法,解决了两层神经网络所需要的复杂计算量问题,带来了神经网络复苏的又一春。
·上世纪90年代中期,由Vapnik等人发明的SVM(Support Vector Machines,支持向量机)算法诞生,凭借无需调参、高效、全局最优解等优势,迅速打败了神经网络算法成为主流。神经网络的研究再次陷入了冰河期。
·2006年,Hinton在《Science》和相关期刊上发表了论文,首次提出了 “深度信念网络” 的概念,使用 “预训练” 和 “微调” 技术大幅度减少训练多层神经网络的时间,他给多层神经网络相关的学习方法赋予了一个新名词 -- “深度学习”。
·2012年,CNN(Conventional Neural Network,卷积神经网络)爆发,深度学习技术在图像识别领域表现优异。
·2015年,LeCun、Bengio 和 Hinton 在Nature上刊发 “Deep Learning”,标志着深度神经网络真正被学术界所接受。
此后,关于深度神经网络的研究与应用不断涌现。
一个神经元通常具有多个树突,主要用来接受传入信息;而轴突只有一条,轴突尾端有许多轴突末梢可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。这个连接的位置在生物学上叫做 “突触”。人脑中的神经元形状可以用下图做简单的说明:
1943年,心理学家McCulloch和数学家Pitts参考了生物神经元的结构,发表了抽象的神经元模型MP。
神经元模型是一个包含输入,输出与计算功能的模型。输入可以类比为神经元的树突,而输出可以类比为神经元的轴突,计算则可以类比为细胞核。
一个简单神经元模型中每一个有向箭头线称为连接;每一个连接上有一个值,称为权值或权重。连接是神经元中最重要的东西。每一个连接上都有一个权重。一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。
我们使用a来表示输入,用w来表示权值,a*w表示加权后的信号,那么输出Z可以表示成:z=g(a1*w1+a2*w2+a3*w3)
可见z是在输入和权值的线性加权和叠加了一个函数g的值。在MP模型里,函数g是sgn函数,也就是取符号函数。这个函数当输入大于0时,输出1,否则输出0。
神经元可以看作一个计算与存储单元。计算是神经元对其的输入进行计算功能。存储是神经元会暂存计算结果,并传递到下一层。
1943年发布的MP模型建立了神经网络大厦的地基。
1958年,计算科学家Rosenblatt提出了由两层神经元组成的神经网络,并给它起了一个名字-- “感知器”(Perceptron)。
在“感知器”中,有两个层次。分别是输入层和输出层。输入层里的“输入单元”只负责传输数据,不做计算。输出层里的“输出单元”则需要对前面一层的输入进行计算。
我们把需要计算的层次称之为 “计算层”,并把拥有一个计算层的网络称之为 “单层神经网络”。
如果用矩阵乘法来表达这两个公式,则输出公式可以改写成:g(W * a) = z。
Minsky提出单层神经网络无法解决异或问题,但是当增加一个计算层以后,两层神经网络不仅可以解决异或问题,而且具有非常好的非线性分类效果。不过两层神经网络的计算是一个难题。1986年,Rumelhar和Hinton等人提出了反向传播(Backpropagation,BP)算法,解决了两层神经网络所需要的复杂计算量问题,带动了业界使用两层神经网络研究的热潮。
两层神经网络除了包含一个输入层,一个输出层以外,还增加了一个中间层。此时,中间层和输出层都是计算层。
使用矩阵运算来表达整个计算公式的话如下:
g(W(1) * a(1)) = a(2);
g(W(2) * a(2)) = z;
神经网络的本质就是通过参数与激活函数来拟合特征与目标之间的真实函数关系。初学者可能认为画神经网络的结构图是为了在程序中实现这些圆圈与线,但在一个神经网络的程序中,既没有“线”这个对象,也没有“单元”这个对象。实现一个神经网络最需要的是线性代数库。
2006年,Hinton在《Science》和相关期刊上发表了论文,首次提出了 “深度信念网络” 的概念。与传统的训练方式不同,“深度信念网络”有一个“预训练”(pre-training)的过程,这可以方便的让神经网络中的权值找到一个接近最优解的值,之后再使用“微调”(fine-tuning)技术来对整个网络进行优化训练。这两个技术的运用大幅度减少了训练多层神经网络的时间。他给多层神经网络相关的学习方法赋予了一个新名词--“深度学习”。
在两层神经网络的输出层后面,继续添加层次。原来的输出层变成中间层,新加的层次成为新的输出层。依照这样的方式不断添加,我们可以得到更多层的多层神经网络。
在已知输入a(1),参数W(1),W(2),W(3)的情况下,输出z的推导公式如下:
g(W(1) * a(1)) = a(2);
g(W(2) * a(2)) = a(3);
g(W(3) * a(3)) = z;
与两层层神经网络不同,多层神经网络中的层数增加了很多,拥有更深入的表示特征,以及更强的函数模拟能力。在神经网络中,每一层神经元学习到的是前一层神经元值更深入的抽象表示。例如第一个隐藏层学习到的是“边缘”的特征,第二个隐藏层学习到的是由“边缘”组成的“形状”的特征,第三个隐藏层学习到的是由“形状”组成的“图案”的特征,最后的隐藏层学习到的是由“图案”组成的“目标”的特征。通过抽取更抽象的特征来对事物进行区分,从而获得更好的区分与分类能力。
更强的函数模拟能力是由于随着层数的增加,整个网络的参数就越多。而神经网络其实本质就是模拟特征与目标之间的真实关系函数的方法,更多的参数意味着其模拟的函数可以更加的复杂,可以有更多的容量(capcity)去拟合真正的关系。
总结:神经网络强大预测能力的根本,就是多层的神经网络可以无限逼近真实的对应函数,从而模拟数据之间的真实关系。
目前,神经网络在模式识别、自动控制、信号处理、辅助决策、人工智能等众多研究领域都取得了巨大的成功,下面我们一起来看看神经网络在现代科技中的广泛应用。
信息处理
人工神经网络系统具有很高的容错性、 鲁棒性及自组织性,在军事系统电子设备中得到广泛的应用。现有的智能信息系统有智能仪器、自动跟踪监测仪器系统、自动控制制导系统、自动故障诊断和报警系统等。
模式识别
人工神经网络是模式识别中的常用方法,被广泛应用到文字识别、语音识别、指纹识别、遥感图像识别、人脸识别、手写体字符的识别、工业故障检测、精确制导等方面。
由于人体和疾病的复杂性、不可预测性,人工神经网络的应用几乎涉及从基础医学到临床医学的各个方面。
生物信号的检测与分析
神经网络在生物医学信号检测与处理中的应用主要集中在对脑电信号的分析,听觉诱发电位信号的提取、肌电和胃肠电等信号的识别,心电信号的压缩,医学图像的识别和处理等。
医学专家系统
以非线性并行处理为基础的神经网络为专家系统的研究指明了新的发展方向, 解决了传统专家系统知识 “爆炸” 等问题,并提高了知识的推理、自组织、自学习能力,从而神经网络在医学专家系统中得到广泛的应用和发展。
市场价格预测
人工神经网络可以通过建立模型对商品价格的变动趋势进行科学预测,并得到准确客观的评价结果。
风险评估
应用人工神经网络的预测思想是根据具体现实的风险来源, 构造出适合实际情况的信用风险模型的结构和算法,得到风险评价系数,然后确定实际问题的解决方案。
人工神经网络由于其独特的模型结构和固有的非线性模拟能力,以及高度的自适应和容错特性等突出特征,在控制系统中获得了广泛的应用。基本的控制结构有监督控制、直接逆模控制、模型参考控制、内模控制、预测控制、最优决策控制等。
交通运输问题是高度非线性的,可获得的数据通常是大量的、复杂的,用神经网络处理相关问题有它巨大的优越性, 应用范围涉及到汽车驾驶员行为的模拟、参数估计、路面维护、车辆检测与分类、交通模式分析、货物运营管理、交通流量预测等。
从神经网络模型的形成开始,它就与心理学就有着密不可分的联系。近年来,人工神经网络模型已经成为探讨社会认知、记忆、学习等高级心理过程机制的不可或缺的工具。人工神经网络模型还可以对脑损伤病人的认知缺陷进行研究,对传统的认知定位机制提出了挑战。
写在最后:纵观神经网络的发展历程,既有被人捧上天的时刻,也有跌落街头无人问津的时段,本着产生问题 → 解决问题 → 产生新的问题 → 解决新的问题的发展路径,神经网络的每一次向前推进,都离不开诞生的新算法和技术的支持,随着人工智能领域技术和理论的日新月异,神经网络将迎来更广阔的发展空间。