大白话入门深度学习---探索深度学习的发展路线:人脑神经网络-人工神经网络-深度神经网络

一. 引言:人脑神经网络

  • 人的大脑中存在着无数神经元,各个神经元相互连结,构成一个较大的神经网络,用来处理人脑从外界接收的信息。但是,人类的大脑并不是从一开始就能处理一些复杂的问题的。婴儿刚出生时,大脑的神经元已产生,并且迁移到大脑相关部位去了,但是此时的神经元还只有少量的突触,连接较为简单,仅能做出基本的神经反射。出生之后,面对外界的新环境,婴儿的大脑不断接收外部信息,各种信息刺激了婴儿的脑部发育,脑内的神经元之间不断重组、连接,形成更复杂的神经网络,使个体渐渐具有其他的活动能力。

  • 在幼儿发育初期,神经网络形成的过程中,大量突触不断产生和凋亡。此间,连接网络的突触的产生是随机的,但是凋亡却是由外界因素决定的。当信号传递进大脑时,引起神经元兴奋,兴奋传递到突触,突触释放神经递质给下一个神经元,同时释放某种化学因子,维持神经元之间的通路。当外界刺激消失时,神经元之间长久没有兴奋的信号传递,突触不被激活,失去维持通路的化学因子,于是渐渐凋亡消失。神经元这种自已决定与哪些神经元相连的特性,称为自组织特性。它构成了神经元的自主学习性,这与人工神经网络的模型训练是相对应的。

  • 当幼儿发育到成人阶段,神经网络渐渐固定下来,突触的产生和凋亡都较少发生,数目渐渐趋于稳定。后期随着年龄的增加,突触又会有所减少。

二. 人工神经网络

  • 人工神经网络(Artificial Neural Network, ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型,通过该方法建立的数学模型,在精度方面已越来越高。

  • 1943年,McCulloch 和Pitts提出了沿用至今的“MP模型”,他们通过“MP模型”提出了关于神经元的数学描述,开创了神经网络研究的时代。20 世纪60年代,神经网络得到了进一步发展, 提出了包括感知器和自适应线性元件等更完善的神经网络。自20世纪80年代以来,从信息处理角度对人脑神经元进行抽象,神经网络成为人工智能的研究热点,并在模式识别、自动控制、医学、生物、智能机器人等领域有了很好的应用。

三. 深度神经网络

1. 整体架构

  • 早期的神经网络是一个浅层的学习模型,它有大量的参数,仅在训练集上有较好的表现。同时,神经网络在理论分析及训练方式上都存在一定的难度,于是自20世纪90年代开始,神经网络逐步走入低潮。这种现象直到2006年Hinton提出深度学习后才被打破。深度神经网络的复兴存在多方面的原因,其-,大规模的训练样本可以缓解过拟合问题:其二,网络模型的训练方法也有了显著的进步:其三,计算机硬件的飞速发展(如英伟达Tesla显卡的出现)使得训练效率能够以几倍、十几倍的幅度提升。

  • 此外,深度神经网络具有强大的特征学习能力。虽然浅层神经网络也能模拟出与深度学习相同的分类函数,但其所需的参数要多出几个数量级,以至于很难实现。深度学习发展到今天,学术界已经提出了多种网络模型,其中影响力较大的有卷积神经网络、深度置信网络、循环神经网络。

  • 深度学习是一个快速发展的领域,新的网络模型、分支及算法不断被提出,例如,由深度信念网络DBN改进而来的深度玻尔兹曼机,,卷积深度置信网络和深度能量模型,以及由循环神经网络RNN改进而来的双向循环网络、深度循环网络和回声状态网络等。这些改进模型都在各自的应用领域产生了深远的影响。

2. 卷积神经网络

  • 传统的神经网络已经成功地应用于某些图像分类任务中,例如,在手写数字识别方面可以达到98%以上的准确率(MNIST数据集),但是使用神经元间全连接的网络结构来处理图像任务存在若干缺陷。首先,全连接会导致维数灾难,无法很好地处理高分辨率图像;另外,这种传统的网络结构没有考虑到图像数据的空间结构,忽略了输入图像中像素间的相对位置信息;最后,在处理图像问题时,全连接会使得模型参数急剧增加,容易导致过拟合。

  • 在机器学习领域,卷积神经网络 (Convolutional Neural Network, CNN)属于前馈神经网络的一种,网络结构与普通的多层感知机相似,但是受到动物视觉皮层组织方式的启发,神经元间不再是全连接的模式,而是应用了被称为局部感受区域的策略。此外,卷积神经网络引入了权值共享及降采样的概念,大幅减少了训练参数的数量,在提高训练速度的同时有效防止过拟合。下面对卷积神经网络的三个主要特点进行介绍。

  • (1)局部感受区域

  • 在卷积神经网络中,神经元只对视野中的某一区域产生响应,被称为局部感受区域,所以,网络中的神经元只与前一层中的部分神经元相连,即局部连接(LocalConnectivity),也称为稀疏连接(Sparse Connectivity)。利用图像数据的空间结构,邻近像素间具有更强的相关性,所以,单个神经元仅对图像局部信息进行响应,相邻神经元的感受区域存在重叠,所以,综合所有神经元便可以得到全局信息的感知。此处,我们可以通过动物视觉皮层的组织方式来了解神经元局部感受区域工作的机理。首先摄入原始信号,即从瞳孔摄入像素。接着进行初步处理,大脑皮层的某些区域的细胞从中发现边缘方向等特征。然后抽象出物体的形状,例如这是个圆形。最后进一步抽象,得出这是个气球或其他圆形物体的结论。

  • (2)权值共享

  • 局部连接的卷积核会对全部图像数据进行滑动扫描,权值共享的思想就是一个卷积层中的所有神经元均由同一个卷积核对不同区域数据响应而得到的,即共享同一个卷积核(权值向量及偏置),使得卷积层训练参数的数量急剧减少,提高了网络的泛化能力。此外,权值共享意味着一个卷积层中的神经元均在检测同一种特征,与所处位置无关,所以,具有平移不变性。

  • (3)降采样

  • 一般在卷积层后面会进行降采样操作(也叫池化操作),对卷积层提取的特征进行聚合统计。一般的做法是将前一层的局部区域值映射为单个数值,与卷积层不同的是,降采样区域一般不存在重叠现象。降采样简化了卷积层的输出信息,进一步减少 了训练参数的数量,增强了网络的泛化能力。

3. 深度置信网络

  • 传统的神经网络,比如仅含有一两个隐藏层的网络结构,可以利用BP算法进行训练,对于包含多个隐藏层的深度神经网络,BP算法会出现梯度消失或者收敛到局部极小值等问题,无法有效地对深度神经网络进行训练,这一度使得深度神经网络的研究陷入低谷。2006年,Hinton 等提出深度置信网络 ( Deep Belief Network, DBN)。DBN是第一个可训练的非卷积结构深层网络,打破了深度神经网络难以训练的观点。深度置信网络可以看作由若干受限玻尔兹曼机( Restricted Boltzmann Machine,RBM )“堆叠”而成,一个标准的受限玻尔兹曼机由隐层h和可视层v组成,层内无连接,层间全连接,两层之间的连接权重用w表示,其隐层与可视层中的单元通常是二值数据。它在玻尔兹曼机学习到训练数据内部的复杂规则,可以进行无监督学习的基础上,克服了其训练时间长、不能准确估计数据的联合概率分布的缺点。如下图所示,为受限玻尔兹曼机模型示意图:
    在这里插入图片描述

  • 多个RBM层组成了深度置信网络DBN,DBM是一种生成模型,和传统神经网络相似,DBM网络中存在若干隐藏层,并且同一隐藏层内的神经元没有连接,隐藏层间的神经元全连接。最上面两层间为无向连接,其中包含标签神经元,称为联合记忆层。其他层间为有向连接,自上而下为生成模型,指定输出,神经网络经过“反向运行”得到输入数据,比如手写数字图像生成,通过手写数字数据集对网络进行训练,然后指定数字,网络反向生成该数字的图像。自下而上则为判定模型,可以用作图像识别等任务。DBN结构如下图所示。
    在这里插入图片描述

  • 经过训练的受限玻尔兹曼机可以视作对输入数据进行概率重建,或者将受限玻尔兹曼机看做特征提取器。深度置信网络中,将每两层视作一个受限玻尔兹曼机进行训练,然后将参数固定,作为下一个受限玻尔兹曼机的可视层。

  • 深度置信网络可以用做生成模型,但通常是利用它改进判定模型的性能。通过前期的逐层无监督学习,神经网络可以较好地对输入数据进行描述,然后把训练好的网络看做深度神经网络,联合记忆层中的标签神经元作为输出层,继而利用BP算法对除联合记忆层之外的参数进行微调,最后得到用于分类任务的深度神经网络。

  • 深度置信网络可以用于图像识别、图像生成等领域。近几年,随着卷积神经网络和循环神经网络等在众多领域的成功应用,深度置信网络已经较少被提及,但是深度置信网络可以进行无监督或者半监督的学习,利用无标记数据进行预训练,提高神经网络性能。

4. 循环(递归)神经网络

  • 传统神经网络及之前介绍的深度神经网络都是“静态的”,本质上是从输入到输出的静态映射,即输出仅与当前输入有关,没有考虑先前的输入和网络状态对当前输出的影响,可以视做对静态系统的模拟。这些典型的前馈神经网络不会对内部状态进行存储,所以,无法对动态系统进行描述。

  • 循环神经网络(Recurrent Neural Networks, RNNs) 与典型的前馈神经网络的最大区别在于网络中存在环形结构,隐藏层内部的神经元是互相连接的,可以存储网络的内部状态,其中包含序列输入的历史信息,实现了对时序动态行为的描述。下图所示为RNN示意图。
    在这里插入图片描述

  • 循环神经网络是一种专门用于处理时序数据的神经网络,这里的时序并非仅仅指代时间概念上的顺序,也可以理解为序列化数据间的相对位置,如语音中的发音顺序、某个英语单词的拼写顺序等,序列化输入的任务都可以应用循环神经网络来处理,如语音、文本、视频等。对于序列化数据,每次处理时输入为序列中的一个元素,比如单个字符、单词、音节,期望输出为该输入在序列数据中的后续元素。循环神经网络可以处理任意长度的序列化数据。下图所示为RNN网络架构展开示意图。
    在这里插入图片描述

  • 如果将循环神经网络按时序状态展开,可以更好地理解它的实现机制。如图上所示,可以将循环神经网络视作深层前馈神经网络,但是前后状态的隐藏层之间存在连接,隐藏层的输出循环反馈作为后续状态的输入,将先前状态信息进行传递。所以,在循环神经网络中,t 时刻的输出不仅与该时刻的输入有关,还与 t -1时刻的网络内部状态有关,而内部状态存储了所有先前输入的信息,所以,t 时刻的输出受到所有先前输入的影响。

  • 循环神经网络可以用于语音识别、机器翻译、连写手写字识别等。另外,循环神经网络和卷积神经网络结合可用于图像描述,将卷积神经网络用做“解码器”,检测并识别图像中的物体,将循环神经网络用做“编码器”,以识别出的物体名称为输入,生成合理的语句,从而实现对图像内容的描述。

  • 深度学习软件有:TensorFlow、Caffe、CNTK、MXNet、Theano、Torch、Deeplearning4j等。

猜你喜欢

转载自blog.csdn.net/qq_38132105/article/details/107103656