第99章 这是数学!(5k) (第2/2页)
计算机视觉界认可的人工特徵提取路线。」
下面的学者研究院们听到这一句话立刻譁然了起来。
现在,整个学术界对图像识别的主流认知,全都是基於SIFT、HOG等人工设计的算子,再配合支持向量机或者费舍尔向量进行分类,大家比拼的是谁设计的特徵提取器更细致。
而现在,这个年轻的东方人竟然在ImageNet的舞台上,公然宣称他们把这些行业基础全扔了?
「荒谬!」
史丹福大学的一位资深教授忍不住说道:「不用人工特徵,你们拿什麽去理解物体的边缘,纹理和几何结构?难道指望机器自己去长出眼睛来吗?」
「没错,我们就是让机器自己长出眼睛。」
「我们复活了那个在学术界几乎快要被扫进历史垃圾堆的技术,人工神经网络,确切地说,是卷积神经网络CNWN。」
「CNN?」佩罗宁皱着眉说。
「杨力昆在90年代搞的那个LeNet?」
「那玩意儿不是只能识别手写邮政编码吗?面对ImageNet:这种上百万张,上千个分类的复杂现实图片,神经网络那可怜的拟合能力和让人绝望的计算效率,根本就走不通嘛!」
「是的,就是杨力昆先生所提出的LeNet,大家都知道深度神经网络有三大难题,梯度消失导致的无法收敛,参数过多导致的严重过拟合,以及惊人的计算量。」
「我设计的QInet一共包含5个卷积层,3个全连接层。」
「首先,是关於梯度消失和收敛速度的问题,传统神经网络喜欢用Sigmoid或者Tanh
作为激活函数,但这两种函数在输入值较大时,梯度会趋近於零,导致深层网络在反向传播时根本无法更新参数。」
「在座的各位想必都被那种训练了三天三夜,损失函数纹丝不动的痛苦折磨过。」
台下的研究员们不由自主地点头。
这苦他们确实都吃过。
「我们的解决方案其实非常简单,直接弃用了复杂的双曲正切和逻辑函数,采用f()=ma(0,)。」
「我们称之为ReIu,也就是修正线性单元。」
「在相同的网络结构下,使用ReIu的QInet,其收敛速度比使用Tanh的网络快了6倍!
35
然而,外行看热闹,内行看门道,台下的学者研究员们,都听懂了他的意思。
f()=a(0,),这个在数学上几乎可以说是初中水平的单侧仰制函数,竟然能带来6
倍的收敛速度提升?这意味着什麽?
这意味着在大规模工程实践中,计算效率将获得质的飞跃!
「那过拟合呢?」一位M1T的教授追问,「120万张图,8层网络,6000万个参数,参数比的样本还多——我是说,这麽大的模型,你怎麽保证它不是把训练集背下来了?」
这个问题问到了点子上,全场再次安静。
「确实会有这种的担忧,所以为了防止它在测试集上出现这种情况,我们引入了一种全新的正则化技术。」
「也就是Dropout随机失活。」
「它的原理是,在每一次前向传播中,以50%的概率随机将部分神经元的输出置为零,这些被选中的神经元在这一轮训练中,既不参与前向传播,也不参与反向传播。」
「这相当於每次训练,都在训练一个不同的网络,最後做预测时,等於把无数个网络的意见集合起来,一个神经元摸了鱼,其他神经元就不敢太依赖它,逼着整个网络学到更健壮的特徵。」
「最後一个问题。」
MIT的领队现在已经从质疑变成了纯粹的好奇:「如此庞大的训练,常规的CPU集群跑下来,没有几个月根本不可能,你们是用了什麽超算?哪个国家实验室赞助的?」
所有人都以为,漆昊背後一定站着某个庞大的机构。
漆昊直接回答:「其实没有用超算。」
「当时我只是想测试我的想法是否可行,所以就用了两块GTX580。」
「两块GTX580?」MIT教授不敢相信自己听到的信息,「打游戏的那种?」
台下顿时响起了一片倒吸凉气的声音。
用显卡?
用打游戏娱乐的显卡,去跑世界上规模最大的图像识别挑战赛?
「我花了一点时间,用CUDA重写了卷积和池化的计算核,并且设计了一套双卡并行架构。」
「因为3GB显存依然装不下整张网络,我们将QInet的神经元分别寄存在两张显卡上,它们只在特定的层,比如第三层卷积和全连接层进行数据通信,而在其他层,两张显卡各自独立计算,互不干扰。」
佩罗宁原本以为对方是靠着什麽漏洞或者运气,但现在,漆昊一步步讲解,一切又觉得十分合理。
佩罗宁主导设计的费舍尔向量算法,在图像分类领域几乎打遍天下无敌手,是全行业公认的最优解。
为了更好训练整个模型,他们甚至为此向总部申请了数十万欧元的预算,租用了欧洲最顶级的超算集群,夜以继日地进行着复杂的矩阵计算。
结果现在漆昊的方案,告诉他,他们连研究方向都选错了!
真是难以置信!
作为老牌CV学者的尊严让他不得不最後挣紮一下。
「漆昊先生!不可否认,你们的架构设计非常惊艳,但是,神经网络本身致命的缺陷之一就是平移不变性极差,ImageNet中的目标物可能出现在图片的任何角落,尺寸也千差万别。」
「QInet:是如何在如此庞大的参数量下,保证不会因为目标物的位移,旋转或者光照变化,而出现分类崩塌的?」
漆昊解释了:「这其实我们在=训练中改进的。」
「QInet在数据预处理阶段进行了数据增强。」
「面对位移和尺寸变化,我们没有去试图修改网络本身,而是对数据源动手。」
「在训练阶段,我们把原本256256像素的图片,随机裁剪出224224的图块,并且进行水平翻转。」
「不仅如此,在测试阶段,我们对於一张待测图片,会同时裁剪出其四个角,中心区域以及它们的水平翻转共10张图块,让QIet分别进行预测,最後将这10个预测结果进行平均,作为最终的输出。」
「不是,这还是计算机学吗?」
「这是数学。」
「举个例子,现在我将裁剪图片出四个角和中心,加上水平翻转,得到10个不同视角的图块1,2,.·,10。」
「在这10个图块里,猫的相对位置全都不一样,左上角那张,猫跑到了右下,右下角那张,猫又跑到了左上。」
漆昊让人把白板擡上来,然後在上面写了起来。
「最终预测=(1/10)·ΣP(yl)」
「我把这10个视角的预测,求平均。」
「n个近似独立的预测求平均,方差变为原来的1/n。」
「因为物体位置扰动带来的预测方差,被压低到了原来的十分之一,当然这个值可以更加精确——」
漆昊在上面滔滔不绝讲着,底下的数学人很高兴。
因为刚才讲计算机的东西,他们听不懂。
现在漆昊上起数学课,他们反而听懂了。
「搞了半天,隔壁计算机系天天神神秘秘,吹得天花乱坠的深度学习,本质上就是把我们测度论里的哈尔测度拿去给图片做离散采样啊!」
「就是,这玩意也不难啊!」另一个数学系博士生也兴奋了起来,压抑了半个多小时的优越感在这一刻蹦出来了。
「你看,我都跟你说了吧,万物皆可数学。」
「这是不是蒙特卡洛?你们要说这个,我可就不困了!」
他们在那高兴着,根本不懂一旁的计算机人有多郁闷。
>