《白话深度学习与Tensorflow》学习笔记(4)Deep Residual Networks

深度残差网络:主要应用于计算机视觉——图像分类、语义分割(semantic segmentation)、目标检测(object detection),其主要是使用CNN进行改造。何恺明老师有一篇文献《Deep Residual Networks——Deep learning Gets Way Deeper》。

普通CNN网络的问题(plain network):一层的网络数据只能来源于前一层,网络越深,学习到的东西就越多,收敛速度越慢,时间越长,但是由于网络深度

加深而产生学习率变低,准确率无法提升(出现了网络退化)。

其本质是由于信息丢失而产生了过拟合的问题。对于CNN而言,每层经过卷积,都会产生有损压缩的情况(降采样 down sampling),就是在向量通过网络的过程中经过滤波处理,产生的效果是让输入向量输出后具有更小的尺寸,卷积和池化都可以作为降采样的工具。

在深度残差网络中,引入了短路设计,将前若干层的数据输出直接跳过多层(一般为2层)而引入到后面的数据层的输入部分。就是前面层的较为清晰的向量数据会和后面有损压缩过的数据共同作为后面数据的输入。示意图如下:

;

《白话深度学习与Tensorflow》学习笔记(4)Deep Residual Networks_第1张图片
残差网络结构元

这样就引入了更丰富的参考信息或者丰富的特征维度。

Residual network是一种力求简洁的设计方式,单纯加深网络,而且绝不在隐藏层中设计全连接层,也不使用Dropout机制。

ImageNet Classification 达到152层。

正向传递:

短路层引入后产生平滑的正向传递过程:



也就是后面任何一层XL向量的内容会有一部分由前面的某一层xl线性贡献。

残差反向传递:

定义残差E(Loss):


用链式求导对残差过程进行求解:



这一项:


使得:



的过程是一个线性叠加的过程,而非连乘,可以减少梯度消失的现象。

拓扑解释:

短接项相当于把所有的一个一个网络短接了过去,这些短接过去的部分其实又形成了新的拓扑结构。如下图所示:


《白话深度学习与Tensorflow》学习笔记(4)Deep Residual Networks_第2张图片

相当于多个不同的网络模型做了并联融合。

Keras这种框架包含了不同的shortcut,一种带有卷积项,一种不带。

网络发生类似并联的情况是会提高网络本身学习的容纳能力!

你可能感兴趣的:(《白话深度学习与Tensorflow》学习笔记(4)Deep Residual Networks)