返回

第1271章 F(x)=H(x)-x

首页
关灯
护眼
字:
大
中
小
上一章 回目录 下一页 进书架
    第1271章 F(x)=H(x)-x (第1/2页)

    说完,成文飞重新看向白板。

    白板左侧写着“语音识别”,右侧则是何恺明刚刚画出的网络结构。

    十几层卷积模块一层层往上叠,训练曲线却在十五层以后开始下滑。

    成文飞指着曲线:“我的模型加深到十五层以后,训练集准确率不升反降。ReLU、BN、DrOpOUt都用上了,还是解决不了。”

    “深度网络不是越深越好。”何恺明说。

    “这话已经听过很多次了。”

    “但是问题不一定出在深度本身。”

    何恺明拿起笔,在白板上写下一个H。

    “传统网络每一组卷积层,都在学习完整变换H(X)。输入是X,输出目标是H(X)。如果网络继续加深,后面的层就必须重新学习一套完整特征。”

    成文飞看着公式,没有打断。

    何恺明又在旁边写下:

    F(X)=H(X)-X

    “那我们换一个目标,不让这几层直接学习H(X),只学习残差F(X),最后输出F(X)+X。”

    “加一条捷径。”成文飞说。

    “对。”何恺明在图上画了一条从输入绕到输出的线,“原始输入X不再被迫经过所有卷积层,而是直接跨过去,和卷积模块的输出相加。”

    成文飞盯着那条线:“这会破坏特征提取链路。”

    “成教授,我们做个思想实验。”何恺明转过身,“一个二十层网络已经能工作,我在后面再加三十六层。如果这三十六层什么都不做,只把输入原样传下去,那么五十六层网络至少不应该比二十层更差。”

    “但是直接堆叠以后,它反而会变差。”

    “这说明网络很难学会恒等映射。残差结构把最简单的答案直接留给它。如果新增层没有价值,就把F(X)学成零,原始信号直接通过。新增层有价值,就只补充需要修正的特征。”

    成文飞看着白板,许久没有说话。

    他过去的认知很明确,神经网络每一层都应当完成一次特征提取,信息必须经过连续变换才能逐层抽象。

    让输入跨过中间层,在他看来像是给网络偷懒。

    “这在前向传播上说得通。”成文飞拿起笔,“但反向传播呢?梯度经过加法结构,会不会出现新的不稳定?”

    “我也在算这个。”

    何恺明把白板擦出一块空白,写下损失函数和输出表达式。

    “假设y=F(X)+X,反向传播时,损失对X的梯度不只经过F这一条路径,还会多一条直接传递的路径。只要加法结构没有被破坏,梯度就能沿着捷径回到浅层。”

    成文飞接过笔,在公式旁边补了一行。

    两个人很快投入推导。

    实验室里只剩下笔尖划过白板的声音,旁边的研究员也围了过来。

    成文飞不断提出问题,何恺明不断修改表达式。

    一个小时后,成文飞放下笔。

    “成教授,先别判断它是不是普适,跑一次数据会回答。”

    成文飞看着白板上的结构图,“那好,准备实验。”

    “现在?”

    “现在。”

    “语料还没完全标注。”

    “先用现有数据做对照。普通堆叠网络和残差结构各训练一版,层数从十层开始,逐步加到二十六层。”

    “行。”

    成文飞转身看向服务器区,“如果这个结构能把深度网络的问题解决,语音识别的进度会快很多。”

    何恺明没有接话,他知道,成文飞真正关心的不是一篇论文,也不是谁先提出一个结构,倒是自己,这个想法完全可以整理出一篇论文来。

    如果这条路能让深层模型继续

    (本章未完,请点击下一页继续阅读)
上一章 回目录 下一页 存书签