- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
构建网络;构建网络是深度学习最重要的一个步骤。
若网络太简单则无法学习到足够丰富的特征,若网络太复杂则容易过拟合。
而且,对不同的数据,要选择合适的网络结构才能取得较好的结果。;;在深度学习中,构建网络通常是搭建一个完整的神经网络结构。
神经网络(NeuralNetworks)是一种应用类似于大脑神经突触连接的结构进行信息处理的算法。
神经网络已经被用于解决分类、回归等问题,同时被运用在机器视觉、语音识别等应用领域上。
神经网络是由具有适应性的简单单元组成的广泛并行互连网络,它的结构能够模拟生物神经系统对真实世界的交互反应。;一个简单的神经元结构如图所示。
在图中,、和表示权重,表示偏置项,表示激活函数,、和是神经元的输入值,输出值。;将多个神经元按一定的层次结构连接起来,即可得到一个神经网络。
使用神经网络需要确定网络连接的拓扑结构、神经元的特征和学习规则等。
常见的神经网络的层级结构如图所示,每层神经元与下一层的神经元全部互连,同层之间神经元不存在连接关系。
图为简单的全连接神经网络,其中输入层神经元接收信号,最终输出结果由输出层神经元输出。
;隐含层是指除了输入、输出层以外的其他层,是模型的黑箱部分,通常可解释性较差。
值得注意的是,如果单个隐含层网络不能满足实际生产需求,那么可在网络中设置多个隐含层。
深度学习神经网络中的常见的网络层有卷积层、池化层、正则化层、归一化层和全连接层。
网络层的先后顺序通常是,卷积层优先构造,池化层放置在卷积层之后,正则化层和归一化层放置在整个网络中间偏后的位置,全连接层放置在网络的后端或多个卷积层后。
在PyTorch框架中,常用的构建网络的方法有继承Module类和使用Sequential容器。;Module类是PyTorch框架提供的一个基类,在搭建神经网络时候可以通过继承Module类,使得搭建网络的过程变得简单。
继承Module类构建网络,其中__init__()方法初始化了网络中需要使用的网络层,完全相同的网络层可以仅初始化一次,但多次??行调用,forward()方法用于设置网络中数据的传播,并返回网络的输出。
从Layer列中可以查看所构建网络的结构,从OutputShape列中可以查看每层网络输出数据的维度。
从Param列中可以查看每层网络的参数个数。;Sequential是一个有序的容器,网络层将按照在传入构造器的顺序依次被添加到计算图中执行,使用Sequential容器构建网络。
同时以神经网络模块为元素的有序字典也可以作为Sequential容器的传入参数。;;在神经网络中,全连接层只是对上层输入进行线性变换,而多个线性变换的叠加仍然是一个线性变换,即含有多个全连接层的神经网络与仅含输出层的单层神经网络等价。
解决问题的一个方法是,在全连接层后增加一个非线性的变换,将非线性变换后的结果作为下一个全连接层的输入。
这个非线性函数被称为激活函数(ActivationFunction),神经网络可以逼近任意函数的能力与激活函数的使用不可分割。
常见的激活函数有ReLU、Sigmoid、Tanh和Softmax等。
;线性整流函数(RectifiedLinearUnit,ReLU),又称修正线性单元,是一种人工神经网络中常用的激活函数,通常指代以斜坡函数及其变种为代表的非线性函数。
ReLU函数的表达式如式所示,其中x为神经元的输入值。;ReLU函数的几何表达如图所示。
由图可知,当输入为正时,ReLU函数的输入与输出均始终保持线性关系,当输入趋于正无穷时,输出也趋于正无穷;当输入为负值时,输出为0。
;ReLU函数的优点如下。
反向传播时,可以避免梯度消失。
使一部分神经元的输出为0,形成稀疏网络,减少了参数的相互依存关系,缓解了过拟合问题的发生。
求导简单,整个过程的计算量节省很多。
ReLU的缺点如下。
左侧神经元为0,导致部分神经元死亡,不再更新。
输出非负,所有参数的更新方向都相同,可能导致梯度下降时出现震荡。
;relu类的语法格式如下。
torch.nn.functional.relu(input,inplace=False)
relu类的常用参数说明如表所示。
;LeakyReLU激活函数是ReLU激活函数的变式,主要是为了修复ReLU激活函数中负轴为0导致的问题。
LeakyReLU激活函数的负轴保留了非常小的常数,使得输入信息小于0时,信息得到保留。
LeakyReLU函数的表达式如式所示,其中x为神经元的输入值,α为非负的小数。
;
原创力文档


文档评论(0)