加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

深度学习已成功应用于这三大领域

发布时间:2018-04-09 19:23:56 所属栏目:大数据 来源:站长网
导读:在本章中,我们将介绍如何使用深度学习来解决计算机视觉、语音识别、自然语言处理以及其他商业领域中的应用。首先我们将讨论在许多最重要的AI 应用中所需的大规模神经网络的实现。接着,我们将回顾深度学习已经成功应用的几个特定领域。 尽管深度学习的一

一般来说,加速数据处理系统的一种策略是构造一个系统,这个系统用动态结构(dynamicstructure) 描述图中处理输入所需的计算过程。在给定一个输入的情况中,数据处理系统可以动态地决定运行神经网络系统的哪一部分。单个神经网络内部同样也存在动态结构,给定输入信息,决定特征(隐藏单元) 哪一部分用于计算。这种神经网络中的动态结构有时被称为条件计算(conditional computation)(Bengio, 2013; Bengio et al., 2013b)。由于模型结构许多部分可能只跟输入的一小部分有关,只计算那些需要的特征就可以起到加速的目的。

动态结构计算是一种基础的计算机科学方法,广泛应用于软件工程项目。应用于神经网络的最简单的动态结构基于决定神经网络(或者其他机器学习模型) 中的哪些子集需要应用于特定的输入。

深度网络的专用硬件实现

自从早期的神经网络研究以来,硬件设计者就已经致力于可以加速神经网络算法的训练和/或推断的专用硬件实现。读者可以查看早期的和更近的专用硬件深度网络的评论(Lindseyand Lindblad, 1994; Beiu et al., 2003; Misra and Saha, 2010)。

不同形式的专用硬件(Graf and Jackel, 1989; Mead and Ismail, 2012; Kim et al., 2009; Phamet al., 2012; Chen et al., 2014b,a) 的研究已经持续了好几十年,比如专用集成电路(application—speci¯c integrated circuit, ASIC) 的数字(基于数字的二进制表示)、模拟(Graf and Jackel,1989; Mead and Ismail, 2012)(基于以电压或电流表示连续值的物理实现) 和混合实现(组合数字和模拟组件)。近年来更灵活的现场可编程门阵列(¯eld programmable gated array, FPGA)实现(其中电路的具体细节可以在制造完成后写入芯片) 也得到了长足发展。

虽然CPU 和GPU 上的软件实现通常使用32 位或64 位的精度来表示浮点数,但是长期以来使用较低的精度在更短的时间内完成推断也是可行的(Holt and Baker, 1991; Holi andHwang, 1993; Presley and Haggard,1994; Simard and Graf, 1994; Wawrzynek et al., 1996; Savichet al., 2007)。这已成为近年来更迫切的问题,因为深度学习在工业产品中越来越受欢迎,并且由于更快的硬件产生的巨大影响已经通过GPU 的使用得到了证明。激励当前对深度网络专用硬件研究的另一个因素是单个CPU 或GPU 核心的进展速度已经减慢,并且最近计算速度的改进来自核心的并行化(无论CPU 还是GPU)。这与20 世纪90 年代的情况(上一个神经网络时代) 的不同之处在于,神经网络的硬件实现(从开始到芯片可用可能需要两年) 跟不上快速进展和价格低廉的通用CPU 的脚步。因此,在针对诸如手机等低功率设备开发新的硬件设计,并且想要用于深度学习的一般公众应用(例如,具有语音、计算机视觉或自然语言功能的设施) 时,研究专用硬件能够进一步推动其发展。

最近对基于反向传播神经网络的低精度实现的工作(Vanhoucke et al., 2011; Courbariauxet al., 2015; Gupta et al., 2015) 表明,8 位和16 位之间的精度足以满足使用或训练基于反向传播的深度神经网络的要求。显而易见的是,在训练期间需要比在推断时更高的精度,并且数字某些形式的动态定点表示能够减少每个数需要的存储空间。传统的定点数被限制在一个固定范围之内(其对应于浮点表示中的给定指数)。而动态定点表示在一组数字(例如一个层中的所有权重) 之间共享该范围。使用定点代替浮点表示并且每个数使用较少的比特能够减少执行乘法所需的硬件表面积、功率需求和计算时间。而乘法已经是使用或训练反向传播的现代深度网络中要求最高的操作。

计算机视觉

长久以来,计算机视觉就是深度学习应用中几个最活跃的研究方向之一。因为视觉是一个对人类以及许多动物毫不费力,但对计算机却充满挑战的任务(Ballard et al., 1983)。深度学习中许多流行的标准基准任务包括对象识别和光学字符识别。

计算机视觉是一个非常广阔的发展领域,其中包括多种多样的处理图片的方式以及应用方向。计算机视觉的应用广泛:从复现人类视觉能力(比如识别人脸) 到创造全新的视觉能力。举个后者的例子,近期一个新的计算机视觉应用是从视频中可视物体的振动识别相应的声波(Davis et al., 2014)。大多数计算机视觉领域的深度学习研究未曾关注过这样一个奇异的应用,它扩展了图像的范围,而不是仅仅关注于人工智能中较小的核心目标|| 复制人类的能力。无论是报告图像中存在哪个物体,还是给图像中每个对象周围添加注释性的边框,或从图像中转录符号序列,或给图像中的每个像素标记它所属对象的标识,大多数计算机视觉中的深度学习往往用于对象识别或者某种形式的检测。由于生成模型已经是深度学习研究的指导原则,因此还有大量图像合成工作使用了深度模型。尽管图像合成(“无中生有”) 通常不包括在计算机视觉内,但是能够进行图像合成的模型通常用于图像恢复,即修复图像中的缺陷或从图像中移除对象这样的计算机视觉任务。

预处理

由于原始输入往往以深度学习架构难以表示的形式出现,许多应用领域需要复杂精细的预处理。计算机视觉通常只需要相对少的这种预处理。图像应该被标准化,从而使得它们的像素都在相同并且合理的范围内,比如[0; 1] 或者[¡1; 1]。将[0; 1] 中的图像与[0; 255] 中的图像混合,通常会导致失败。将图像格式化为具有相同的比例,严格上说是唯一一种必要的预处理。许多计算机视觉架构需要标准尺寸的图像,因此必须裁剪或缩放图像以适应该尺寸。然而,严格地说即使是这种重新调整比例的操作并不总是必要的。一些卷积模型接受可变大小的输入,并动态地调整它们的池化区域大小以保持输出大小恒定(Waibel et al., 1989)。其他卷积模型具有可变大小的输出,其尺寸随输入自动缩放,例如对图像中的每个像素进行去噪或标注的模型(Hadsell et al., 2007)。

数据集增强可以被看作一种只对训练集做预处理的方式。数据集增强是减少大多数计算机视觉模型泛化误差的一种极好方法。在测试时可用的一个相关想法是将同一输入的许多不同版本传给模型(例如,在稍微不同的位置处裁剪的相同图像),并且在模型的不同实例上决定模型的输出。后一个想法可以被理解为集成方法,并且有助于减少泛化误差。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!