• 残差网络ResNet解读


    一、残差网络的定义

    残差网络的核心是解决增加深度带来的退化问题,这样能够通过单纯增加网络深度来提高网络性能。

    残差单元以短连接的形式,将单元的输入直接与单元输出加在一起,然后再进行激活。

    Weight为抽取特征的网络层

    Addition时xl和xl+1的feature map(channel)可能不同,此时需要1*1的卷积进行升维或者降维。

    二、退化问题的定义以及怎么解决退化问题

    退化问题:网络层数增加,模型的训练误差反而大于浅层模型。

    解决退化问题:如果深层网络的后面是恒等映射(层数加多了,理论上输入和输出一样),那么就要学习恒等映射函数。如果让深的那些层去拟合一个潜在的恒等函数H(x)=x比较困难,因为深层网络难以训练。但是如果把网络设计为H(x)=F(x)+x,可以转化为学习一个残差函数F(x)=H(x)-x=0,就构成了一个恒等映射H(x)=x。F(x)=0相对来说比较好拟合,因为每一层网络的参数初始化偏向于0。

    三、残差网络结构解读

    官方示意图:

    假设H(x)是最终要拟合的函数,则令H(x)=F(x)+x,其中F(x)代表普通的堆叠起来的网络拟合出来d额函数,x是输入,普通网络的激活函数用的是relu函数。整个网络就是普通网络加上一个恒等映射,普通网络只是整个网络的一部分(F(x)=H(x)-x),这也是Residual(剩余的)名字的由来

    四、残差网络解决梯度消失说明

    普通神经网络的前向传播,将数据逐层抽象,最终提取出完成任务所需要的特征。

    残差网络的前向传播,输入信号可以从任意低层直接传播到高层,由于包含了一个天然的恒等映射(Identity Mapping),一定程度上可以解决网络退化的问题。

    最终损失函数对某低层输出的梯度展开:

    普通神经网络反向传播,链式求导可能会在离输入近的网络中产生梯度消失的现象。

    残差网络反向传播,错误信号可以不经过任何中间权重矩阵变换直接传播到低层,所以一定程度上可以缓解梯度消失问题。

    所以可以认为残差连接使得信息前后向传播更加顺畅。

  • 相关阅读:
    Springboot林业企业销售系统模块58udx计算机毕业设计-课程设计-期末作业-毕设程序代做
    js实现在可视区内,文字图片动画效果
    创造建材数字转型新视界,中建材如何多边赋能集团业务快速发展
    2.0SpringMVC中报文信息转换器HttpMessageConverter
    基于微信小程序的高校毕业论文管理系统#毕业设计
    SpringBoot笔记:SpringBoot集成JWT实战
    40G数据中心解决方案指南
    如何从单体架构迁移到微服务架构
    【React源码】(十三) Hook 原理(概览)
    【微服务】Day01
  • 原文地址:https://blog.csdn.net/benben044/article/details/128006119