Tailwind CSSTailwind CSS
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
Home
  • Tailwind CSS 书籍目录
  • Vue 3 开发实战指南
  • React 和 Next.js 学习
  • TypeScript
  • React开发框架书籍大纲
  • Shadcn学习大纲
  • Swift 编程语言:从入门到进阶
  • SwiftUI 学习指南
  • 函数式编程大纲
  • Swift 异步编程语言
  • Swift 协议化编程
  • SwiftUI MVVM 开发模式
  • SwiftUI 图表开发书籍
  • SwiftData
  • ArkTS编程语言:从入门到精通
  • 仓颉编程语言:从入门到精通
  • 鸿蒙手机客户端开发实战
  • WPF书籍
  • C#开发书籍
learn
  • Java编程语言
  • Kotlin 编程入门与实战
  • /python/outline.html
  • AI Agent
  • MCP (Model Context Protocol) 应用指南
  • 深度学习
  • 深度学习
  • 强化学习: 理论与实践
  • 扩散模型书籍
  • Agentic AI for Everyone
langchain
  • 第4章:卷积神经网络(CNN)

第4章:卷积神经网络(CNN)

经典CNN模型之LeNet与AlexNet

1. LeNet-5:卷积神经网络的先驱

背景与意义

  • 由Yann LeCun等人于1998年提出,最早成功应用于手写数字识别(MNIST数据集)
  • 奠定了CNN的基本架构:卷积层、池化层、全连接层的堆叠

核心结构

# 典型LeNet-5架构(简化版)
Input(32x32) → 
Conv1(6@5x5, stride=1) → AvgPool(2x2) → 
Conv2(16@5x5) → AvgPool(2x2) → 
FC(120) → FC(84) → Output(10)
  • 关键特点:
    • 使用平均池化(现多改用最大池化)
    • 激活函数为Sigmoid/Tanh(现代网络常用ReLU)
    • 参数量仅约60k(极轻量级)

历史局限性

  • 仅支持灰度小尺寸图像输入
  • 未采用现代正则化技术(如Dropout)

2. AlexNet:深度学习的里程碑

突破性贡献

  • 2012年ImageNet竞赛冠军(Top-5错误率15.3%,远超第二名26.2%)
  • 首次证明深度CNN在大规模图像识别中的有效性

创新设计

# AlexNet架构(双GPU实现版)
Input(227x227x3) → 
Conv1(96@11x11, stride=4) → MaxPool → LocalRespNorm → 
Conv2(256@5x5, pad=2) → MaxPool → LRN → 
Conv3(384@3x3, pad=1) → 
Conv4(384@3x3, pad=1) → 
Conv5(256@3x3, pad=1) → MaxPool → 
FC(4096) → Dropout → FC(4096) → Dropout → Output(1000)
  • 关键技术:
    • ReLU激活函数:解决梯度消失问题
    • Dropout:全连接层使用0.5丢弃率防止过拟合
    • 重叠池化(3x3窗口,stride=2)
    • 数据增强:随机裁剪、水平翻转、PCA颜色扰动

硬件依赖

  • 首次使用双GPU并行训练(受当时显存限制)
  • 参数量约60M,训练时间5-6天(GTX 580)

3. 对比分析与现代启示

特性LeNet-5AlexNet
输入尺寸32x32灰度227x227 RGB
参数量~60k~60M
激活函数Sigmoid/TanhReLU
正则化无Dropout + LRN
应用领域手写数字识别通用图像分类

后续影响

  • 推动GPU在深度学习中的普及
  • 启发VGG/ResNet等更深的网络设计
  • 证明大数据+深度模型的有效性范式

代码实践建议
使用PyTorch复现AlexNet时,现代实现通常会:

  • 移除LRN层(后续研究证明效果有限)
  • 将全连接层替换为卷积层(如FC→1x1 Conv)以适应可变输入尺寸
# 现代简化版AlexNet
model = nn.Sequential(
    nn.Conv2d(3, 96, 11, stride=4),
    nn.ReLU(),
    nn.MaxPool2d(3, stride=2),
    # ... 后续层省略
)

延伸阅读

  1. LeCun et al. 1998原始论文
  2. AlexNet论文《ImageNet Classification with Deep Convolutional Neural Networks》
  3. PyTorch官方AlexNet实现
Last Updated:: 5/20/25, 7:33 PM