Navigation

    Gpushare.com

    • Register
    • Login
    • Search
    • Popular
    • Categories
    • Recent
    • Tags

    AlexNet论文阅读

    语音识别与语义处理领域
    1
    1
    44
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 155****7220
      155****7220 last edited by

      论文下载

      这篇论文的背景作者在参加2010年的ILSVRC比赛,取得了冠军


      摘要主要介绍了其神经网络的结构——5个卷积层(每个卷积层(convolutional layersconvolutional\ layersconvolutional layers)后面都跟有池化层(max−pooling layersmax-pooling\ layersmax−pooling layers))和三个全连接层,最后是一个1000维的softmax。然后作者还提到一个比较有意思的想法:“为了避免全连接层的过拟合,我们采用一种名为dropoutdropoutdropout的正则化方法”

      引言和数据集的部分都不重要,这里就略过了


      第三部分开始简略介绍了AlexNet的架构,其实就和摘要说的是一样,然后作者说他会把他网络中新奇的点接下来按照重要程度(重->轻)依次说明


      首先作者认为他网络最重要的部分是激励函数的选取。传统的激励函数是tanh(x)tanh(x)tanh(x),他认为tanh(x)tanh(x)tanh(x)模型收敛太慢,所以改用收敛更快的**ReluReluRelu函数**,右边的图中虚线是tanh(x)tanh(x)tanh(x)函数,实线是ReluReluRelu函数。使用ReluReluRelu的四层神经网络比tanhtanhtanh在达到25%的误差时快6倍


      接着作者认为他们多CPU并行计算很重要,这一块主要是硬件,我个人感觉不是很重要,所以略过


      局部响应归一化。“Relu不需要将输入层的数据进行归一化防止其饱和”(这里我暂时不是很懂,先放一放)


      重叠池化。传统池化的窗口大小z∗zz*zz∗z中的zzz等于池化的步长sss。作者设置$z<s$,这样每次滑动窗口的时候,总有一部分是重叠的(这次池化窗口的内容包含部分上次池化窗口的内容)。与重叠相比,两者的输出维度是相同的,但是采用重叠池化更难过拟合。关于重叠池化,当时作者提出来可能还算比较新颖,但其实目前(到2019年)大部分CNN都用的这种方法



      整体架构。文章中GPU部分我就直接略过了,直接看这个图很好理解。

      第1卷积层使用96个核对224 × 224 × 3的输入图像进行卷积,核的大小是11 × 11 × 3,步长是4

      第2卷积层使用用第1卷积层的输出(响应归一化和池化)作为输入,并使用256个核进行卷积,核的大小是5 × 5 × 48

      第3,4,5卷积层互相连接,中间没有接入池化层或归一化层

      第3卷积层有384个核,核大小为3 × 3 × 256,与第2卷积层的输出(归一化的,池化的)相连

      第4卷积层有384个核,核大小为3 × 3 × 192

      第5卷积层有256个核,核大小为3 × 3 × 192

      每个全连接层有4096个神经元

      最后一层输出是一个softmax,用于产生1000类标签的概率


      减少过拟合



      数据增强。原本一张图是256 × 256的,但是作者把一张图当作十张图来用。在测试时,网络会提取5个224 × 224的图像块(四个角上的图像块和中心的图像块)和它们的水平翻转(因此总共10个图像块)进行预测,然后对网络在10个图像块上的softmax层进行平均。

      第二种数据增强的方法包括改变训练图像的RGB通道的强度。具体地说就是,对整个ImageNet训练集上对RGB像素值集合执行PCA(降维),之后对于每个训练图像,添加多个找到的主成分,其大小与相应的特征值成正比,乘以一个随机变量,这个随机变量服从高斯分布,平均值为零,标准差为0.1。因此对于每幅RGB图像像素Ixy=[IxyR,IxyG,IxyB]TI_xy = [I^R_{xy} , I^G_{xy} , I^B_{xy} ]^TIx​y=[IxyR​,IxyG​,IxyB​]T,加上下面的数量:
      $$
      [p_1, p_2, p_3][\alpha_1\lambda_1, \alpha_2\lambda_2, \alpha_3\lambda_3]^T
      $$
      pip_ipi​、λi\lambda_iλi​分别是RGB像素值3 × 3协方差矩阵的第iii个特征向量和特征值,αiα_iαi​是前面提到的随机变量。对于某个训练图像的所有像素,每个αiα_iαi​只获取一次,直到图像进行下一次训练时才重新获取。这个方案近似抓住了自然图像的一个重要特性,即光照的颜色和强度发生变化时,目标身份是不变的


      失活。“以0.5的概率对每个隐层神经元的输出设为0。那些“失活的”的神经元不再进行前向传播并且不参与反向传播。因此每次输入时,神经网络会采样一个不同的架构,但所有架构共享权重。这个技术减少了复杂的神经元互适应,因为一个神经元不能依赖特定的其它神经元的存在。因此,神经元被强迫学习更鲁棒的特征,它在与许多不同的其它神经元的随机子集结合时是有用的。在测试时,我们使用所有的神经元,但将它们的输出乘以0.5,对指数级的许多失活网络的预测分布进行几何平均,这是一种合理的近似。”



      学习细节。作者使用的梯度下降模型是SGD,batch size为128,动量(momentum)为0.9,权重衰减为0.0005,权重www的更新规则是
      $$
      v_{i+1} := 0.9 · v_i - 0.0005 · \varepsilon · w_i - \varepsilon · \langle \frac{\partial L} {\partial w} |{w_i}\rangle {D_i} \
      w
      {i+1} := w_i + v
      {i + 1}
      $$
      iii是迭代索引,vvv是动量变量,εεε是学习率(learning rate),⟨∂L∂w∣wi⟩Di\langle \frac{\partial L} {\partial w} |_{w_i}\rangle _{D_i}⟨∂w∂L​∣wi​​⟩Di​​是目标函数对www,在wiw_iwi​上的第iii批微分DiD_iDi​的平均

      “我们使用均值为0,标准差为0.01的高斯分布对每一层的权重进行初始化。我们在第2,4,5卷积层和全连接层将神经元偏置(biases)初始化为常量1。这个初始化通过为ReLU提供正输入加速了早期的学习阶段。我们在剩下的层将神经元偏置初始化为0”

      以上就是这篇论文的重点部分

      1 Reply Last reply Reply Quote 1
      • First post
        Last post