时间:2017-06-07

编者按:本文作者王川,投资人,中科大少年班校友,现居加州硅谷,个人微信号9935070,微博 @ 硅谷王川。36 氪经授权转载自其个人微信公众号 investguru。查看本系列文章点这里 

一、

主流学术界的研究者,大多注重于在算法上的渐进式提高, 而轻视计算速度和用于训练的数据规模的重要性。

孔丘老师早在两千多年前,就高瞻远瞩的为深度学习指明了方向:“学而不思则罔, 思而不学则殆”。

用深度学习的语言来说,就是,“光有大数据,算得不快,则还是迷惘;光算得快,而没有大量的数据来训练,则还是疲倦无所得”。

2007年之前, 用GPU编程,缺乏一个简单的软件接口。 编程繁琐,捉虫困难。这在 07年 Nvidia 推出 CUDA 的GPU 软件接口后才真正改善。

2009年六月, 斯坦福大学的 Rajat Raina 和吴恩达合作发表论文,“用GPU大规模无监督深度学习”(“Large-scale Deep Unsupervised Learning using Graphic Processors)。

论文模型里的参数总数 (就是各层不同神经元之间链接的总数),达到一亿,与之相比,Hinton 2006年的论文里用到的参数数目,只有一百七十万。

论文结果显示,使用GPU运行速度和用传统双核CPU相比, 最快时要快近七十倍。在一个四层,一亿个参数的深信度网络上,使用GPU把程序运行时间从几周降到一天。

二、

2010年瑞士学者 Dan Ciresan 和合作者发表论文,“又深又大又简单的神经网络在手写数字识别上表现出色”。(“Deep Big Simple Neural Nets Excel on Handwritten Digit Recognition”)

这篇论文里, 使用的还是是八十年代的反向传播计算方法,但是计算搬移到Nivida GTX280 GPU 上实现。在反向传播计算时,速度比传统 CPU 快了 40 倍。

另一个关键点是:

把训练神经网络的图像,刻意通过旋转, 放大缩小和弹性形变等方式进行改变。这样用于训练的图像数目大大增加。使用 GPU后,改变六万张训练图像的计算速度从93秒降到了9秒钟, 快了十倍。不断用计算变形实现的图像, 等价于一个数量无限的训练数据库。

论文结果显示,一个六层,拥有一千两百万个参数的神经网络模型,经过两个小时的训练后,在测试图像上的错误率就降到1%。 经过114个小时训练后,模型的测试错误率更是降到了 0.35%。

  三、


2012 年还在斯坦福大学做研究生的黎越国同学 (Quoc Viet Le) 领衔, 和他的导师吴恩达,以及众多谷歌的科学家联合发表论文,“用大规模无监督学习建造高层次特征”(Building High-level Features Using Large Scale Unsupervised Learning)。

黎越国的文章中, 使用了九层神经网络,网络的参数数量高达十亿,是 Ciresan 2010年论文中的模型的一百倍,是 2009年Raina 论文模型的十倍。

作为参照,按照丹麦学者 Bente Pakkenberg 2003年的估算,人的脑皮层 (Neocortex) 内就有接近一百五十万亿个神经元突触(Synapse,是连接神经元传递信号的结构), 是黎同学的模型参数数量的十万倍。

用于训练这个神经网络的图像, 都是从谷歌的录像网站 youtube 上截屏获得。 一千万个原始录像,每个录像只截取一张图片, 每张图片有四万个像素, 与之相比,先前大部分论文使用的训练图像,原始图像的数目大多在十万以下,图片的像素大多不到一千。

黎越国的计算模型分布式地在一千台机器 (每台机器有 16个CPU内核)上运行,花了三天三夜才完成培训。

经过培训的神经网络,在一个名叫 ImageNet 的共享图像数据库里,面对两万两千个不同类别,一千四百万个图像中, 分类识别的正确率达到了 15.8%。 而在此之前最好的公开发表的模型,正确率只有 9.3%。

深度学习的研究进步在加速,但要说服更多的主流的人工智能研究者加入,需要的是更多的, 可直接对比的,大幅领先的,无可辩驳的计算结果。