随着深度学习技术在图像,语言,语音等应用场景都达到了state of the art效果,深度学习框架也呈现群雄逐鹿的态势,谷歌,脸书,微软,亚马逊,百度等大企业及少数几家创业公司都推出了自己的产品。这次演讲对现有主流深度学习框架做一梳理,首先从用户体验角度讨论,一个好的深度学习框架应该有什么样的特点,其次从技术角度讨论,什么样的设计和实现才能达到这个目标,和业界同行探讨这个领域的技术是否已收敛,将向何处去。
2017年12月22日,袁进辉(老师木)代表OneFlow团队在全球互联网架构大会上海站做了《深度学习平台技术演进》的报告,小编对报告内容作简要梳理注解,以飨读者。
此次报告的主要观点为:(1)计算力是神经网络/深度学习复兴的最大推动力之一;(2)面对深度学习的计算力挑战,软件至少和硬件一样地关键,单靠硬件无法提供易用性和扩展性;(3)鉴于深度学习上层业务和底层硬件的独特性,传统大数据平台里的某些技术未必再对深度学习平台适用;(4)深度学习软件平台技术在快速演进中,一部分早期被采用的技术正在被新方法替代;(5)仍有很多重要问题未被现有开源深度学习平台解决;(6)深度学习软件尚处在发展早期,百花齐放,百家争鸣,但必将收敛到一种业界公认的最佳实践(best practice)。
深度学习在近些年带来的突破无须赘言,从图像 (ImageNet) ,语音,围棋人机大战等方面的突破都源于深度学习技术。
机器学习可以视为一种从训练数据中自动推导出程序的方法。以最常见的有监督学习(supervised learning)为例,可简单理解为,通过优化方法自动在高维空间找到分类超平面。
现实中遇到的绝大部分机器学习问题,基于原始特征(Input Space)无法找到分类超平面把训练数据里的正例和负例恰好分开。在机器学习领域,有一些通用的手段来处理线性不可分的问题,譬如可以在Input Space 寻求非线性分界面,而不再寻求线性分界面;也可以通过对特征做预处理,通过非线性映射的手段把训练数据从Input Space 映射到一个所谓的Feature Space,在原始Input Space无法线性可分的样例在Feature Space有可能线性可分。深度学习就是这种思想的一个典型应用。
深度学习从计算上体现为一连串的变换(transformation),常见的变换都可以表示成矩阵计算。以上图为例,输入层有6个神经元,输出层共有4个神经元,每个输出神经元都和输入层的每个神经元有一条边相连,每条边有一个对应的权重(红色神经元的输入边权重都用红色表示)。输入数据是4个样例,每个样例是一个6维的列向量,列向量的每一维对应输入层的一个神经元。输入数据经过这层神经元的作用,仍是4个样例,每个样例变成了4维的列向量。这样一层神经网络可以用右图的矩阵乘法来表示。像这种稠密矩阵运算意味着并行计算的潜力。
以大家耳熟能详的卷积神经网络CNN 为例,可以感觉一下目前训练深度学习模型需要多少计算力。这张表列出了常见CNN模型处理一张图片需要的内存容量和浮点计算次数,譬如VGG-16网络处理一张图片就需要16Gflops。值得注意的是,基于ImageNet数据集训练CNN,数据集一共大约120万张图片,训练算法需要对这个数据集扫描100遍(epoch),这意味着10^18次浮点计算,即1exaFlops。简单演算一下可发现,基于一个主频为2.0GHz的CPU core来训练这样的模型需要好几年的时间。下面我们看一下使用几种典型硬件来训练CNN模型需要多少时间。
浏览2777次
浏览7401次
浏览11108次
浏览7504次
浏览6040次
浏览5677次
2025-01-08 昆明
2025-04-19 南京
2024-12-27 上海
2025-10-23 上海
打开微信扫一扫,分享到朋友圈