Deep Learning Note6
LeNet-5
针对灰度图片设计的
VGG-16
ResNet
问题
深层神经网络容易在长距离非线性转变过程中,梯度的相关性越来越差,使得梯度更新根本是在做白噪声的随机扰动,造成信息丢失。
思路
浅层网络如果足以达到不错的预测效果,那么要想加深层数,我们可以让后面的网络层什么都不做,输入的值等于输出的值,也即恒等映射。但是由于非线性转化不可逆的缘故,如何做到恒等映射?
过程
x为输入值,若输出值记作H(x),要做到恒等映射,则。但如果把网络设计为
即直接把恒等映射作为网络的一部分。就可以把问题转化为学习一个残差函数,F(x)是激活,卷积,池化等一系列操作
当,就构成了一个恒等映射
注意:
虽然F(x)残缺函数表达式是固定的,但是它也是一个需要学习的函数
残缺层不是单独的一层,而是类似激活层一样融入到单层神经网络层中作为网络层的一个部分
困扰
如果学习目标为让F(x)接近为0。既然这样,为什么不直接设置F(x)=0 输出y=x不就行了?残差网络的目的是学到y=x恒等映射函数,那么不就相当于加上的残差网络在最后没起到作用吗?那么为什么会有效呢?
残差学习是在常规的正向传播过程中,将前几层特征值并入当前层的输入值中。
可以将特征数值传递看作是一个传话游戏,传话的次数越多(训练的层数越深),本意越失真。ResNet就是将第一个人说的话跳过顺序,直接告诉后面的人。这样后面的人可以根据本来特征和提取的特征一起进行判断(训练数据)
令L层输入值为X,F是残缺函数,f 的激活函数,即:
过程
假如f是一个ReLU函数,反向传播求梯度:
如果残缺块相加时维度不同,可以使用 same
卷积核转换维度
1*1卷积
ResNet