首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深度学习有多深?

深度学习(Deep Learning)是机器学习的一个分支,也是当前机器学习的主流技术。“深度学习”这个名词被公众熟知之前,这些技术的集合被叫做“深度神经网络”(Deep Neural Network, DNN)。深度学习已经成为人工智能研究和应用的新方向了,并且在计算机视觉、语音识别、自然语言处理、机器翻译等领域取得了很好的应用效果。尤其是再Google/DeepMind的AlphaGo一战成名之后,深度学习已经成为人工智能的代名词,有些AI学者不得不写长篇的文章来澄清,Deep Learning并不是AI的全部、也不是银弹。

人工神经网络(ANN)是对生物圣经网络的模拟,是深度学习技术的载体,它是一种分层的计算结构。那么,既然有深度学习,是不是也有浅度学习呢?多深才算深度?如何衡量一个网络的深度?是不是越深越好?

既然叫分层的网络结构,那就得有节点,有连线。换言之,至少有两个层,节点之间才可能有连线。如下图的网络,

(最简单的人工神经网络示意图)

只有一个输入层(Input Layer)和一个输出层(Output Layer),肯定不能称为“深度”神经网络,那么我们就认为这种只有两层的网络很浅了,它的训练效果不如层次更深的网络那么好。

因为输入层和输出层都是显式的、可见的,因此称之为"Visible Layer"。在有些介绍深度学习的书籍中,计算网络层数的时候,输入层不计算在内,上图的网络就只有一层。这种方式自有其道理,因为输入层就接受输入,没有激活函数、没有权重和偏置,不做任何计算。

而对于层次更深的网络来讲,在输入层和输出层之间,还有若干个层(每层若干个神经元),它们接受前面一层的输出作为输入并输出给下一层,不需要人工干预,因此,称之为“隐层”(Hidden Layers)。

(含有两个隐层的深度神经网络示意图)

如上图,中间介于输入和输出层之间的紫色的层(神经元),就是隐层。通常地,对于至少有两个隐层的网络,才能称之为深度神经网络。当然,上图中的网络,可以说它的深度是四层,也可以说是三层。

全连接网络中,每条路径所经历的层次是相同的,所以网络的深度与层数相当。在有些网络(比如卷积神经网络,CNN)中,层与层之间的神经元不是全连接的状态,网络的深度等于路径最长的那条所经历的层数,数起来就麻烦一点了,CNN的知识留待以后专门介绍。

根据所处理的问题领域的复杂度,有些网络的层次可以深达数十层上百层,训练的时候也需要相当可观的计算资源。深度学习圈子甚至有一种“深度”攀比,我训练的网络有多少个隐层,如果你的深度跟不上,就好像你搞的不是深度学习一样。之所以现在流行深度学习,是因为它突破了只有1、2层的浅层网络局限,取得了更好的性能,但这并不意味着层数越多越好,关键要看所训练的模型或探索的问题是否需要多深。一般的模型有6、7个隐层的网络就已经够了,而MSRA的研究人员提出了一个叫“深度残差网络”(Deep Residual Network,ResNet)的东西,达到了152层,并且在ImageNet夺了冠,今年的AlphaGo Zero也用到了这个技术。

(ResNet的训练性能,图片来自Bing搜索)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171222G0E6O000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券