深度学习以及关于TensorFlow的简介

描述

2017年2月16日,Google正式对外发布Google TensorFlow 1.0版本,并保证本次的发布版本API接口完全满足生产环境稳定性要求。这是TensorFlow的一个重要里程碑,标志着它可以正式在生产环境放心使用。在国内,从InfoQ的判断来看,TensorFlow仍处于创新传播曲线的创新者使用阶段,大部分人对于TensorFlow还缺乏了解,社区也缺少帮助落地和使用的中文资料。InfoQ期望通过深入浅出TensorFlow系列文章能够推动Tensorflow在国内的发展。欢迎加入QQ群(群号:183248479)深入讨论和交流。

本文是整个系列的第一篇文章,将会介绍深度学习的发展历史以及深度学习目前成熟的应用,同时也会介绍目前主流的深度学习工具,以及TensorFlow相比于其他工具的优势。

从计算机发明之初,人们就希望它能够帮助甚至代替人类完成重复性劳作。利用巨大的存储空间和超高的运算速度,计算机已经可以非常轻易地完成一些对于人类非常困难,但对计算机相对简单的问题。比如统计一本书中不同单词出现的次数,存储一个图书馆中所有的藏书或是计算非常复杂的数学公式都可以轻松通过计算机解决。然而,一些人类通过直觉可以很快解决的问题,目前却很难通过计算机解决。人工智能领域需要解决的问题就是让计算机能像人类一样,甚至超越人类完成类似图像识别、语音识别等问题。

计算机要像人类一样完成更多智能的工作需要够掌握人类的经验。比如我们需要判断一封邮件是否为垃圾邮件,会综合考虑邮件发出的地址、邮件的标题、邮件的内容以及邮件收件人的长度,等等。这是我们受到无数垃圾邮件骚扰之后总结出来的经验。这个经验很难以固定的方式表达出来,而且不同人对垃圾邮件的判断也会不一样。如何让计算机可以跟人类一样从历史的经验中获取新的知识呢?这就是机器学习需要解决的问题。

什么是深度学习?

对许多机器学习问题来说,特征提取不是一件简单的事情。在一些复杂问题上,要通过人工的方式设计有效的特征集合需要很多的时间和精力,有时甚至需要整个领域数十年的研究投入。例如,假设想从很多照片中识别汽车。现在已知的是汽车有轮子,所以希望在图片中抽取“图片中是否出现了轮子”这个特征。但实际上,要从图片的像素中描述一个轮子的模式是非常难的。虽然车轮的形状很简单,但在实际图片中,车轮上可能会有来自车身的阴影、金属车轴的反光,周围物品也可能会部分遮挡车轮。实际图片中各种不确定的因素让我们很难直接抽取这样的特征。

图1  传统机器学习和深度学习流程对比

图2  深度学习在图像分类问题上的算法流程样例

人工智能、机器学习和深度学习的关系

总的来说,人工智能、机器学习和深度学习是非常相关的几个领域。图3总结了它们之间的关系。人工智能是一类非常广泛的问题,机器学习是解决这类问题的一个重要手段,深度学习则是机器学习的一个分支。在很多人工智能问题上,深度学习的方法突破了传统机器学习方法的瓶颈,推动了人工智能领域的发展。

图3  人工智能、机器学习以及深度学习之间的关系图

图4展示了“deep learning”(深度学习)这个词在最近十年谷歌搜索的热度趋势。从图中可以看出,从2012年之后,深度学习的热度呈指数上升,到2016年时,深度学习已经成为了谷歌上最热门的搜索词。深度学习这个词并不是最近才创造出来的,它基本就是深层神经网络的代名词。受到人类大脑结构的启发,神经网络的计算模型于1943年首次提出。之后感知机的发明使得神经网络成为真正可以从数据中“学习”的模型。但由于感知机的网络结构过于简单,导致无法解决线性不可分问题。再加上神经网络所需要的计算量太大,当时的计算机无法满足计算需求,使得神经网络的研究进入了第一个寒冬。

图4 “deep learning”最近十年在谷歌搜索的热度趋势。

到20世纪80年代,深层神经网络和反向传播算法的提出很好地解决了这些问题,让神经网络进入第二个快速发展期。不过,在这一时期中,以支持向量机为主的传统机器学习算法也在飞速发展。在90年代中期,在很多机器学习任务上,传统机器学习算法超越了神经网络的精确度,使得神经网络领域再次进入寒冬。直到2012年前后,随着云计算和海量数据的普及,神经网络以“深度学习”的名字再次进入大家的视野。2012年,深度学习算法AlexNet赢得图像分类比赛ILSVRC(ImageNet Large Scale Visual Recognition Challenge)冠军,深度学习从此开始受到学术界广泛的关注。

深度学习的应用

图5展示了历年ILSVRC比赛的情况,从图中可以看到,在深度学习被使用之前,传统计算机视觉的方法在ImageNet数据集上最低的Top5错误率为26%。从2010年到2011年,基于传统机器学习的算法并没有带来正确率的大幅提升。在2012年时,Geoffrey Everest Hinton教授的研究小组利用深度学习技术将ImageNet图像分类的错误率大幅下降到了16%。而且,从2012年到2015年间,通过对深度学习算法的不断研究,ImageNet图像分类的错误率以每年4%的速度递减。这说明深度学习完全打破了传统机器学习算法在图像分类上的瓶颈,让图像分类问题得到了更好的解决。如图5所示,到2015年时,深度学习算法的错误率为4%,已经成功超越了人工标注的错误率(5%),实现了计算机视觉研究领域的一个突破。

图5  历年ILSVRC图像分类比赛最佳算法的错误率

在技术革新的同时,工业界也将图像分类、物体识别应用于各种产品中了。在谷歌,图像分类、物体识别技术已经被广泛应用于谷歌无人驾驶车、YouTube、谷歌地图、谷歌图像搜索等产品中。谷歌通过图像处理技术可以归纳出图片中的主要内容并实现以图搜图的功能。这些技术在国内的百度、阿里、腾讯等科技公司也已经得到了广泛的应用。

在物体识别问题中,人脸识别是一类应用非常广泛的技术。它既可以应用于娱乐行业,也可以应用于安防、风控行业。在娱乐行业中,基于人脸识别的相机自动对焦、自动美颜基本已经成为每一款自拍软件的必备功能。在安防、风控领域,人脸识别应用更是大大提高了工作效率并节省了人力成本。
       比如在互联网金融行业,为了控制贷款风险,在用户注册或者贷款发放时需要验证本人信息。个人信息验证中一个很重要的步骤是验证用户提供的证件和用户是同一个人。通过人脸识别技术,这个过程可以被更加高效地实现。

深度学习在语音识别领域取得的成绩也是突破性的。2009年深度学习的概念被引入语音识别领域,并对该领域产生了巨大的影响。在短短几年时间内,深度学习的方法在TIMIT数据集上将基于传统的混合高斯模型(gaussian mixture model,GMM)的错误率从21.7%降低到了使用深度学习模型的17.9%。
       如此大的提高幅度很快引起了学术界和工业界的广泛关注。从2010年到2014年间,在语音识别领域的两大学术会议IEEE-ICASSP和Interspeech上,深度学习的文章呈现出逐年递增的趋势。在工业界,包括谷歌、苹果、微软、IBM、百度等在内的国内外大型IT公司提供的语音相关产品,比如谷歌的Google Now,苹果的Siri、微软的Xbox和Skype等,都是基于深度学习算法。

深度学习在自然语言处理领域的应用也同样广泛。在过去的几年中,深度学习已经在语言模型(language modeling)、机器翻译、词性标注(part-of-speech tagging)、实体识别(named entity recognition,NER)、情感分析(sentiment analysis)、广告推荐以及搜索排序等问题上取得了突出成就。
       在机器翻译问题上,根据谷歌的实验结果,在主要的语言对上,使用深度学习可以将机器翻译算法的质量提高55%到85%。表1对比了不同算法翻译同一句话的结果。从表中可以直观地看到深度学习算法带来翻译质量的提高。在2016年9月,谷歌正式上线了基于深度学习的中译英软件。现在在谷歌翻译产品中,所有从中文到英文的翻译请求都是由基于深度学习的翻译算法完成的。

表1  不同翻译算法的翻译效果对比表

TensorFlow:来自Google的深度学习框架

要将深度学习更快且更便捷地应用于新的问题中,选择一款深度学习工具是必不可少的步骤。

TensorFlow是谷歌于2015年11月9日正式开源的计算框架。TensorFlow计算框架可以很好地支持深度学习的各种算法,但它的应用也不限于深度学习。

TensorFlow是由Jeff Dean领头的谷歌大脑团队基于谷歌内部第一代深度学习系统DistBelief改进而来的通用计算框架。DistBelief是谷歌2011年开发的内部深度学习工具,这个工具在谷歌内部已经获得了巨大的成功。

基于DistBelief的ImageNet图像分类系统Inception模型赢得了ImageNet2014年的比赛(ILSVRC)。通过DistBelief,谷歌在海量的非标注YouTube视屏中习得了“猫”的概念,并在谷歌图片中开创了图片搜索的功能。使用DistBelief训练的语音识别模型成功将语音识别的错误率降低了25%。在一次BBC采访中,当时的谷歌首席执行官Eric Schmidt表示这个提高比率相当于之前十年的总和。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分