《第八章 人工神经网络与深度学习(上).pdf》由会员分享,可在线阅读,更多相关《第八章 人工神经网络与深度学习(上).pdf(83页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 生物神经元模型 1904年生物学家发现神经元结构 整个神经元内部具有一致的脉冲整个神经元内部具有一致的脉冲 电位信号电位信号 通过多个树突获取信息,通过轴通过多个树突获取信息,通过轴 突传递信号突传递信号 轴突末端有多个突触,将信号输轴突末端有多个突触,将信号输 出出 多个神经元之间通过轴突、树突多个神经元之间通过轴突、树突 形成连接,构成神经元网络。形成连接,构成神经元网络。 神经元之间能够逐级传递脉冲电神经元之间能够逐级传递脉冲电 位信号位信号 神经元之间连接数量的多少、粗神经元之间连接数量的多少、粗 细等生物特征表示了连接强度细等生物特征表示了连接强度 3 人工神经元 1943年,美
2、国心理学家沃伦麦卡洛克1943年,美国心理学家沃伦麦卡洛克Warren McCullochWarren McCulloch和数理和数理 逻辑学家逻辑学家沃尔特皮茨Walter Pitts参考生物神经元的结构,提Walter Pitts参考生物神经元的结构,提 出出抽象神经元模型MP抽象神经元模型MP。 后来经过完善形成后来经过完善形成 人工神经元模型。人工神经元模型。 Warren McCulloch(左)和 Walter Pitts(右) 4 人工神经元对生物神经元结构的抽象 接收来自多个信号源 的信号 接收来自多个信号源 的信号 汇总到细胞核,经过 判断后产生脉冲 汇总多个信号,判断 是否
3、“激活” 将脉冲信号传递至多 个输出单元 将脉冲信号传递至多 个输出单元 5 神经元如何“学习”? 1949年心理学家Donald Hebb提出了神经心理学理论, 解释了神经元学习的规律: 神经网络的学习体现在突触部位神经网络的学习体现在突触部位 突触联结两个神经元,连接强度能够随着神经元的活动而突触联结两个神经元,连接强度能够随着神经元的活动而 变化变化 两个神经元的“活性”越大,突触连接强度越大。两个神经元的“活性”越大,突触连接强度越大。 Hebb的理论最大的突破,是认识到: 神经元之间的连接强度是可以变化,神经元之间的连接强度是可以变化, 这种变化能力,是神经网络处理信息、学习知识的源
4、泉这种变化能力,是神经网络处理信息、学习知识的源泉 Hebb的理论后来被称为Hebb学习规则,成为连接主义 流派的主要原理。 Hebb学习规则可以使神经网络具有统计能力,从而把输入Hebb学习规则可以使神经网络具有统计能力,从而把输入 信息按照相似性划分为若干类。信息按照相似性划分为若干类。 与人类观察和认识世界的过程非常吻合与人类观察和认识世界的过程非常吻合 Donald Hebb 6 从Hebb到感知机 Hebb提出了神经元处理Hebb提出了神经元处理 信息的机制规律。但只信息的机制规律。但只 是一个设想,没有验证。是一个设想,没有验证。 1957年,Rosenblatt在1957年,Ro
5、senblatt在 纽约时报纽约时报上发表文章上发表文章 Electronic Brain Electronic Brain Teaches Itself,首次Teaches Itself,首次 提出了可以模型人类感提出了可以模型人类感 知能力的机器,并称之知能力的机器,并称之 为为感知机感知机。 7 感知机:线性模型 Frank的感知机模型能够通过大量“实例”来训练神经元 的“权重”。 对于某个实例,如果感知机对其类型判断错误,则神经元的权对于某个实例,如果感知机对其类型判断错误,则神经元的权 重降低,作为惩罚。重降低,作为惩罚。 反之,则提高权重,作为奖励。反之,则提高权重,作为奖励。 直
6、至对于所有实例,神经元都能够无误区分。直至对于所有实例,神经元都能够无误区分。 1960年,维德罗改进了感知器的训练方式 提出以“误差最小”准则来训练神经元的权重,创造了第一个提出以“误差最小”准则来训练神经元的权重,创造了第一个 线性分类器。线性分类器。 是目前机器学习思想的鼻祖。是目前机器学习思想的鼻祖。 8 1969,人工神经网络遇冷 1969年,有关感知机、神经网络的研究进入繁荣期。但就在这一年,1969年,有关感知机、神经网络的研究进入繁荣期。但就在这一年, 马文明斯基写了一本书感知机。他提出了著名的马文明斯基写了一本书感知机。他提出了著名的XOR问题XOR问题和和感知感知 器数据线
7、性不可分问题器数据线性不可分问题。并提出,如果将感知器增加到两层,计算量。并提出,如果将感知器增加到两层,计算量 过大,而且现有的感知器算法将失效。所以,他认为研究更深层的网过大,而且现有的感知器算法将失效。所以,他认为研究更深层的网 络是没有价值的。这几乎宣判了人工神经网络死刑。导致此后长达十络是没有价值的。这几乎宣判了人工神经网络死刑。导致此后长达十 余年的神经网络发展低谷。余年的神经网络发展低谷。 线性可分问题(左)异或XOR问题(右) 9 从感知机到多层网络的BP算法 此后,人工神经网络研究成为小众,但仍有人在坚持。此后,人工神经网络研究成为小众,但仍有人在坚持。 1974年,哈佛大学
8、博士研究生保罗提出了BP算1974年,哈佛大学博士研究生保罗提出了BP算法的思想,但在当时未得到重视法的思想,但在当时未得到重视 1985 -1986,鲁梅尔哈特,他的学生1985 -1986,鲁梅尔哈特,他的学生辛顿(Hitton辛顿(Hitton)等人,重新发现了BP算法,)等人,重新发现了BP算法, 并成功用于训练并成功用于训练多层感知器(MLP)多层感知器(MLP),在非线性分类问题中大获成功,突破了,在非线性分类问题中大获成功,突破了 人工神经元异或瓶颈人工神经元异或瓶颈 David Rumelhart(左)Geoffery Hinton(右) 10 MLP与BP算法 人们陆续证明,
9、:神经网络的层数决定了其分类能力人们陆续证明,:神经网络的层数决定了其分类能力 双隐层的网络就可以解决任意复杂度的分类问题!双隐层的网络就可以解决任意复杂度的分类问题! 11 1980s:复兴的人工神经网络 历史总是惊人的相似,多层网络和BP算法大 获成功,神经网络的学者们再次登上了纽纽 约时报约时报的专访。 就连娱乐界都开始受到了影响, 1984 终 结者 1上映,机器人终结者的扮演者施瓦 辛格有一句经典台词:“我的 CPU 是一个神我的 CPU 是一个神 经网络处理器,一个会学习的计算机。经网络处理器,一个会学习的计算机。” 12 神经元层数瓶颈 但问题仍然不少。MLP理论上虽然可以有“多
10、层”,但有效的只有 三层。随着层数增加,计算量指数级增加,但性能并没有实质提高, BP算法对三层以上的神经元网络,实际上无法有效训练。 此后20年,人工神经网络因BP算法而建立起完整的理论框架,却因 “多层”问题无法解决,始终未得到突破。 13 1990s SVM兴起,人工神经网络再次衰退 90年代中期,由Vapnik等人发明的SVM算法诞生,很快就在若干 个方面体现出了对比神经网络的优势:无需调参;高效;全局最 优解。SVM迅速打败了神经网络算法成为主流。 当时,标准神经网络MLP有3层神经元。 SVM本质上可以看做一种2层网络,层数少,需要的样本量小。优 化算法清晰、简单。 在1990年代
11、,大量2层结构的优化算法模型提出,促使统计机器 学习方法成为主流。人工神经网络则再次陷入低谷 14 另一方面,1981年 1981年的诺贝尔医学奖,分发给了David Hubel、Torsten Wiesel 和Roger Sperry。前两位的主要贡献是:发现了人的视觉系统的信 息处理是分级。 视觉信号从视网膜(Retina) 出发,经过低级的V1区提 取边缘特征,到V2区的基 本形状或目标的局部,再 到高层V4的整个目标,以 及到更高层的PFC进行分类 判断等。也就是说高层的 特征是低层特征的组合, 从低层到高层的特征表达 越来越抽象和概念化。 15 大脑处理视觉信号的原理 大脑的工作过程
12、,是一个对接收信号不断迭代、不断抽象概念化的大脑的工作过程,是一个对接收信号不断迭代、不断抽象概念化的 过程。这个过程其实和我们的常识是相吻合的,复杂的图形,往往过程。这个过程其实和我们的常识是相吻合的,复杂的图形,往往 就是由一些基本结构组合而成的。同时我们还可以看出:大脑是一就是由一些基本结构组合而成的。同时我们还可以看出:大脑是一 个深度架构,认知过程也是深度的。个深度架构,认知过程也是深度的。 16 1989,BP用于卷积网络 在BP算法提出3年之后,嗅觉敏锐的LeCun发现多层卷积神 经网络与视觉处理过程的相似性,并将BP算法用于训练神 经网络,实现了手写数字识别算法。 17 199
13、8 LeNet-5 此后,1998年LeCun在文章Gradient-based learning applied to document recognition中提出LeNet-5,是卷积神经网络的第一个正式模型。 18 2001,互联网泡沫 上世纪90年代后期,互联网兴起。短 短几年时间,互联网经历了一次跨越 发展,导致2001年的互联网泡沫破裂。 随着互联网泡沫破裂,投资撤回,许 多研究方向被迫中断。 如果当时互联网没有这次风波,或许 卷积网络能够早10年应用。 19 2006,深度学习元年 加拿大多伦多大学教授加拿大多伦多大学教授 Geoffrey HintonGeoffrey Hin
14、ton在科学上的一在科学上的一 篇论文中提出了两个观点:篇论文中提出了两个观点: (1)多层人工神经网络模型有很强(1)多层人工神经网络模型有很强 的特征学习能力,深度学习模型对原的特征学习能力,深度学习模型对原 始数据有更本质的表述始数据有更本质的表述 (2)深度神经网络可以采用逐层训(2)深度神经网络可以采用逐层训 练方法优化。将上层训练好的结果作练方法优化。将上层训练好的结果作 为下层训练过程中的初始化参数。为下层训练过程中的初始化参数。 20 深度学习的繁荣 从2006年起,各种神经网络模 型又开始得到重视。 2010年用于语音识别的DNN结构 2012年用于语言模型的RNN结构 20
15、13用于图像处理的CNN结构 2016用于机器翻译的seq2seq结 构 2016年开始,人们更多开始关 注脑科学和神经科学,相继提 出LSTM、Attention、Memory机 制 深度学习时代的著名学者 21 感知器模型的结构 我们回顾一下感知器模型,感知器是最简单的人工神经网络, 只有一个神经元。 结构如图所示: 解释激活的 概念 首先解释输 入结构 输入为实例的 特征向量 由激活函数计算输出, 输出为1、-1两个值 输入信号的加权汇总:Wx+b ? 0, ? ?1 ? 0, ? 1 23 感知器权重学习方法 输入权重的调整是感知器的关键问题,应该如何学习呢? 我们采用的是“奖惩分明”
16、策略 对于一个样本,如果当前权重能够正确判断其类型,就“奖励”对于一个样本,如果当前权重能够正确判断其类型,就“奖励” 当前权重,提高其比例。当前权重,提高其比例。 反之,则惩罚当前权重,降低其比例。反之,则惩罚当前权重,降低其比例。 如此反复,直到某个权重对所有样本均不产生错误,或者错误不如此反复,直到某个权重对所有样本均不产生错误,或者错误不 再降低。再降低。 我们通过一个简单的例子来讲解这个过程。 24 例8.1 感知器算法 假设一个数据集,包含两个类别,样本集如下。包含10个样本,每个样本有2 个特征,输出类别为1、-1。将这个数据集中的点画在二维坐标系下,如右图 x1X2output
17、 1.01.01 9.46.4-1 2.52.11 8.07.7-1 0.52.21 7.98.4-1 7.07.0-1 2.80.81 1.23.01 7.86.1-1 25 例8.1 感知器算法 我们根据感知器模型结构,建立这个数据集对应的模型,如下图: 对于这个模型,我们希望,感知器对所有类别为“1”的样本,最后输出 f(x)=1, 而对所有类别为“-1”的样本,最后输出f(x)=-1 据此,我们来代入每个样本数据进行测试 f(x) X1 X2 1.0 W1 W2 W1 ? 0, ? ?1 ? 0, ? 1 26 例8.1 感知器算法 最开始时,我们给权重W一个初始值,比如:W1=0.7
18、5, 0.5, -0.6 代入第一个样本,有: ? 0.75 1.0 ? 0.5 1.0 ? 0.6 1.0 ? 0.65 ? 1 与预期输出一致,说明当前的权重能够给出正确的预测,因此此时权重不需要调 整。 令W2= W1,继续测试下个样本。 f(x) X1 X2 1.0 W1 W2 W1 ? 0, ? ?1 ? 0, ? 1 27 例8.1 感知器算法 令W2=0.75, 0.5, -0.6 ,代入第2个样本,有: ? 0.75 9.4 ? 0.5 6.4 ? 0.6 1.0 ? 9.65 ? 1 该输出与预期不一致,说明当前的权重不能给出正确的预测,因此需要调整权重 如何调整?感知器算法
19、给出的调整算法是: ? 直观解释: 计算预期结果与当前结果做差,得到误差。计算预期结果与当前结果做差,得到误差。 认为误差是由输入引起的,因此将误差和输入的乘积作为权重调整量。认为误差是由输入引起的,因此将误差和输入的乘积作为权重调整量。 为避免一次调整过大,添加为避免一次调整过大,添加 作为调整量的因子,也被称为学习率作为调整量的因子,也被称为学习率 28 例8.1 感知器算法 令W2=0.75, 0.5, -0.6 ,代入第2个样本,有: ? 0.75 9.4 ? 0.5 6.4 ? 0.6 1.0 ? 9.65 ? 1 根据该公式,我们计算第二个样本对应的权重调整公式为: ? ? ? ?
20、 0.75 0.5 ?0.6 ? 0.2 ?1 ? 1 9.4 6.4 1.0 ? ?3.01 ?2.06 ?1.00 以此类推,我们可以将所有样本代入该算法,根据结果判断是否需要更新权重。 29 例8.1 感知器算法 在任何初始参数下,只需要约10个样本,算法就可以“感知”到合适的权重, 对数据集进行分类。 如下图所示,前500次迭代后 得到的分类情况。 30 感知器算法的问题和改进 感知器算法的问题 对于任意输入样本,感知器得到的误差实际上只有两种形式,(-1)-1,对于任意输入样本,感知器得到的误差实际上只有两种形式,(-1)-1, 或者1-(-1),不够精确。也导致算法收敛非常慢。或者
21、1-(-1),不够精确。也导致算法收敛非常慢。 改进思路 我们将误差计算方法变为:我们将误差计算方法变为:计算当前权重在整个样本集上的总误差,计算当前权重在整个样本集上的总误差, 寻求一组权重参数,使得总误差最小。寻求一组权重参数,使得总误差最小。 进一步,如果我们可以把总误差表示为权进一步,如果我们可以把总误差表示为权重的函数“损失函数 J(W)”,重的函数“损失函数 J(W)”, 则问题转变为:则问题转变为:寻求一组权重参数W,使得损失函数在样本数据集寻求一组权重参数W,使得损失函数在样本数据集 上最小化。上最小化。 31 损失函数的最小化问题 一种常用的损失函数形式为: ? 1 2 ?
22、? ? 根据函数优化理论,该函数最小 值发生在J(W)导数为0的点。 此时的参数W即为模型最优参数。 可以通过梯度下降方法来求解。 得到的权重更新公式为: ? ? ? ? ? ? ? ? ? ? ? 32 损失函数的最小化问题 为了求损失函数的最小值,必然要求损失 函数 可导。这就要求其中神经元的 激活函数f(x)可导。而目前感知器模型中 的激活函数是二值函数,不满足该条件。 经过探索,人们找到sigmoid函数。该函数 既满足了连续可导的条件,又类似于二值 函数,具有“两极分化”的特点,因此成 为人工神经元的标准激活函数。 ? ? 1 1 ? ? 33 人工神经元模型 至此,我们介绍了现代人
23、工神经网络中的所使用的标准神 经元模型,有以下特点: 具有多个输入端,每个输入端具有不同的权重。具有多个输入端,每个输入端具有不同的权重。 神经元具有Sigmoid或者类似的可导激活函数。神经元具有Sigmoid或者类似的可导激活函数。 神经元能够根据误差信号,通过梯度下降法调整权重,实现学习。神经元能够根据误差信号,通过梯度下降法调整权重,实现学习。 具有一个或多个输出端,输出端上的信号一致。具有一个或多个输出端,输出端上的信号一致。 34 前馈神经网络 FNN 首先我们介绍前馈神经网络 的基本结构。 如图所示,一个标准的前馈 神经网络包括: 1个输入层、1个输入层、 1个或多个隐含层、1个
24、或多个隐含层、 1个输出层1个输出层 36 前馈神经网络 FNN 首先是输入层。 输入层神经元接收来自外 部的多个信息,通常是一 个N维实数向量X。 一般来说,FNN的输入层 神经元仅起到信息传递作 用,每个节点对应1维信 息,然后将该信息根据权 重传递到第二层神经元。 中间没有激活过程。 37 前馈神经网络 FNN 输入层之后,连接有若干个隐含层。 所谓隐含层,是指其中神经元的状态在输出端无法直接 观测,看起来是“隐藏”的。 在FNN中,隐含层均为标准神经元,带有sigmoid激活函 数,其输入的权重需要学习得到。 输入层与隐含层、两个隐含层之间的所有神经元均存在 连接,即,后一层每个神经元
25、接受到的输入信号为前一 层所有神经元的输出加权和。又称为全连接。 但同层神经元之间不存在连接。这样保证了信息可以逐 层向下传递。前馈网络也由此得名。 38 前馈神经网络 FNN 最后是输出层。 FNN网络的输出层可以由1 个或多个神经元组成。 输出结果可以是向量,也 可以是二值编码,取决于 所要解决的问题。 39 对比感知器与FNN 我们将感知器与FNN放在一起比较,就会发现,FNN可以看做一个我们将感知器与FNN放在一起比较,就会发现,FNN可以看做一个 复杂的、具有多层神经元的感知器。在早期,FNN也被称为“多复杂的、具有多层神经元的感知器。在早期,FNN也被称为“多 层感知器”模型。层感
26、知器”模型。 40 FNN的前馈计算 在FNN中,输入信号的传在FNN中,输入信号的传 递方向是明确的,总是由递方向是明确的,总是由 前一层传向后一层,同层前一层传向后一层,同层 之间没有信号传递,也不之间没有信号传递,也不 存在反向信号传递。存在反向信号传递。 对于一个输入特征向量X,输入层根据权重将输入信号分配给第一个隐对于一个输入特征向量X,输入层根据权重将输入信号分配给第一个隐 含层,第一个隐含层根据该信号计算每个神经元的激活“强度”,并传含层,第一个隐含层根据该信号计算每个神经元的激活“强度”,并传 递给下一层,经过多层传递,逐渐把信息传递给输出层,最终求得输出递给下一层,经过多层传
27、递,逐渐把信息传递给输出层,最终求得输出 结果。整个过程中,信号单向向前“馈送”,因此命名为前馈神经网络。结果。整个过程中,信号单向向前“馈送”,因此命名为前馈神经网络。 41 FNN的学习问题 FNN具有多层神经元,权重的调整具有3个难点: 网络误差是由多层信号累积导致,如何“分配”误差到各个层?网络误差是由多层信号累积导致,如何“分配”误差到各个层? 隐含层神经元无法直接观测其误差,如何调整权重?隐含层神经元无法直接观测其误差,如何调整权重? 全连接层权重数量众多,计算量问题凸显。全连接层权重数量众多,计算量问题凸显。 由于这些问题,在神经网络发展的前20年,多层神经网络一直认为 不可行,
28、直到“错误反向传播(BP)算法”被提出。 下面我们来介绍BP算法的基本原理。 42 FNN网络的BP算法 我们先从最简单的情况开始,假设FNN中每层只有1个神经元 对于输出层,其误差可以直接计算,令 E= t y ,绝对误差对于输出层,其误差可以直接计算,令 E= t y ,绝对误差 系统的总损失函数为系统的总损失函数为 ? ? ? ? 则根据上一节,输出层权重W的调整公式为:则根据上一节,输出层权重W的调整公式为: 其中其中是前一层传来的输入信号是前一层传来的输入信号 ? ? ? 损失函数J 权重W 输出层 E= t y 43 FNN网络的BP算法 至此,输出层神经元经过计算,得到自己的权重
29、调整量,至此,输出层神经元经过计算,得到自己的权重调整量, 该调整量与该调整量与成正比,而其中成正比,而其中 又是固定的。又是固定的。 因此我们可以得出:对于一个神经元,如果知道了其绝对误差 E,因此我们可以得出:对于一个神经元,如果知道了其绝对误差 E, 则其权重调整量仅与输入信号有关。则其权重调整量仅与输入信号有关。 ? ? 损失函数J 权重W 输出层 E= t y 44 误差反向传播算法(BP) 我们再看倒数第二层神经元。 根据刚才的结论,如果知道了该神经元的误差E,则直接可根据刚才的结论,如果知道了该神经元的误差E,则直接可 以求权重调整量以求权重调整量 但该神经元为隐含层,其误差 E
30、 无法直接看到。但该神经元为隐含层,其误差 E 无法直接看到。 因此必须估计一个误差 E,然后套用刚才的公式。因此必须估计一个误差 E,然后套用刚才的公式。 误差E 权重W 激活函数f() E = ? 45 误差反向传播算法(BP) 这里,对隐含层神经元 误差E的估计,就成了BP算法的核心这里,对隐含层神经元 误差E的估计,就成了BP算法的核心 BP算法将输出层的BP算法将输出层的E ? ? 信号定义为 ,信号定义为 , 然后令 然后令 ? W 作为倒数第二层神经元的 误差信号 E作为倒数第二层神经元的 误差信号 E 有了这个估计的E,BP算法就可以根据刚才的计算方式,计算隐含有了这个估计的E
31、,BP算法就可以根据刚才的计算方式,计算隐含 层神经元的权重调整量。层神经元的权重调整量。 而且,在计算过程中,而且,在计算过程中, 还可以继续算出当前层的还可以继续算出当前层的 信号,将误差继续向前信号,将误差继续向前 一层传播。一层传播。 这就是误差的“反向传播”这就是误差的“反向传播” 误差E 权重W 激活函数f() ? E ? ? E ? ? 46 FNN网络的BP算法 综合起来,所谓的误差反向传播,其实就是从输出层开始,综合起来,所谓的误差反向传播,其实就是从输出层开始, 逐层计算 信号,调整自身权重,并且将 信号传向前逐层计算 信号,调整自身权重,并且将 信号传向前 一层。一层。
32、误差E 权重W 输出层 ? E ? ? ? u ? ? ? 隐含层 权重U 47 FNN网络的BP算法 对于每层有多个神经元的情况,对于每层有多个神经元的情况, 可以认为,输出层在“看到”了可以认为,输出层在“看到”了 误差信号之后,将该误差按照权误差信号之后,将该误差按照权 重比例“反传”给上一层神经元重比例“反传”给上一层神经元 上一层神经元则按照权重接收反上一层神经元则按照权重接收反 传的若干误差信号,汇总形成自传的若干误差信号,汇总形成自 己的误差信号,并再度反传。己的误差信号,并再度反传。 48 FNN网络的BP算法 至此,我们可以训练多层神经网络了。 训练过程可以分为以下步骤: 前
33、馈计算:从输入层开始,计算每一层的状态和激活值,直到最前馈计算:从输入层开始,计算每一层的状态和激活值,直到最 后一层;后一层; 误差计算:计算当前实例产生的误差误差计算:计算当前实例产生的误差 误差反传:从输出层开始,逐层计算每个神经元的误差反传:从输出层开始,逐层计算每个神经元的信号,并反信号,并反 向传播到前层向传播到前层 权重更新:根据权重更新:根据信号,计算权重的导数,并更新参数。信号,计算权重的导数,并更新参数。 49 BP算法的梯度弥散问题 BP算法对多层网络的训练提供了完整的方法,但是当时使用的 sigmoid激活函数很容易遇到 “梯度弥散”问题: BP算法对多层网络的训练提供
34、了完整的方法,但是当时使用的 sigmoid激活函数很容易遇到 “梯度弥散”问题: 随着神经元网络层数增加,神经元很容易落入“饱和区域”,此时 神经元输入倾向于0或者1,其导数则接近0点。 随着神经元网络层数增加,神经元很容易落入“饱和区域”,此时 神经元输入倾向于0或者1,其导数则接近0点。 此时做误差反向传播,会发现导数值非常小,误差信号几乎不可能 传递到3层以上的网络。 此时做误差反向传播,会发现导数值非常小,误差信号几乎不可能 传递到3层以上的网络。 ? ? ? ? 三层以上,该导数趋近0值,误 差无法有效传递。 50 新型激活函数ReLU 直到2010年,Hinton提出了新型激活函
35、数ReLU。 Hinton. Rectified linear units improve Restricted Boltzmann machines. ICML 2010. Bengio. Deep Sparse Rectifier Neural Networks.AISTATS 2011. ReLU 在x0 时导数为 1,所以,ReLU 能够在 x0时保持梯度不衰减(因为梯 度总是乘下去的)从而缓解梯度 消失问题。 51 例8.2 利用FNN解决MNIST问题 52 53 54 55 我们介绍的第一个概念是视觉通 路。 视觉信号进入眼球后,到达的第 一层神经元就是视网膜,在这里, 视觉信号
36、被转换为电信号,这里 大约有百万量级的信号。 这些信号经过处理后,通过视交 叉进入视觉皮层,进行视觉信号 处理。这个通道叫做视觉通路。 视觉通路上,信号基本不发生变 化,主要是信号传导。与我们介 绍过的神经网络输入层非常类似。 视觉通路 57 视觉皮层 神经电信号进入视觉皮层后,分多次、多层处理。每层处理 不同的特征,如: V1处理简单视觉V1处理简单视觉 V2处理图形边缘轮廓V2处理图形边缘轮廓 V3传递信息V3传递信息 V4处理颜色V4处理颜色 这种网络形式有鲜明的特点。 58 视觉皮层处理信号的特点 整个视觉神经网络分为多层,实现多种特征的提取和抽象。 层级越高,所得到的信号越抽象、越密
37、集。这与FNN是 类似的。 但在每一层中,处理信息的方式有本质区别。视觉皮层的 每一层中,并不是以单一神经元为单位,而是存在大量的 “神经元团”,每个“团”都能独立处理视觉信号,提取 当前层的某种特征。 最后,经过视觉皮层分析,可以将百万量级的信息压缩为 数百神经元表示的抽象信息。 59 视觉皮层与图像卷积 二维图像 (视觉信号) 卷积核 (视觉神经“团” ) 视觉皮层的处理方式非常类似 图像的“卷积”运算。 原始的视觉信号可以看做一个二原始的视觉信号可以看做一个二 维数据。维数据。 少数视觉神经元以“卷积”运算少数视觉神经元以“卷积”运算 的形式处理原始信号。即卷积核。的形式处理原始信号。即
38、卷积核。 经过卷积后,原始信号的某种特经过卷积后,原始信号的某种特 定的视觉特征被表示为较少的信定的视觉特征被表示为较少的信 息。息。 实现信息压缩和抽象。实现信息压缩和抽象。 卷积运算结果 (视觉抽象表示) 卷积运算 60 卷积的物理意义 这里我们提出了“卷积”运算的概念。这里我们提出了“卷积”运算的概念。 那么究竟什么是卷积呢?那么究竟什么是卷积呢? 我们简要介绍一下卷积的物理意义。我们简要介绍一下卷积的物理意义。 我们仍然以这张图为例 对于某个处理信号的系统而言,卷积相当于对于某个处理信号的系统而言,卷积相当于输入信号f输入信号f与与处理方处理方 法h法h在所有情况下的逐一处理,并将结果
39、加权输出。在所有情况下的逐一处理,并将结果加权输出。 如果处理方法h很“小”,而信号f很“大”,那么卷积相当于用如果处理方法h很“小”,而信号f很“大”,那么卷积相当于用 某种“刷子”把原始信号“刷”了一遍。得到的输出信息与“刷某种“刷子”把原始信号“刷”了一遍。得到的输出信息与“刷 子”上每个单元的“权重”息息相关。子”上每个单元的“权重”息息相关。 我们通过例子来说明我们通过例子来说明 61 例8.3 图像的卷积 在图像的卷积运算中,使用不同的卷积核处理图像,能够 得到不同的结果 62 例8.3 图像的卷积:原图 63 例8.3 图像的卷积:均值平滑卷积 实现了画 面的柔化 64 例8.3
40、 图像的卷积:锐化卷积 65 例8.3 图像的卷积:Soble卷积 提取画面 中的边缘 66 卷积神经网络的基本思想 现在,我们了解了视觉信号处理和图像卷积 视觉信号的处理模式:多层、每层有特定功能视觉信号的处理模式:多层、每层有特定功能 图像的卷积:小刷子刷大图,得到特定效果图像的卷积:小刷子刷大图,得到特定效果 两者对比,可以发现: 图像的卷积,很类似视觉皮层对图像进行某种特定功能的处理。图像的卷积,很类似视觉皮层对图像进行某种特定功能的处理。 比如,通用的“soble卷积核”,对一切图像都能提取边缘。很比如,通用的“soble卷积核”,对一切图像都能提取边缘。很 类似视觉皮层的某个层。类
41、似视觉皮层的某个层。 如果将大量图像卷积放在一起,堆叠若干层,是否可以模 拟大脑的视觉处理过程?这就是卷积神经网络的思路。 67 卷积神经网络结构 典型的卷积神经网络结构如下图所示: 首先,在输入层,不再是以N元向量的形式,而是以2维 矩阵形式作为输入信号。 68 卷积神经网络结构 典型的卷积神经网络结构如下图所示: 其次,从宏观来看,输入信号进入若干个堆叠起来的卷 积层,这些卷积层首尾相接,模拟多层视觉信号的处理 方式,实现对原始信号的特征提取、抽象、压缩。 69 卷积神经网络结构 典型的卷积神经网络结构如下图所示: 每一个卷积层都有自己的结构,这才是卷积神经 网络的核心结构。我们进一步详细
42、分析。 70 卷积层结构:卷积 卷积层使用卷积核处理输入信 息,卷积核上的每个单元均为 ReLU神经元。 如3*3的卷积核共有9个神经元。 这9个神经元上的权重在处理 上一层信息时,是相同的。 这就是CNN的权值共享。从外 部看,输入层和卷积层相互连 接,但其权重参数数量非常少。 71 卷积层结构:多卷积核并行 为了提高网络的能力,在一个 卷积层中,一般设计有多个卷 积核。 每个卷积核都独立处理上一层 得到的全部或者部分数据 与输入层相连接的第一个卷积 层中,所有卷积核都需要处理 全部信息 后续的卷积层中,多个卷积核 可以分别处理部分信息。 72 卷积层结构:池化汇聚 经过多个卷积核处理 后,
43、得到的信息可能 更多,存在信息冗余 此时会采用池化操作, 将多个卷积核得到的 数据块进行降维,只 保留重要信息。 常用max pooling操作。 73 卷积神经网络结构 典型的卷积神经网络结构如下图所示: 经过若干个卷积层之后,进入最后的输入阶段。在这阶 段,最后一个卷积层的所有卷积核处理得到的信息被 “拉平”为1维向量,然后经过几个全连接的FNN层,进 入到输出层,预测最终输出结果。 74 例8.4 典型卷积神经网络LeNet-5的结构 LeNet-5 虽然提出时间比较早,但是是一个非常成功的神经网络模型。基于 LeNet-5 的 手写数字识别系统在 90 年代被美国很多银行使用,用来识别
44、支票上面的手写数字。 LeNet-5共有 7 层。 LeNet-5 网络结构 75 例8.4 典型卷积神经网络LeNet-5的结构 LeNet-5 网络结构 输入层:输入图像大小为 32 32 = 1024。 C1 层:这一层是卷积层。滤波器的大小是 55 = 25,共 有 6 个滤波器。 76 例8.4 典型卷积神经网络LeNet-5的结构 LeNet-5 网络结构 S2 层:这一层为子采样层。由 C1 层每组特 征映射中的 22 邻域点次采样为 1 个点, 也就是 4 个数的平均。 77 例8.4 典型卷积神经网络LeNet-5的结构 LeNet-5 网络结构 C3 层:第二个卷积层。设计
45、了16个卷积核处理S2 层得到的6个输出结果。 这里没有让16个卷积核都来处理S2层信号。对S2中 的每个输出层,选择性挑选部分卷积核进行处理。 78 例8.4 典型卷积神经网络LeNet-5的结构 LeNet-5 网络结构 S4 层:也是子采样层,由 22 邻域点次采样为 1 个点,得到 16 组 55 大小的特征映射。 79 例8.4 典型卷积神经网络LeNet-5的结构 C5 层:将S4层的16个信息卷积为 120 组 11 的特 征映射。 F6 、7层:是全连接层和输出层,与C5层全连接,有 84 个神经元,作为最终的输出层 80 例8.5 CNN典型结构:AlexNet 2012 ILSVRC winner 共有8层,其中前5层卷积层,后边3层全连接层共有8层,其中前5层卷积层,后边3层全连接层 例子8.5 CNN典型结构:Inception网络 2014 ILSVRC winner (22层) 参数:GoogLeNet:4M VS AlexNet:60M参数:GoogLeNet:4M VS AlexNet:60M 错误率:6.7%错误率:6.7% 2015 ILSVRC winner (152层) 错误率:3.57%错误率:3.57% 例子8.5 CNN典型结构:ResNet
限制150内