ResNet+cifar10总结-由浅入深

文章目录

    • 一、经典神经网络ResNet介绍
    • 二、经典数据集cifar10介绍及处理
    • 三、源代码
    • 四、遇到问题及解决方案
    • 五、 Resnet模型

一、经典神经网络ResNet介绍

随着神经网络(比如VGGNet16,VGGNet19)的层数不断加深,错误率也越来越低(能够提取到不同level的特征越丰富。并且,越深的网络提取的特征越抽象,越具有语义信息),但增加网络深度的同时,我们还要考虑梯度消失的问题以及退化问题(网络层数增加,梯度消失,在训练集上的准确率却饱和甚至下降)。解决办法,引入残差单元。
转载:CNN模型:ResNet模型详细介绍

残差学习单元主要思想改变了ResNet网络的学习目标,在网络中增加了直连通道,允许原始输入信息直接传到后面的层中。假设一段卷积神经网络的输入是x,经过处理后输出为H(x),如果现将x传入输出作为下一段网络的初始结果,我们学习的目标就变为F(x)=H(x)-x,如下图所示。
ResNet+cifar10总结-由浅入深_第1张图片

ResNet网络深度高(152层,VGG才19层),并且采用残差学习的小技巧,可以看出在网络中加入了一个x,在求梯度时,总有个导数是等于1的,这样避免了每个梯度会小于0的情况,使得深度神经网络得以训练,解决了深度网络的退化问题,使得深度网络发挥最大的作用。

二、经典数据集cifar10介绍及处理

转载:Dataset之CIFAR-10:CIFAR-10数据集简介、下载、使用方法之详细攻略

三、源代码

github源代码链接

四、遇到问题及解决方案

tensorflow使用总结

五、 Resnet模型

Resnet模型目前有两种架构:
Deep Residual Learning for Image Recognition(ResNet_v1模型)
Identity Mappings in Deep Residual Networks(ResNet_v2模型)
ResNet+cifar10总结-由浅入深_第2张图片
左边V1,右边V2,V1和V2的主要差别是在BN和ReLU相对weight和addition的操作顺序上,即post-activation(后激活)还是pre-activation(先激活)的区别。对于V1来说从addition到输出之间为ReLU函数,而V2为直接的identity mapping(恒等映射)。对于层数较少的网络可以继续使用V1 block,对于层数较多使用V2 block。

Resnet模型中BN层为Batch Normalization批归一化
转载:ResNet,BN与残差单元的实现
理解ResNet结构与TensorFlow代码分析
残差组就是BN层+Relu层+卷积层

你可能感兴趣的:(深度学习)