写在前面
原文:https://arxiv.org/pdf/1409.1556
参考:https://www.cnblogs.com/lijiuliang/p/15133276.html
关键字:卷积网络、卷积网络深度、图像识别
阅读理由:卷积神经网络深度与算法优良性能之间的关系是什么,如何评估的,结果如何,有哪些思考
前置知识:CNN(也是我写滴嘻嘻(#..#))、filter
速览
研究了什么
卷积网络深度在大规模的图像识别环境下对准确性的影响
怎么研究的
使用非常小的(3x3)filters对网络深度的增加进行全面评估
研究结果
通过将深度推到16-19加权层可以实现对现有技术配置的显著改进
文章结构
(本文的逻辑十分之清晰,非常值得学习)
一.网络配置
1.输入
图片规格:3个通道,224x224
预处理操作:计算出3个通道的平均值,在每个像素上减去平均值(处理后迭代更少);
2.关于卷积层
大部分网络架构使用非常小的3x3卷积核贯穿整个网络;
少数网络架构还使用了1x1卷积核;
卷积层步长(stride)=1,3x3卷积核的填充(padding)=1;
所有隐藏卷积层都配备了ReLU非线性激活。
3.关于池化层
整个网络架构的池化总共由5个“最大池化层”实现;
池化窗口为2x2,步长=2。
4.关于全连接层
所有卷积操作之后跟有3个全连接层:
前2个:均为4096通道;
最后1个:1000个通道;
5.全连接层之后是SoftMax分类器。
6.另:LRN
在深度学习中,局部响应归一化(Local Response Normalization,简称LRN)是一种用于神经网络层的技术。它的主要作用是对输入数据进行归一化处理,以减少内部协方差偏移的影响。
在神经网络中,每个神经元都接收到来自前一层的所有神经元的输出,并将其作为输入。这些输入被加权求和后通过激活函数产生输出。然而,在训练过程中,由于权重初始化的不同、梯度下降算法的随机性等原因,不同神经元的输出可能会出现内部协方差偏移的现象,即某些神经元的输出过大或过小,导致整个网络的性能下降。
为了解决这个问题,LRN技术引入了一种新的归一化方法,通过对每个神经元的输入进行局部归一化来减少内部协方差偏移的影响,提高了模型的泛化能力
需要注意的是,LRN技术并不是所有情况下都能提高模型的性能。比如本文,使用LRN不仅没有提高性能,反而增加了内存消耗和计算时间
二.分类框架
(描述了分类卷积神经网络训练和评估的细节)
先留坑,等我再学习一下更多的原理再补上
三.分类实验
四.实验结论
我的总结
-
本文提到的卷积神经网络的优化方法有三
一种方法是在第一层卷积中使用更小的感受野窗口和步幅。
另一个改进方向是密集地训练和测试网络,使其在整个图像上以及多个尺度下进行处理。这种方法可以提高模型的鲁棒性和泛化能力。
第三种是卷积神经网络的深度问题。通过固定其他参数,增加更多的卷积层来增加网络的深度。这得益于非常小的(3x3)卷积滤波器在所有层中的应用。这种设计使得更深的网络可以在不牺牲精度的情况下保持较小的计算复杂度。 -
3X3卷积核的优势
-
减少网络参数
参数量=(filter size * 前一层特征图的通道数 )* 当前层filter数量
对于两个3x3卷积核,所用的参数总量为2×32×channels(假设保证输入输出通道数不变);
对于单个5x5卷积核,参数量为52×channels -
增加更多的非线性变换
2个3x3卷积层拥有比1个5x5卷积层更多的非线性变换(前者可以使用两次ReLU激活函数,而后者只有一次),使得卷积神经网络对特征的学习能力更强。
-
但是卷积神经网络的深度越深越好吗?
当然不是,具体可见resnet -
是否可以将这些优化方法分为大类,每一类的优化方法还有哪些?这些优化方法是通用优化方法还是在某些情况下的?他们是不是和网络深度一样在某些情况下有发挥不好的地方?针对这个问题又有什么解决思路和方法呢?