一篇文讲清楚深度学习中「训练」和「推断」的区别 2016-10-07 fengnanpi... 摘自 MOOC 阅 1271 转 5 转藏到个人图书馆 微信 分享: 不久前,咱们深刻

一篇文讲清楚深度学习中「训练」和「推断」的区别

2016-10-07  fengnanpi...  摘自 MOOC  阅 1271  转 5


http://www.360doc.com/content/16/1007/10/37065397_596369919.shtml
html



不久前,咱们深刻浅出地用一篇文章讲清楚人工智能、机器学习和深度学习的区别,经过最简单的方法——同心圆,可视化地展示出它们三者的关系和应用。算法


今天,将门将为你们带来解释深度学习基本概念的第二篇——训练和推断的区别。文中,做者将两者比做了学校学习的不一样阶段,梳理了从训练到推断的整个过程,包括两者在人工智能中所起到的做用数据库


来源:NVIDIA官网微信

译者:曲晓峰,香港理工大学人体生物特征识别研究中心博士生网络

我的科研主页: http://www.quxiaofeng.me/research数据结构


* * *app


“开学了”——正是形容正在“训练”阶段的深度神经网络最贴切的状态。神经网络和全部的学生同样,经过接受教育,来学习如何完成工做。机器学习


确切的说,训练好的神经网络,能够根据其所学,在数字化的世界中轻松地完成各类各样的工做,如:识别图像、识别记录口述的语言、检测血液中的疾病,或者推荐符合某人风格的一双鞋子等等。此时的神经网络,因为通过了完善的训练,能够快速高效地重新的数据中“推断”各类结论。在人工智能术语中,称之为“推断”(Inference)性能


推断(Inference),就是深度学习把从训练中学习到的能力应用到工做中去。
学习


不难想象,没有训练就无法实现推断。咱们人也是这样,经过学习来获取知识、提升能力。一样,咱们显然并不须要非得拖着咱们全部的老师,带着一堆塞满书的书架和一座红砖的校舍,才能读懂红楼梦(或者莎士比亚十四行诗)。深度神经网络推断的时候也是同样,完成推断任务,并不须要其训练时那样的海量资源。


下面,就让咱们梳理下从训练到推断的整个过程,包括两者在人工智能中所起到的做用,详细讲清楚。


训练深度神经网络

* * *


咱们能够把深度学习的训练想象成学校这个学校训练网络以便让其可以在广阔的世界里面解决现实问题。




一样,显然地,咱们并不须要非得拖着咱们全部的老师,带着一堆塞满书的书架和一座红砖的校舍,才能读懂红楼梦(或者莎士比亚十四行诗)。深度神经网络推断的时候也是同样,完成推断任务,并不须要其训练时那样的海量资源。


尽管目的都是获取知识,但一个神经网络的“教育”(训练)跟人仍是不同的。神经网络大致上以人类大脑的神经结构为基础,即一组互相链接的神经元。但与人脑并不彻底相同。人脑神经元与周围一小圈范围内的全部神经元都是互相链接的,而人工神经网络是分层的、是在层与层之间互相链接的、网络中数据的传播是有向的。


训练神经网络的时候,训练数据被输入到网络的第一层。而后全部的神经元,都会根据任务执行的状况,根据其正确或者错误的程度如何,分配一个权重参数(权值)。


在图像识别网络中,第一层可能会寻找图像中的边缘。第二层可能会寻找这些边缘所组成的图形,如长方形或者圆形。第三层可能会寻找特定特征,如闪亮的眼睛或者远远鼻子。每一层都把图像传递到下一层,直到最后一层。而最终的输出由网络中全部的权值共同决定。


这里,神经网络的训练与人类的教育就不同了。以识别图像中的猫为例,神经网络读入全部训练图像,根据权值,得出是不是猫的一个论断。网络训练所额外须要的,仅仅是这个论断是“正确”仍是“错误”这样的反馈。


训练是运算密集的

* * *


若是算法告诉神经网络其论断错误,网络并不须要知道正确的答案是什么。但这个错误会回传到网络各层,让网络再猜一下,给出一个不一样的论断。


每次给出论断时,网络都要考虑全部特性,在这个例子里面就是“猫”的全部特性,而后根据其检测到的特性调整网络中的权值,调高或者下降。而后再次给出论断,一次又一次,一次再一次,直到网络中的权值都调整到位,几乎每次都可以输出正确论断。那就是猫了。



训练会先教深度学习网络在一个有限的图像集里标出猫的图像,稍后,该网络就会在广阔的世界中检测猫。


如今,咱们获得了数据结构和根据训练数据学习到的达到平衡的一整套的权值。这但是精心调配的精美机器。可问题是,这也是须要一直吞噬运算能力的巨兽。曾在 Google 和斯坦福磨砺人工智能、如今百度硅谷实验室的吴恩达教授说,百度训练一个中文语言识别模型不只须要 4TB 的训练数据,在整个训练循环中,还须要两千亿亿次浮点运算能力(20 exaflops, 20 billion billion)。不知道有没有人想用智能手机试一下。


接下来,就是推断了。


恭喜!你的神经网络训练完成,能够进行推断了

* * *


精心调整权值以后的神经网络基本上就是个笨重、巨大的数据库。如今,本来为了教育这个笨家伙而投入的巨大资源,即至关于教育过程当中的笔本、书籍、老师的白眼等,在完成现实任务时已经根本用不上了。呃,毕业彷佛就是要扔掉这些东西?


为了充分利用训练的结果,完成现实社会的任务,咱们须要的是一个可以保留学习到的能力,还能迅速应用到前所未见的数据上的,响应迅速的系统。这就是推断,根据真实世界中的少许数据,迅速地提供正确的答案(其实你也把它理解为预测,prediction)。


这但是计算机科学的全新领域。如今主要有两种方法来优化庞大笨拙的神经网络,以实现高速低延迟的应用。


如何应用推断?

* * *



想看看推断在真实世界中的使用效果?看看你的智能手机就能够了。


推断的应用效果?打开你的智能手机就能够了。推断用在深度学习的每个场景,从语言识别到照片分类。


第一个方法,是查找神经网络中通过训练后并无用到、也就是说还没有激活的部分。这些区域在应用中并不须要,因此能够被清洗掉。


第二个方法,则是把神经网络中的多个层融合为一个单独的计算步骤。


在数字图像上,压缩很常见。设计师可能绘制恢宏壮丽,百万像素宽和高的图像。但放上网的,却都是有损压缩图像的JPEG格式。人眼没法看出区别,几乎是如出一辙,但分辨率确实下降了。推断也是一样的——咱们能够达到几乎同样的预测、识别准确率,但模型确实是简化了、压缩了、针对运行的性能进行优化了。


这意味着全部人都在使用推断。咱们的手机中语音助手使用推断。Google 的语言识别、图像搜索、垃圾邮件过滤等也都使用了推断。百度的语言识别、恶意程序检测和垃圾邮件过滤也都使用推断。Facebook 的图像识别和亚马逊及 Netflix 的推荐引擎也都依赖于推断。

 

GPU,因为它出色的并行运算能力,能够一次作不少件事情,所以它很是适合进行深度学习的训练和推断。使用 GPU 训练获得的深度学习系统,让计算机可以与人类同样,甚至有些时候比人类更好地检测模式和物体。


训练完成以后,神经网络部署于现场,以便推断分类数据或推导结果。在这里,GPU 及其并行运算能力一样能够为神经网络识别模式和物体所需的数以亿计的海量运算提供帮助。


咱们将会看到这些模型逐渐地变得更加聪明、更加迅速、更加准确。训练会变得不那么烦人,而推导也会带来生活中方方面面的新应用。就像我们年轻时常常听到的“谆谆教诲”,彷佛看来对“人工智能”也一样适用——“别傻了,在学校好好念书。”推断天然就在外面等着呢~