【机器学习】CNN的基本架构模块



🌈个人主页: 鑫宝Code
🔥热门专栏: 闲话杂谈炫酷HTML | JavaScript基础

💫个人格言: "如无必要,勿增实体"


文章目录

  • CNN的基本架构模块
    • [1. 引言](#1. 引言)
    • [2. 卷积层](#2. 卷积层)
      • [2.1 基本原理](#2.1 基本原理)
      • [2.2 卷积层的特性](#2.2 卷积层的特性)
      • [2.3 卷积层的超参数](#2.3 卷积层的超参数)
      • [2.4 输出大小计算](#2.4 输出大小计算)
    • [3. 池化层](#3. 池化层)
      • [3.1 目的和作用](#3.1 目的和作用)
      • [3.2 常见的池化方法](#3.2 常见的池化方法)
      • [3.3 池化层的超参数](#3.3 池化层的超参数)
    • [4. 激活函数](#4. 激活函数)
      • [4.1 作用](#4.1 作用)
      • [4.2 常用的激活函数](#4.2 常用的激活函数)
      • [4.3 激活函数的选择](#4.3 激活函数的选择)
    • [5. 全连接层](#5. 全连接层)
      • [5.1 作用](#5.1 作用)
      • [5.2 数学表示](#5.2 数学表示)
      • [5.3 特点](#5.3 特点)
    • [6. Dropout层](#6. Dropout层)
      • [6.1 原理](#6.1 原理)
      • [6.2 数学表示](#6.2 数学表示)
    • [7. 批归一化层(Batch Normalization)](#7. 批归一化层(Batch Normalization))
      • [7.1 目的](#7.1 目的)
      • [7.2 数学表示](#7.2 数学表示)
    • [8. 残差连接(Residual Connection)](#8. 残差连接(Residual Connection))
      • [8.1 动机](#8.1 动机)
      • [8.2 数学表示](#8.2 数学表示)
    • [9. 注意力机制(Attention Mechanism)](#9. 注意力机制(Attention Mechanism))
      • [9.1 原理](#9.1 原理)
      • [9.2 自注意力(Self-Attention)](#9.2 自注意力(Self-Attention))
    • [10. 高级CNN架构](#10. 高级CNN架构)
      • [10.1 Inception模块](#10.1 Inception模块)
      • [10.2 DenseNet](#10.2 DenseNet)
      • [10.3 SENet(Squeeze-and-Excitation Network)](#10.3 SENet(Squeeze-and-Excitation Network))
    • [11. 结论](#11. 结论)

CNN的基本架构模块

1. 引言

卷积神经网络(Convolutional Neural Network,CNN)是深度学习中一种强大的神经网络架构,特别适用于处理具有网格状拓扑结构的数据,如图像和时间序列。CNN的成功源于其独特的架构设计,包含了多个精心设计的基本模块。本文将详细介绍CNN的基本架构模块,包括卷积层、池化层、激活函数、全连接层等,以及一些高级组件和优化技术。

2. 卷积层

2.1 基本原理

卷积层是CNN的核心组件,负责提取输入数据的局部特征。卷积操作可以表示为:

( f ∗ g ) ( t ) = ∫ − ∞ ∞ f ( τ ) g ( t − τ ) d τ (f * g)(t) = \int_{-\infty}^{\infty} f(\tau)g(t-\tau)d\tau (f∗g)(t)=∫−∞∞f(τ)g(t−τ)dτ

在离散情况下,二维卷积可以表示为:

( I ∗ K ) ( i , j ) = ∑ m ∑ n I ( m , n ) K ( i − m , j − n ) (I * K)(i,j) = \sum_{m}\sum_{n} I(m,n)K(i-m,j-n) (I∗K)(i,j)=m∑n∑I(m,n)K(i−m,j−n)

其中, I I I是输入, K K K是卷积核(或称为滤波器)。

2.2 卷积层的特性

  1. 局部连接:每个神经元只与输入数据的一个局部区域相连。
  2. 权值共享:同一个特征图内的神经元共享相同的权重。
  3. 平移不变性:卷积操作对输入的平移具有不变性。

2.3 卷积层的超参数

  • 卷积核大小:常见的有3x3,5x5等。
  • 步长(Stride):控制卷积核移动的步长。
  • 填充(Padding):在输入周围添加额外的像素。

2.4 输出大小计算

对于输入大小为 W × H W \times H W×H,卷积核大小为 F × F F \times F F×F,步长为 S S S,填充为 P P P 的卷积层,输出大小为:

O W = W − F + 2 P S + 1 , O H = H − F + 2 P S + 1 O_W = \frac{W - F + 2P}{S} + 1, \quad O_H = \frac{H - F + 2P}{S} + 1 OW=SW−F+2P+1,OH=SH−F+2P+1

3. 池化层

3.1 目的和作用

池化层用于降低特征图的空间分辨率,减少参数数量和计算量,同时提高模型对小的位移和失真的鲁棒性。

3.2 常见的池化方法

  1. 最大池化(Max Pooling)
    y i j = max ⁡ ( a , b ) ∈ R i j x a b y_{ij} = \max_{(a,b)\in R_{ij}} x_{ab} yij=(a,b)∈Rijmaxxab

  2. 平均池化(Average Pooling)
    y i j = 1 ∣ R i j ∣ ∑ ( a , b ) ∈ R i j x a b y_{ij} = \frac{1}{|R_{ij}|} \sum_{(a,b)\in R_{ij}} x_{ab} yij=∣Rij∣1(a,b)∈Rij∑xab

其中, R i j R_{ij} Rij表示池化窗口, ∣ R i j ∣ |R_{ij}| ∣Rij∣是窗口中元素的数量。

3.3 池化层的超参数

  • 池化窗口大小:常见的有2x2,3x3等。
  • 步长:通常与窗口大小相同,以避免重叠。

4. 激活函数

4.1 作用

激活函数引入非线性,增强网络的表达能力。

4.2 常用的激活函数

  1. ReLU (Rectified Linear Unit)
    f ( x ) = max ⁡ ( 0 , x ) f(x) = \max(0, x) f(x)=max(0,x)

  2. Sigmoid
    f ( x ) = 1 1 + e − x f(x) = \frac{1}{1 + e^{-x}} f(x)=1+e−x1

  3. Tanh
    f ( x ) = e x − e − x e x + e − x f(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} f(x)=ex+e−xex−e−x

  4. Leaky ReLU
    f ( x ) = { x , if x > 0 α x , otherwise f(x) = \begin{cases} x, & \text{if } x > 0 \\ \alpha x, & \text{otherwise} \end{cases} f(x)={x,αx,if x>0otherwise

    其中 α \alpha α 是一个小的正常数。

4.3 激活函数的选择

  • ReLU 是目前最常用的激活函数,因为它计算简单,能缓解梯度消失问题。
  • Sigmoid 和 Tanh 在某些特定任务中仍有应用,如二分类问题。
  • Leaky ReLU 等变体旨在解决 ReLU 的"死亡 ReLU"问题。

5. 全连接层

5.1 作用

全连接层通常位于CNN的末端,用于将学到的特征映射到样本标记空间。

5.2 数学表示

全连接层的操作可以表示为:

y = f ( W x + b ) y = f(Wx + b) y=f(Wx+b)

其中, W W W 是权重矩阵, b b b 是偏置向量, f f f 是激活函数。

5.3 特点

  • 参数数量大,易导致过拟合。
  • 可以学习特征的全局组合。

6. Dropout层

6.1 原理

Dropout是一种正则化技术,在训练过程中随机"丢弃"一部分神经元,防止过拟合。

6.2 数学表示

对于dropout率为 p p p 的层,其输出可表示为:

y = f ( r ∗ ( W x + b ) ) / ( 1 − p ) y = f(r * (Wx + b)) / (1-p) y=f(r∗(Wx+b))/(1−p)

其中, r r r 是一个由0和1组成的随机二元掩码,1的概率为 1 − p 1-p 1−p。

7. 批归一化层(Batch Normalization)

7.1 目的

批归一化通过标准化每一层的输入来加速训练过程,提高模型的稳定性。

7.2 数学表示

对于输入 x x x,批归一化的操作为:

y = γ x − μ B σ B 2 + ϵ + β y = \gamma \frac{x - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} + \beta y=γσB2+ϵ x−μB+β

其中, μ B \mu_B μB 和 σ B 2 \sigma_B^2 σB2 分别是批次的均值和方差, γ \gamma γ 和 β \beta β 是可学习的参数, ϵ \epsilon ϵ 是一个小常数。

8. 残差连接(Residual Connection)

8.1 动机

残差连接解决了深层网络的梯度消失问题,使得训练更深的网络成为可能。

8.2 数学表示

对于输入 x x x,残差块的输出为:

y = F ( x ) + x y = F(x) + x y=F(x)+x

其中, F ( x ) F(x) F(x) 是残差函数,通常由几个卷积层组成。

9. 注意力机制(Attention Mechanism)

9.1 原理

注意力机制允许模型在处理输入时关注最相关的部分,提高模型的性能。

9.2 自注意力(Self-Attention)

自注意力机制的计算过程可以表示为:

Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V

其中, Q Q Q、 K K K、 V V V 分别是查询、键和值矩阵, d k d_k dk 是键的维度。

10. 高级CNN架构

10.1 Inception模块

Inception模块并行使用不同大小的卷积核,以捕获不同尺度的特征。

10.2 DenseNet

DenseNet通过密集连接提高了特征的重用,减少了参数数量。

10.3 SENet(Squeeze-and-Excitation Network)

SENet引入了通道注意力机制,自适应地调整特征通道的重要性。

11. 结论

CNN的基本架构模块是深度学习在计算机视觉领域取得巨大成功的关键。从最基本的卷积层和池化层,到高级的残差连接和注意力机制,每个组件都在不断演进,以提高模型的性能和效率。理解这些基本模块及其工作原理,对于设计和优化CNN模型至关重要。

随着研究的深入,我们可以期待看到更多创新的架构组件出现,进一步推动CNN在各个领域的应用和发展。同时,如何有效地组合这些模块以构建高效、鲁棒的网络架构,仍然是一个值得深入研究的方向。未来,自动化神经架构搜索(NAS)等技术可能会在这方面发挥重要作用,帮助我们发现更优的网络结构。

相关推荐
QQ同步助手10 分钟前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度
AIGC大时代13 分钟前
如何使用ChatGPT辅助文献综述,以及如何进行优化?一篇说清楚
人工智能·深度学习·chatgpt·prompt·aigc
流浪的小新18 分钟前
【AI】人工智能、LLM学习资源汇总
人工智能·学习
古希腊掌管学习的神1 小时前
[搜广推]王树森推荐系统——矩阵补充&最近邻查找
python·算法·机器学习·矩阵
martian6651 小时前
【人工智能数学基础篇】——深入详解多变量微积分:在机器学习模型中优化损失函数时应用
人工智能·机器学习·微积分·数学基础
人机与认知实验室2 小时前
人、机、环境中各有其神经网络系统
人工智能·深度学习·神经网络·机器学习
黑色叉腰丶大魔王2 小时前
基于 MATLAB 的图像增强技术分享
图像处理·人工智能·计算机视觉
迅易科技5 小时前
借助腾讯云质检平台的新范式,做工业制造企业质检的“AI慧眼”
人工智能·视觉检测·制造
古希腊掌管学习的神6 小时前
[机器学习]XGBoost(3)——确定树的结构
人工智能·机器学习
ZHOU_WUYI7 小时前
4.metagpt中的软件公司智能体 (ProjectManager 角色)
人工智能·metagpt