博客
关于我
重返高潮的CNN——AlexNet原理
阅读量:367 次
发布时间:2019-03-05

本文共 1301 字,大约阅读时间需要 4 分钟。

AlexNet——Alex和Hinton提出的深度学习框架,曾在2012年ImageNet LSVRC比赛中夺冠,成为深度学习领域的里程碑。该网络采用创新的设计理念,显著提升了计算效率和模型性能。

整体架构

AlexNet共包含8层,网络结构分为卷积层和全连接层。前五层为卷积层,后三层为全连接层。网络结构图展示了各层的连接关系。

卷积层设计

前两层的卷积层设计相似:

  • 第1层:输入图像尺寸为227×227×3,使用96个11×11×3的卷积核进行卷积计算。输出尺寸为55×55×48。ReLU激活函数后,经过最大重叠池化(3×3,stride=2),输出尺寸为27×27×48。池化后施加局部响应归一化(LRN)处理。
  • 第2层:使用第1层输出作为输入,增加2个像素的padding,使用256个5×5×48的卷积核进行滤波。
  • 后续卷积层(第3-5层)与前两层不同:

    • 第3层:384个3×3×256的卷积核,输出尺寸为55×55×192。
    • 第4层:与第3层结构相同。
    • 第5层:输出尺寸为6×6×256,使用最大池化(3×3,stride=2)。

    全连接层设计

    后三层全为全连接层,每层包含4096个神经元:

    • 第6层:使用6×6×256的卷积核,输出尺寸为1×1×4096,经过ReLU激活和Dropout处理。
    • 第7层:与第6层相同。
    • 第8层:输出为1000维的softmax输入,生成1000个类别概率。

    基本原理

    ReLU修正线性单元(Rectified Linear Unit)是AlexNet的核心激活函数。相比sigmoid函数,ReLU在训练过程中更具收敛性,且避免了梯度弥散和爆炸问题。ReLU函数图像显示其非饱和特性。

    梯度弥散与爆炸

    传统激活函数如sigmoid函数在深度网络中容易导致梯度弥散(前层梯度小、后层梯度大),影响训练效率。ReLU函数的线性特性有效缓解了这一问题。

    多GPU训练

    AlexNet采用并行训练策略,分为上下两部分运行。特定层(如第2、4、5层)在两个GPU之间通信,减少数据传输开销。

    局部响应归一化

    引入局部响应归一化(Local Response Normalization,LRN)层,借鉴神经生物学中的侧抑制机制。LRN通过局部归一化增强模型泛化能力,减少过拟合。

    过拟合防治

    AlexNet采用Dropout方法,在训练时随机屏蔽部分神经元,防止模型过度依赖局部特征。Dropout不仅减少过拟合,还提高了训练效率。

    数据增强

    数据增强主要包含以下内容:

  • 训练集:从256×256图像随机裁剪224×224块,类型包括镜像反射和随机裁剪,样本量扩展至2048倍。
  • 测试集:对每幅图像进行多次裁剪和翻转,生成10个样本,取平均值进行测试。
  • 此外,AlexNet还采用了对RGB通道进行主成分分析(PCA)的数据增强方法,通过随机变量增强特征多样性。

    总结

    AlexNet通过创新的网络结构和训练策略,开创了深度学习的新时代。其设计理念包括ReLU激活函数、最大池化、局部响应归一化以及多GPU并行训练等技术,为后续深度学习模型的发展奠定了重要基础。

    转载地址:http://ynlg.baihongyu.com/

    你可能感兴趣的文章
    openlayers 入门教程(四):layers 篇
    查看>>
    OpenLayers 项目分析(三)-OpenLayers中定制JavaScript内置类
    查看>>
    Openlayers下载与加载geoserver的wms服务显示地图
    查看>>
    Openlayers中使用Cluster+Overlay实现点击单个要素和聚合要素时显示不同弹窗
    查看>>
    Openlayers中使用Cluster实现点位元素重合时动态聚合与取消聚合
    查看>>
    Openlayers中使用Cluster实现缩放地图时图层聚合与取消聚合
    查看>>
    Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度)
    查看>>
    Openlayers中加载Geoserver切割的EPSG:900913离线瓦片图层组
    查看>>
    Openlayers中多图层遮挡时调整图层上下顺序
    查看>>
    Openlayers中将某个feature置于最上层
    查看>>
    Openlayers中点击地图获取坐标并输出
    查看>>
    Openlayers中设置定时绘制和清理直线图层
    查看>>
    Openlayers图文版实战,vue项目从0到1做基础配置
    查看>>
    Openlayers实战:modifystart、modifyend互动示例
    查看>>
    Openlayers实战:判断共享单车是否在电子围栏内
    查看>>
    Openlayers实战:加载Bing地图
    查看>>
    Openlayers实战:绘制图形,导出geojson文件
    查看>>
    Openlayers实战:绘制图形,导出KML文件
    查看>>
    Openlayers实战:绘制多边形,导出CSV文件
    查看>>
    Openlayers实战:绘制带箭头的线
    查看>>