AlexNet:图像分类领域的里程碑网络及其创新剖析

文章目录

  • 前言
  • AlexNet
    • 一、网络的背景
    • 二、网络结构
    • 三、网络的创新
      • 3.1 首次使用GPU训练网络
      • 3.2 使用Relu激活函数
        • 3.2.1 sigmoid激活函数和tanh激活函数
          • 3.2.1.1 sigmoid激活函数
          • 3.2.1.2 tanh激活函数
      • 3.3 Relu激活函数
      • 3.4 使用LRN局部响应归一化(已弃用)
        • 3.4.1 LRN的定义与起源
        • 3.4.2 局部归一化的动机——侧抑制思想
        • 3.4.3 LRN的主要思想及操作过程
        • 3.4.4 LRN的公式及参数说明
        • 3.4.5 LRN的现状
      • 3.5 在全连接层加入Dropout
        • 3.5.1 AlexNet中Dropout的使用情况
        • 3.5.2 Dropout解决过拟合的原因
  • 四、代码示例
  • 总结


前言

在当今蓬勃发展的图像分类领域,深度学习正以前所未有的速度推动着技术的进步。而在众多深度学习网络中,AlexNet宛如一颗璀璨的明星,闪耀着里程碑式的光芒。ImageNet大规模视觉挑战赛(ILSVRC)作为该领域研究进展的重要标杆,见证了无数网络的角逐与竞争。2012年,AlexNet凭借其卓越的性能在ILSVRC大赛中脱颖而出,以高出第二名10%的显著优势夺冠,将图像分类的准确率从传统的70%多大幅提升到80%多,引发了深度学习的浪潮。本文将深入剖析AlexNet网络,从其诞生背景入手,详细介绍其网络结构,并着重探讨它在多个方面的创新之处,带您领略这一经典网络的独特魅力和深远影响。


AlexNet

一、网络的背景

在图像分类领域,ImageNet大规模视觉挑战赛(ILSVRC,即 ImageNet Large Scale Visual Recognition Challenge)是深度学习在图像分类任务研究方面进展的标杆。

AlexNet网络参加了 ILSVRC 2012 年大赛,以高出第二名 10% 的性能优势取得冠军,将传统 70% 多的准确率提升到 80% 多。它由 2012 年 ImageNet 竞赛冠军获得者 Hinton 和他的学生 Alex Krizhevsky 设计。之后,更多更深的神经网络被提出,掀起了一波深度学习的浪潮,是一个具有里程碑意义的网络。

论文地址
NIPS-2012-imagenet-classification-with-deep-convolutional-neural-networks-Paper.pdf


二、网络结构

网络结构的图,如下图所示:
在这里插入图片描述


三、网络的创新

3.1 首次使用GPU训练网络

AlexNet首次运用CUDA加速深度卷积网络训练,借助GPU强大的并行计算能力处理神经网络训练中的大量矩阵运算。训练采用两块GTX 580 GPU,但单块GTX 580仅有3GB显存,限制了可训练网络的最大规模。为此,作者将AlexNet分布于两个GPU上,让每个GPU显存存储一半神经元的参数。

由于GPU之间通信便捷,可直接互相访问显存,无需经过主机内存,因此多块GPU同时使用十分高效。此外,AlexNet在设计上使GPU之间仅在网络的部分层进行通信,从而控制了通信带来的性能损耗。


3.2 使用Relu激活函数

在Relu激活函数被提出前,非线性激活函数主要是sigmoid激活函数和tanh激活函数。因此,在介绍Relu激活函数的优势前,需要先了解这两种激活函数。


3.2.1 sigmoid激活函数和tanh激活函数
3.2.1.1 sigmoid激活函数

sigmoid激活函数是一种非常受欢迎的神经网络激活函数,它将函数的输入转换成介于0.0和1.0之间的值,大于1.0的输入被转换为1.0,小于0.0的值被截断为0.0。所有可能输入对应的函数形状呈现从0到0.5再到1.0的S形。在很长一段时间里,直到20世纪90年代早期,它是神经网络的默认激活方式。其表达式为:

s i g m o i d ( x ) = 1 1 + e − x sigmoid(x)=\frac{1}{1 + e^{-x}} sigmoid(x)=1+ex1

sigmoid激活函数的输出不是零中心的(Zero - centered),这会导致优化的效率十分低下。不过,它天然适合做概率值处理,例如用于LSTM中的门控制。


3.2.1.2 tanh激活函数

tanh激活函数是一种形状类似的非线性激活函数,输出值介于 - 1.0和1.0之间。在20世纪90年代后期和21世纪初期,由于使用tanh函数的模型更容易训练,而且往往具有更好的预测性能,因此tanh函数比sigmoid激活函数更受青睐。其表达式为:

t a n h ( x ) = s i n h x c o s h x = e x − e − x e x + e − x tanh(x)=\frac{sinhx}{coshx}=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} tanh(x)=coshxsinhx=ex+exexex


3.3 Relu激活函数

Relu激活函数相较于sigmoid激活函数和tanh激活函数具有显著优势:
在这里插入图片描述

  • 计算效率高:sigmoid等函数在计算激活值时需进行指数运算,计算量较大;在反向传播求误差梯度时,求导涉及除法,计算量也相对大。而Relu激活函数能大幅节省整个过程的计算量。
  • 避免信息丢失:sigmoid激活函数和tanh激活函数在接近饱和区时,函数变换缓慢,导数趋于0,会造成信息丢失,进而无法完成深层网络的训练。Relu激活函数则不存在这一问题。

在AlexNet神经网络中,全部使用Relu作为激活函数。


3.4 使用LRN局部响应归一化(已弃用)

3.4.1 LRN的定义与起源

LRN(局部响应归一化)最早在AlexNet中被提出,其目的是对卷积(即ReLU激活函数输出)的值进行局部归一化。


3.4.2 局部归一化的动机——侧抑制思想

在神经生物学中,存在“侧抑制(lateral inhibition)”的概念,即被激活的神经元会抑制其周围的神经元。而归一化的目的也是“抑制”,LRN正是借鉴了“侧抑制”的思想来实现局部抑制。当使用ReLU激活函数时,这种局部抑制效果显著。


3.4.3 LRN的主要思想及操作过程

LRN的主要思想是在神经元输出的局部范围内进行归一化操作。通过这种方式,降低激活值较大的神经元对后续神经元的影响,进而减少梯度消失和梯度爆炸的问题。
具体操作如下:对于每个神经元,LRN会先将其输出在局部范围内进行加权平均,接着将加权平均值除以一个尺度因子(通常为2),最后对结果取平方根并减去均值,从而得到归一化后的输出。


3.4.4 LRN的公式及参数说明

在这里插入图片描述

LRN的公式中涉及以下参数:

  • x i , j , k , l x_{i,j,k,l} xi,j,k,l:输入张量的元素。
  • N N N:通道数。
  • n n n:LRN的窗口大小。
  • α \alpha α β \beta β k k k:超参数,用于调整归一化的强度。

3.4.5 LRN的现状

由于在2015年,“Very Deep Convolutional Networks for Large - Scale Image Recognition”指出LRN方法作用不大,因此这里不再对其参数进行详细介绍和举例,仅需了解它是早期用于归一化的一种解决方案。目前,后续提出的批量归一化(Batch Normalization)概念更具说服力,归一化几乎都采用BatchNorm方法来实现。


3.5 在全连接层加入Dropout

3.5.1 AlexNet中Dropout的使用情况
  • 使用位置:在AlexNet中,最后2个全连接层使用了Dropout。原因是全连接层容易过拟合,而卷积层不容易过拟合。需要注意的是,Dropout并非本论文首次提出。
  • 参数设置与实现方式:AlexNet设置的dropout参数为0.5,采用的是 Scale at Training 的 Dropout 实现方式。
    • 训练阶段:在前向传播过程中,随机将一部分神经元的输出置为零,以此实现Dropout。
    • 测试阶段:不再使用Dropout,而是在训练时的基础上将权重按照训练时的概率进行缩放,以保证一致性。

3.5.2 Dropout解决过拟合的原因
  • 减少过拟合:在标准神经网络中,网络可能过度依赖特定神经元,从而导致对训练数据的过拟合。Dropout通过随机丢弃神经元,迫使网络学习对任何单个神经元变化都更具鲁棒性的特征表示,进而减少对训练数据的过度拟合。
  • 取平均的作用:训练过程中,每次丢弃随机的神经元,使得每次前向传播相当于训练不同的子网络。测试阶段不再进行Dropout,保留所有权重,网络结构变得完整。这相当于在多个不同子网络中进行训练,最终的预测结果是对这些子网络输出的平均。这种“综合取平均”的策略有助于减轻过拟合,因为一些互为反向的拟合会相互抵消。

四、代码示例

代码下载:AlexNet.7z


总结

本文围绕AlexNet这一在图像分类领域具有里程碑意义的网络展开了全面且深入的分析。首先介绍了AlexNet的诞生背景,它在2012年ILSVRC大赛中的优异表现为深度学习的发展拉开了新的序幕。接着展示了其网络结构,让读者对该网络有直观的认识。随后重点阐述了AlexNet的创新之处,包括首次使用GPU训练网络,借助GPU的并行计算能力高效处理矩阵运算;采用Relu激活函数,克服了传统sigmoid和tanh激活函数的不足,提高了计算效率并避免信息丢失;提出LRN局部响应归一化(虽已弃用,但为后续归一化方法提供了思路);在全连接层加入Dropout,有效解决了过拟合问题。尽管随着技术的发展,一些方法已被更先进的技术所取代,但AlexNet的创新理念和方法为后续深度学习网络的发展奠定了坚实的基础,其在图像分类领域的贡献不可磨灭。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87385.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87385.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS性能调优实践:结合KeyMob等多个工具提升应用稳定性与流畅度

在iOS应用开发中,性能问题往往难以通过单一工具轻松解决。尤其是当App面临用户反馈的流畅度差、卡顿严重、内存泄漏等问题时,开发者需要依靠多种工具的组合,才能有效地排查和优化性能瓶颈。 在我们最近的一个项目中,开发团队在处…

球形波方程的推导与解法

题目 问题 6. 一个球形波是三维波动方程的解,形式为 u ( r , t ) u(r,t) u(r,t),其中 r r r 是到原点的距离(球坐标)。波动方程的形式为: u t t = c 2 ( u r r + 2 r u r ) (球形波方程) . u_{tt} = c^{2} \left( u_{rr} + \frac{2}{r} u_{r} \right) \quad \text{(球形…

自动打电话软件设计与实现

文章目录 方案概述实现代码1. 安装必要的库2. 主程序代码3. HTML模板 (templates/index.html) 功能说明部署说明扩展功能建议注意事项 方案概述 使用Twilio的API进行电话呼叫实现基本的呼叫逻辑添加简单的用户界面 实现代码 1. 安装必要的库 pip install twilio flask2. 主…

RedissonLock源代码分析与锁应用

文章目录 前言一、RedissonLock源代码分析1.1 尝试加锁2.2 解锁 二、锁业务应用1.服务层方法注解方式 注入锁1.1 定义DistributedLock 注解类1.2 定义DistributedLockAspect 切片类1.3 尝试获取锁代码片断1.4 释放锁代码片断1.5 服务层注入锁注解 2.代码行加锁2.1 pom.xml文件引…

深入理解mysql索引

一、什么是索引? 索引(Index) 是数据库管理系统中一种特殊的数据结构,存储在磁盘上。它包含对数据表中一列或多列的值进行排序,并存储了指向表中实际数据行物理位置或主键值的引用指针。可以把它类比为书籍的目录&…

VMware vSphere Foundation 9.0 技术手册 —— Ⅰ 安装 ESXi 9.0 (虚拟机)

目录 1. 安装 ESXi 9.0 (虚拟机)(1)ESXi Standard Boot Menu(2)ESXi 安装导向(3)最终用户许可协议(4)选择系统盘(5)选择键盘类型(6)设…

UE5 游戏模板 —— TopDownGame 俯视角游戏

UE5 游戏模板 —— TopDownGame 俯视角游戏 前言一、模块导入二、TopDownGameMode三、TopDownPlayerController1、构造函数2、SetupInputComponent初始化新输入系统处理输入逻辑 四、TopDownCharacter五、射线检测总结 前言 上一篇文章介绍了一下PuzzleGame模板的流程&#xf…

基于深度学习的智能图像分割系统:技术与实践

前言 图像分割是计算机视觉领域中的一个核心任务,其目标是将图像划分为多个有意义的区域或对象。图像分割在医学影像分析、自动驾驶、安防监控等多个领域有着广泛的应用。近年来,深度学习技术,尤其是卷积神经网络(CNN)…

【学习笔记】2.2 Encoder-Decoder

参考资料:https://github.com/datawhalechina/happy-llm 在 Transformer 中,使用注意力机制的是其两个核心组件——Encoder(编码器)和 Decoder(解码器)。 2.2.1 Seq2Seq 模型 Seq2Seq(序列到…

# 材料力学押题

材料力学押题 文章目录 材料力学押题第一题第二题组合变形弯曲变形 第一题 Q 求力作用的销钉位置的竖直偏移距离。 S 方法一:能量方法 材料应变能计算为: U ∫ 内力 2 2 刚度 d A U\int \frac{\text{内力}^2}{2\times 刚度}\text{d}A U∫2刚度内力2​dA 克拉珀龙原理&…

uniapp项目之小兔鲜儿小程序商城(一) 项目介绍,技术栈,小程序的基础架构,封装拦截器和请求函数

文章目录 一.项目介绍和前置内容1.重要链接2.技术栈 二.创建uniapp项目1.使用HBuilderX创建2.使用命令行创建3.如何使用vscode开发uniapp项目?step1:把项目拉入vscode,开始下相关插件step2:ts类型校验step3:设置json文件可以允许注释 4.pages.json文件的作用是什么?5.示例:在…

Uniapp H5端SEO优化全攻略:提升搜索引擎排名与流量

在移动互联网时代,H5页面因其跨平台、低成本、易传播的特性,成为许多企业的首选。Uniapp作为一款优秀的前端跨端开发框架,能够快速开发H5、小程序、App等多端应用。然而,由于Uniapp默认采用SPA(单页应用)架…

一[3.3]、ubuntu18.04环境 利用 yolov8 实现列车轨道检测,并提取正确的轨道线【全网最详细】

一、参考文献 https://blog.csdn.net/u010117029/category_12977729.html 一[3.2]、ubuntu18.04环境 利用 yolov8 训练开源列车数据集,并实现列车轨道检测【全网最详细】-CSDN博客 火车轨道铁路轨道检测识别(附带Python源码+详细解析)_轨道点云提取铁轨代码-CSDN博客

pp-ocrv5中的改进-跨阶段特征融合(CSP-PAN)以及在 Neck 部分引入 CSP-PAN后为何就能解决小文本漏检问题?

好的,我们来详细解析一下 PP-OCRv5 中的**跨阶段特征融合(CSP-PAN)**改进,以及它如何有效解决小文本漏检问题。 背景:PP-OCR 的 Neck 部分与 PAN 在 PP-OCRv3 及之前的版本中,Neck 部分使用的是标准的 **…

【数据分析四:Data Preprocessing】数据预处理

一、数据预处理 直接收集的数据通常是“脏的”: 不完整、不准确、不一致 数据预处理是进行大数据的分析和挖掘的工作中占工作量最大的一个步骤(80%) 二、处理缺失值 处理缺失数据的方法:首先确认缺失数据的影响 数据删除&#x…

一起来入门深度学习知识体系

前言 什么是深度学习?它有什么魔力? 想象一个机器人能识别人脸、写诗、翻译语言、甚至和你聊天。它是怎么学会这些能力的?答案正是——深度学习(Deep Learning)。 简单来说,深度学习就像是教会一台计算机…

Prompt+Agent+LLM:半导体炉管设备健康评估的落地实战

引言 在高端制造业的核心场景中,设备健康管理正面临前所未有的挑战。以半导体制造为例,一台价值数百万美元的炉管设备意外停机,可能导致整条产线瘫痪、晶圆批次报废,单日损失可达千万级。传统基于阈值规则的监控系统难以捕捉早期…

PostgreSQL的扩展bloom

PostgreSQL的扩展bloom 一、扩展概述 bloom 是 PostgreSQL 提供的一个基于**布隆过滤器(Bloom Filter)**的索引扩展,特别适合多列任意组合查询的优化场景。 二、核心特性 特性描述优势多列索引单索引支持多列组合减少索引数量模糊匹配高效处理和IN查询优于B-tre…

算法与数据结构学习之旅:从入门到进阶

在计算机科学的浩瀚宇宙中,算法与数据结构如同闪耀的恒星,驱动着整个程序世界的运转。无论是手机上流畅运行的 APP,还是搜索引擎瞬间返回的海量结果,背后都离不开算法与数据结构的精妙设计。对于想要深入探索计算机领域的开发者和…

C++map和set类(简介)

文章目录 一、关联式容器二、键值对三、树形结构的关联式容器3.1 set类的简介3.2 set的接口3.2.1 set的模版参数列表3.2.2 set的构造3.2.3 set的迭代器3.2.4 set的容量3.2.5 set的修改操作 3.3 set的使用案例3.4 multiset类的介绍3.5 multiset的使用案例3.6 map类的简介3.7 map…