• 【机器学习合集】标准化与池化合集 ->(个人学习记录笔记)


    标准化与池化

    1. 标准化/归一化

    1.1 归一化

    归一化的作用
    • 去除量纲的干扰,防止数值过小的特征被淹没
    • 保证数据的有效性
    • 稳定数据分布

    在这里插入图片描述

    1.2 标准化

    批标准化方法 Batch Normailzation

    在这里插入图片描述

    批标准化的好处

    • 提高训练速度
    • 稳定模型训练

    在这里插入图片描述

    批标准化的缺点与改进

    • 要求固定的Batch长度与均匀采样
    • batch过小数值计算不稳定

    在这里插入图片描述

    标准化方法的对比

    Batch Normalization(批标准化)、Layer Normalization(层标准化)、Group Normalization(组标准化)、Instance Normalization(实例标准化)都是用于深度神经网络的归一化技术,用于改善训练的稳定性和收敛速度。它们在归一化的对象和方式上有一些不同之处:

    1. Batch Normalization(批标准化)

      • 归一化对象:Batch Normalization是在每个神经层的输入上进行归一化,通常是对每个mini-batch的样本进行统计。
      • 归一化方式:它通过计算每个神经元的均值和方差,然后对每个神经元的输出进行归一化,以确保网络的中间层保持稳定。
    2. Layer Normalization(层标准化)

      • 归一化对象:Layer Normalization是在每个神经层的输入上进行归一化,但不考虑mini-batch内的样本,而是考虑单层的所有神经元
      • 归一化方式:它通过计算每个神经元的均值和方差,然后对单层内的所有神经元的输出进行归一化
    3. Group Normalization(组标准化)

      • 归一化对象:Group Normalization是在每个神经层的输入上进行归一化,但不是针对整个层或整个mini-batch,而是将神经元分成多个组,然后对每个组内的神经元进行归一化
      • 归一化方式:它通过计算每个组内神经元的均值和方差,然后对每个组内的神经元的输出进行归一化
    4. Instance Normalization(实例标准化)

      • 归一化对象:Instance Normalization是在每个神经元的输入上进行归一化,针对每个神经元的输出进行归一化,而不考虑层内、mini-batch内的其他神经元。
      • 归一化方式:它通过计算每个神经元的均值和方差,然后对每个神经元的输出进行归一化。

    总的来说,这些归一化方法都有类似的目标,即减少内部协变量偏移(Internal Covariate Shift)以提高深度神经网络的训练稳定性和收敛速度。它们的不同之处在于归一化的对象和方式。选择哪种归一化方法通常取决于网络的结构、任务和实验表现。 Batch Normalization通常用于深度卷积神经网络中,而Layer Normalization、Group Normalization和Instance Normalization可能更适用于其他类型的网络或特定的任务。

    当涉及到Batch Normalization(批标准化)、Layer Normalization(层标准化)、Group Normalization(组标准化)、Instance Normalization(实例标准化)时,它们之间的差异在于归一化的对象和方式。下面是一个图示示例,以帮助理解它们的区别:

    Batch Normalization (BN)    Layer Normalization (LN)    Group Normalization (GN)       Instance Normalization (IN)
    _______________               _______________              _______________              _______________
    |     Layer 1   |              |     Layer 1   |           |     Layer 1   |             |     Layer 1   |
    | --------------|              | --------------|           | --------------|             | --------------|
    |  Neuron 1     |              |  Neuron 1     |           | Group 1       |             |  Neuron 1     |
    |  Neuron 2     |              |  Neuron 2     |           | Group 2       |             |  Neuron 2     |
    |  Neuron 3     |              |  Neuron 3     |           | Group 3       |             |  Neuron 3     |
    |     ...       |              |     ...       |           |     ...       |             |     ...       |
    |  Neuron N     |              |  Neuron N     |           | Group N       |             |  Neuron N     |
    | --------------|              | --------------|           | --------------|             | --------------|
    |     Layer 2   |              |     Layer 2   |           |     Layer 2   |             |     Layer 2   |
    | --------------|              | --------------|           | --------------|             | --------------|
    |  Neuron 1     |              |  Neuron 1     |           | Group 1       |             |  Neuron 1     |
    |  Neuron 2     |              |  Neuron 2     |           | Group 2       |             |  Neuron 2     |
    |  Neuron 3     |              |  Neuron 3     |           | Group 3       |             |  Neuron 3     |
    |     ...       |              |     ...       |           |     ...       |             |     ...       |
    |  Neuron N     |              |  Neuron N     |           | Group N       |             |  Neuron N     |
    | _______________|             | _______________|          | ______________|             | ______________|
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • Batch Normalization:每个层内的神经元在整个mini-batch中进行归一化。
    • Layer Normalization:每一层的神经元在层内进行归一化,但不考虑mini-batch内的样本。
    • Group Normalization:每一层的神经元被分成多个组,每个组内的神经元进行归一化,不考虑mini-batch内的样本。
    • Instance Normalization:每个神经元单独进行归一化,不考虑层内、mini-batch内的其他神经元。

    这个示例说明了它们之间在归一化对象和方式上的区别,希望有助于理解它们的工作原理。这些方法都是用于改善神经网络训练的稳定性和收敛速度,但在不同情况下选择适当的方法可能会有所不同。

    在这里插入图片描述

    自动学习标准化方法

    在这里插入图片描述

    2. 池化

    2.1 池化的作用

    作用:

    • 信息的抽象,去除非细节部分一些噪声的信息
    • 获得不同程度上的不变性:旋转不变性,平移不变性

    在这里插入图片描述

    2.2 常见的池化方法

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.3 池化方法的差异

    不同的池化方法是用来降低特征图维度的方式,它们在计算输出时有不同的策略。以下是最大值池化、均值池化、随机池化、最小值池化、中值池化和混合池化等池化方法之间的主要区别:

    1. 最大值池化(Max Pooling)

      • 操作方式:在每个池化窗口内选择最大值作为输出。
      • 特点:Max Pooling突出最显著的特征,通常用于提取重要的特征。
    2. 均值池化(Average Pooling)

      • 操作方式:在每个池化窗口内计算所有值的平均值作为输出。
      • 特点:Average Pooling平滑特征图并减小尺寸,用于降低计算量。
    3. 随机池化(Random Pooling)

      • 操作方式:在每个池化窗口内随机选择一个值作为输出。
      • 特点:Random Pooling引入了随机性,有助于提高网络的鲁棒性和泛化性能。
    4. 最小值池化(Min Pooling)

      • 操作方式:在每个池化窗口内选择最小值作为输出。
      • 特点:Min Pooling可用于强调较小的特征值,用于特定任务。
    5. 中值池化(Median Pooling)

      • 操作方式:在每个池化窗口内选择中值(中间值)作为输出。
      • 特点:Median Pooling可以在一定程度上抵御异常值的影响,适用于一些异常值敏感的任务。
    6. 混合池化(Mixed Pooling)

      • 操作方式:结合多种池化策略,可能以一定的权重混合它们的输出。
      • 特点:Mixed Pooling允许根据任务的需要结合不同的池化策略,提高网络的灵活性。

    这些池化方法之间的选择通常取决于具体的任务和数据,以及希望突出的特征。混合池化则允许根据需求结合多种池化策略,以实现更大的灵活性。在实际应用中,通常需要进行实验和调整以确定哪种池化方法最适合特定任务。

    2.4 池化的必要性

    在这里插入图片描述

    注意:现阶段常常采用带步长的卷积代替池化操作

    部分内容来自: 阿里云天池

  • 相关阅读:
    【业务功能篇99】微服务-springcloud-springboot-电商订单模块-生成订单服务-锁定库存
    [onnxrumtime]onnxruntime和cuda对应关系表
    伊朗市场最全开发攻略
    大学生个人网页设计 HTML个人网页制作 web个人网站模板 简单静态HTML个人网页作品
    HTML进阶(3)- 表单元素
    二刷算法训练营Day45 | 动态规划(7/17)
    前端爱心代码跟个风
    蓝桥杯python组--基础训练---2、#一个数如果恰好等于它的因子之和,这个数就称为“完数”,;例如:6=1+2+3,找出1000以内的
    如何让异步序列(AsyncSequence)优雅的感知被取消(Cancel)
    ArcGIS Pro3.0新特性
  • 原文地址:https://blog.csdn.net/Slience_me/article/details/134015125