早期的机器学习是基于搜索的,主要依赖于经过一些优化的蛮力方法。但随着机器学习的成熟,它专注于加速成熟的统计方法和优化问题。深度学习也出现了,它找到了一个不太可能的优化来源。在这里,我们将了解现代机器学习如何找到新方法来带来规模和速度。
人工智能的转变
在本系列的第 1 部分中,我们探讨了 AI 的一些历史以及从 Lisp 到现代编程语言和深度学习等计算智能新范式的旅程。我们还讨论了依赖于优化搜索形式的早期人工智能应用、在海量数据集上训练的现代神经网络架构,以及解决十年前认为不可能解决的问题。今天的重点是双重的;进一步加速这些应用程序并将它们限制在智能手机等功率优化环境中。
今天大多数加速的重点是深度学习。深度学习是一种神经网络架构,它依赖于许多层次的神经网络,其中层可以支持不同的特征检测功能。这些深度神经网络依赖于可以轻松受益于并行性的向量运算。这些架构代表了神经网络层的分布式计算以及层内许多神经元的并行计算的机会。
使用 GPU 加速机器学习
加速深度学习应用程序的不太可能的来源是图形处理单元或 GPU。GPU 是一种特殊设备,用于加速输出到显示设备的帧缓冲区(内存)的构建。GPU 卸载帧缓冲区中的图像渲染,而不是依赖处理器来执行此操作。GPU 由数千个独立内核组成,这些内核并行运行并执行特定类型的计算,例如矢量数学。尽管最初的 GPU 专为视频应用而设计,但人们发现它们还可以加速科学计算中的运算,例如矩阵乘法。
GPU 供应商乐于提供 API,允许开发人员将 GPU 处理集成到他们的应用程序中,但这项工作也可以通过适用于各种不同环境的标准包来完成。R 编程语言和环境包括与 GPU 配合使用以加速处理的包,例如gputools、gmatrix和gpuR。GPU 也可以通过各种库(例如numba包或Theano )与 Python 一起使用。
这些软件包使任何有意使用它们的人都可以使用 GPU 加速机器学习。但更专业的方法也在路上。2019 年,英特尔®以 20 亿美元的价格收购了 Habana Labs。Habana Labs 为服务器中的各种机器学习加速器开发了定制芯片。在此之前,2017 年以 150 亿美元的价格收购了 Mobileye 的自动驾驶芯片技术。
定制硅和说明
除了服务器和台式机中的 GPU 加速之外,机器学习加速器正在超越传统平台,进入功率受限的嵌入式设备和智能手机。这些加速器采用多种形式,从 U 盘、API 到智能手机神经网络加速器,以及用于深度学习加速的矢量指令。
智能手机的深度学习
深度学习工具包已经从 PC 发展到适用于更受限网络的智能手机。TensorFlow Lite 和 Core ML 等框架已经部署在移动设备上用于机器学习应用程序。Apple ®最近发布了 A12 仿生芯片,其中包含一个 8 核神经网络引擎,用于开发更节能的神经网络应用程序。这将扩展 Apple 智能手机上的深度学习应用程序。
Google 为 Android ® 8.1 发布了具有机器学习功能的神经网络 API (NNAPI)。这些在 Google Lens 应用程序的自然语言处理和图像识别环境中用于 Google Assistant。NNAPI 类似于其他深度学习工具包,但专为 Android 智能手机环境及其资源限制而构建。
深度学习 USB
英特尔发布了其神经计算棒的更新版本,以 USB 棒的形式加速深度学习应用程序。这可以被各种机器学习框架使用,例如 TensorFlow、Caffe 和 PyTorch。当 GPU 不可用时,该设备是一个有趣的选择,而且还允许深度学习应用程序的快速原型设计。
深度学习说明
最后,虽然机器学习计算已从 CPU 转移到 GPU,但英特尔已使用新指令优化其至强指令集以加速深度学习。这些称为 AVX-512 扩展的新指令(称为向量神经网络指令或 VNNi)提高了卷积神经网络操作的吞吐量。
概括
GPU 在机器学习中的应用创造了为各种应用程序构建和部署大规模深度神经网络的能力。机器学习框架使构建深度学习应用程序变得简单。但也不甘示弱,智能手机供应商已经为受限应用程序集成了节能的神经网络加速器(以及用于自定义应用程序使用的 API)。现在也可以找到其他加速器来卸载到 USB 硬件,许多新的初创公司正在挖掘这个加速器空间以用于未来的机器学习应用程序。
审核编辑hhy
-
gpu
+关注
关注
28文章
4700浏览量
128688 -
机器学习
+关注
关注
66文章
8375浏览量
132400 -
深度学习
+关注
关注
73文章
5492浏览量
120970
发布评论请先 登录
相关推荐
评论