Alex Net(ImageNet Classification with Deep Convolutional Neural Networks)

本文深入剖析了AlexNet模型的关键创新,包括ReLU激活函数、Dropout正则化技术、数据增强方法等,并详细介绍了其网络结构及各层的具体配置。

Alex Net

目录

参考:
  文章重点解析:【卷积神经网络-进化史】从LeNet到AlexNet
  模型框架分析:神经网络模型之AlexNet的一些总结
  全连接层解释:解释一下全连接层


Novel Idea

  • ReLU
  • Dropout
  • Dataset Augmentation

ReLU

Sigmoid 是常用的非线性激活函数,把输入的连续实值压缩到0和1之间。特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1.
但是它有一些致命的缺点:

  • Sigmoids saturate and kill gradients.
      sigmoid 有一个非常致命的缺点,当输入非常大或者非常小的时候,会有饱和现象,使神经元的梯度是接近于0。如果初始值很大,梯度在反向传播时因为需要乘上一个sigmoid 的导数,所以会变得越来越小,这会导致网络变的很难学习。
  • Sigmoid 的 output 不是0均值.
  •   这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。如果数据进入神经元的时候是正的: x>0elementwiseinf=wTx+b ,那么 w 计算出的梯度也会始终都是正的。

      当然,如果是按batch去训练,那么那个batch可能得到不同的信号,所以这个问题可以缓解一下。因此,非0均值这个问题虽然会产生一些不好的影响,不过跟上面提到的 kill gradients 问题相比还是要好很多。

    ReLU 的数学表达式如下:

    f(x)=max(0,x)

    很显然,从图左可以看出,输入信号<0时,输出都是0,>0 的情况下,输出等于输入。w 是二维的情况下,使用ReLU之后的效果如下:
    这里写图片描述

    Dropout

    结合预先训练好的许多不同模型来进行预测,是一种非常成功的减少测试误差的方式。但因为每个模型的训练都需要花好几天时间,因此这种做法不适用于大型神经网络。

    AlexNet 提出了一个非常有效的模型组合版本,它在训练中只需要花费两倍于单模型的时间。这种技术叫做Dropout:对每个隐层神经元都以0.5的概率将其输出设置为零。以这种方式“dropped out”的神经元既不参与前向传播,也不参与反向传播。

    所以每次输入一个样本,就相当于该神经网络就尝试了一个新的结构,但是所有这些结构之间又共享权重。因为神经元不能依赖于其他特定神经元而存在,所以这种技术降低了神经元复杂的互适应关系。

    正因如此,网络需要被迫学习更为稳定的特征,这些特征在结合其他神经元的一些不同随机子集时有用。在测试时,将所有神经元的输出都乘以0.5,对于获取指数级dropout网络产生的预测分布的几何平均值,这是一个合理的近似方法。

    Data Augmentation

    • 对256*256的原始图像进行随机crop,抽出224*224的块,并翻转
      • 将数据扩大了2048倍(32*32*2,32为256 - 224)
    • 对RGB信道进行扰动
      • 利用PCA得到的矩阵计算出特征值 pi 与特征向量 λi 并利用由 U(0,0.1) 产生的随机值 αi 进行扰动: Ixy=Ixy+[p1,p2,p3][α1λ1,α2λ2,α3λ3]T

    Analyse of the Architecture

    文中的架构如下:

    附公式:
    输入图片大小: W×W
    Filter大小: F×F
    步长: S
    卷积时填充的像素数:P

    N=WF+2PS+1

    • 第一层:
      Convolution:第一层图像大小为224*224*3,卷积核大小为11*11*3,数量为96,步长为4,用上述公式计算可得: 22411+2P4+1=55 ,可以得出在卷积前,对图像进行了填充的预处理,让图像大小变为228*228*3(原博客中为227*227*3,但是padding时对两侧同时增加两列零向量可能更直观)。输出为55*55*48(分为两个GPU)。
      ReLU、LRN(正则化)
      Max pooling:输入为55*55*48(对其中一个GPU分析),池化层大小为3*3,步长为2,经过处理后得到的图像大小为 5532+1=27 ,即27*27*48(两个GPU)。
    • 第二层:
      Convolution:输入图像大小为27*27*48,卷积核大小为5*5*48,数量为256,步长为1,用上述公式计算可得: 275+2P1+1=27 ,可以得出在卷积前,每幅像素层的左右两边和上下两边都要填充2个像素。输出为27*27*128(分为两个GPU)
      ReLU、LRN(正则化)
      Max pooling:输入为27*27*128(对其中一个GPU分析),池化层大小为3*3,步长为2,经过处理后得到的输出大小为 2732+1=13 ,即13*13*128(两个GPU)。
    • 第三层:
      Convolution:输入图像大小为13*13*128,卷积核大小为3*3*128,数量为384,步长为1,类似前述过程,经过填充(P = 1)用上述公式计算可得: 133+21+1=13 。输出为13*13*192(分为两个GPU)
      ReLU、LRN(正则化)
      Max pooling:该层没有进行池化,输出图像为13*13*192(两个GPU)
    • 第四层:
      Convolution:输入图像大小为13*13*192,卷积核大小为3*3*192,数量为384,步长为1,类似前述过程,经过填充(P = 1)用上述公式计算可得: 133+21+1=13 。输出为13*13*192(分为两个GPU)
      ReLU、LRN(正则化)
      Max pooling:该层没有进行池化
    • 第五层:
      Convolution:输入图像大小为13*13*192,卷积核大小为3*3*192,数量为256,步长为1,类似前述过程,经过填充(P = 1)用上述公式计算可得: 133+21+1=13 。输出为13*13*128(分为两个GPU)
      ReLU、LRN(正则化)
      Max pooling:输入为13*13*128(对其中一个GPU分析),池化层大小为3*3,步长为2,经过处理后得到的输出大小为 1332+1=6 ,即6*6*128(两个GPU)。
    • fc6(全连接层):
      输入图像为13*13*256(总共),经过4096个13*13*256大小的卷积核,最后得到的输出为1*1*4096。
    • fc7:
      输入为1*1*4096,经过4096个1*1*4096大小卷积核的卷积,得到1*1*4096的输出。
    • fc8:
      输入为1*1*4096,经过全连接,得到1000个神经元。

    Rest Part

    • 利用多GPU进行训练
    • 迭代池化(Overlapping Pooling)
    • 局部响应正则化(Local Response Normalization)
    • 参数模型调整:以0.01开始,每次除以10
代码下载地址: https://pan.quark.cn/s/bc087ffa872a "测控电路课后习题详解"文件.pdf是一份极具价值的学术资料,其中系统地阐述了测控电路的基础理论、系统构造、核心特性及其实际应用领域。 以下是对该文献的深入解读和系统梳理:1.1测控电路在测控系统中的核心功能测控电路在测控系统的整体架构中扮演着不可或缺的角色。 它承担着对传感器输出信号进行放大、滤除杂音、提取有效信息等关键任务,并且依据测量与控制的需求,执行必要的计算、处理与变换操作,最终输出能够驱动执行机构运作的指令信号。 测控电路作为测控系统中最具可塑性的部分,具备易于放大信号、转换模式、传输数据以及适应多样化应用场景的优势。 1.2决定测控电路精确度的关键要素影响测控电路精确度的核心要素包括:(1)噪声与干扰的存在;(2)失调现象与漂移效应,尤其是温度引起的漂移;(3)线性表现与保真度水平;(4)输入输出阻抗的特性影响。 在这些要素中,噪声干扰与失调漂移(含温度效应)是最为关键的因素,需要给予高度关注。 1.3测控电路的适应性表现测控电路在测控系统中展现出高度的适应性,具体表现在:* 具备选择特定信号、灵活实施各类转换以及进行信号处理与运算的能力* 实现模数转换与数模转换功能* 在直流与交流、电压与电流信号之间进行灵活转换* 在幅值、相位、频率与脉宽信号等不同参数间进行转换* 实现量程调整功能* 对信号实施多样化的处理与运算,如计算平均值、差值、峰值、绝对值,进行求导数、积分运算等,以及实现非线性环节的线性化处理、逻辑判断等操作1.4测量电路输入信号类型对电路结构设计的影响测量电路的输入信号类型对其电路结构设计产生显著影响。 依据传感器的类型差异,输入信号的形态也呈现多样性。 主要可分为...
神经网络(Neural Networks)是一种受生物神经元启发的计算模型,用于处理复杂的非线性数据建模任务。它们广泛应用于图像识别、语音识别、自然语言处理等领域。卷积神经网络(Convolutional Neural Networks, CNNs)则是神经网络的一种特殊类型,专为处理具有网格结构的数据设计,如图像。 如果你想深入了解神经网络和卷积神经网络,以下是一些经典的参考文献: 1. **《深度学习》(Deep Learning)** by Yoshua Bengio, Ian Goodfellow, and Aaron Courville - 这本书是深度学习领域的经典之作,其中包括了对神经网络和卷积神经网络的详细介绍以及实际应用案例。 2. **《ImageNet Classification with Deep Convolutional Neural Networks》** (ImageNet Classification with Deep Convolutional Neural Networks) - Alex Krizhevsky等人这篇论文介绍了AlexNet,第一个在大规模视觉识别挑战上取得突破的卷积神经网络架构。 3. **《卷积神经网络》(Convolutional Neural Networks)** 一书,作者可能是LeCun等,或Goodfellow的书籍中也有相关内容 - 这些资源深入剖析了卷积操作如何在神经网络中提高图像处理效率。 4. **《Python深度学习》(Deep Learning with Python)** - François Chollet的作品,涵盖了用Keras库构建包括卷积神经网络在内的各种深度学习模型的方法。 相关问题: 1. 卷积神经网络相比于普通神经网络的优势在哪里? 2. 如何选择合适的激活函数来增强神经网络的表现? 3. 在实践中,如何避免卷积神经网络中的过拟合问题?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值