第622章 深度学习变天了
第622章 深度学习变天了 (第2/3页)
的那套改进型卷积网络搬了过来,在这边的算力下重新训练。
效果立竿见影。之前四张GTX780跑十二天的任务量,在这边不到两天就能收敛完毕。
算力充裕之后,他开始做一件以前想都不敢想的事。
加深网络。
卷积神经网络的层数越深,理论上能提取的特征就越抽象、越高级。
但实际操作中,网络超过二十层就会出现一个要命的问题:梯度消失。
简单来说,训练信号从输出层往回传的时候,经过太多层的连乘运算,到了前面几层就衰减成了几乎为零的数字。
前面的层学不到东西,整个网络等于白深。
这个问题卡死了全世界所有试图做深层网络的研究者。
任少卿也被卡住了。
他试过各种补救办法。换激活函数,调学习率,加BatCh NOrmaliZatiOn。
有些有用,但都治标不治本,网络超过三十层之后精度就开始往下掉,跟没加深是一个样。
在连续失败了将近两个月之后,某天凌晨三点,他趴在键盘上半睡半醒。脑子里突然蹦出来一个念头。
如果不让梯度穿过所有层呢?
如果给它开一条捷径呢?
他一下子坐直了。
思路很简单。
假设网络有两层,输入是X,经过两层运算之后的输出是F(X)。正常做法是直接用F(X)往下传。
但他的想法是,不要让网络去学习F(X)这个完整的映射,而是让它只学习F(X)和X之间的差值,也就是F(X)-X。最终输出变成F(X)+X。
这个“+X”就是捷径。
就是残差连接。
它的意义在于,哪怕F(X)学废了,输出至少还有一个X兜底,不会比什么都没学更差。
更关键的是,梯度可以沿着这条捷径直接回传到前面的层,不用再经过所有中间层的连乘衰减。
梯度消失的问题,被这条捷径绕过去了。
他当天晚上就写了代码。
第二天跑了一个二十层的测试。
然后是三十层。四十层。精度不仅没有下降,还在持续攀升。
他又花了两周时间反复验证,排除过拟合、数据泄漏等一切干扰因素。
最后把层数推到了五十。
5.08%。
和人类标注员打了个平手。甚至略微超过。
任少卿睁开眼睛,盯着天花板看了很久。值班间的日光灯管有一根坏了,一明一暗地闪着。
“少卿哥,这个结果……”
陈立秋把擦了无数遍的眼镜重新戴好,声音压得很低,
“能发顶会吧?”
“不止能发。”
郑宇航已经从最初的激动中回过神来了,他盯着屏幕上的损失曲线,
“这东西要是公开出去,整个领域都得重新洗牌。以前大家默认深层网络没法训练,所有人都在十几二十层的范围里卷。现在这个假设直接被推翻了。”
任少卿没说话。
他站起来,走到机房那面闪烁的绿色光墙前面,双手插在冲锋衣口袋里。
兴奋吗?当然兴奋。
但兴奋过后,一种更复杂的情绪开始往上涌。
他想起去年在西安交大走廊里,那个黄毛少年对他说的话。
“你的模型在做大量无效计算。”
“让模型只用它需要用的那部分脑子去思考。”
当时他以为那只是一个外行的模糊直觉。
但现在他回过头来看,那个十八岁的少年说的每一句话,都精准地指向了这个领域未来五到十年的
(本章未完,请点击下一页继续阅读)