深度学习训练和推理有何不同?
向AI转型的程序员都关注了这个号????????????
机器学习AI算法工程 公众号:datayx
要理解什么是深度神经网络的“训练(training)”,我们可以把它类比成在学校中学习。神经网络和大多数人一样——为了完成一项工作,需要接受教育。
具体来说,经过训练(training)的神经网络可以将其所学应用于数字世界的任务——例如:识别图像、口语词、血液疾病,或者向某人推荐她/他接下来可能要购买的鞋子等各种各样的应用。这种更快更高效的版本的神经网络可以基于其训练成果对其所获得的新数据进行「推导」,在人工智能领域,这个过程被成为“推理(inference)”。
没有训练,就不可能会有推理。这很容易讲通,因为我们人类大多时候就是这样获取和使用知识的。正如我们不需要一直围着老师、满架的书架或名牌院校转也能阅读莎士比亚的十四行诗一样,推理并不需要其训练方案中的所有基础设施就能做得很好。
所以,就让我们把AI分解成训练和推理两个过程,看看它们各自是如何工作的。
训练深度神经网络
尽管教育过程(或者训练)的目标都是一样的——获得知识(knowledge),但神经网络的训练和我们人类接受教育的过程还是有着很大的不同。神经网络是对人类大脑的初步模仿————神经元之间的所有互连。但是,不同于我们的大脑,人类大脑中的神经元可以连接到特定物理距离内任何其它神经元,而人工神经网络却不是这样——它分为很多不同的层(layer)、连接(connection)和数据传播(data propagation)的方向。
训练一个神经网络时,训练数据被输入该网络的第一层,同时一个神经元会基于所执行的任务为该输入分配一个权重——即该输入正确与否的程度。
在一个用于图像识别的网络中,第一层可能是用来寻找图像的边缘。第二层可能是寻找这些边所构成的形状——矩形或圆形。第三层可能是寻找特定的特征——比如闪亮的眼睛或按钮式的鼻子。每一层都会将图像传递给下一层,直到最后一层;最后的输出由该网络所产生的所有这些权重总体决定。
但这就是训练和我们的教育过程的不同之处。假设我们有一个任务是识别图像中的猫:神经网络会在获取了所有的训练数据,并计算了权重之后才能得出结论说图像中是否是「猫」。其只能通过训练算法得到“正确”或“错误”这样的反馈。
训练需要密集的计算
如果该算法告诉神经网络它错了,它依然不知道什么才是正确的答案。这个错误会通过网络的层反向传播回来,该网络则须做出心的猜测。在每一次尝试中,它都必须考虑其它属性——在我们的例子中是「猫」的属性——并为每一层所检查的属性调整权重高低。然后它再次做出猜测,一次又一次……直到其得到正确的权重配置,从而最终可以在所有的尝试中都能几乎得到正确的答案,知道这是一只猫。
现在你得到了一个数据结构,其中所有的权重基于其通过训练数据集中所学到的内容基础上进行了调平。这是一种经过了精心优化微调的美丽事物。但问题在于,这个过程却是个算力消耗巨大的怪兽。曾在谷歌和斯坦福大学做过研究,并在百度硅谷实验室担任过首席科学家的吴恩达曾说过,训练一个百度的汉语语音识别模型不仅需要 4 TB 的训练数据,而且在整个训练周期中还需要 20 exaflops(百亿亿次浮点运算)的算力。这样的算力需求,绝不是一部智能手机所能达到的。
你的神经网络训练好了,已经为推理做好了准备
准确分配加权了的神经网络本质上是一个笨重的巨型数据库。此前,你为了让它学习而准备的各种东西(在我们的教育,这些就好比是我们所需的所有铅笔、书本、老师的教导等)已经远远多于它在完成某一特定任务时所需的内容。
在现实世界中,如果有人想使用这些训练,你真正所需的是一种可以保持学习并能将其学习成果应用于其从未见过的数据的快速应用,这就是推理:只需要少得多的真实世界数据,就能快速得出正确答案(实际上是对什么是正确的的预测)。
尽管这是计算机科学的一个全新领域,但我们仍有两种主要的方法可以对迟钝的神经网络进行修改,以使其速度更快并改善应用在跨多个网络运行时所造成的延迟。
推理是如何实现的?
第一个方法着眼于神经网络中训练之后就不再激活的部件。这些部分已不再被需要,可以被“修剪”掉。第二个方法是寻找方法将神经网络的多个层融合成一个单一的计算步骤。
这类似于数字图像的压缩。设计师可能设计了这些巨大的、美丽的、数百万像素宽和高的图像,但如果要将它们放到网上,就需要将它们转换成 jpeg 格式。对人眼来说,它们看起来基本上完全相同,只是分辨率不一样。推理也是类似的,你可以得到预测的几乎同样的准确度,但简化、压缩和优化可以提升运行时的性能。
这意味着我们可以一直使用推理。你的智能手机的声控助手使用了推理,谷歌的语音识别、图像搜索和垃圾邮件过滤应用也都是用了推理。百度也在语音识别、恶意程序检测和垃圾消息过滤中使用了推理。Facebook 的图像识别和亚马逊与 Netflix 的推荐引擎全都依赖于推理。
GPU具备并行计算(同时进行多个计算)能力,既擅长训练,也擅长推理。使用 GPU 训练的系统可以让计算机在某些案例中实现超过人类水平的模式识别和对象检测。
训练完成后,该网络可被部署在需要“推理”(对数据分类以“推理”出一个结果)的领域中。而具备并行计算能力的 GPU 可以基于训练过的网络运行数十亿的计算,从而快速识别出已知的模式或对象。
你可以看到这些模型和应用将会越来越聪明、越来越快和越来越准确。训练将越来越简单,推理也将为我们生活的方方面面带来新的应用。
END
阅读过本文的人还看了以下文章:
【全套视频课】最全的目标检测算法系列讲解,通俗易懂!
《美团机器学习实践》_美团算法团队.pdf
《深度学习入门:基于Python的理论与实现》高清中文PDF+源码
python就业班学习视频,从入门到实战项目
2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码
《深度学习之pytorch》pdf+附书源码
PyTorch深度学习快速实战入门《pytorch-handbook》
【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》
《Python数据分析与挖掘实战》PDF+完整源码
汽车行业完整知识图谱项目实战视频(全23课)
李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材
笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!
《神经网络与深度学习》最新2018版中英PDF+源码
将机器学习模型部署为REST API
FashionAI服装属性标签图像识别Top1-5方案分享
重要开源!CNN-RNN-CTC 实现手写汉字识别
yolo3 检测出图像中的不规则汉字
同样是机器学习算法工程师,你的面试为什么过不了?
前海征信大数据算法:风险概率预测
【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类
VGG16迁移学习,实现医学图像识别分类工程项目
特征工程(一)
特征工程(二) :文本数据的展开、过滤和分块
特征工程(三):特征缩放,从词袋到 TF-IDF
特征工程(四): 类别特征
特征工程(五): PCA 降维
特征工程(六): 非线性特征提取和模型堆叠
特征工程(七):图像特征提取和深度学习
如何利用全新的决策树集成级联结构gcForest做特征工程并打分?
Machine Learning Yearning 中文翻译稿
蚂蚁金服2018秋招-算法工程师(共四面)通过
全球AI挑战-场景分类的比赛源码(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在线识别手写中文网站
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx
长按图片,识别二维码,点关注
深度学习训练和推理有何不同?相关推荐
- 独家|深度学习训练和推理之间有什么差异?
作者:Michael Copeland 翻译:杨光 校对:丁楠雅 本文约2200字,建议阅读5分钟.资深科技编辑Michael copeland解释了深度学习的基本原理. 就像在学校上课一样,神经网络 ...
- MLPerf结果证实至强® 可有效助力深度学习训练
MLPerf结果证实至强® 可有效助力深度学习训练 · 核心与视觉计算事业部副总裁Wei Li通过博客回顾了英特尔这几年为提升深度学习性能所做的努力. · 目前根据英特尔® 至强® 可扩展处理器的ML ...
- NVIDIA RTX A6000/RTX3090/3080/3070深度学习训练/GPU服务器硬件配置推荐2021
本方案中,推荐配置报价更新日期:2021/03/06 变更原因: 1)近期唯利是图的厂家将RTX显卡大部分卖给挖矿的,造成断货.暴涨 2)RTX A6000上市.增加新GPU配置方案 3)GX630M ...
- TensorRT深度学习训练和部署图示
TensorRT深度学习训练和部署 NVIDIA TensorRT是用于生产环境的高性能深度学习推理库.功率效率和响应速度是部署的深度学习应用程序的两个关键指标,因为它们直接影响用户体验和所提供服务的 ...
- 将深度学习低延迟推理性能提高一倍
将深度学习低延迟推理性能提高一倍 JetPack 3.1 Doubles Jetson's Low-Latency Inference Performance NVIDIA发布了JetPack 3.1 ...
- 基于NVIDIA GPUs的深度学习训练新优化
基于NVIDIA GPUs的深度学习训练新优化 New Optimizations To Accelerate Deep Learning Training on NVIDIA GPUs 不同行业采用 ...
- 深度学习训练,选择P100就对了
1.背景 去年4月,NVIDIA推出了Tesla P100加速卡,速度是NVIDIA之前高端系统的12倍.同年9月的GTC China 2016大会,NVIDIA又发布了Tesla P4.P40两款深 ...
- 斯坦福DAWNBench:华为云ModelArts深度学习训练全球最快
斯坦福DAWNBench:华为云ModelArts深度学习训练全球最快 近日,斯坦福大学发布了DAWNBenchmark最新成绩,在图像识别(ResNet50-on-ImageNet,93%以上精度) ...
- 今日上午,清华大学发布中国首个高校自研深度学习训练框架—计图Jittor
在百度狂推PaddlePaddle框架,以及旷视计划本月25日发布自研深度学习训练框架MegEngine之际,清华大学突然发布首个中国高校自研深度学习框架Jittor,中文名为计图. 官网链接 htt ...
最新文章
- Android如何实现TCP和UDP传输
- pack php 详解_函数pack的使用详解
- fir.im Weekly - 1000 个 Android 开源项目集合
- cobbler get-loaders 通过代理下载
- python replace函数后面的数字的含义
- excel打开csv乱码解决------------为什么pycharm里面csv不乱码,excel里面却乱码了
- 矢量网络分析仪测量总结
- 怎么用PHP实现检测网站文章是否被收录
- AngularJS知识概括
- CentOS添加管理员账号
- 希望我们不要忘记喜欢过的,喜欢着的
- 基于LM334芯片的恒流源调试
- JZ 20 表示数值的字符串:抽象与逻辑练习
- 域适应(DA)---域泛化(DG)
- 服务器搭建微信会员卡系统,智络会员管理系统如何与微信对接
- PS怎么抠出圆形图(可调整边缘)
- java计算机毕业设计旅游信息分享网站MyBatis+系统+LW文档+源码+调试部署
- 关于dlna开发使用的若干故障排除
- 常用的四种CSS样式表格
- 基于mpu6050的角速度测量(主控stm32f103 Sram 23LC1024,c#上位机)
热门文章
- SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
- 实现加入购物车抛物线效果
- Server.UrlEncode、HttpUtility.UrlDecode的区别
- ios判断当前设备类型
- struts2 上传文件 HTTP Status 404 - No result defined for action.....and result input
- (android之sqlite三)单机Sqlite数据库
- 新浪第一时间视频直播全球火炬接力
- 2021,软件测试的出路在哪里?
- 接口测试用例——测试用例评审
- Python并发编程Futures