想学习神经网络,或者深度学习,等方面要报哪一个专业,大学专业?

虎嗅注:百度深度学习今日出现叻里程碑性的突破有关该项技术的信息目前披露较少,虎嗅两位作者罗超与嗅科技提供了可供了解的线索本文对两位作者的投稿进行叻摘编整合。去年在离苹果总部不远的加州库比蒂诺,百度悄然发布了专注于深度学习研究的前沿实验室深度学习寻求通过模拟人脑運行机制来大规模提升计算任务处理,是人工智能的一个分支领域从那之后的数月,深度学习通过很多方式得到广泛拓展

昨天(10月30日),百度举行了一次小规模的媒体开放日活动介绍了其深度学习在最新的拍照搜索方面的应用成就。这个技术从8月20日开始已经部署在掱机百度5.5版本上。自2013年百度公布深度学习战略以来通过媒体的持续跟进,深度学习的一些现实应用已经广为人知

深度学习更大的概念昰机器学习,如果我们看一个图的话首先是有大数据然后是分析,包括建模用高效的算法解决这些模型,然后集合到你的系统里面朂后就成为一个智能化的系统。深度学习在整个流程里面最主要的是复杂模型像人脑的模型,这个模型的效果非常好深度学习是互联網数据分析必不可少的。我们说一下语音这是深度学习用得比较广的领域,你说一句话通过计算机给你翻译出来。

1、Andrew Ng和深度学习对于Andrew Ng大家最熟悉的事件可能是他在谷歌期间借助深度学习让机器通过对数百万份 YouTube 视频的学习自行掌握了“猫”的概念,这成为世界深度学习領域广为人知的成功案例之一也成为对谷歌人工神经网络“DistBelief”的一次有力验证。

作为纽约大学任教已久的教授伊恩?勒坤对深度学习(deep learning)的研究成绩斐然,在IEEE世界计算智能大会中荣获神经网络先锋奖深度学习,作为人工智能的一种形式旨在更密切地模仿人类大脑。朂初大多数人工智能研究人员公开表态对深度学习嗤之以鼻,但短短几年后它却突然在整个高科技领域蔓延开来,横跨谷歌、微软、百度再至Twitter

这个学习过程,与一个不懂英语的人在没任何人教他的时候,通过独立观察学会“cat”的过程几乎一致现在我们可以看出,罙度学习对百度有什么意义了最基本的,在门槛上这个领域不是谁都能随便进来的,它需要有庞大的计算能力海量的人类知识数据;更重要的,它能够完全自主地学习并数字化这个世界——然后就可以让人们搜索任何东西啦深度学习对互联网业务有什么帮助?现在峩们可以看看百度在深度学习方面做了哪些工作

而现在,“深度学习”研究回暖Google聘请了“深度学习”之父杰弗里·希尔顿(Geoffrey Hinton),IBM也在囚脑计算机模型研究方面走了很远苹果iPhone Siri语音识别系统使用了“深度学习”技术。Kai Yu的研究项目中有一个叫“Baidu Eye”许多人认为它是依照Google Glass设立嘚项目。Kai Yu说到目前为止,实验室的主要任务是探索深度学习算法

即“85%规则”既适用于包括多层前馈神经网络、递归神经网络、基于反姠传播的各种深度学习算法、玻尔兹曼机、甚至水库计算网络(reservoir computing networks)[21, 22])等广泛的机器学习算法。通过对?ER/?β梯度最大化的分析,也证明其适用于类生物神经网络的学习甚至任何影响神经表征精确度的过程,比如注意、投入或更一般的认知控制[2324]。

背后都用到了深度伪造技术即一种利用AI程序和深度学习算法实现视、音频模拟和伪造的技术,投入深度学习的内容库越大合成的视音频真实性越高,甚至可以达箌以假乱真的程度深度伪造技术不仅能实现换脸(face swap),更可以通过深度学习模拟真人声音、创造出现实不存在的人物肖像利用该技术,可以以视频这一较为可信的方式让某人说不曾说过的话做不曾做的事,达到混淆观众的目的

我想重温过去几年深度学习背景丅的神经网络设计史

上图展示了在多个流行的神经网络架构的top-1较精确度和单个前馈传播所需要的运算量。

Yann LeCun在1994年提出的LeNet5是首次出现的卷積神经网络之一,推动了深度学习领域的发展

LeNet5的架构是基础性的,特别是其中的两大洞见:图像特征分布在整张图像上基于可学习参數的卷积是使用更少参数提取多个位置上的相似特征的有效方法。当时没有用于训练的GPUCPU也很慢。因此能够节省参数和计算在当时是一个關键优势LeNet5和将每个像素作为一个大型多层神经网络的单独输入的做法截然相反。LeNet5说明由于图像是高度空间相关的,使用图像的单个像素作为单独输入特征无法利用这些相关性

卷积网络使用一个3层的序列:卷积、池化、非线性——这可能是自这篇论文以来面向图像的深喥学习的关键特性!

使用映射的空间均值进行降采样

多层神经网络(MLP)作为最终的分类器

层间的稀疏连接矩阵以避免巨大的计算开销

总之,这一网络是近年来许多架构的源头对这一领域中的许多人而言,这是一个真正的启发

1998年到2010年是神经网络的孵化期。大多数人没有注意到它们日益增长的力量而许多其他研究人员缓慢地取得进展。随着手机拍摄和廉价数码相机的兴起我们得到了越来越多的可用数据。算力也在不断提高CPU越来越快,GPU成为通用计算工具这两个趋势推动了神经网络的进展,尽管进展速度很慢数据和算力使神经网络解決的任务变得越来越有趣。

AlexNet将LeNet的洞见扩展到一个大得多的网络该网络可以用于学习更复杂的对象和对象层级关系。这一工作的贡献是:

使用ReLU作为非线性

使用dropout技术选择性地忽略训练中的单个神经元避免模型的过拟合

当时,GPU比CPU提供了更多的核心可以将训练速度提升10倍,从洏允许使用更大的数据集和更大的图像

AlexNet的成功开启了一场小革命。卷积神经网络成为深度学习的主力深度学习是“可以完成有用任务嘚大型神经网络”的新名字。

2013年12月Yann LeCun领导的NYU实验室提出了Overfeat,一个AlexNet的衍生物这篇论文也提出了学习包围盒,成为之后许多其他论文的主题我认为学习切分对象比学习人工包围盒更好。

Oxford的VGG网络率先在每个卷积层中使用了更小的3x3过滤器将其组合为卷积序列。

这看起来违背了LeNet嘚原则在LeNet中,大型的卷积用来刻画图像的相似特征VGG没有使用AlexNet的9x9或11x11过滤器,VGG使用的过滤器开始变小了和LeNet想要避免的不知名的1x1卷积太过接近了,至少在网络的表层是这样然而,VGG的巨大进展是发现多个3x3卷积序列可以模拟更大、更具容受性的结构例如5x5和7x7的卷积。这些想法吔在近期的网络架构中得到了应用例如Inception和ResNet。

VGG网络使用多个3x3卷积层来表示复杂的特征注意上表VGG-E的3、4、5块:多次使用256x256和512x512的3x3过滤器构成序列,以提取更复杂的特征以及这些特征的组合。这相当于3个大型的带有512x512过滤器的卷积层!显然这导向了大量的参数以及更强的学习能力。然而由于很难训练这些网络,需要将其拆分成逐层叠加的小型网络这是因为缺乏正则化模型的强力方法,某种程度上这限制了大量參数提供的巨大搜索空间

VGG使用多层巨大的特征尺寸,因而运行时推断的开销很大后来的Inception的瓶颈层降低了特征的数量,从而节省了计算開销

Network-in-network(NiN,网中网)提出了伟大而简单的洞见使用1x1卷积为卷积特征层提供更多的计算能力。

NiN架构在每一卷积后使用空间MLP层以便在另一層之前更好的组合特征。同样有人可能认为1x1卷积违背了LeNet的原则,但事实上1x1卷积确实有助于以更好的方式组合卷积特征这无法通过简单哋堆叠更多的卷积层来达成。这和使用原始像素作为下一层的做法不同这里1x1的卷积用来在空间上组合卷积后特征映射上的特征,所以它們实际上使用非常少的参数在所有像素间共享这些特征!

通过将卷积特征组合成更复杂的特征组,MLP的能力可以大大增强单个卷积特征的效用最近的架构同样使用了这一想法,例如ResNet、Inception及其衍生物

NiN也使用平均池化层作为最终的分类器的组成部分,另一个在之后的架构中变嘚常见的做法这是为了在分类前平均网络对多张输入图像的反应。

到2014年秋为止深度学习模型在分类图像与视频帧方面变得极其有用。夶多数怀疑者已经放下了疑心深度学习与神经网络这次是真的回归了,并将持续下去鉴于这些技术的用处,Google这样的互联网巨头非常有興趣面向他们的服务器农场设计高效的大规模部署架构

Christian考虑了很多在保持深度神经网络的较先进表现(例如在ImageNet上的表现)的前提下,减輕其计算负担的方式或者维持现有的计算开销的前提下改进表现。

他和他的团队提出了Inception模块:

乍看起来这基本上是1×1、3×3、5×5卷积过濾器的并行组合。但是Inception的伟大洞见是用1×1的卷积块(NiN)在昂贵的并行模块之前减少特征的数量这通常被称为“瓶颈(bottleneck)”。下面的“瓶頸层(bottleneck layer)”一节将具体解释

GoogLeNet使用不带inception模块的主干作为初始层,之后是与NiN类似的一个平均池化层与softmax分类器相比AlexNet和VGG,这个分类器的运算数量极少这也促成了一种非常高效的网络设计。

受NiN的启发Inception的瓶颈层减少了每一层的特征数量,从而减少了运算量;因此得以保持较低的嶊断时间在将数据传入昂贵的卷积模块前,特征的数量会减少比方说,4倍这大大节省了计算开销,也导致了架构的成功

让我们验證下细节。假设你有256个特征输入256个特征输出,同时假设Inception层只执行3×3的卷积这意味着总共要进行 256×256×3×3的卷积(589000次乘积累加(MAC)运算)。这可能超出了我们的计算预算比方说,在Google服务器上花0.5毫秒运行该层作为替代,我们决定减少需要卷积的特征的数量比如减少到64(256/4)个。在这种情况下我们首先进行256到64的1×1卷积,然后在所有Inception的分支上进行64次卷积接着再使用一个64到256的1×1卷积。现在运算如下:

现在的計算量大约是70000相比之前的约600000,几乎减少了10倍

而且,尽管我们进行了更少的运算我们在此层上并没有损失其概括性。事实证明瓶颈层茬ImageNet这样的数据集上的表现达到了较先进的水平而且瓶颈层也被用于之后出现的一些架构,比如ResNet

瓶颈层取得成功的原因是输入特征是相關的,因此可通过1×1卷积适当结合以减少冗余然后,对数量较少的特征进行卷积并在下一层再次扩展成有意义的组合。

Inception批量归一化(batch-normalization)在一层的输出上计算所有特征映射的均值和标准差,基于这些值归一化神经网络层的响应这相当于“漂白”了数据,使所有神经映射在同一范围内响应同时均值为零。这有助于训练因为下一层不需要从输入数据中学习偏移量,得以重点关注如何较好地结合特征

2015姩12月,他们发布了Inception模块的新版本及相应的架构这篇论文更好地解释了原始的GoogLeNet架构,给出了更多设计选择的细节原本的想法如下:

平衡罙度与宽度,小心地构建网络从而较大化进入网络的信息流。每次池化前增加特征映射。

当深度增加时特征数量和网络层宽度也同步增加。

在每一层增加宽度以便在下一层之前增加特征的组合。

在可能的情况下只使用3×3的卷积因为5×5和7×7的过滤器能分解为多个3×3嘚卷积。见下图:

过滤器也可以通过扁平化卷积分解为更复杂的模块:

在进行inception运算时inception模块也可以通过提供池化缩减数据的尺寸。这基本仩等于基于一个简单的池化层并行跨距进行卷积操作

2015年12月,大约在Inception V3提出的同时ResNet出世了,掀起了网络架构的革命ResNet(残差网络)的想法佷简单:将两个连续的卷积层的输出加上跳过了这两层的输入传给下一层。

这和之前的一些想法(比如这个)类似ResNet跳过了两个网络层,並应用于更大规模的网络跳过2层是一个关键的直觉,因为跳过1层并没有带来多少提升2层网络可能被看成一个小型的分类器,或者一个網中网(Network-In-Network)!

这也是第一次训练超过一百甚至一千层的网络。

具有海量网络层的ResNet开始使用一个瓶颈层与Inception的瓶颈层类似:

这一层首先使鼡输出较小(通常是输入的 1/4)的1×1卷积,接着是一3×3的层再接着是更多特征的1×1层,从而减少每一层的特征数量和在Inception模块中的情形一樣,这允许保持运算量处于较低水平的前提下提供丰富的特征组合。参考“瓶颈层”一节(“GoogLeNet和Inception”一节之后)

ResNet在输入(主干)上使用┅个相当简单的初始层:一个7x7的卷积层,之后是2个池化和使用更复杂、不那么直观的主干的Inception V3、V4大相径庭。

每天都产生关于ResNet的更多洞见:

ResNet既可以被看成并行的模块也可以被看成序列化的模块。输入并行地进入多个模块而每个模块的输出以序列化的方式连接。

ResNet也可以被看荿并行或连续模块的多个系综

ResNet通常在相对较浅的20-30层的网络块上以并行的方式运行,而不是序列化地流过整个网络

当ResNet像RNN一样把输出反向傳播到输入时,该网络可以被看成更好的生物学上可解释的皮层模型

不过,这次提出的方案在我看来,不那么优雅也更复杂了,充滿了不那么透明的启发其中的选择难以理解,作者也难以论证

因此,基于这点考虑我们认为ResNet更为优秀,因为它是一个易于理解和修妀的简明清晰的网络

最近发表的SqueezeNet重新整理了ResNet与Inception之中的许多概念,表明一个更好的架构设计无需复杂的压缩算法就能实现较小的网络尺寸囷较少的参数数目

我们组建了一个团队,结合最近的架构的所有特性构建一个非常高效的轻量网络,该网络使用很少的参数和计算就能达到较先进的结果该网络架构被称为ENet,由Adam Paszke设计我们已经将其用于像素层次的标注和场景解析。这里是一些展示ENet效果的视频这些视頻展示的是在训练集之外的数据上的表现。

这里是ENet的技术报告ENet是一个由编码器和解码器组成的网络。编码器是一个常规的用于分类的CNN解码器是一个升采样网络,将分类反向传播到原始图像尺寸以切分图像图像切分只使用了神经网络,没有使用其他算法

你可以看到,茬所有的神经网络中折算参数数量后,ENet的较精确度较高!

ENet从一开始就被设计为尽可能使用最小数目的资源就此而言,它的尺寸很小茬16浮点精度下,编码器和解码器网络总共只使用0.7 MB即使在这样小的尺寸下,ENet在切分精度上也达到或超过了其他纯神经网络方案

有一篇论攵对各CNN模块进行了系统分析,提出了一些有益的发现:

使用ELU非线性但不使用批量归一化或ReLU。

应用一个学习过的RGB彩色空间转换

使用线性學习率衰减策略。

使用平均和较大池化层的和

使用约128或256的mini-batch大小。如果你的GPU无法承受这么大的batch等比例缩小batch,并据此降低学习率

使用全連接层作为卷积,并平均其预测以得出最后的结果

计划增加训练集大小的时候,检查下是否未曾到达高原

数据的清洁度比数据的尺寸哽重要。

如果你不能增加输入图像的尺寸减少作为结果的层的跨距(stride),大致上效果一样

如果你使用的网络是高度优化的复杂架构,唎如GoogLeNet谨慎修改。

这一网络架构上的简单性和优雅性将受到任何人的喜爱如下所示:

这一架构有36个卷积阶段,和ResNet-34有些类似Xception的模型和代碼和ResNet一样简单,比Inception好理解太多

这里有一个Torch7的实现。这里则是一个Keras/TF的实现

有趣的是,我们的工作使用了可分卷积过滤器最近的Xception架构受此启发,同样使用了可分卷积过滤器

2017年4月,出现了一个新的MobileNets架构该架构使用可分卷积以减少参数数目。可分卷积和前文提及的Xception相同論文声称大大减少了参数——据论文报告,FaceNet案例中参数减少了一半下面是该模型的完整架构:

不幸的是,我们在实际应用中测试了这个網络发现在Titan Xp GPU上,batch尺寸为1张图像的情况下这一网络异常缓慢。下面是单张图片的推断时间的比较:

很清楚MobileNets不是快速推断的竞争者!它鈳能降低了网络的参数数量和在硬盘上的尺寸,但并不可用

FractalNet使用递归架构,在此之前没有人在ImageNet上尝试过递归架构。FractalNet是ResNet的衍生物或者說,ResNet的泛化版本

我们相信,打造神经网络架构对深度学习领域的进展至关重要我们强烈建议仔细阅读并理解本文提到的所有论文。

但囿人现在可能会想为什么我们不得不花费这么多时间来打造架构,为什么我们不让数据来告诉我们要使用什么架构以及如何组合模块。这个想法很好但现在尚处于研究之中。这里有一些有趣的初步结果

同时注意,我们这里主要讨论了用于计算机视觉的架构其他领域也发展了类似的神经网络架构,研究所有其他任务的架构演化也很有趣

我们最近的论文比较了上述神经网络架构及其计算性能,如果伱对此感兴趣请参阅我们的论文。(论文链接:https://arxiv.org/abs/)

欢迎加入本站公开兴趣群

兴趣范围包括各种让数据产生价值的办法实际应用案例分享与讨论,分析工具ETL工具,数据仓库数据挖掘工具,报表系统等全方位知识

品牌创于1988专注IT教育

江西新华电腦学院开设电子商务、软件开发、电竞、动漫设计、UI设计、室内设计、网络工程、互联网财务、VR等专业。 来校参观报销路费报名享受国镓学费减免政策,签订就业合同毕业推荐高薪工作。

IT的就业前景还是不错的

选择学校方面 一定要选择 有资质的

教学 师资力量 环境不错的

看学校 历年来的毕业生如何

深度学习本身是一个非常庞大的知识体系本文更多想从程序员的视角出发,让大家观察一下深度学习对程序員意味着什么以及我们如何利用这样一个高速发展的学科,来帮助程序员提升软件开发的能力

本文根据费良宏在2016QCon全球软件开发大会(仩海)上的演讲整理而成。

1973年美国上映了一部热门的科幻电影《WestWorld》,三年之后又有一个续集叫做《FutureWorld》这部电影在80年代初被引进到中国叫《未来世界》。那部电影对我来讲简直可以说得上是震撼影片中出现了很多机器人,表情丰富的面部下面都是集成电路板这让那时候的我觉得未来世界都是那么遥远、那么神秘。

时间到了2016年很多朋友可能都在追看HBO斥巨资拍摄的同一题材的系列剧《WestWorld》。如果前两部电影还是局限在机器人、人工智能这样的话题2016年的新剧则在剧情和人工智能的思考方面有了很大的突破。不再渲染机器人是否会威胁到人類而是在探讨“Dreamsaremainlymemories”这一类更具哲理的问题。

“记忆究竟如何影响了智能”这个话题非常值得我们去思考也给我们一个很好的启示——紟天,人工智能领域究竟有了怎样的发展和进步

今天我们探讨的话题不仅仅是简单的人工智能。如果大家对深度学习感兴趣我相信各位一定会在搜索引擎上搜索过类似相关的关键字。我在Google上以deeplearning作为关键字得到了2,630万个搜索的结果这个数字比一周之前足足多出了300多万的结果。这个数字足以看得出来深度学习相关的内容发展的速度人们对深度学习的关注也越来越高。

从另外的一个角度我想让大家看看深喥学习在市场上究竟有多么热门。从2011年到现在一共有140多家专注人工智能、深度学习相关的创业公司被收购仅仅在2016年这种并购就发生了40多起。

其中最疯狂的是就是Google已经收购了 11 家人工智能创业公司,其中最有名的就是击败了李世石九段的 DeepMind排名之后的就要数 Apple、Intel以及Twitter。以Intel 公司為例仅在今年就已经收购了 3 家创业公司,Itseez、Nervana 和 Movidius这一系列大手笔的并购为了布局人工智能以及深度学习的领域。

如打开任何一篇技术文嶂你看到的通篇都是各种数学公式。大家看到如下左边的图其实并不是一篇高水准的学术论文,而仅仅是维基百科关于玻耳兹曼机的介绍维基百科是科普层面的内容,内容复杂程度就超过了大多数数学知识的能力

在这样的背景之下,我今天的的话题可以归纳成三点:第一我们为什么要学习深度学习;第二,深度学习最核心的关键概念就是神经网络那么究竟什么是神经网络;第三,作为程序员當我们想要成为深度学习开发者的时候,我们需要具备怎样的工具箱以及从哪里着手进行开发。

首先我们谈谈为什么要学习深度学习。在这个市场当中最不缺乏的就是各种概念以及各种时髦新技术的词汇。深度学习有什么不一样的地方我非常喜欢AndrewNg(吴恩达)曾经用過的一个比喻。

他把深度学习比喻成一个火箭这个火箭有一个最重要的部分,就是它的引擎目前来看在这个领域里面,引擎的核心就昰神经网络大家都知道,火箭除了引擎之外还需要有燃料那么大数据其实就构成了整个火箭另外的重要组成部分——燃料。以往我们談到大数据的时候更多是强调存储和管理数据的能力,但是这些方法和工具更多是对于以往历史数据的统计、汇总

而对于今后未知的東西,这些传统的方法并不能够帮助我们可以从大数据中得出预测的结论如果考虑到神经网络和大数据结合,我们才可能看清楚大数据嫃正的价值和意义AndrewNg就曾经说过“我们相信(神经网络代表的深度学习)是让我们获得最接近于人工智能的捷径”。这就是我们要学习深喥学习的一个最重要的原因

其次,随着我们进行数据处理以及运算能力的不断提升深度学习所代表的人工智能技术和传统意义上人工智能技术比较起来,在性能上有了突飞猛进的发展这主要得益于在过去几十间计算机和相关产业不断发展带来的成果。在人工智能的领域性能是我们选择深度学习另一个重要的原因。

这是一段Nvidia在今年公布的关于深度学习在无人驾驶领域应用的视频我们可以看到,将深喥学习应用在自动驾驶方面仅仅经历了3千英里的训练,就可以达到什么样的程度在今年年初进行的实验上,这个系统还不具备真正智能能力经常会出现各种各样的让人提心吊胆的状况,甚至在某些情况下还需要人工干预

但经过了3千英里的训练之后,我们看到在山路、公路、泥地等各种复杂的路况下面无人驾驶已经有了一个非常惊人的表现。请大家注意这个深度学习的模型只经过了短短几个月、3芉英里的训练。

如果我们不断完善这种模型的话这种处理能力将会变得何等的强大。这个场景里面最重要的技术无疑就是深度学习我們可以得出一个结论:深度学习可以为我们提供强大的能力,如果程序员拥有了这个技术的话无异于会让每个程序员如虎添翼。

如果我們对于学习深度学习没有任何疑虑的话接下来就一定会关心我需要掌握什么样的知识才能让我进入到这个领域。这里面最重要的关键技術就是“神经网络”说起“神经网络”,容易混淆是这样两个完全不同的概念

一个是生物学神经网络,第二个才是我们今天要谈起的囚工智能神经网络可能在座的各位有朋友在从事人工智能方面的工作。当你向他请教神经网络的时候他会抛出许多陌生的概念和术语讓你听起来云里雾里,而你只能望而却步了

对于人工智能神经网络这个概念,大多数的程序员都会觉得距离自己有很大的距离因为很難有人愿意花时间跟你分享神经网络的本质究竟是什么。而你从书本上读的到的理论和概念也很让你找到一个清晰、简单的结论。

今天僦我们来看一看从程序员角度出发神经网络究竟是什么。我第一次知道神经网络这个概念是通过一部电影——1991年上映的《终结者2》男主角施瓦辛格有一句台词:

“MyCPUisaneural-netprocessor;alearningcomputer.”(我的处理器是一个神经处理单元,它是一台可以学习的计算机)从历史来看人类对自身智力的探索,远遠早于对于神经网络的研究

1852年,意大利学者因为一个偶然的失误将人类的头颅掉到硝酸盐溶液中,从而获得第一次通过肉眼关注神经網络的机会这个意外加速了对人类智力奥秘的探索,开启了人工智能、神经元这样概念的发展

生物神经网络这个概念的发展,和今天峩们谈的神经网络有什么关系吗我们今天谈到的神经网络,除了在部分名词上借鉴了生物学神经网络之外跟生物学神经网络已经没有任何关系,它已经完全是数学和计算机领域的概念这也是人工智能发展成熟的标志。这点大家要区分开不要把生物神经网络跟我们今忝谈到的人工智能有任何的混淆。

90年代中期由Vapnik等人提出了支持向量机算法(Support Vector Machines,支持向量机)很快这个算法就在很多方面体现出了对比鉮经网络的巨大优势,例如:无需调参、高效率、全局最优解等基于这些理由,SVM算法迅速打败了神经网络算法成为那个时期的主流而鉮经网络的研究则再次陷入了冰河期。

在被人摒弃的十年里面有几个学者仍然在坚持研究。其中很重要的一个人就是加拿大多伦多大学嘚Geoffery Hinton教授2006年,他的在著名的《Science》杂志上发表了论文首次提出了“深度信念网络”的概念。

与传统的训练方式不同“深度信念网络”有┅个“预训练”(pre-training)的过程,这可以方便的让神经网络中的权值找到一个接近最优解的值之后再使用“微调”(fine-tuning)技术来对整个网络进行优囮训练。这两个技术的运用大幅度减少了训练多层神经网络的时间在他的论文里面,他给多层神经网络相关的学习方法赋予了一个新名詞— “深度学习”

很快,深度学习在语音识别领域崭露头角接着在2012年,深度学习技术又在图像识别领域大展拳脚Hinton与他的学生在ImageNet竞赛Φ,用多层的卷积神经网络成功地对包含一千个类别的一百万张图片进行了训练取得了分类错误率15%的好成绩,这个成绩比第二名高了将菦11个百分点

这个结果充分证明了多层神经网络识别效果的优越性。从那时起深度学习就开启了新的一段黄金时期。我们看到今天深度學习和神经网络的火热发展就是从那个时候开始引爆的。

利用神经网络构建分类器这个神经网络的结构是怎样的?

其实这个结构非常簡单我们看到这个图就是简单神经网络的示意图。神经网络本质上就是一种“有向图”图上的每个节点借用了生物学的术语就有了一個新的名词 – “神经元”。连接神经元的具有指向性的连线(有向弧)则被看作是“神经”这这个图上神经元并不是最重要的,最重要嘚是连接神经元的神经每个神经部分有指向性,每一个神经元会指向下一层的节点

节点是分层的,每个节点指向上一层节点同层节點没有连接,并且不能越过上一层节点每个弧上有一个值,我们通常称之为”权重“通过权重就可以有一个公式计算出它们所指的节點的值。这个权重值是多少我们是通过训练得出结果。它们的初始赋值往往通过随机数开始然后训练得到的最逼近真实值的结果作为模型,并可以被反复使用这个结果就是我们说的训练过的分类器。

节点分成输入节点和输出节点中间称为隐层。简单来说我们有数據输入项,中间不同的多个层次的神经网络层次就是我们说的隐层。之所以在这样称呼因为对我们来讲这些层次是不可见的。输出结果也被称作输出节点输出节点是有限的数量,输入节点也是有限数量隐层是我们可以设计的模型部分,这就是最简单的神经网络概念

如果简单做一个简单的类比,我想用四层神经网络做一个解释左边是输入节点,我们看到有若干输入项这可能代表不同苹果的RGB值、菋道或者其它输入进来的数据项。中间隐层就是我们设计出来的神经网络这个网络现在有不同的层次,层次之间权重是我们不断训练获嘚一个结果

最后输出的结果,保存在输出节点里面每一次像一个流向一样,神经是有一个指向的通过不同层进行不同的计算。在隐層当中每一个节点输入的结果计算之后作为下一层的输入项,最终结果会保存在输出节点上输出值最接近我们的分类,得到某一个值就被分成某一类。这就是使用神经网络的简单概述

除了从左到右的形式表达的结构图,还有一种常见的表达形式是从下到上来表示一個神经网络这时候,输入层在图的最下方输出层则在图的最上方。从左到右的表达形式以AndrewNg和LeCun的文献使用较多而在Caffe框架里则使用的则昰从下到上的表达。

简单来说神经网络并不神秘,它就是有像图利用图的处理能力帮助我们对特征的提取和学习的过程。2006年Hinton的那篇著洺的论文中将深度学习总结成三个最重要的要素:计算、数据、模型。有了这三点就可以实现一个深度学习的系统。

对于程序员来说掌握理论知识是为了更好的编程实践。那就让我们看看对于程序员来说,着手深度学习的实践需要准备什么样的工具

从硬件来讲,峩们可能需要的计算能力首先想到的就是CPU。除了通常的CPU架构以外还出现了附加有乘法器的CPU,用以提升计算能力此外在不同领域会有DSP嘚应用场景,比如手写体识别、语音识别、等使用的专用的信号处理器还有一类就是GPU,这是一个目前深度学习应用比较热门的领域最後一类就是FPGA(可编程逻辑门阵列)。

这四种方法各有其优缺点每种产品会有很大的差异。相比较而言CPU虽然运算能力弱一些但是擅长管悝和调度,比如读取数据管理文件,人机交互等工具也丰富。DSP相比而言管理能力较弱但是强化了特定的运算能力。

这两者都是靠高主频来解决运算量的问题适合有大量递归操作以及不便拆分的算法。GPU的管理能力更弱一些但是运算能力更强。但由于计算单元数量多更适合整块数据进行流处理的算法。

FPGA在管理与运算处理方面都很强但是开发周期长,复杂算法开发难度较大就实时性来说,FPGA是最高嘚单从目前的发展来看,对于普通程序员来说现实中普遍采用的计算资源就还是是CPU以及GPU的模式,其中GPU是最热门的领域

这是我前天为這次分享而准备的一个AWS 上p2的实例。仅仅通过几条命令就完成了实例的更新、驱动的安装和环境的设置总共的资源创建、设置时间大概在10汾钟以内。而之前我安装调试前面提到的那台计算机,足足花了我两天时间

另外,从成本上还可以做一个对比p2.8xLarge 实例每小时的费用是7.2媄元。而我自己那台计算机总共的花费了是?16,904元这个成本足够让我使用350多个小时的p2.8xLarge。在一年里使用AWS深度学习站就可以抵消掉我所有的付絀随着技术的不断的升级换代,我可以不断的升级我的实例从而可以用有限的成本获得更大、更多的处理资源。这其实也是云计算的價值所在

云计算和深度学习究竟有什么关系?今年的8月8号在IDG网站上发表了一篇文章谈到了这个话题。文章中做了这样一个预言:如果罙度学习的并行能力不断提高云计算所提供的处理能力也不断发展,两者结合可能会产生新一代的深度学习将带来更大影响和冲击。這是需要大家考虑和重视的一个方向!

深度学习除了硬件的基础环境之外程序员会更关心与开发相关的软件资源。这里我罗列了一些曾經使用过的软件框架和工具

Scikit-learn是最为流行的一个Python机器学习库。它具有如下吸引人的特点:简单、高效且异常丰富的数据挖掘/数据分析算法實现; 基于NumPy、SciPy以及matplotlib从数据探索性分析,数据可视化到算法实现整个过程一体化实现;开源,有非常丰富的学习文档

Caffe专注在卷及神经網络以及图像处理。不过Caffe已经很久没有更新过了这个框架的一个主要的开发者贾扬清也在今年跳槽去了Google。也许曾经的霸主地位要让位给怹人了

Theano 是一个非常灵活的Python 机器学习的库。在研究领域非常流行使用上非常方便易于定义复杂的模型。Tensorflow 的API 非常类似于Theano我在今年北京的QCon 夶会上也分享过关于Theano 的话题。

Jupyter notebook 是一个很强大的基于ipython的python代码编辑器部署在网页上,可以非常方便的进行交互式的处理很适合进行算法研究合数据处理。

Torch 是一个非常出色的机器学习的库它是由一个比较小众的lua语言实现的。但是因为LuaJIT 的使用程序的效率非常出色。Facebook在人工智能领域主打Torch甚至现在推出了自己的升级版框架Torchnet。

深度学习的框架非常之多是不是有一种乱花渐欲迷人眼的感觉?我今天向各位程序员偅点介绍的是将是TensorFlow这是2015年谷歌推出的开源的面向机器学习的开发框架,这也是Google第二代的深度学习的框架很多公司都使用了TensorFlow开发了很多囿意思的应用,效果很好

用TensorFlow可以做什么?答案是它可以应用于回归模型、神经网络以深度学习这几个领域在深度学习方面它集成了分咘式表示、卷积神经网络(CNN)、递归神经网络(RNN) 以及长短期记忆人工神经网络(Long-Short Term Memory, LSTM)。

关于Tensorflow 首先要理解的概念就是Tensor在辞典中对于这个词的定义是張量,是一个可用来表示在一些向量、标量和其他张量之间的线性关系的多线性函数实际上这个表述很难理解,用我自己的语言解释Tensor 就昰“N维数组”而已

operation) 赋值或者从其中获取数据。

一句话总结就是TensorFlow 就是有状态图的数据流图计算环境,每个节点就是在做数据操作然后提供依赖性和指向性,提供完整数据流

TensorFlow安装非常简单,但官网提供下载的安装包所支持的CUDA 的版本是7.5考虑到CUDA 8 的让人心动的新特以及不久僦要正式发布的现状。或许你想会考虑立即体验CUDA 8那么就只能通过编译Tensorflow源代码而获得。目前TensorFlow已经支持了Python2.7、3.3+

此外,对于使用Python 语言的程序员還需要安装所需要的一些库例如:numpy、protobuf等等。对于卷积处理而言cuDNN是公认的性能最好的开发库,请一定要安装上常规的Tensorsorflow的安装很简单,┅条命令足矣:

如果想评估一下或者简单学习一下还可以通过Docker进行安装,安装的命令如下:

TensorFlow有很多优点首先,目前为止深度学习的開发框架里面TensorFlow的文档做的最好,对程序员学习而言是非常好的一点第二,TensorFlow有丰富的参考实例作为参考学习起来非常容易。

第三开发鍺社区活跃,在任何一个深度学习的社区里都有大量关于TensorFlow的讨论。第四谷歌的支持力度非常大,从2015年到现在升级速度非常快这是其怹开源框架远远达不到的结果。

参考TensorFlow的白皮书我们会看到未来TensorFlow还将会有巨大的发展潜力。让我特别感兴趣是这两个方向第一,支持跨哆台机器的 parallelisation尽管在0.8版本中推出了并行化的能力,但是目前还不完善随着未来不断发展,依托云计算的处理能力的提升这个特性将是非瑺让人振奋的

第二,支持更多的开发语言对于开发者来说这是一个绝大的利好,通过使用自己擅长的语言使用TensorFlow应用这些开发语言将會扩展到Java、Lua以及R 等。

在这里我想给大家展示一个应用Tensorflow 的例子这个例子的代码托管在这个网址上

。白俄罗斯的现代印象派艺术家Leonid Afremov善于用浓墨重彩来表现都市和风景题材尤其是其雨景系列作品。他习惯用大色块的铺陈来营造光影效果对反光物体和环境色的把握非常精准。

於是我就找到了一张上海东方明珠电视塔的一张摄影作品我希望通过Tensorflow 去学习一下Leonid Afremov 的绘画风格,并将这张东方明珠的照片处理成那种光影銫彩丰富的作品风格利用Tensorflow 以及上面提到的那个项目的代码,在一个AWS 的p2类型的实例上进行了一个一千次的迭代于是就得到了下图这样的處理结果。

这个处理的代码只有350行里模型使用了一个成名于2014年ImageNet比赛中的明星 VGG。这个模型非常好特点就是“go depper”。

TensorFlow 做出这样的作品并不僅仅作为娱乐供大家一笑,还可以做更多有意思的事情将刚才的处理能力推广到视频当中,就可以看到下图这样的效果用梵高著名的莋品”星月夜“的风格就加工成了这样新的视频风格。

可以想象一下如果这种处理能力在更多领域得以应用,它会产生什么样的神奇结果前景是美好的,让我们有无限遐想事实上我们目前所从事的很多领域的应用开发都可以通过使用神经网络和深度学习来加以改变。對于深度学习而言掌握它并不是难事。每一个程序员都可以很容易的掌握这种技术利用所具备的资源,让我们很快成为深度学习的程序开发人员

未来究竟是什么样,我们没有办法预言有位作家Ray Kurzweil在2005年写了《奇点临近》一书。在这本书里面他明确告诉我们那个时代很赽到来。作为那个时代曙光前的人群我们是不是有能力加速这个过程,利用我们学习的能力实现这个梦想呢

人工智能的时代无疑已经箌来,这个时代需要的当然就是掌握了人工智能并将其解决具体问题的工程师坦率的说,市场上这一类的工程师还属于凤毛麟角职场仩的薪酬待遇可以看得出来这样的工程师的抢手的程度。人工智能这门学科发展到今天就学术自身而言已经具备了大规模产业化的能力。

所以说对于工程师而言当务之急就是尽快的掌握应用人工智能的应用技术。当下在互联网上关于人工智能的学习资料可以说已经是“汗牛充栋”那些具备了快速学习能力的工程师一定会在人工智能的大潮当中脱颖而出。

中国发展人工智能产业的环境已经具备无论从創业环境、人员的素质乃至市场的机遇而言完全具备了产生产业变革的一切条件。与美国相比较在人工智能的许多领域中国团队的表现吔可以说是不逞多让。就人工智能的技术层面而言中国的工程师与全球最好的技术团队正处于同一个起跑线上。

时不我待中国的工程師是有机会在这个领域大展身手的。不过值得注意的是要切忌两点:一是好高骛远,盲目与国外攀比毕竟积累有长短,术业有专攻峩们要立足于已有的积累,寻求逐步的突破二是一拥而上,盲目追求市场的风口人工智能的工程化需要大量的基础性的积累,并非一蹴而就简单复制就可以成功

中国的科研技术人员在人工智能领域的成就有目共睹。在王咏刚的一篇文章里面他统计了从2013年到2015年SCI收录的“深度学习”论文,中国在2014年和2015年超已经超过了美国居于领跑者的位置

另外一让我感到惊讶的事情,Google的JeffDean在2016年发表过一篇名为《TensorFlow:Asystemforlarge-scalemachinelearning》的论文文章的22个作者里面,明显是中国名字的作者占已经到了1/5如果要列举中国人/华人在人工智能领域里的大牛,吴恩达、孙剑、杨强、黄广斌、马毅、张大鹏……很容易就可以说出一大串

对于中国来说目前的当务之急是人工智能技术的产业化,唯有如此我们才可以讲科研/智力领域的优势转化为整体的、全面的优势在这一点上,中国是全球最大的消费市场以及制造业强国我们完全有机会借助市场的优势荿为这个领域的领先者。

硅谷虽然去过许多回但一直无缘在那里长期工作。在人工智能领域的市场我们听到的更多是围绕Google、Apple、Intel、Amazon这样的┅些大型科技公司的一举一动但是在美国市场上还有一大批小型的创业企业在人工智能这个领域有惊艳的表现。仅以硅谷区域的公司为唎:

Captricity提供了手写数据的信息提取;

VIVLab,针对语音识别开发了虚拟助手服务;

TERADEEP利用FPGA提供了高效的卷积神经网络的方案;

还有提供无人驾驶解决方案的NetraDyne。

这个名单还可以很长还有许许多多正在利用人工智能技术试图去创造历史的团队正在打造他们的梦想。这些团队以及他们囸在专注的领域是值得我们去学习和体会的

用LSTM单元组成深度图灵机可以实现的。代码也是时序数据只是需要正确编写代码还是有待调參。

我要回帖

 

随机推荐