首页 > 其他分享 >深度学习基础理论————"优化"方法(归一化/dropout)

深度学习基础理论————"优化"方法(归一化/dropout)

时间:2024-12-18 17:43:29浏览次数:10  
标签:dropout 样本 batch 归一化 基础理论 LayerNorm GroupNorm norm

深度学习基础理论————"优化"方法(归一化/dropout)

1、归一化方法(LayerNorm/BatchNorm/GroupNorm)

归一化层是深度神经网络体系结构中的关键,在训练过程中确保各层的输入分布一致,这对于高效和稳定的学习至关重要。归一化技术的选择(Batch, Layer, GroupNormalization)会显著影响训练动态和最终的模型性能。每种技术的相对优势并不总是明确的,随着网络体系结构、批处理大小和特定任务的不同而变化。
数据归一化:

定义如下计算公式:

\[\mu_i= \frac{1}{m}\sum_{k\in S_i}x_k \]

\[\sigma_i= \sqrt{\frac{1}{m}\sum_{k\in S_i}(x_k- \mu_i)^2+\epsilon} \]

4类标准化区别就在于对于参数\(S_i\)的定义!!!(也就是沿着哪个维度进行归一化处理
如:对一组图片定义如下变量:\((N,C,H,W)\)分别代表:batch、channel、height、width
Bath-norm:\(S_i=\{k_C=i_C\}\)
Layer-norm:\(S_i=\{k_C=i_N\}\)
Instance-norm:\(S_i=\{k_C=i_C,K_N=i_N\}\)
Group-norm:\(S_i=\{k_N=i_N, \lfloor \frac{k_C}{C/G} \rfloor=\lfloor \frac{i_C}{C/G} \rfloor\}\)
\(G\)代表组的数量,\(C/G\)每个组的通道数量

不同归一化

上图都是在image上做的例子

BatchNorm
BN应用于一批数据中的单个特征,通过计算批处理上特征的均值和方差来独立地归一化每个特征。它允许更高的学习率,并降低对网络初始化的敏感性。
这种规范化发生在每个特征通道上,并应用于整个批处理维度,它在大型批处理中最有效,因为统计数据是在批处理中计算的。

LayerNorm
LN计算用于归一化单个数据样本中所有特征的均值和方差。它应用于每一层的输出,独立地规范化每个样本的输入,因此不依赖于批大小。
LN有利于循环神经网络(rnn)以及批处理规模较小或动态的情况。

InstanceNorm
IN对每个样本的每个通道进行独立的归一化处理

GroupNorm
GN将通道道分成若干组,并计算每组内归一化的均值和方差。这对于通道数量可能很大的卷积神经网络很有用,将它们分成组有助于稳定训练。GN不依赖于批大小,因此适用于小批大小的任务或批大小可以变化的任务。

不同归一化对比

方法 归一化范围 依赖 batch size 应用场景 原因
BatchNorm Mini-batch 的每个维度 分类任务,CNN,较大 batch size 1. 通过 mini-batch 的统计信息减少特征偏移,保持分布稳定。
2. 在分类任务中,特征分布的稳定性有助于提升模型收敛速度和最终性能。
LayerNorm 单个样本的所有特征 NLP,RNN,Transformer 1. 在 NLP 和序列建模中,训练的样本通常较小,不依赖 batch 统计量的 LayerNorm 更稳定。
2. 对整个样本归一化,使得模型对序列长度或上下文无关。
InstanceNorm 单个样本的每个通道独立 风格迁移,生成任务 1. 强调样本内部特征分布的一致性,适合强调局部特征(如风格迁移中的纹理)。
2. 不考虑全局或跨样本的统计信息,能更好保留样本特有的风格特性。
GroupNorm 分组特征 小 batch 或单样本 CNN 1. 对小 batch 或单样本任务,避免了 BatchNorm 的统计不稳定问题。
2. 分组归一化平衡了跨通道信息的利用和归一化稳定性,适合卷积特征提取。

From: https://blog.csdn.net/qq_36560894/article/details/115017087

BatchNorm:batch方向做归一化,算NxHxW的均值,对小batchsize效果不好;BN主要缺点是对batchsize的大小比较敏感,由于每次计算均值和方差是在一个batch上,所以如果batchsize太小,则计算的均值、方差不足以代表整个数据分布。
LayerNorm:channel方向做归一化,算CxHxW的均值,主要对RNN(处理序列)作用明显,目前大火的Transformer也是使用的这种归一化操作;
InstanceNorm:一个channel内做归一化,算H*W的均值,用在风格化迁移;因为在图像风格化中,生成结果主要依赖于某个图像实例,所以对整个batch归一化不适合图像风格化中,因而对HW做归一化。可以加速模型收敛,并且保持每个图像实例之间的独立。
GroupNorm:将channel方向分group,然后每个group内做归一化,算(C//G)HW的均值;这样与batchsize无关,不受其约束,在分割与检测领域作用较好。

代码:(pytorch

import torch
import torch.nn as nn

x = torch.randn(32, 64, 32, 32)
batch_norm = nn.BatchNorm2d(64)
layer_norm = nn.LayerNorm([64, 32, 32])
group_norm = nn.GroupNorm(8, 64) # 对64通道分8组
isins_norm = nn.InstanceNorm2d(64)

out_batch = batch_norm(x)
out_layer = layer_norm(x)
out_gropu = group_norm(x)
out_insta = isins_norm(x)

InstanceNorm2dGroupNormLayerNormBatchNorm2d
假设输入形状: N,C,H,W
1、InstanceNorm2dBatchNorm2d在代码实践上相似都是对C计算
2、LayerNorm对于输入为N,C,H,W(比如说图像)那么选择C,H,W,如果输入为N,Dim1,Dim2(比如说文本)那么对 Dim2计算
3、GroupNorm则是对Cn个组


2、Dropout

在 Dropout 中,每个神经元在训练过程中有一定概率\(

标签:dropout,样本,batch,归一化,基础理论,LayerNorm,GroupNorm,norm
From: https://www.cnblogs.com/Big-Yellow/p/18615540

相关文章

  • 深度学习基础理论————学习率优化方法(AdaGrad/RMSprop/Adam/Warm-UP)
    学习率基础[1]学习率(LearningRate)在优化算法,尤其是梯度下降和其变体中,扮演着至关重要的角色。它影响着模型训练的速度和稳定性,并且是实现模型优化的关键参数之一。如何理解呢?在统计学中,线性方程的优化过程通常包括以下步骤:构建方程:定义一个模型,例如线性方程(y=wx+b)......
  • 【时间序列分析】肯德尔(Kendall)相关系数基础理论及python代码实现
    文章目录1.肯德尔(Kendall)相关系数定义2.什么是秩相关系数3.计算方法4.示例及代码实现4.1示例4.2python代码实现5.优缺点6.适用范围7.与斯皮尔曼相关系数比较8.思考8.1当变量中有重复值时肯德尔(Kendall)相关系数是如何计算的?1.肯德尔(Kendall)相关系数定义......
  • 第三章 3.12 dropout 和 正则化 克服过拟合
    代码:#https://github.com/PacktPublishing/Modern-Computer-Vision-with-PyTorch#https://github.com/PacktPublishing/Modern-Computer-Vision-with-PyTorch###################ChapterThree########################################第三章读取数据集并显示fro......
  • AI应用实战课学习总结(1)必备AI基础理论
    大家好,我是Edison。由于公司的愿景逐渐调整为ONETechCompany,公司的IT战略也逐渐地朝着Data&AIDriven发展,因此近半年来我一直在学习大模型相关的东西,从ChatGPT到Agent都有所涉及。但是,未来的企业技术架构中会存在一个通用大模型和多个小模型以及多个IT系统协同配合的局面,单......
  • 【深度学习】各种类型的归一化——BN、LN、IN和GN
        深度学习的是数据分布,无论是检测一个人或一只猫,我们检测的本质是因为这张图片对应人的像素分布是有一定分布规律的。在网络训练过程中,数据并不会一成不变会发生协方差偏移的问题,这样会给模型学习带来一定难度;而且同一特征在不同图片,由于图片的色调、亮度等会有很多......
  • 「Java进阶」数据结构与算法全攻略:从基础理论到实战应用
    「Java进阶」数据结构与算法全攻略:从基础理论到实战应用目录第1章绪论1.1数据结构的基础概念1.2数据结构的内容1.3算法1.4算法描述1.5算法性能评价1.5.1算法的时间性能分析1.5.2算法的空间性能分析1.5.3算法性能选择1.6数据结构与Java语言表示......
  • 大语言模型---Dropout 的定义;Dropout 减少过拟合的原因;Dropout 的实现
    文章目录1.Dropout的定义2.Dropout减少过拟合的原因3.Dropout的实现1.Dropout的定义Dropout是一种简单而有效的正则化技术,通过在每次训练迭代中随机丢弃(即屏蔽)一部分神经元,强制模型在没有某些特定神经元参与的情况下学习,从而降低对特定神经元的依赖性。机......
  • 超参数调整、Batch归一化和程序框架
    超参数调整、Batch归一化和程序框架超参数调整在深度学习中,有许多超参数需要调整,不同超参数的重要性有所不同,可分为以下优先级:第一优先级是学习率\(\alpha\)。第二优先级是动量梯度下降参数\(\beta\),隐藏层神经元数量,以及mini-batch大小。第三个优先级是隐藏层数量,学习......
  • 零基础-动手学深度学习-4.6暂退法(Dropout)
    鄙人生医转码,道行浅薄请多谅解~仅作笔记学习交流常用于多层感知机的隐藏层输出上,丢弃概率是控制模型参数复杂度的超参数一、重新审视过拟合书上说的很好:当面对更多的特征而样本不足时,线性模型往往会过拟合。相反,当给出更多样本而不是特征,通常线性模型不会过拟合。不幸的是......
  • 卷积、激活、池化与批量归一化:深度学习中的关键操作
    在深度学习,尤其是卷积神经网络(CNN)中,卷积、激活、池化和批量归一化是四个基本操作。它们共同作用,帮助模型高效学习和提取数据中的重要特征。1.卷积操作作用卷积操作旨在通过滑动卷积核(过滤器)在输入数据上提取局部特征,如边缘和角点。过程滑动卷积核:卷积核在输入特征图上......