ResNet算法

Daily learning2

Q1:过拟合(overfitting),欠拟合(underfitting)?

A1:欠拟合:根本原因是特征维度过少,模型过于简单,导致拟合的函数无法满足训练集,误差较大

     解决方法:增加特征维度,增加训练数据; 

     过拟合:根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差。 过度的拟合了训练数据,而没有考虑到泛化能力。

     解决方法:(1)减少特征维度;(2)正则化,降低参数值。

 Q2:梯度爆炸(Gradient Exploding)/消失(Vanishing)?

A2:两种情况下梯度消失经常出现,一是在深层网络中,二是采用了不合适的损失函数,比如sigmoid。梯度爆炸一般出现在深层网络和权值初始化值太大的情况下,下面分别从这两个角度分析梯度消失和爆炸的原因。

1.深层网络角度

 

 图中的曲线表示权值更新的速度,四个隐层的网络来说,第四隐藏层比第一隐藏层的更新速度慢了两个数量级:

 从深层网络角度来讲,不同的层学习的速度差异很大,表现为网络中靠近输出的层学习的情况很好,靠近输入的层学习的很慢,有时甚至训练了很久,前几层的权值和刚开始随机初始化的值差不多。因此,梯度消失、爆炸,其根本原因在于反向传播训练法则,属于先天不足。

2.激活函数角度

 其实也注意到了,上文中提到计算权值更新信息的时候需要计算前层偏导信息,因此如果激活函数选择不合适,比如使用sigmoid,梯度消失就会很明显了,原因看下图,左图是sigmoid的损失函数图,右边是其导数的图像,如果使用sigmoid作为损失函数,其梯度是不可能超过0.25的,这样经过链式求导之后,很容易发生梯度消失,sigmoid函数数学表达式为sigmoid(x)=\frac{1}{1+e^{-x}}

同理:tanh作为激活函数,它的导数图如下,可以看出,tanh比sigmoid要好一些,但是它的导数仍然是小于1的。tanh数学表达为:tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}

 

 

Q3:什么是残差?

A3:真实数据和预测数据的偏差就是残差,如下图所示。

A4: ResNet解决了什么问题?

Q4:1.深度学习目前进展取决于技巧:初始权值选择,局部感受野,权值共享等等,但使用更深层的网络时(例如> 100),依然要面对反向传播时梯度消失这类传统困难,

      2.退化问题:层数越多,训练错误率与测试错误率反而升高

 Q5:什么是残差网络

A5:一条路不变(恒等映射);一条路负责拟合相对于原始网络的残差,去纠正原始网络的偏差,而不是让整体网络去拟合全部的底层映射,这样网络只需要纠正偏差

ResNet为什么解决网络退化问题

 

深度残差网络的思路

引入“捷径”,可以防止梯度消失问题,其实在ResNet出来以前已经有人对这方面进行研究了,Srivastava等人的“公路网络”,“培训非常深的网络”是类似的方法,他们认为更深层的网络应该也是易于优化的,层数越多准确率越高,训练方法与“传统”深度网络相比不会有很大变化,基于此,何凯明团队提出了一个新的深度残差网络,下面我们就先看看该网络的核心部分即:

上图的左半部分是常规的神经网络形式,每层有权值和激活函数,这里的激活函数采用的是RELU函数,目的是为了避免梯度消失的问题,右半部分是残差网络的基本单元,和左边最大的不同在于多了一个身份即多了一个直接到达输出前的连线,这代表什么意思呢?刚开始输入的X,按照常规的神经网络进行权值叠加然后通过激活函数,在次权值叠加后此时在把输入的信号和此时的输出叠加然后在通过激活函数,就是这样的一个网络,而那条线称为捷径,也称为高速公路?这里的X就是我们的拟合的函数,而H(x)的就是具体的数据点,那么我通过训练使的拟合的值加上F(x)的就得到具体数据点的值,因此这 F(x)的就是残差了,如下图

对于残差块的解释

 

 它有二层,如下表达式,其中\sigma代表非线性函数ReLU,

F=W_{2}\sigma (W_{1}x)

然后通过一个shortcut,和第二个ReLU获得输出y

y=F(x,{W_{i}})+x

当需要对输入和输出维数进行变化时(如改变通道数目),可以在shortcut时对x做一个线性变换Ws,如下式,然而实验证明x已经足够了,不需要再搞个维度变换,除非需求是某个特定维度的输出,如文章开头的resnet网络结构图中的虚线,是将通道数翻倍。

y=F(x,{W_{i}})+W_{s}x

实验证明,这个残差块往往需要两层以上,单单一层的残差块(y=W1x+x)并不能起到提升作用。残差网络的确解决了退化的问题,在训练集和校验集上,都证明了的更深的网络错误率越小,如下图

实际中,考虑计算的成本,对残差块做了计算优化,即将两个3x3的卷积层替换为1x1 + 3x3 + 1x1, 如下图。新结构中的中间3x3的卷积层首先在一个降维1x1卷积层下减少了计算,然后在另一个1x1的卷积层下做了还原,既保持了精度又减少了计算量。

 bty:残差resnet网络原理详解_mao_feng的博客-CSDN博客_resnet

         深度学习 --- 深度残差网络详解ResNet_进击的菜鸟-CSDN博客_深度残差网络

 

 

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值