65.9K
CodeProject 正在变化。 阅读更多。
Home

Intel 驱动的深度学习框架

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2017 年 2 月 7 日

CPOL

7分钟阅读

viewsIcon

18931

您的深度洞察之路

点击此处免费试用软件下载

Pubudu Silva,高级软件工程师,机器学习与计算机视觉,英特尔公司

人工智能(AI)——指能够执行视觉理解、语音感知、语言处理和决策等任务的智能机器概念,这些任务原本需要人类智能才能完成——自计算机问世以来,一直并将继续成为下一个重大突破。

机器学习在执行一些关键人工智能任务方面被证明非常有效。人工神经网络(ANNs)是一种哺乳动物大脑皮层神经元结构的粗略模型,由于其雄心勃勃的设计和对各种任务的普遍适用性,对人工智能尤其有前景。ANNs 的优势在于它们能够学习和维护隐藏的瞬态(隐藏节点)。这使得它们能够通过级联几个非线性函数,学习从输入到所需输出的广泛映射。

在一个已学习的 ANN 中,隐藏层以分层阶段表示数据的内部抽象,更深的层表示更高层次的抽象。人们认为哺乳动物的大脑也通过多个分层处理层处理信息(例如,在灵长类动物的视觉系统中,处理通过一系列阶段进行,从边缘检测、原始形状检测,逐渐向上到更复杂的视觉形状)。1 因此,多层、“更深”的 ANN 自然是人工智能研究所需的。

以多阶段序列处理数据并具有深度级联层的网络通常被称为“深度网络”。大多数广泛使用的机器学习算法——例如支持向量机(SVMs)、高斯混合模型(MoG)、k-最近邻(kNN)、主成分分析(PCA)和核密度估计(KDE)——处理层不超过三层。因此,它们可以被认为是“浅层”架构。具有两到三层的 ANN 可以成功训练。在二十世纪末的几十年里,训练更深的 ANN 曾有几次不成功的尝试。它们面临两个主要问题:

  1. 梯度消失问题
  2. 由额外层引入的权重数量增加导致的过拟合

随着计算技术的进步,研究人员能够在相对较短的时间内使用数百万个数据样本训练机器学习算法,从而有效地解决了过拟合问题。卷积神经网络(CNNs)是具有多种层类型的深度网络,但由于其权重共享的理念,它们的权重数量比同等深度的全连接 ANN 少得多。因此,CNN 比 ANN 更容易训练。对于 CNN,理论上的最佳性能仅略低于 ANN。它们在有监督图像学习任务中变得非常流行。多亏了 Hinton 等人在 2006 年的突破性发现2,成功的深度网络——例如深度信念网络和深度自编码器——也进入了无监督学习领域。

总的来说,深度网络在大多数与人工智能相关的任务中,如分类、回归、图像描述和自然语言处理,都超越了几乎所有其他机器学习算法。深度网络的惊人成功可归因于它们自主学习特征层次结构的方式。

深度学习和传统统计学习方法之间的主要区别在于,后者学习人类工程化的数据特征,而前者学习原始数据本身。深度网络在 DNN 学习的早期阶段自主生成最适合给定任务的特征。这有效地消除了学习过程中的猜测和人为偏见,将整个学习任务留给了基于成本函数的优化过程,作用于给定的原始数据。

深度分层结构允许学习特征层次结构,其中更深层次根据网络前一层学习的低级特征学习高级特征。

图 1 展示了输入图像在深度网络中如何逐步转化为更高层次的表示。图像进入网络越深,表示就变得越抽象。例如,从初始层到更深层的学习特征层次结构可以是边缘、形状、物体部分、完整物体、场景等。然而,在实践中,如果不经过学习,很难推测这些分层抽象的每个层次的“正确”特征向量应该是什么。 这强调了基于人类工程特征进行学习的关键问题:通常,在更深的网络中,输出层处理非常高级的特征,使其能够学习比浅层网络可能学习到的更高层次的概念。

图 1. 深度网络通过将图像输入逐步转换为更高层次的表示来处理图像
来源:Yoshua Bengio, Learning Deep Architectures for AI, 2009

随着各种深度学习技术成为开发人员、数据科学家和研究人员的标准工具,许多深度学习框架(如 Caffe、Tensorflow*、Theano* 和 Torch)以及库(MatConvNet、CNTK、Pylearn2 和 Deeplearning4j)应运而生,以帮助轻松训练和评估深度网络。这些框架和库在减少繁琐的样板工作方面大有裨益。用户可以将精力集中在深度学习方面,而不是实现各个组件。

此外,用户可以访问大多数框架和库的代码库,因为它们通常作为开源项目启动,并获得开发人员社区的积极贡献。由于深度学习通常涉及对超大数据集进行数天甚至数周的训练,因此对常用深度学习软件进行性能优化对于该技术的普遍进步至关重要。

英特尔一直致力于开源深度学习框架,特别是通过对其进行优化以适应英特尔® 架构。其机器学习网站包含有关英特尔参与机器学习和深度学习的最新信息。有关性能优化工具和技术的更多信息可在该网站找到。一些优化工作作为案例研究发布,以指导软件开发人员在其自己的深度学习应用程序以及他们在开发周期中可能使用的任何框架或库中进行实践。

例如,在案例研究《针对英特尔® 架构优化的 Caffe:应用现代代码技术》中介绍了优化 Caffe 的过程。英特尔® VTune™ Amplifier 是一款功能强大的分析工具,它提供有价值的见解,可作为性能优化过程的初步指导,例如 CPU 和缓存使用情况、CPU 核心利用率、内存使用情况、线程负载平衡和线程锁。诸如英特尔® 数学核心函数库(Intel® MKL)英特尔® 线程构建模块(Intel® TBB)和 OpenMP* 等库已被证明对优化深度学习软件非常有帮助。

为了加速深度学习开发和研究,英特尔最近发布了英特尔® 深度学习 SDK,这是一套免费工具,供数据科学家和软件开发人员开发、训练和部署深度学习解决方案。该 SDK 设计为一个基于 Web 的客户端,连接到 Ubuntu*/CentOS 服务器。简单的安装向导会安装 SDK,其中包含针对英特尔架构优化的流行深度学习框架。SDK 的训练工具通过其简单的图形用户界面和高级可视化技术,极大地简化了训练数据准备、模型设计和模型选择。部署工具可用于通过模型压缩和权重量化技术,优化已训练的深度学习模型以适应特定的目标设备。

参考文献

  1. Serre, T.; Kreiman, G.; Kouh, M.; Cadieu, C.; Knoblich, U.; and Poggio, T. 2007.“即时视觉识别的定量理论。”《大脑研究进展,计算神经科学:大脑功能的理论见解》,165, 33–56。
  2. Hinton, G. E.; Osindero, S.; and Teh, Y. 2006. 深度信念网络的一种快速学习算法。《神经计算》,18, 1527–1554。
  3. Bengio, Y. 2009.“为人工智能学习深度架构。”《机器学习基础与趋势》2, 1 (一月), 1–127。

通往更深洞察的路径

在 intel.com 上查找英特尔优化深度学习框架、库以及英特尔深度学习 SDK 等激动人心的深度学习工具的最新信息。

了解更多关于英特尔® 深度学习 SDK 和其他人工智能软件工具的信息

© . All rights reserved.