【feature extractor 系列文章1】Alexnet 论文阅读ImageNet Classification with Deep Convolutional Neural Networks

本系列论文阅读总结主要专注于特征提取模型。

本篇博客主要讲述第一篇卷积神经网络——AlexNet。
原文链接
原文名为:ImageNet Classification with Deep Convolutional Neural Networks

鄙人也是深度学习方面半路出家,这篇发表于2012年的论文以前也没有亲自读过,只是通过一些课程和与人交流了解了一些,难免有点拾人牙慧的嫌疑。事实证明也确实需要自己亲自读一读,因为我发现大家的学术背景都不同,基础都不一样,人家以为的常识我却完全不懂。在此也建议各位看客有空去读一读原文,会有意想不到的收获。

本博客主要记录一下我这个半路出家的人在学习一些空中楼阁之后再来看这篇文章的感受和收获。

1.图像领域中,卷积的作用及背后的猜想

第一次接触卷积的时候,我就在知乎上问过一个问题,深度学习中各个层的作用是什么。关于卷积层,主要就有两个作用:局部连接和参数共享。那么这两个作用怎么去理解呢?为什么要局部连接?背后的意义在哪里?为什么要进行参数共享,可以这么做的猜想是什么?原文是这么说的:stationarity of statistics and locality of pixel dependencies. 以下我尝试解释一下我理解的局部连接和参数共享机制。从图像本身来看,像素与相邻像素之间是有局部相关性的。我们用一个滑动的窗口可以来捕捉这样的局部相关性。而另一方面,同一个特征在不同的像素块可能是相同的,比如说提取边缘,不同像素区域的边缘特征应该是相同的,这样我们就可以使用相同的滑动窗口去提取,这就是起到了参数共享的作用。参数共享背后是我们特征提取器的统计学意义。可以进一步总结来看,在卷积神经网络中,我们使用的卷积核就是为了感知图像中存在的某些特征,这些特征是局部的,而且在不同像素块这些特征是相似的,所以相同参数的同一个卷积核可以使用在不同的像素块上

从某种意义上说,有局部连接和参数共享特征的卷积并不是为了减少参数才被设计的。但是参数减少了是其一个附带的作用。

2.过拟合问题

相比较全连接神经网络,卷积神经网络的参数大大减少了。但是相对来说,卷积神经网络的参数依然很多。参数过多,模型能力越强,但也越容易发生过拟合的现象。这个问题是我们应用深度学习的一个重要注意点。因为我们总是希望我们模型的泛化能力强一点。

过拟合问题有一些对策加以解决。既然减少参数这个方法我们不想选择,我们就必须要想一些其他方法,比如增加数据,使用正则化,训练过程的较早停止(早停),以及参数的衰减(weight decay)。

这篇文章中就使用了一些方法来防止过拟合现象。但我这里还是要强调一下我们需要注意过拟合和欠拟合现象。比如有时候我们在选择模型时,并不是就一定选择那些参数多,能力更强的。举例来说,在做图像分类时,我们是不是就选择ResNet而不选择Alex net呢?答案时否定的,假如我们并没有很多数据来训练网络,我们就不能选择参数多的,因为很有可能过拟合。

以下再说一点本文使用的Dropout方法中一个以前没有注意到的点。
神经网络中很多中间特征,我们有理由认为这些特征是有一定重复的。有的时候,使用重复的特征是有好处的,以增加模型的稳定性。比如我们在判断一个机器是否有用,我们同时听取三位专家的意见,假如有两位专家认为机器是好的,我们就认为这个机器是好的,也就是说听取多数的意见。但是dropout这个方法有点冗余,计算量较大,采用dropout可以减小计算量(直接将一个特征随机的变成0,不参与反向传播计算)。从某种角度上说,dropout有助于防止过拟合也是其附带的作用,而主要作用乃是提高计算速度

另一个点是dropout在测试时要乘以dropout的概率。这一点是以前没有注意到的。因为在训练时,我们使用了dropout,如果在测试时不用dropout,那么就相当于我们使用了多个特征去测试。当然,在分类的时候我们也可以不必这么做,因为最后我们都要重新计算一次,因为这是线性运算,不影响后面的分类效果。

3.ReLU的作用

从文章介绍来看,相对于以前的sigmoid或者tanh激活函数,使用ReLU可以提高模型的收敛速度,即在较短的迭代次数内提高相同的性能。到了2015年,BatchNormalization也有相同的作用。不禁让我思考这两个方法有何异同。(这里还没想清楚

从tanh到ReLU应该属于讨论激活函数的问题了,涉及到梯度消失,非线性等问题。
从值域上来讲,两者都是从0到1,而且ReLU包含0.
我们为什么需要非线性呢?当然,非线性才赋予我们模型无穷的变化,这样拟合能力更加强大。
而另一方面,ReLU在输入大于0时,局部梯度都是1,不存在梯度饱和现象。

4.其他

1)注意到参数主要集中在后面三个全连接层。
2)卷积核大小和pooling方法。pooling也可以认为时特征提取的一种手段,以及这里的overlap pooling。
3)已经使用了简单的数据增强方法来防止过拟合。
4)计算能力和数据量对模型性能的影响。
5)这篇文章已经使用了局部的normalization方法。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值