Alex net解读

本文深入解读Alex Net,探讨其在深度学习中的奠基作用。Alex Net利用卷积神经网络进行图像分类,通过ReLU激活函数、GPU并行计算、dropout防止过拟合等创新技术,降低了计算复杂度并提高了模型性能。网络包含五个卷积层,参数共享减少参数数量,局部归一化提升泛化能力。此外,池化层和softmax分类器也是其关键组成部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


     alexnet在深度学习的发展中具有奠基意义,此文条理性总结论文ImageNet Classification with Deep Convolutional Neural Networks中的知识点,以供理解论文,也可做为学习cnn的参考。

    我们先对cnn(卷积神经网络)做一个简要的介绍,此地的卷积和数学中的卷积并不是一个概念,数学的的卷积是一种运算,有降维的功能,而此地的卷积更像是一种变换,或是过滤器,英文的filter、kernel、convolusion都指的是它。如果我们把卷积看成是一个具有池化、过滤功能的变换函数F,那么Alex net就是F(F(F(F(F(inputImage)))))这样一个复合函数,每一个函数的入参是上一层函数的处理结果,也就是featuremap,第一层的入参就是数据集中的图像。进一步来讲,以人类的视角,我们知道图像是图像,而计算机并没有图像的认知,对它而言,就是以宽、高、通道为维度的张量。

 

    我们可以将监督学习训练的前馈网络视为表示学习的一种形式。具体地,网络
的最后一层通常是线性分类器,如 softmax 回归分类器。网络的其余部分学习出该
分类器的表示。---花书 15章 序文 第四段


    这段话摘自花书,我们可以理解,卷积层所做的都是表示学习,也就是说它并不具有分类功能,真正将数据分类的是最后的分类器,Alex net采用了全连接,以全连接作为分类器,还有支持向量机、全局池化都可以作为分类器使用。对于分类器,我们可以这样理解,经过了卷积层的层层过滤、池化输入图像被变换成了一个维度一定的向量,比如4096维的向量,分类器,在Alex net就是全连接层,就是对这个高维向量的分类,4096维的空间超出人类感知,我们只知道三维的空间,分类器就相当于对空间的划分,对吧。
分类器:  全局池化、全连接(会丢失空间信息)、dropout
表示学习:  network in network、 Inception、resnet 等等,似乎很多架构设计都是在表示学习。

 

    按照原文中的顺序整理:


1、不饱和激活函数relu提高计算效率
    这是因为计算机计算指令,我们知道处理器是一个逻辑电路,它只能做加减乘除运算,对于指数、三角等复杂的函数它都是将函数表示成泰勒级数再去计算的,关于泰勒级数此地不做赘述,笔者大致计算,tanh的计算量大致是relu的几百倍,也就是说,计算一次tanh所消耗的计算资源,处理器所执行的指令数,是relu的几百倍。计算机指令周期*指令数=执行时间,tanh消耗的时间更长在计算机原理上的解释是这样的,cs231n也有提及用更简单的激活函数提高效率。


2、两个gpu
    这是一种分布式思想,或者是并行计算,这里边有一个限制就是上文提及的复合函数,每一层的计算是依赖于上一层的输出的,所以不能将层分开,一个gpu训练前两层,另一个训练后三层这样就不是并行计算了,它还会是串行的,效率不会有显著提高,也浪费了处理器的性能。Alex net的做法是按通道分布,两个gpu分别训练一半的featuremap,两个gpu同时处理同一层,这样就可以并行了。还有更细节的安排,详见原文。


3、dropout防止过拟合 没有dropout稳定过拟合
    我们可以明确,dropout是用于分类器全连接层的,卷积不会用,池化也不会用。它是一个正则化方法,用以避免过拟合。
    以支持向量机考虑,一个向量就是高维空间的一个点,如果神经元很多,分类就可以很精确,泛化能力就会变差,使用了dropout,降低神经元数量 相当于弱化分类器,增大分类在4096维空间的流形,dropout也是有度量的,如果drop太多的神经元也容易欠拟合。
    Bagging(bootstrap aggregating)是通过结合几个模型降低泛化误差的技术
(Breiman, 1994)。主要想法是分别训练几个不同的模型,然后让所有模型表决测
试样例的输出。这是机器学习中常规策略的一个例子,被称为 模型平均(model
averaging)。采用这种策略的技术被称为集成方法。
Dropout (Srivastava et al., 2014) 提供了正则化一大类模型的方法,计算方便
但功能强大。在第一种近似下,Dropout可以被认为是集成大量深层神经网络的实
用Bagging方法。Bagging涉及训练多个模型,并在每个测试样本上评估多个模型。
当每个模型都是一个很大的神经网络时,这似乎是不切实际的,因为训练和评估
这样的网络需要花费很多运行时间和内存。通常我们只能集成五至十个神经网络,
如Szegedy et al. (2014a)集成了六个神经网络赢得 ILSVRC,超过这个数量就会迅速
变得难以处理。Dropout提供了一种廉价的Bagging集成近似,能够训练和评估指数
级数量的神经网络。
这两段摘自花书7.11、 7.12  也就是说,dropout是把一个全连接拆分成多个,再用这多个求平均值,作为一个集成模型。

4、深度 宽度 容量
    CNN的容量由深度和宽度构成,深度是指层数,宽度指每一层的容量。
    深度增加比宽度增加具有更好的泛化性,这是一个公认的现象,但是没有人解释为什么,我们浅显的猜想,深度增加一层相当于加一层复合函数,而宽度增加相当于增加多项式,显然增加深度,增加复合函数层数更加复杂更具表现力。


5、与标准前馈网络相比 cnn参数明显更少   
      这个特性是基于参数共享,详见花书9.2

6、五个卷积层 少任意一层都会使结果更差 共八层 
    摸索 尝试 原文未提及理论依据是什么


7、受限于内存容量 训练时间
    事实证明,后来的resnet、Inception等等网络,深度都远远高于Alex net也取得了更高的准确率

8、局部归一化 relu不致于饱和 但是加入归一化有助于泛化能力
    正常的归一化是为了避免饱和,请参考tanh和sigmoid函数的图像,当输入大于1,很大很大时激活函数会很平,导数会趋近于0,梯度会消失。
    relu不会饱和,但是加入归一化有助于泛化能力,显然这也是基于实验的,没有人解释是为什么。


10、池化 有重复的池化错误率降低0.4%、0.3%,原文没有提供理论依据 使实验出来的  同时 重复池化更难过拟合


11、输出1000个类别 softmax归一化 最大似然概率
    
13、随机梯度下降 
    引入动量,递归计算避免鞍点和局部极值,损失函数会过早收敛,误差也会停止传播,训练就会失去意义。学习率太低收敛速率也会很低,太高就会在极值点徘徊振荡,不会收敛。Alex net选择的学习率是3倍缩小,每一次循环缩小三倍,直到终止。

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值