设置

关灯

第622章 深度学习变天了(第3节)

算力充裕之后,他开始做一件以前想都不敢想的事。

加深网络。

卷积神经网络的层数越深,理论上能提取的特征就越抽象、越高级。

但实际操作中,网络超过二十层就会出现一个要命的问题:梯度消失。

简单来说,训练信号从输出层往回传的时候,经过太多层的连乘运算,到了前面几层就衰减成了几乎为零的数字。

前面的层学不到东西,整个网络等于白深。

这个问题卡死了全世界所有试图做深层网络的研究者。

任少卿也被卡住了。

他试过各种补救办法。换激活函数,调学习率,加BatCh NOrmaliZatiOn。

有些有用,但都治标不治本,网络超过三十层之后精度就开始往下掉,跟没加深是一个样。

在连续失败了将近两个月之后,某天凌晨三点,他趴在键盘上半睡半醒。脑子里突然蹦出来一个念头。

如果不让梯度穿过所有层呢?

如果给它开一条捷径呢?

他一下子坐直了。

思路很简单。

假设网络有两层,输入是X,经过两层运算之后的输出是F(X)。正常做法是直接用F(X)往下传。

但他的想法是,不要让网络去学习F(X)这个完整的映射,而是让它只学习F(X)和X之间的差值,也就是F(X)-X。最终输出变成F(X)+X。

这个“+X”就是捷径。

就是残差连接。

它的意义在于,哪怕F(X)学废了,输出至少还有一个X兜底,不会比什么都没学更差。

更关键的是,梯度可以沿着这条捷径直接回传到前面的层,不用再经过所有中间层的连乘衰减。

梯度消失的问题,被这条捷径绕过去了。

他当天晚上就写了代码。

第二天跑了一个二十层的

本章未完,请点击"下一页"继续阅读! 第3页 / 共6页