大家可能都听说过Alex Krizhevsky,他在博士期间设计了人类历史上第一个真正意义上的深度神经网络AlexNet——一共是八个学习层,包含六千万个参数。他的导师Hinton(被称为“神经网络之父”)并不支持他将这个作为博士论文的研究方向,因为当时的计算都是基于CPU的计算方式,这样的神经网络模型训练一次就要几个月的时间;然后要手动调参,再重新训练,这样反复下来,想要得到一个靠谱的神经网络模型,大约需要几十遍;运气好的时候十几遍的训练次数,可能要花费数十年的时间。但是Alex作为一个典型的Geek并不放弃,在学习数学之余他还学习了大量与编程相关的知识,其中就包括CUDA。
CUDA是NVIDIA创造的一个并行计算平台和编程模型。它利用图形处理器(GPU)能力,实现计算性能的显著提高。NVIDIA是在2006年推出的CUDA,自那以后,股价从最初的7美元一路攀升到现在的260多美元。
Alex用CUDA重新对他的模型进行编程,然后买了两块当时非常强大的显卡GTX580,花了6天时间训练AlexNet,并且不断调优和完善。后来参加了李飞飞主导的ImageNet大赛,并且获得了当年的冠军。AlexNet当时能够达到的图像识别精度,遥遥领先于第二名。大赛之后,Alex和他的导师Hinton成立了公司,这个公司几个月以后被Google以4亿美金收购。这是一个靠GPU创富的故事,可以看到,GPU与深度神经网络的第一次结合创造了4亿美金的价值。
英伟达™精视™ (NVIDIA® GeForce®) GTX 580
在这之后,我们经历了近似寒武纪时期的神经网络模型大爆发的时代。2012年之前,人们虽然一直在研究,但是没有足够的算力来支撑这些算法,但是新的计算方式GPU Computing的出现,支撑了同类型的神经网络模型的训练;从而促成了各种模型的爆发式增长,进而进入到人工智能的时代。
如今,大家可以使用Caffe、TensorFlow、Theano等等开源的深度学习平台来进行实现自己的算法,也可以在CUDA上进行编程。人工智能研究领域的头部公司,他们现在推荐的算法模型已经达到了相当复杂的程度,一个模型可以达到1个T甚至几个T的规模,包含几十亿甚至上百亿个参数,数据量更是可想而知。这样的模型训练起来难度就越发高。因此,三算就这样纠缠在一起,互相促进、互相提升。
大家都知道著名的摩尔定律,其内容是当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。换言之,每一美元所能买到的电脑性能,将每隔18-24个月翻一倍以上。这一定律揭示了信息技术进步的速度。但是根据OPEN AI的今年年初的测算,从AlexNet出现以后,到去年年底一共大概5年的时间,在人工智能模型的训练层面,我们对于计算力的需求提升了30万倍。