2023人工自能机器算法深度学习.docx

上传人:夺命阿水 文档编号:1081801 上传时间:2024-03-15 格式:DOCX 页数:54 大小:294.90KB
返回 下载 相关 举报
2023人工自能机器算法深度学习.docx_第1页
第1页 / 共54页
2023人工自能机器算法深度学习.docx_第2页
第2页 / 共54页
2023人工自能机器算法深度学习.docx_第3页
第3页 / 共54页
2023人工自能机器算法深度学习.docx_第4页
第4页 / 共54页
2023人工自能机器算法深度学习.docx_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《2023人工自能机器算法深度学习.docx》由会员分享,可在线阅读,更多相关《2023人工自能机器算法深度学习.docx(54页珍藏版)》请在课桌文档上搜索。

1、人工自能机器算法深度学习目录Ll简单前馈网络41.2 深度学习的计算图13卷积网络181.4学习算法261.5 泛化31L6循环神经网络38L7无监督学习与迁移学习431.8应用52深度学习通过梯度下降算法学习多层迭代的网络架构,它在人工智能的主要子领域中具有重要影响力。深度学习(deeplearning)是机器学习中一系列技术的组合,它的假设具有复杂代数电路的形式,且其中的连接强度是可调整的。“深度”的含义是指电路通常被设计成多层(Iayer),这意味着从输入到输出的计算路径包含较多计算步骤。深度学习是目前应用最广泛的方法,例如它在视觉对象识别、机器翻译、语音识别、语音合成和图像合成中的应用

2、,它在强化学习应用中也起着重要的作用(见第22章)。深度学习起源于早期的用计算电路模拟大脑神经元网络的工作(McCullochandPitts,1943)。因此,通过深度学习方法训练的网络通常被称为神经网络(neuralnetwork),尽管它与真实的神经细胞和结构之间的相似性仅仅停留于表面。虽然深度学习取得成功的真正原因尚未完全明晰,但与第19章所述的一些方法相比,它具有不言而喻的优势,在处理图像等高维数据时尤为明显。举例来说,虽然线性回归和逻辑斯谛回归等方法可以处理大量的输入变量,但每个样本从输入到输出的计算路径都非常短只是乘以某个权重后加到总输出中。此外,不同的输入变量各自独立地影响输出

3、而不相互影响(图21la)。这大大限制了这些模型的表达能力。它们只能表示输入空间中的线性函数与边界,而真实世界中的大多数概念要比这复杂得多。另外,决策列表和决策树能够实现较长的计算路径,这些路径可能依赖于较多的输入变量,但只是对很小的一部分输入向量而言(图21-lb)0如果一个决策树对一定部分的可能输入有很长的计算路径,那么它的输入变量的数量必将是指数级的。深度学习的基本思想是训练电路,使其计算路径可以很长,进而使得所有输入变量之间以复杂的方式相互作用(图21lc)。事实证明,这些电路模型具有足够的表达能力,它们在许多重要类型的学习问题中都能够拟合复杂的真实数据。图211(a)浅层模型,例如线

4、性回归,其输入到输出之间的计算路径很短。(b)决策列表网络(19.5节)中可能存在某些具有长计算路径的输入,但大多数计算路径都较短。(C)深度学习网络具有更长的计算路径,且每个变量都能与所有其他变量相互作用1.1简单前馈网络顾名思义,前馈网络(feedforwardnetwork)是只在一个方向上有连接的网络,也就是说,它是一个有向无环图且有指定的输入和输出节点。每个节点计算一个关于输入的函数,并将结果传递给网络中的后续节点。信息从输入节点流向输出节点从而通过网络,且没有环路。另外,循环网络(recurrentnetwork)将其中间输出或最终输出反馈到自己的输入中。这意味着网络中的信号值将形

5、成一个具有内部状态或记忆的动态系统。我们将在21.6节探讨循环网络。布尔电路是前馈网络的一个例子,它实现了布尔函数。在布尔电路中,输入被限制为0或1,每个节点是关于输入的简单布尔函数,节点的输出也为0或1。在神经网络中,输入值通常是连续的,节点接受连续的输入并产生连续的输出。节点的一部分输入也可能是网络的参数,网络通过调整这些参数值,使网络整体拟合训练数据,以此来进行学习。1.1.1网络作为复杂函数网络中的每个节点称为一个单元(Unit)。传统上,根据麦卡洛克和皮茨(MCCUIIOChandPitts,1943)所提出的设计,一个单元将计算来自前驱节点的输入的加权和,并使用一个非线性的函数产生

6、该节点的输出。令勺为单元/的输出,并令叱)为从单元i到单元/的连接的权重,有%=gjC)三g(阿)其中&为用于单元/的非线性激活函数(activationfunction),阿是单元/的输入的加权和。如19.6.3节所述,我们规定每个单元都有一个来自虚拟单元0的额外输入,这个来自虚拟单元0的输入固定为+1,并且该输入有权重WO产这样一来,即使前一层的输出均为0,单元/的输入的加权和吃也是非0的。根据这样的规则,我们可以将上述式子表述为向量的形式:%=(21-1)其中,W是关于单元/的输入的权重向量(包括Woj),X是单元/的输入向量(包括+1)。激活函数是非线性的这一事实非常重要,因为如果它不

7、是非线性的,那么任意多个单元组成的网络将仍然只能表示一个线性函数。这种非线性使得由足够多的单元组成的网络能够表示任意函数。万能近似(universalapproximation)定理表明,一个网络只要有两层计算单元,且其中第一层是非线性的,第二层是线性的,那么它就可以以任意精度逼近任何连续函数。定理的证明思路大致如下:由于单元个数为指数级别的网络可以表示指数多个输入空间中的不同位置不同高度的“凸起”,因此可以逼近所需的函数。换句话说,足够大的网络可以实现连续函数的查找表,就像足够大的决策树可以实现布尔函数的查找表一样。有许多不同种类的激活函数,其中最常见的有以下几类。 逻辑斯谛函数或SigmO

8、id函数,我们在逻辑斯谛回归中也曾用到它(见第19章):(x)=1/(1+e-x) ReLU函数,ReLU是修正线性单元(rectiAedlinearunit)的简写:ReLU(x)=max(0,%) Softphis函数,它是ReLU函数的光滑版本:softplus(x)=log(lex)Softplus函数的导数为SigmOid函数。 tanh函数:tanh()=-7e+1可以发现tanh函数的值域为LL+D。tanh函数是SigmOid经过伸缩与平移后的版本,Ul)tanh(x)=2z(2r)-L这些函数如图212所示.不难发现它们都是单调不减的,这意味着它们的导数g是非负的:在后面的章

9、节中,我们将对激活函数的选择做更多的解林。图212深度学习系统中常用的激活BHtA史料所冷函umoid咕故.b)ReLU0和Sof(PluS由数,)Ianh函数将多个单元组合到一个网络中会产生一个复杂的函数,它是由单个单元表示的代数表达式的组合。例如,图213a所示的网络表示了一个由权重W参数化的函数属仆),它将二元的输入向量X映射为标员输出假yy。函数的内部结构与网络的结构相时应.例如,我们可以将某个输出的表达式写成y=gs(EJ=g$(%吗吗+吗必)=gs(%s+%出式加3)+吗述4(加4)=ft(+W“g式%+WuX1+WuX2)+“血(%4+吗.4%+吗/2)(21-2)如此一来,我们

10、可以将输出方表示为关于输入和权重的函数(X)。图213a给出了神经网络相关书籍中描述网络的传统方式。一个更一般的方法是把网络看作一个计算图(computationgraph)或数相流图(dataflowgraph)本质上它是一个电路,其中每个节点代表一个基本运算。图21-3b给出了与图21-3a中网络相对应的计算图,该图显式地表达了整个计兑过程的每个元素.它还将输入(然色)和权更(淡紫色)进行了M分,我们可以调整权重,使输出/与训练数据中的真实值F更接近“每个权肃就像一个音垃控制旋钮,它决定了图中的下一个节点从特定前盟节点中听到了多少声音。M213仃)具TJ两个输入.个包含两个柒元的限做层和个

11、场出软元的神络.其中比1侑人及其权正没行在图中给出。b将(G中的MF分杆为完铁的计口图与式(21-1)中以向此形式描述单元的方式类似.我们可以对整个网络进行类似的操作我们通常以W表示权重矩阵:对于该网络,WS表示第一层的权重(卬“、卬3等),W?,表示第二层的权重(W*等).最后,记第一层和笫二层中的激活函数为,和匕那么臬个网络可以写为方式幻=产(HXV(那攵)(21-3)与式(2l-2一样,这个表达式也对应于一个计生图,尽管它比图213b中的计算图简单得多:在该图中只有一条“链,其中每一层都附带权重矩阵。图2L3b中的计算图相对来说规模较小且层数较浅,但其中的思想适用于所有形式的深度学习:我

12、们通过构造计竟图并调整其权市以拟合数据。图213b中的图同时也称作XiT工上的(fullyconnected),IIP-层中的每个节点都与下一层中的每个节点存在连接。这在某种意义上是默认的选择,但我们将在21.3节中看到,合理选择网络的连接性对于实现高效学习十分重要。1.1.2梯度与学习在19.6节中,我们介绍了一种基卜的监督学习方法:计算损失函数关于权重的梯度,并沿梯度方向调整权重以降低损失函数.(如果读者尚未阅读19.6节,我们强烈建议在继续阅读接卜来的内容之前阅读19.6节。)我们可以用完全相同的方法学习计算图中的权重。对于谕Wu(OulPUlIayer),即产生网络输出的层,其单元对应

13、的权重的悌度计算过程与19.6节中的计算方式基本相凡对于隐如hiddenlayer),它们与输出没有直接联系,其单元对应的权重的梯度计算过程会梢微更杂一点。现在我们考虑使用平方损失函数上,我们将计算图213中的网络关于单个训练样例(工)的梯度,(对于多个样例,其梯度仅仅是单个样例的梯度之和。)设网络输出的速测为9=人”),其其实值为那么我们有1.ossg=4G也(X)=Ia-%(X)Ir=(y-y)2为了计免损失函数关于权歪的梯度.我们需要使用与第19章中相同的分析工具一主要是范火法剂,WW)5xg,(f(X)f(X)Idxi我们将从简单的例子入手:一个连接到怆出单元的权重,如W”。我们直接在

14、定义网络的表达式,即式(212)中进行运算:-Loss(hw)=-(y-y)2=-2(y-y)dw3,s加,5加,5=-2(j-y)g5(5)=-2(y-9)g;(巩)巩dw315飒,5Q=-2(y-f)W(巩)工一(Wo,5+W3,5%+W454)咽5=-23一向式(淞)4(21-4)最后一行得以简化是因为卬0,5和卬4,5%不依赖于卬3,5,也不依赖于卬3.5的系数。3。比这稍微复杂一点的情况是考虑与输出单元没有直接联系的一个权重,如叼3。在这种情形下,我们必须多应用一次链式法则。其中前几个步骤是如同的,因此我们略去它们:a3-Loss(hw)=-2(y-y)g,s(in5)-(+w35a

15、3+w45tz4)加,3刎,3=(加5)叫$=-2(j-y)g5(in5)w35g3(in3)帆3(w03+wux1+w23x2)=-2(y)g;(巩)w*g;(加3)F-加3飒,3一2(y一y)gs(巩)W3,5g;(巩)=-2(J-yg1s(in5)w35g;(in3)x1(21-5)由此,对于损失函数关于权重卬3,5和3的梯度,我们有了相当简单的表达式。如果我们定义d=2(y)g;M)为第5单元接收到输入产生的某种,撼知误差”,那么损失函数关于W”的梯度为&。九这是很有道理的:如果是正的,这意味着夕过大(g总是非负的:如果如也是正的,那么增大卬”只会让结果变得更轴,而如果/是负的,那么增

16、大卬力会减少误差。仆的大小也很重要:如果在这个训叙样例中很小,那么在产生误差方面并不是主要的,也不需要做太大改变,如果我们定义劣=与吗.就(如),那么关于卬”的梯度则为因此,单元3关于输入的感知误差为单元5关于输入而感知误差乘以从单元5返回到单元3的路役的信息。这种现象是十分普遍的,并由此引出了反向f”f(back-pmpagaiion)一词,它表示输出的误差通过网络进行回传的方式。这些梯度表达式的另一个也要特征是它们以局部导数g;(加1为因了,。如前所述,这些导数总是非负的,但如果来自问题中的输入样例恰好将单元/放置在平坦的区域,它们可能会非常接近于0(在SigmOid、SoflPIUS和I

17、anh函数的情况下)或正好为0(在ReLU的情况下)。如果导数很小或为0.这意味着修改与单位/相关的权或对其输出的影响可以忽略不计。这样的结果是,层数较多的深度网络可能会遭遇号;2演失(vanishinggradient)误差信号通过网络进行反向传播时完全消失。2133节为此问题提供了一种解决方案。我们已经展示了,在我们给出的简单网络示例中,梯度的表达式十分简单,它可以通过将信息从输出单元传I同网络来计算“事实证明,这个特点是一般性的“事实上,正如我们将在2141节中所述,任何前馈计总图的梯度计算与底本的计算图具有相同的结构,这个性质由微分法则直接保证。我们已经介绍梯度计算的烦琐细节,但不用担

18、心:对于每一个新的网络结构,我们不需要重新推导式(214)和式(215)!所有这些梯度都可以通过Fl动做分(automaticCliffereniiaiion)的方法进行计算,这一方法系统地应用微积分法则来计算任何数值程序的梯度。山事实上,深度学习中的反向传播方法只是反向模A(reversemode)微分的一种应用,它在网络输入多、临出相对较少的情况下应用由外而内的钱式法则,并利用了动态规划的效率优势.1.U自动微分方法最初是在20世心Oq代和m张代发展出来的.对优化由大型支架的REn程序定义的系统的誓能所有深度学习的主流软件包都提供了自动微分的功能,因此用户可以自由地试验不同的网络结构、激活

19、函数、损失函数及其组合,而无须进行大破的微枳分来推导每个实验的新学习并法。这引导了一种称为加到i,习(end-to-endlearning)的方法,在这种方法中,机器l译等任务的笈杂计算系统可以由几个可训练的子系统组成:整个系统将以端到端的方式根据输入隔出对进行训练.使用这种方法,设计者只需对整个系统的结构有一个模糊的概念,无须预先确切地如遒每个子系统应该做什么,或者如何对输入和输出进行标记。1.2深度学习的计兑图我们已经了解了深度学习的基本思想:将假设表示为具有可谢整权重的计算图,并通过计算损失函数相对于这些权重的梯度来拟含训练数据。现在我们将考虑如何组成一个计算图。我们从输入层开始,在这里

20、训练样例或测试样例X被编码为输入节.点的值。然后我们考虑输出层,它将输出f与真值J进行比较,得到用于调整权重的学习信号。最后,我们考虑网络中的随藏层,1.2.1 输入编码计算图的输入和输出节点是指与输入数据X和输出数据y直接连接的节点。输入数据的编码通常是直接的,至少为每个训练样本包含个输入属性值的因子化数据来说是这样的.如果屈性是布尔他,那么我们将有个输入节点:通常false映射为输入0,Irue映射为输入1.尽管有时也会使用T和+l对于数值属性,无论是它是整数值还是实值,我们通常都按原样使用,尽管它们可能会被缩放到某个固定范国内:如果不同样例之间的数量级存在较大差别,那么可以将这些值映射到

21、对数尺度图像不太符合因子化数据的范畴.尽管包含X像素y像素的RGR图像可以看作3XY个整数佰属性(通常取值范围为0,.255),但这将忽略RGB三元组网于图像中同一像素的事实,也忽略了像素之间的邻接关系十分重要这一事实,当然,我们可以将相邻的像素映射到网络中相邻的输入节点上,但是如果网络的内部各层完全连通,那么邻接关系将完全失去意义“实际上.用于图像数据的网络具有类似数组的内部结构,其目的是反映“邻接“这一含义。我们将在21.3节中更详细地看到这一点。对于具有两个以上取值范闱的类别属性(如第19章中餐厅等待问题中的八,“属性,其值为FrenCh、Italian、Thai或BUrger),我们通

22、常采用所谓而独热犷叫one-hotencoding)对其进行编码.具有d个可能值的届性由d个独立的输入位表示。对任遨给定的值,相应的输入位被设置为1,剌下的其他位将被设置为0.这通常比将其值映射到整数的效果更好。如果我们将八内这一属性表示为整数,那么Thai将为3,BUrgCr将为4。由于网络是连维函数的组合,因此它必然要注意数值的邻接关系,但在这种情况下,Thai和BUrger之间的数值链接的实际意义微乎其微。1.2.2 输出层与损失函数在网络的输出端,将原始数据值编码为图输出节点的实际加这一问题与输入编码问题大致相同。例如,如果网络试图预测第12率中的做2加较量,它的取值范围为(sun,r

23、am,cloud,snow,那么我们将使用一个4位的独热编码。我们已经花了一定篇幅考虑数据的标签,那么对于预测值3,我们希望它表现得如何呢?在理想情况下,我们希望预测值与我们希望的y值完全匹配,此时损失将为0-我们就完成了学习任务。实际中这种情况很少发生,尤其是在我们开始调整权田之前!因此,我们需要思考不正确的输出值意味着什么,以及如何衡量损失。在推导式(21-4)和式(2卜5)中的梯度时,我们采用了平方误差损失函数,这使得代数运算较为简洁.但这不是唯的选择。事实上,在大多数深度学习实际应用中,更常见的做法是将输出值表述为概率,并使用仇对敌似然作为损失函数,就像我们在第20章中对最大似然学习所

24、做的那样.最大似然学习的目标是才找使观测数据的概率最大化的w,由于对数函数是单调函数,这等价于最大化数据的对数似然,因此也等价于最小化负对数似然,即损失函数.(回想在第20章中,取对数的做法使得概率的乘积变成求和,这更便于导数计算。)换句话说,我们希望找到使得N个样例的负对数似然之和最小化的川:炉=argmin-YlogPw(yixf)川(2l-6)在深度学习的相关文献中,最小化交叉烯(Cn)SSentropy)损失是一种常见的方法.交叉燧,记为H(PQ),是两个分布和。之间差异性的一种度i.小它的一般性定义如下:121交叉的不足IMt文下的距离因为秋巴已不为零;附反,它等于廉微丹,我们容后迂

25、明有H(,K*l7Wttiv.(IC?)V,(KuIllxia-Leibkfdivergence).它淌足.因此,对于固定的改交6使和交叉1达到H小等价于最小化KL假收.H(P9Q)=:)logQ(z)=P(z)logQ(z)dz在机黯学习中,我们通常取定义中的P为训练样例的真实分布p(j).并令Q为假设的预测Pr)通过调整W使交叉熠/(p(x,y),P1(21-8)换句话说,第i个位置的输出为核A与X中以为为中心、宽度为/的片段的内积。我们在图21-4中以核向量+1,T,+1为例对该过程作出说明,它的检测目标是一维图像中较暗的点(在二维情况中可能是较暗的线)。注意,在这个例子中,核的中心之间

26、隔着2像素的距离;我们称核所用的步长(stride)S=2o注意,输出层的像素相对较少:由于步长的存在,像素的数量从几减少到大约RS(在二维情况下,像素的数量大约为包卬其中,S”和Sy分别代表图像在冗方向和y方向上的步长)。我们之所以说“大约”,是因为图像在边缘处需要特别考虑:在图21-4中,卷积过程在图像边缘停止,但是我们也可以用额外的像素对输入进行扩充(可以是0,也可以等于外部像素),这样一来,核就可以精确地被应用L/s次。对于较小的核,我们通常采用S=1,因此输出将与图像具有相同的大小(见图215)。图214一维卷积运算的例子,其中核大小/=3,步长S=2。其中响应的峰值集中在较喑(光强

27、较低)的输入像素上。在将结果输入下一个隐藏层之前,它们通常会经过一个非线性激活函数(未在图中给出)图215一个处理一维图像数据的卷积神经网络的前两层,其核大小/=3,步长S=L最左侧与最右侧作了填充,以使隐藏层与输入有相同的大小。红色所标记的区域是第二层隐藏层中某个单元的感受野。一般来说,越深的单元其感受野的范围越大利用一个具有合适的嵌套循环结构的程序,我们可以简单地实现核应用于图像的运算;同时,它也可以表述为单步矩阵运算,就像式(21-1)中权重矩阵的应用一样。例如,图21-4中所示的卷积操作可以看作如下的矩阵乘法:+1 -1 +1 OO O +1 -1 kO O O O0 00、1 O O

28、+1 -1 +1,(21-9)在这个权重矩阵中,核出现在每一行,并按照步长相对于前一行进行移动,我们不必显式地构造权重矩阵(因为它大部分的位置为0),但是卷积可以看作一个线性矩阵运算这一事实暗示我们,梯度下降可以简单且高效地应用于CNN,就像它可以应用于普通的神经网络一样。如前所述,我们将会有d个核,而不是只有一个;因此,当步长为1时,输出的大小将增大d倍。这意味着一个二维的输入数组将输出三维的隐藏单元数组,其中第三维的大小为以这种方式对隐藏层进行组织是很重要的,这使得来自图像的某个特定位置的所有核输出都将与该位置相联系。但与表示图像的维度不同,这个额外的“核维度”没有任何邻接性质,因此对该维

29、度应用卷积运算是没有意义的。CNN灵感最初来自于神经科学中提出的视觉皮层模型。在这些模型中,神经元的感受野(receptiveEeld)是指感觉输入中能够影响神经元激活状态的部分。在一个卷积神经网络中,第一个隐藏层中一个单元的感受野会很小恰好为核的大小,即/个像素。在网络的更深层中,一个单元的感受野会大得多。图21-5说明了第二个隐藏层中的一个单元的感受野,该单元的感受野包含5个像素。如图21-5所示,当步长为1时,第机个隐藏层中的节点的感受野大小将为(1-1)如因此,其增长速度关于机是线性的。(在二维图像中,每个维度的感受野都随机线性增长,因此,感受野面积的增长将是二次的。)当步长大于1时,

30、第加层中的每个像素将表示第阳T层中的S个像素;因此,感受野将以。的速度增长,即与网络深度呈指数关系。池化层也会产生同样的效果,我们将在下面进行讨论。1.3.1池化与下采样神经网络中的池化(Pooling)层用一个值来提取前一层中的一组相邻单元的信息。与卷积层类似,池化层也有一个大小为/,步长为S的核,但是它的运算方式是固定的,而不是学习得到的。通常来说,池化层不与激活函数相连接。它有两种常见的形式。平均池化计算/个输入的平均值。这等价于采用一个均匀的核斤=,J川进行卷积。如果我们令=s,那么其效果将为粗化图像的分辨率以S尺度进行下采样(downsample)。在池化之后,一个占用IOS个像素的

31、对象将只占用10个像素。对于同一个学习得到的分类器,如果它能识别出原始图像中大小为10个像素的对象,那么它也将能识别出池化后的图像中的该对象,即使在原始图像中该对象因为太大而难以识别。换句话说,平均池化有助于多尺度下的识别。同时,它还降低了后续层中所需的权重数量,从而降低了计算成本并加快了学习速度。最大池化计算/个输入的最大值。它同样可以单纯用于下采样,但它在语义上与平均池化有一些不同。现在假设我们将最大池化用于图21-4中的隐藏层5,9,4:其结果将为9,这说明,在输入图像中,该核所检测的区域内存在一个较暗的点。换句话说,最大池化实现的是逻辑析取的运算,表明该单元的感受野内存在某个特征。如果

32、我们的目标是将图像归类为C类中的一类,那么网络的最后一层将是具有C个输出单元的SOftmaX。卷积神经网络的浅层的大小通常与图像大小相近,所以在浅层与输出层之间必然存在某些层,这些层使得层的大小显著下降。步长大于1的卷积层和池化层都能实现减小层的大小的效果。我们也可以通过使用一个输出单元比输入单元少的全连接层来实现层的大小的缩减。通常,在卷积神经网络最后的SOftmaX层之前都会有一个到两个这样的层。1.3.2 卷积神经网络的张量运算我们已经在式(2M)与式(21-3)中注意到,矩阵与向量的表示有助于保持数学推导的简洁与优雅,而且能提供关于计算图的简明描述。向量和矩阵是张量(tensor)在一

33、维和二维情况下的特例,在深度学习术语中,张量可以是任意多维的数组。151要给张量一个合适的数学定义,要求张量在基变换下有一定的不变性。对于卷积神经网络,张量是一种跟踪数据在网络各层传输过程中的“形状”的表示方法。这一点很重要,因为卷积的概念依赖于邻接的概念:我们假定了相邻的数据是语义相关的,因此将张量运算用于数据的局部区域是有意义的。此外,利用适当的语言构造张量并应用算子,可以将神经网络的每一层简洁地描述为张量输入到张量输出的映射。将卷积神经网络描述为张量运算的最后一个原因是出于对计算效率的考虑:如果将一个网络表述为张量运算的序列,那么深度学习软件包能生成底层计算结构高度优化的编译代码。深度学

34、习的程序通常在GPU(图形处理器)或TPU(张量处理器)上运行,这使得高度并行运算成为可能。例如,谷歌研发的第三代TPUPOdS的计算能力相当于一千万台笔记本计算机。如果你要使用一个较大的数据集训练一个较大的卷积神经网络,那么利用这些能力至关重要。因此,我们每次运算通常会同时处理一批图像,而不是每次处理一个图像;这也与随机梯度下降算法每次计算关于小批量训练样例的梯度的方式相吻合,正如我们将在21.4节中看到的那样。让我们用一个示例来说明这些特点。假设我们将使用256像素x256像素的RGB图像进行训练,每个批量的大小为64。在这种情况下,输入将是一个四维张量,其大小为256x256x3x64。

35、接着我们使用96个大小为5x5x3的核对其进行处理,其中X方向和y方向上的步长均为2。这使得输出张量的大小为128x128x96x64。我们通常称这样的张量为特征映射(featuremap),因为它所给出的是核在整个图像上提取出的特征。在该例中,它由96个通道组成,其中每个通道携带一个特征的信息。注意,和输入张量不同,该特征映射不再拥有专门的颜色通道;尽管如此,如果学习算法发现颜色对于网络最终的预测有帮助,它仍可能出现在各个特征通道中。1.3.3 残差网络残差网络(residualnetwork)是用来构造深层网络且同时避免梯度消失问题的一种流行且成功的方法。典型的深层模型采用的层使用第1层的

36、全部特征表示来学习第,层的新的表示。利用我们在式(21-3)中介绍的矩阵与向量的表示形式,并记*为第i层的单元的值,那么我们有*=HdT)=T)由于网络的每一层将前一层的表示完全取代,所以每一层所做的操作必须有意义。每一层必须至少保留前一层中所包含的与任务相关的信息。如果我们将任意某一层i的权重置为零,即仍=/那么整个网络将无法工作。如果我们同时令眩)=。,网络甚至无法学习:第i层无法学习是因为它接收到的来自第i-1层的输入没有任何差异性,第i-1层无法学习是因为在梯度的反向传播过程中,来自第i层的梯度始终为零。当然,这些是比较极端的例子,但是它们说明了隐藏层作为网络信号传输的中间过程,应当满足一定要求。残差网络的核心思想在于,它认为每一层应当对前一层的表示进行扰动,而不是完全替换它。如果学习到的扰动较小,那么后一层的输出将接近于前一层的输出。这样的想法可以由如下的第,层关于第一1层的式子表述:ZG)=Z00+(z00)(21-10)其中gr三示残差层的激活函数。这里我们把一看作残差,它对从第-1层传递到第,层的默认信息进行扰动。我们通常选择带有一个非线性层与一个线

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号