返回主目录
返回 Deep Learning 经典网络 model 发展史 目录
上一章:深度篇—— Deep Learning 经典网络 model 发展史(五) 细说 GoogleNet 结构和特点 (包括 v1, v2, v3)
下一章:深度篇—— Deep Learning 经典网络 model 发展史(七) 细说 Inception-ResNet 结构和特点
本小节,细说 ResNet 结构和特点,下一小节细说 Inception-ResNet 结构和特点
论文地址:《Deep Residual Learning for Image Recognition》
二. 经典网络(Classic Network)
6. ResNet
ResNet 由何恺明于 2015 年推出,在 ISLVRC 和 COCO 上横扫所有选手,获得冠军。ResNet 在网络结构上做了大创新,而不再是简单的堆积层数,而是由残差模块堆积而成的卷积神经网络。
(1). 随着网络的加深,出现了训练集准确率下降的现象,这种现象并不是由于过拟合造成的,而是由于网络层级加深后,反向传播时梯度弥散导致的。ResNet 的核心思想是引入一个所谓的 “恒等快捷连接” (Identity Shortcut Connection),直接跳过一个或多个层。
(2). ResNet 特征神经网络图形:
有的结构会在 ② 或 ④ 层后面增加 卷积核来改变通道数,使得 与 的维度相同。
(3). ResNet 栗子
(4). ResNet 模型案例
(5). ResNet 特性
①. 深度学习网络的深度对最后的分类和识别的效果有着很大的影响,所以正常的想法就是能把网络设计得越深越好。但是,事实上却并不是这样。常规的网络堆叠在网络很深的时候,效果却越来越差。其中原因之一即是:网络越深,梯度消失的现象就越明显,网络的训练效果也不会很好。在浅层的网络无法明显提升网络的识别效果,考虑要如何加深网络而梯度又不至于消失。
②. ResNet 最初的灵感来源于:
在不断加深神经网络时,会出现一个 Degradation (降解) 的问题,即准确率会先上升,然后达到饱和,再持续增加深度则会导致准确率下降。这并不是过拟合的问题,因为不光在测试集上误差率增大,训练集本身的误差率也会增大。假设有一个比较浅的网络达到了饱和的准确率,那么后面再加上几个 的全等映射层,起码误差不会增加,即更深的网络也不应该带来训练集上误差的上升。而这里提到的使用全等映射直接将前一层输出到后面的思想,就是 ResNet 的灵感来源。
③. 假设某段神经网络的输入是 ,期望输出是 ,如果直接把输入传到输出作为初始结果,那么此时需要学习的目标就是 。ResNet 相当于将学习目标改变了,不再是学习一个完整的输出 ,而是输出和输入的差别 ,即残差。将原始所需要学习的函数 转换成 。这个 Residual Block 通过 Shortcut connection 实现,通过 Shortcut 将这个 Block 的输入和输出进行一个 Element-wise 的加叠,这个简单的加法并不会给网络增加额外的参数和计算量,同时却可以大大增加模型的训练速度,提高训练效果,并且当模型的层数加深时,这个简单的结构能够很好的解决网络退化的问题。
④. ResNet 允许原始输入信息直接输入到后面的层中。
⑤. ResNet 网络是由残差模块构建的。ResNet 即是通过很多残差模块堆积在一起,形成一个深度神经网络。
⑥. 普通直连的卷积神经网络和 ResNet 的最大区别:
ResNet 有很多旁路的支线将输入直接连接到后面的层,使得后面的层可以直接学习残差。
⑦. 用梯度下降法训练一个神经网络,若没有残差,会发现随着网络加深,训练误差先减少后增大,而理论上训练误差越小越好。对于残差网络来说,随着层数增加,训练误差越来越小,这种方式能够让网络达到更深的层,有助于解决深层网络的梯度消失的问题,让训练既可以达到更深的网络,同时又保证了良好的性能。
⑧. 传统的卷积层或全连接层在信息传递时,或多或少会存在信息丢失、损耗等问题。ResNet 在某种程度上解决了这个问题,通过直接将输入信息绕道传导输出,保护信息的完整性,整个网络则只需学习输入、输出 差别 的那一部分,简化学习目标和维度。
⑨. 在 ResNet 论文中,除了提出两层残差学习单元,还提出了 三层 残差学习单元。
返回主目录
返回 Deep Learning 经典网络 model 发展史 目录
上一章:深度篇—— Deep Learning 经典网络 model 发展史(五) 细说 GoogleNet 结构和特点 (包括 v1, v2, v3)
下一章:深度篇—— Deep Learning 经典网络 model 发展史(七) 细说 Inception-ResNet 结构和特点