深度学习已成功应用于这三大领域
一般来说,加速数据处理系统的一种策略是构造一个系统,这个系统用动态结构(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 位之间的精度足以满足使用或训练基于反向传播的深度神经网络的要求。显而易见的是,在训练期间需要比在推断时更高的精度,并且数字某些形式的动态定点表示能够减少每个数需要的存储空间。传统的定点数被限制在一个固定范围之内(其对应于浮点表示中的给定指数)。而动态定点表示在一组数字(例如一个层中的所有权重) 之间共享该范围。使用定点代替浮点表示并且每个数使用较少的比特能够减少执行乘法所需的硬件表面积、功率需求和计算时间。而乘法已经是使用或训练反向传播的现代深度网络中要求最高的操作。 计算机视觉 (编辑:西安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |