第171章 蒙上眼睛做卷子?
眼瞅着其他课题组都去找企业了,戴教授来到了清大智能技术与系统国家重点实验室。
他戴某人好歹是清大的博士,真要低头去跟企业谈产学研,跟那帮985的课题组挤一个独木桥,他这张老脸往哪儿搁?
再说了,母校有的是资源,有的是人才,何必舍近求远。
“戴师兄!”
一个中年人从实验室里快步迎出来,打了招呼。
过来的人是朱教授,计算机系新晋副教授,海归,他现在正是新官上任三把火烧得最旺的时候,所以一听戴教授找他合作,立刻放下手头的工作出来了。
“老朱,可算见着你了,回来也不说一声,我还是听系里老周说的。”
“哪儿敢惊动您啊。”朱教授把人往办公室里让。
“刚回来,一摊子事,实验室要建,学生要招,经费要跑,忙得脚不沾地。”
两人寒暄了一阵,戴教授把话头引到了正事上。
他把自己国基落榜,整个圈子被洗牌的事说了一遍,然后说:“老朱,我琢磨着,传统那套几何方法的路,怕是快走到头了。”
“你之前在国外做机器学习研究经验丰富,现在QInet这么火,深度网络眼瞅着就是下一个风口,我想跟你合作。”
“用深度网络把视觉感知模块整个改造一遍,你出模型,我出场景和数据,咱们联手,说不定能杀出一条路。”
按理说,朱教授正是需要成果的时候,师兄送上门来的合作,还蹭着QInet和机器学习的热度,怎么看都是白捡的便宜。
可朱教授脸上的笑挂不住了。
“师兄,您这想法,跟我几个月前一模一样。”
戴教授一脸惊喜。
“我刚回来的时候,也是这么想的,QInet横空出世,深度网络一战封神,这时候不上车什么时候上车?”
“但是最近看来,前景不乐观啊。”
“怎么说?”
“深度网络这东西,理论上,网络越深,表达能力越强,准确率越高,QInet八层,效果惊人,那我堆十六层,堆三十二层,是不是应该更厉害?”
戴教授点头。
“我们也是这么想的。”
“参数从几百万堆到几千万,训练集上的准确率,百分之九十,漂亮吧?”
“但实际上,测试集上,准确率只有百分之六十。”
戴教授不是搞机器学习的,但也清楚这情况意味着什么:“过拟合?”
“对,过拟合,这个老朋友又来了。”
“我们发现只要参数一多,网络就开始背答案,训练集里的题它全背下来了,考得那叫一个漂亮,换一套没见过的题,当场原形毕露。”
“那加数据呢?”
戴教授试探着问:“参数多,数据少,那就把数据堆上去,总能压住吧?”
“师兄,您知道现在最大的图像数据集有多少张图吗?”
“多少?”
“一千四百万张,听着挺多。”
“但这也是李飞飞教授,花了三年,用了来自一百六十七个国家,五万名标注工人,在众包平台上搞人海战术,才标出这一千四百万张图。”
“可我们要是把网络堆到一亿参数呢?一亿个参数,一千四百万张图,平均下来,每个参数分到零点一四张图的信息量。”
“这就好比你要养一亿头猪,结果饲料只够喂一千四百万头,剩下那些猪饿疯了,见什么啃什么。”
戴教授被这个比喻噎了一下。
你要不要这么接地气?
我又不是你学生,我能懂好吗!
“那再拿些图片去标呗?”
“谁去标?钱谁出?三年之后黄花菜都凉了。”
“增加数据,此路不通。”
“那就减参数,把网络砍浅一点?”
“砍浅了,表达能力又不够了,那还搞什么深度学习,直接回去用支持向量机得了。”
“师兄,您看明白了吧?加数据不行,减参数也不行,我们现在就卡在这儿,进退两难,上下不能。”
戴教授慢慢消化着这些信息,忽然想起一件事:“哎,QInet不就是燕大那个漆昊搞出来的吗?他既然能把八层网络训出来,说不定这事他能想到办法,你们没想过去请教请教?”
这话一出,朱教授的表情更精彩了。
“想过,怎么没想过。“
“实不相瞒,张院士前阵子就动过这个念头,想亲自带队去燕大,跟那位漆神当面聊聊。”
“然后方案报上去,卡住了。”
朱教授苦笑:“师兄,您又不是不知道,咱们清大某位院士和燕大那点梁子,隔着一条马路能吵出一条马里亚纳海沟,张院士要是带队过去登门求教,回头传出去,清大院士率队赴燕大取经,这标题往新闻上一挂,咱们学校的脸往哪儿搁?”
“咳咳,那位院士和他老师陈省身先生关系也走过下坡路。”
“他和谁的关系走过上坡路?”
“田院士吧,毕竟也没办法再坏了。”
两人说完,苦笑了起来。
“所以上头的意思是,先自行研究,实在不行,再通过基金委组个联合项目,把人绕进来,面子上好看点。”
戴教授听得直摇头。
都什么时候了,还搁这儿讲究面子。
可他转念一想,自己不也是因为拉不下脸去找大飞,才来找师弟的吗?
五十步笑百步,谁也别说谁。
“老朱,你们好歹是有方向的,知道问题出在过拟合上,知道该往哪个方向想办法,实在不行,隔壁还有个发明QInet的活菩萨,脸皮一豁出去,总归有人可以请教。”
“我呢?”
“我那个方向想追赶,连追赶的方向都找不着,想请教,连该请教谁都不知道。”
朱教授默然,随后说道:“师兄,要不您也转深度学习吧,反正这坑我已经踩了几个月了,踩过的坑给您画个图,您沿着边儿走。”
“免了,你们那深渊巨坑,还是你自己待着吧。”
……
燕京大学,理科一号楼。
李教授办公室里,漆昊正跟李教授讨论一个矩阵分解的优化问题,传来了一阵敲门声。
门打开后,走进来一个头发有点乱的中年人。
“老李,忙着呢?”
李教授有些惊讶:“林教授?你怎么亲自跑过来了,打个电话不就完了。”
来人叫林晨,是信息科学技术学院智能科学系的教授,主攻机器学习。
这位之前在微软亚洲研究院待了好些年,是国内机器学习圈里排得上号的人物,当初听说漆昊来了燕大,又遇上燕大向他跑来了橄榄枝,他二话不说,从微软亚洲研究院辞职,回了燕大,牵头负责机器学习训练相关的项目。
“打电话说不清楚。”
林晨进了门,目光第一时间落在漆昊身上:“漆老师也在?太好了,我正准备去找你!”
林晨和漆昊打了招呼后,从包里掏出一沓打印的实验记录,放在桌上:“漆老师我们遇到麻烦了,大麻烦。”
他的组这段时间一直在做深度网络的训练实验,想沿着QInet的路子继续往深了做。
结果网络一深,参数一多,过拟合压不住了,训练集上准确率高得吓人,测试集上直接崩了,各种正则化手段都试过了,权重衰减,提前停止,能加的全加上了,收效都很小。
“卡了快两个月了,这么说吧,我带的几个博士生,头发掉得比模型收敛还快。”
漆昊接过实验记录,一页一页翻着,过了一会儿说:“这是协同适应的问题。”
“过拟合的表象是参数多,数据少,但深层原因,出在神经元的工作方式上,因为训练的时候,所有神经元都在场。”
“这么说吧,就是神经元1的输出,依赖神经元2、3、4的输出,它们是绑在一起更新的,一荣俱荣,一损俱损,时间长了,它们就学会了一起作弊。”
“就是通过互相配合,把训练集背下来。”
这就像是让陈元、王俊、李晖三个人一起做一套考题,允许他们商量,为了拿高分,三个人一合计,最好的办法是什么?
当然是背答案啊!
一人背一部分,陈元背前三十题,王俊背中间三十题,李晖背最后三十题,凑一起,就能拿满分。
那怎么打破这种情况?
漆昊想了想,认为可以在考试的时候,随机拉走一个人。
这次让王俊在旁边待着,陈元和李晖两个人做题,中间三十题没人背过,正确率永远到不了百分之百。
下一次,换陈元出去,王俊和李晖做前三十题就不行了。
所以只有一种办法,每个人,都老老实实把全部知识学会。
谁也别指望队友,谁也别搞分工背答案。
到那时候,随便拉走谁,剩下的人照样能考好。
林教授当然理解到了漆昊的意思:“你是说,训练的时候,随机让一部分神经元不参与?”
漆昊点头,说:“理论上是这样,林教授,要不我们去实验室测试一下?”
林教授当然愿意漆昊跟他去实验,两人说走就走,当即就去了实验室。
智能科学系,机器学习实验室。
漆昊到的时候,实验室里研究生们都围着几台机器忙活。
当林晨领着漆昊推门而入时,大家都看向了那个比他们还要年轻几岁的青年。
是漆昊!
在如今的学术界,这个名字几乎就是天才的代名词。
他一手在数学领域上不断取得突破,一手还创造了QInet,在这些研究深度学习的学生眼里,漆昊就是活着的传奇。
“都愣着干嘛?把15层QInet变体网络的训练日志和神经元激活图调出来,给漆老师看。”林晨低声喝道。
“好!马上!”一名博士生如梦初醒,手忙脚乱地在主控电脑上操作起来,将代码,损失曲线以及五颜六色的神经元特征图都调了出来。
漆昊倒是没什么架子,跟众人打了招呼后,走到主实验机前,查看了起来。
看着看着,他的动作慢了下来。
林晨抬起手,做了个都别动的手势。
众人心领神会,集体进入木头人模式。
传说中,QInet的核心结构,就是这位在某个下午想出来的,谁知道现在这沉默的时间里,大佬的脑子里面会在想什么?
时间一点点过去,漆昊的脑子里,正在进行一场高速推演。
研发QInet那段时间,他啃过海量的文献,其中有一篇预印本,提到辛顿的团队做过类似的尝试。
训练时,以某个概率随机地把一部分隐层神经元的输出置零,每一次前向传播,都只有一部分神经元参与。
当时他扫了一眼,记了下来。
他发现这模式是好的,但现在要用的话,需要优化。
漆昊把这个想法放到数学上来看,开始推导了起来。
设保留概率为p,每个神经元以概率p被保留,以概率1-p被临时屏蔽。
一个有n个隐层神经元的网络,每次随机屏蔽一部分,等价于从2的n次方个不同结构的子网络里,随机抽一个出来训练,这些子网络共享同一套权重。
再往深挖一层。
对一个线性回归模型做同样的随机屏蔽,把期望损失展开。
期望损失=原始损失+一个附加项,附加项正比于p(1-p)乘以权重平方与输入平方的加权……
过了一会儿漆昊推导完成。
“林教授。”
“怎么了?”林晨赶紧出声。
“这里要改一下训练流程。”
“每一次前向传播,对隐层神经元做一次随机采样,以百分之五十的概率临时屏蔽,被屏蔽的神经元这一轮不参与前向也不参与反向,每个批次重新采样一次,测试的时候所有神经元都保留,但输出权重乘以零点五。”
“随机屏蔽一半神经元的话,网络每次都是残缺的,信息会大量丢失,训练能收敛吗?会不会更差?”有研究员问道。
这话问出来,好几个人都下意识地点了头。
是啊,本来网络就学不明白,你还给它砍一半?
这不是雪上加霜吗?
就好比一个学生本来就考不及格,你还蒙上他一只眼睛让他做卷子,这能好?
漆昊解释道:“你的担心有道理,但方向反了。”
“信息丢失,恰恰是我们要的东西。”
他在纸上画了三个小圈,标上1、2、3。
“现在的网络为什么过拟合?因为神经元之间在合谋,神经元1发现,只要神经元2和3都在,它就可以偷懒,2和3把某个特征拼出了一半,它随手补个尾巴,训练误差就下去了,它就不需要真的理解这个特征了。”
“整个网络里,全是这种神经元,每个神经元学到的都是残缺的、依附于队友的碎片知识,这些碎片在训练集上拼得严丝合缝,一换数据,拼图散架。“
“现在,我随机屏蔽一半,神经元1突然发现,它的老搭档没了,这一轮它想把误差降下去,就只能靠自己,学一点真正独立有用的东西,下一轮,换神经元3消失,它又得顶上另一块。”
“几十万轮迭代下来,每个神经元都被逼着成了六边形战士,谁也不敢指望谁,因为谁都可能随时消失。”
说完漆昊在草稿上写下了相关的数学推导,林晨知道对方是数学天才,数学专业上没得说,所以简单看了下就拍了板:“所有人立刻调整代码!”