《深度学习导论及案例分析》一1.2深层网络的特点和优势-阿里云开发者社区

开发者社区> 华章计算机> 正文

《深度学习导论及案例分析》一1.2深层网络的特点和优势

简介:
+关注继续查看

####本节书摘来自华章出版社《深度学习导论及案例分析》一书中的第1章,第1.2节,作者李玉鑑 张婷,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2深层网络的特点和优势

神经网络由许多简单的、互连的称为神经元的处理器组成。每一个神经元产生一系列的实值激活[73],其中输入神经元通过传感器激活,其余神经元通过连接激活。

例如,图1.1是两个浅层网络的例子,其中图1.1a是一个单隐层的普通神经
网络,图1.1b是一个单隐层的和积网络。图1.2是两个深层网络的例子,其中图1.2a是一个多层神经网络,图1.2b是一个多层和积网络。
QQ_20170524090500
QQ_20170524090515

根据Bengio的定义[8],深层网络由多层自适应非线性单元组成。换句话说,深层网络是非线性模块的级联,在所有层次上都包含可训练的参数。在理论上,深层网络和浅层网络的数学描述是类似的,而且都能够通过函数逼近表达数据的内在关系和本质特征。不过应注意,网络虽然在狭义上是指由神经元构成的神经网络,但在广义上可以指任何具有网络结构的学习模型。

迄今还没有公认的区分深层网络和浅层网络的深度划界标准。依据Schmidhuber的观点[73],深层网络和浅层网络可以用得分路径(或译为信度分配路径,Credit Assignment Path,CAP)深度加以区分。得分路径是一条可学习的、连接行为和结果的因果链。对于前馈神经网络,得分路径深度,也就是网络深度,是网络的隐含层数加1(输出层也是可学习的)。对于循环神经网络,得分路径长度可能是无限的,因为信号可以多次通过同一个层。一般认为深层网络至少包含3个非输入层或者CAP>2,而非常深的网络应该深度(或CAP)至少大于10。在工程实践中,深层网络通常是一个多层人工神经网络,可以包含多个隐含层和多达几百万个自由参数。

浅层网络对机器学习来说也很重要,包括单隐层网络[74]、高斯混合模型(Gaussian Mixture Model,GMM)[75]、隐马尔可夫模型(Hidden Markov Model,HMM)[76]、条件随机场(Conditionsl Random Field,CRF)[77]、支持向量机(Support Vector Machine,SVM)[78]、逻辑回归[79]、最大熵模型[80],等等。这些网络的共同特点是,它们都使用不超过三层的结构将原始输入信号变换到一个特征空间。毋庸置疑,浅层网络对解决许多简单的和有良好约束的问题非常有效,但在解决真实世界的复杂应用问题时,往往出现函数表达能力不足的情况。这是因为在处理某些问题时,可能需要指数增长的计算单元,而此时深层网络则可能仅需相对很少的计算单元[81]。

作为例子,不妨来分析一个具有递归结构的和积网络的函数表达能力。设输入变量的个数n=4i,其中i是正整数。l0代表输入层,其中第j个节点表示为l0j=xj,1≤j≤n。分别构造奇数层和偶数层的节点如下:

l2k+1j=l2k2j-1•l2k2j,0≤k≤i-1和1≤j≤22(i-k)-1

l2kj=λjkl2k-12j-1+μjkl2k-12j,1≤k≤i和1≤j≤22(i-k)(1.1)# 

其中,权值λjk和权值μjk都为正数。

该和积网络的输出f(x1,…,xn)=l2i1∈R是一个单节点。当i=1时,网络共有3个非输入节点,结构如图1.3所示。由于对任意正整数i,QQ_20170524091416

这个和积网络在不计输入层时共有2i层,其中包含的(非输入)节点总数为1+2+4+8+…+22i-1=22i-1=4i-1=n-1,所以网络规模仅具有线性复杂度。显然,这个递归和积网络在i>1时是一个深层网络。
如果用图1.1b中的单隐层和积网络来计算函数f(x1,x2,…,xn),那么需要把它改写成输入变量乘积的加权和形式。当所有权值都取1时,可以得到下面的表达式:
f(x1,x2,…,x4i)=x1x2x5x6…x4i-1-3x4i-1-2+…(1.2)
由于在该表达式中乘积项的数量为m2i=2n-1,因此用单隐层和积网络计算需要2n-1个积节点和一个和节点,共需2n-1+1个节点,网络规模具有指数复杂度。因为在n较大时,2n-1+1将远远大于n-1,所以用浅层和积网络计算具有n个输入的函数,需要的节点个数可能比深层和积网络多得多。例如,当n=45=1024时,用浅层和积网络计算f(x1,…,xn)=l2i1,需要21024-1+1=231+1=2147483649个节点,而用深层和积网络仅需1024-1=1023个节点。

由此可见,在表达同样的复杂函数时,与浅层网络相比,深层网络可能只需要很少的节点和很少的参数。这意味着,在总节点数大致相同的情况下,深层网络通常比浅层网络的函数表达能力更强。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
吴恩达《深度学习》第一门课(3)浅层神经网络
3.1神经网络概述 (1)神经网络每个单元相当于一个逻辑回归,神经网络由逻辑回归的堆叠起来。下图是网络结构: 针对网络结构进行计算: 1.第一层的正向传播 2.第一层的反向传播 3.第二层的反向传播(正向只要把微分符号去掉即可) 3.
1276 0
spring源码学习之【准备】jdk动态代理例子
一:被代理的对象所要实现的接口 1 package com.yeepay.testpoxy; 2 3 import java.util.Map; 4 5 /** 6 * 被动态代理的接口 7 * @author shangxiaofei 8 * 9...
818 0
Java动态代理学习2——静态代理和动态代理并对照spring的通知
  一、代理模式  代理模式是常用的java设计模式,特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。 代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。  按照代理的创建时期,代理类可以分为两
943 0
深度学习Trick——用权重约束减轻深层网络过拟合|附(Keras)实现代码
深度学习小技巧,约束权重以降低模型过拟合的可能,附keras实现代码。
1556 0
Java动态代理学习1——静态代理
  一、代理模式 代理模式是常用的java设计模式,特征是代理类与委托类有同样的接口,代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类,以及事后处理消息等。 代理类与委托类之间通常会存在关联关系,一个代理类的对象与一个委托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。    按照代理的创建时期,代理类可以分为两
825 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载