2019独角兽企业重金招聘Python工程师标准>>>

2016-12-06 优达学城Udacity

来源/ NVIDIA官网

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

个人科研主页: http://www.quxiaofeng.me/research

公众号“将门创业”(thejiangmen)授权转载

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

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

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

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

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

训练深度神经网络

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

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

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

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

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

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

训练是运算密集的

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

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

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

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

接下来,就是推断了。

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

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

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

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

如何应用推断?

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

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

第一个方法,是查找神经网络中经过训练后并没有用到、也就是说尚未激活的部分。这些区域在应用中并不需要,所以可以被清洗掉。

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

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

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

GPU,由于它出色的并行运算能力,可以一次做很多件事情,因此它非常适合进行深度学习的训练和推断。使用 GPU 训练得到的深度学习系统,让计算机能够与人类一样,甚至有些时候比人类更好地检测模式和物体。

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

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

转载于:https://my.oschina.net/Bettyty/blog/801070

一篇读懂深度学习中「训练」和「推断」的区别相关推荐

  1. 一文读懂深度学习中的各种卷积

    来源|机器之心 我们都知道卷积的重要性,但你知道深度学习领域的卷积究竟是什么,又有多少种类吗?研究学者 Kunlun Bai 发布了一篇介绍深度学习的卷积文章,用浅显易懂的方式介绍了深度学习领域的各种 ...

  2. 卷积有多少种?一文读懂深度学习中的各种卷积

    点击上方"视学算法",选择"星标"公众号 精选作品,第一时间送达 本文选自towardsdatascience 作者:Kunlun Bai 公众号机器之心整理 ...

  3. 一文读懂深度学习中的矩阵微积分

    点击视学算法标星,更快获取CVML新技术 鱼羊 编译整理 量子位 报道 | 公众号 QbitAI 想要真正了解深度神经网络是如何训练的,免不了从矩阵微积分说起. 虽然网络上已经有不少关于多元微积分和线 ...

  4. 干货|卷积有多少种?一文读懂深度学习中的各种卷积

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 我们都知道卷积的重要性,但你知道深度学习领域的卷积究竟是什么,又有 ...

  5. odoo pivot中去掉求和_一文读懂深度学习中的卷积运算与图像处理

    华为人工智能认证讲师 袁梦 在人工智能深度学习技术中,有一个很重要的概念就是卷积神经网络 CNN(Convolutional Neural Networks).卷积神经网络被广泛地运用到计算机视觉中, ...

  6. 收藏 | 一文读懂深度学习中的各种卷积

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手 ...

  7. 一文带你读懂深度学习中的张量(tensor)是什么,它的运算是怎样的,如何理解张量,张量的维度,浅显易懂

    深度学习的数学基础(不要被吓到,很浅显) 数据表示与张量运算 张量 在多维 Numpy 数组中,也叫张量(tensor).一般来说,当前所有机器学习系统都使用张量作为基本数据结构. 张量这一概念的核心 ...

  8. 深度学习中模型训练效果不好的原因以及防止过拟合的方法

    深度学习中模型训练效果不好的原因 1. 是否选择合适的损失函数 2. 是否选择了合适的Mini-batch size 3. 是否选择了合适的激活函数 4. 是否选择了合适的学习率 5. 优化算法是否使 ...

  9. 资源 | 一文读懂深度学习(附学习资源)

    本文授权转自THU数据派(ID:datapi) 翻译 | 程思衍 校对 | 冯羽 本文长度为2500字,建议阅读6分钟 Medium上获得超过一万五千赞的深度学习入门指南,结合图文为你缕清深度学习中的 ...

  10. 干货丨一文读懂深度学习与机器学习的差异

    作者:oschina 如果你经常想让自己弄清楚机器学习和深度学习的区别,阅读该文章,我将用通俗易懂的语言为你介绍他们之间的差别.机器学习和深度学习变得越来越火.突然之间,不管是了解的还是不了解的,所有 ...

最新文章

  1. 安装python爬虫scrapy踩过的那些坑和编程外的思考
  2. 用jdk在cmd下运行编译java程序
  3. linux系统的ftp命令大全,linux系统ftp命令(示例代码)
  4. Servlet 处理多种请求应用
  5. 大数据分析要学习什么_为什么要学习数据分析
  6. linux/unix核心设计思想
  7. 查看mysql某人执行了什么语句_详解MySQL如何监控系统全部执行过的sql语句
  8. Java生成.jar库
  9. EOS cleos --skip-transaction-signatures 跳过签名
  10. (Deep learning)深度卷积网络实战——第二部分
  11. atitit..国富论 在现代it企业项目管理中的作用attialx 总结---国富论读后感 attialx
  12. BZOJ4285 : 使者
  13. c# word 增加段落_word排版技巧:如何防止行距随字号而改变?
  14. 《麦肯锡方法》第9章 头脑风暴-思维导图
  15. 深度学习中的优化算法如何理解--SGD
  16. 深度学习/机器学习入门基础数学知识整理(八):中心极限定理,一元和多元高斯分布
  17. 苹果手机计算机科学,手机科学计算器app_计算器软件应用推荐_iPhone_苹果ios_安卓...
  18. S5PV210开发 -- Nand和e-MMC区别以及系统更新
  19. App Thinning(应用瘦身)功能介绍
  20. 网络虚拟化城域网创新实践

热门文章

  1. 每天记忆五个词根之五
  2. 什么是模态窗口?本文带你了解模态窗口的本质
  3. android模拟器高德地图,【高德地图电脑版】高德地图电脑版官方下载 含安卓模拟器 车机版-趣致软件园...
  4. 使用jquery生成随机二维码的方法
  5. python3绘制超立方体
  6. 傻妞旧版合集新版订阅
  7. 你缺的不是一个“大牛” 而是一个透视宝
  8. 输入100以内含7或7倍数的数
  9. 分享 | masked自编码器(MAE):一种可扩展的用于计算机视觉任务的自监督学习器
  10. 4.Oracle PDB官方解读- Lone PDB对比 non-CDB