ResNet算法

Daily
Q1:过拟合(),欠拟合()?
A1:欠拟合:根本原因是特征维度过少,模型过于简单,导致拟合的函数无法满足训练集,误差较大
解决方法:增加特征维度,增加训练数据;
过拟合:根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集预测结果差 。过度的拟合了训练数据,而没有考虑到泛化能力 。
解决方法:(1)减少特征维度;(2)正则化,降低参数值 。
Q2:梯度爆炸( )/消失()?
A2:两种情况下梯度消失经常出现,一是在深层网络中,二是采用了不合适的损失函数,比如 。梯度爆炸一般出现在深层网络和权值初始化值太大的情况下,下面分别从这两个角度分析梯度消失和爆炸的原因 。
1.深层网络角度
图中的曲线表示权值更新的速度,四个隐层的网络来说,第四隐藏层比第一隐藏层的更新速度慢了两个数量级:
从深层网络角度来讲,不同的层学习的速度差异很大,表现为网络中靠近输出的层学习的情况很好,靠近输入的层学习的很慢,有时甚至训练了很久,前几层的权值和刚开始随机初始化的值差不多 。因此,梯度消失、爆炸,其根本原因在于反向传播训练法则,属于先天不足 。
2.激活函数角度
其实也注意到了,上文中提到计算权值更新信息的时候需要计算前层偏导信息,因此如果激活函数选择不合适,比如使用,梯度消失就会很明显了,原因看下图,左图是的损失函数图,右边是其导数的图像,如果使用作为损失函数,其梯度是不可能超过0.25的,这样经过链式求导之后,很容易发生梯度消失,函数数学表达式为

ResNet算法

文章插图
同理:tanh作为激活函数,它的导数图如下,可以看出,tanh比要好一些,但是它的导数仍然是小于1的 。tanh数学表达为:
Q3:什么是残差?
A3:真实数据和预测数据的偏差就是残差,如下图所示 。
A4: 解决了什么问题?
Q4:1.深度学习目前进展取决于技巧:初始权值选择,局部感受野,权值共享等等,但使用更深层的网络时(例如> 100),依然要面对反向传播时梯度消失这类传统困难,
2.退化问题:层数越多,训练错误率与测试错误率反而升高
Q5:什么是残差网络
A5:一条路不变(恒等映射);一条路负责拟合相对于原始网络的残差,去纠正原始网络的偏差,而不是让整体网络去拟合全部的底层映射,这样网络只需要纠正偏差
为什么解决网络退化问题
深度残差网络的思路
引入“捷径”,可以防止梯度消失问题,其实在出来以前已经有人对这方面进行研究了,等人的“公路网络”,“培训非常深的网络”是类似的方法,他们认为更深层的网络应该也是易于优化的,层数越多准确率越高,训练方法与“传统”深度网络相比不会有很大变化,基于此,何凯明团队提出了一个新的深度残差网络,下面我们就先看看该网络的核心部分即:
ResNet算法

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