AlexNet 详细解读

写在前面的话: 建议掌握 本专栏上一篇《神经网络与卷积神经网络结构概述——神经网络入门》后阅读,本文仅仅讲解AlexNet中选择的策略。传送门:神经网络与卷积神经网络结构概述——神经网络入门
若有差错,欢迎指正哦。

概述的链接: https://blog.csdn.net/qq_43722079/article/details/107932999

提出本模型的论文:

ImageNet Classification with Deep Convolutional Neural Networks

一、常识区


1、 ImageNet 是一个在2009年创建的图像数据集,之后就是从2010年开始到2017年为期七届的 == ImageNet 挑战赛== ImageNet Large Scale Visual Recognition ChallengeI (LSVRC),在这个挑战赛上诞生了 AlexNet,ZFNet,OverFeat,VGG,Inception,ResNet、WideResNet,FractalNet,DenseNet,ResNeXt,DPN,SENet 等经典模型。

2、 在上述比赛中描述训练结果好坏通常用两个标准
Top-1 = (正确标记 与 模型输出的最佳标记不同的样本数)/ 总样本数;
Top-5 = (正确标记 不在 模型输出的前5个最佳标记中的样本数)/ 总样本数。

3、 Alexnet 在2012年提出,当时计算机计算能力不足,有着 6000w 参数和 65w神 经元的区区八层神经网络用双GPU并行计算需要五到六天,为接下来引出为什么要想尽办法减少计算量加快迭代速率和想尽办法设计模型来并行计算奠定现实基础。

4、 “易”证明也已证明一个拥有足够多设计良好的参数的神经网络模型可以解决任意复杂度的线性或非线性可分的问题。此证明也进一步为神经网络走上神坛奠定基础。

5、 一个参数很多的神经网络模型在迭代次数足够多的情况下是容易造成过拟合的。可以不恰当的想象为一个 解9个十元一次方程 组成的方程组——无数多个解。在经过无数次迭代之后虽然形成了一组解可以很好地满足方程组成立,但是无法确保此解为通解(泛化能力差、过拟合)也就是再给一组数未必满足。那么解决方式也呼之欲出要么增加方程组中方程地个数,要么减少未知数的数量。(分别对应此论文中解决过拟合地方法:数据增强、Dropout正则化)

6、 大数据集采用参数少的模型就相当于想要用杀鸡刀杀牛——小模型怎么可能胜任呢。所以在imageNet 这个较大的数据集上就用参数较多也更深更宽的 AlexNet。


二、 AlexNet 中使用的策略


1、relu激活函数

在这里插入图片描述

2、tanh激活函数、sigmoid激活函数

标准的 L-P 神经元一般使用 tanh 或者 sigmoid 作为激活函数。这两个函数在 x->∞ 时导数几乎为0导致在反向传播梯度下降的过程中出现梯度弥散的现象(梯度消失,收敛速度放缓)。


3、LRN归一化(Local Response Normalization)又称局部响应归一化

由于 sigmoid 与 tanh 都会将输出压缩到一定范围内,而 relu 函数的值域没有一个区间,所以需要再借助归一化操作来限制输出范围,因此引入局部响应归一化。(这里多说一句:LRN后续被证明没有什么用,但是归一化的方向是对的,后续模型中有更好的归一化操作),LRN尽管没用,但是思想仍然值得一看。下图为公式:
在这里插入图片描述

b 代表归一化后的结果;
a 表示归一化前的值;
n 的意义是卷积核深度(卷积核个数);
k 为一个为了防止分母为0的超参数;
α 为一个系数超参数;
β 为一个指数超参数。

(α、β的数学意义我也没有理解,他们的值的确定只是说根据验证集确定,而没有给具体的方法,在下面解释LRN的意义中先忽略这几个超参数)。

分母的意义就是 同一位置经过不同卷积核操作后的值加和。

在这里插入图片描述
容易看出经过这个操作之后,一个比较大的值对周围的其他值有抑制作用。形成强的更强,弱的更弱的效果,来放大有效特征
(这是理论上应有的效果,但是为什么后续说此操作对最终结果没有作用我还没有读相应论文)


4、Overlapping Pooling (覆盖的池化操作)

一般的池化操作没有重叠,所以 pool_size 和 stride 一般是相等的,例如:8×8 的图像,经过 2×2 的池化操作之后会得到 4×4 的结果,这种设置叫做不覆盖的池化操作;但是当步长 stride < 池化大小 pool_size 时就会出现覆盖
尽管理论上覆盖池化可以保留更多的信息,在top-1,top-5 的结果中也有了一定程度的效果提升,但是后续有理论依然证明此操作与不覆盖池化效果一样


5、Data Augmentation(数据扩张,就是对原始数据经过平移,旋转,拉长,变形)

防止过拟合的最简单的办法,只需要对原始的数据集进行适当地变换,就会得到更多有差异的数据集


6、Dropout 正则化

1)定义:

dropout 是指在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率将其暂时从网络中丢弃注意是暂时,对于随机梯度下降来说,由于是随机丢弃,故而每一个 mini-batch 都在训练不同的网络


(2)而 Dropout 为何有用:

Hinton 认为:
此处先举个例子方便理解:考虑到决策树与随机森林的关系即随机森林是由无数个单独的决策树组成的,那么用随机森林进行分类就是将每个决策树的结果输出然后取平均,这个例子应该可以很好理解:一个决策树过拟合了还能用另一个决策树往回掰一掰,不至于随机森林整个都过拟合。也就是既然一个模型容易过拟合,那就几个模型组合使用来解决过拟合问题,然而传统的机器学习反正也比较小,弄几百个决策树也可以几秒出结果,神经网络光是训练一个就费死老劲了,怎么可能训练成百上千个。
返回来看 dropout 定义的加红字体,就很好理解,引入dropout正则化相当于让一个模型实现多个模型的效果

其他有名学者也提出自己的看法:
dropout 强迫前一层的神经元与后一层的多个随机神经元共同工作,会作为扰动因子不断破坏原有的固有联系,而去尝试寻找新的可能存在的内在联系。(有点类似于 L2 正则化削弱一个极大参数作用,而让多个参数共同作用有异曲同工之妙。)



三、AlexNet 网络结构概览

在这里插入图片描述
( 注:八层是指卷积层+全连接层为八层,输入层池化层均不计入在内,卷积层操作内包含了池化操作。)


在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
AlexNet是由Alex Krizhevsky等人在2012年提出的一个深度卷积神经网络(Convolutional Neural Network,CNN),它在ImageNet图像识别挑战赛中取得了显著突破,首次击败了传统的计算机视觉方法。这标志着深度学习在计算机视觉领域的重大进展。 在TensorFlow框架中,AlexNet可以被用来作为预训练模型,用于迁移学习任务,即在一个大型数据集(如ImageNet)上训练好的模型,在新的、具有相似任务的小规模数据集上进行微调。TensorFlow库提供了方便的接口,如`tf.keras.applications.AlexNet()`,可以直接加载预训练的AlexNet模型,并允许用户进行前向传播或对某些层进行修改和训练。 以下是使用AlexNet的基本步骤: 1. **导入模型**: ```python from tensorflow.keras.applications import AlexNet model = AlexNet(weights='imagenet') # 加载预训练权重 ``` 2. **冻结层**(如果不需要训练整个网络): ```python for layer in model.layers[:-10]: # 冻结除最后几层之外的层 layer.trainable = False ``` 3. **添加新层**(如果需要自定义输出): ```python new_output_layer = tf.keras.layers.Dense(units=...)(model.output) model = tf.keras.Model(inputs=model.input, outputs=new_output_layer) ``` 4. **编译和训练**(替换为新数据集): ```python model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, epochs=..., validation_data=(x_val, y_val)) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值