当前位置: 首页 > article >正文

神经网络归一化方法总结

在深度学习中,归一化 是提高训练效率和稳定性的关键技术。以下是几种常见的神经网络归一化方法的总结,包括其核心思想、适用场景及优缺点。

四种归一化

特性Batch NormalizationGroup NormalizationLayer NormalizationInstance Normalization
计算维度批次内的所有通道单样本分组内通道单样本所有通道单样本每通道
依赖批量大小
应用场景大批量训练小批量或单样本训练NLP 等序列任务风格迁移等图像任务

1. Batch Normalization (BN)

核心思想

  • 在每个批次内,对每一层的激活值按通道计算均值和标准差,将其归一化到零均值和单位方差,并通过可学习的参数恢复模型表达能力。

公式

优点

  • 提高收敛速度,减少训练难度。
  • 具有一定的正则化效果,缓解过拟合。

缺点

  • 对小批量训练效果较差,因为批内统计量不稳定。
  • 对时间序列或变长输入不友好。

适用场景

  • 大批量训练任务(如图像分类、目标检测)。

2. Layer Normalization (LN)

核心思想

  • 对每一个样本的所有通道(整个特征图)进行归一化。

公式

优点

  • 不依赖批量大小,小批量训练和序列任务中表现良好。
  • 适用于变长输入。

缺点

  • 在图像任务中不如 BN 效果好。

适用场景

  • 自然语言处理(如 Transformer)。
  • 小批量或单样本任务。

3. Instance Normalization (IN)

核心思想

  • 对每个样本的每个通道独立进行归一化,仅计算空间维度的均值和标准差。

公式

优点

  • 消除样本间的风格差异。
  • 在图像风格迁移中表现优异。

缺点

  • 对模型的分布学习能力有一定限制。

适用场景

  • 图像风格迁移等需要处理单张图像的任务。

4. Group Normalization (GN)

核心思想

  • 将通道分为多个组,每组内部计算均值和标准差进行归一化。

公式

优点

  • 不依赖批量大小,适合小批量或单样本训练。
  • 在小数据集任务中表现良好。

缺点

  • 对大批量训练效率稍逊于 BN。

适用场景

  • 小批量训练任务(如目标检测、医疗图像)。

5. Weight Normalization (WN)

核心思想

  • 对每一层的权重进行归一化,分离权重的方向和尺度,以提升优化效率。

公式

优点

  • 不引入额外的运行时计算。
  • 可加速收敛。

缺点

  • 无法处理激活值的归一化。

适用场景

  • 提升优化效率的任务。

6. Layer-wise Adaptive Normalization (AdaLN)

核心思想

  • 自适应调整归一化过程,结合 IN 和 LN 的优点。

优点

  • 同时适应样本内和样本间的统计特性。
  • 在生成式任务中效果良好。

缺点

  • 计算复杂度较高。

适用场景

  • GANs 和生成式模型。

归一化方法对比

方法计算维度依赖批量大小优点缺点应用场景
BN批内的每个通道加速收敛,正则化小批量性能下降大批量图像任务
LN样本内所有通道小批量效果良好图像任务效果略差NLP、序列任务
IN样本内每个通道风格迁移效果好分布学习能力有限图像风格迁移
GN样本内分组的通道适合小批量,小数据集复杂度高于 BN小批量检测和分类任务
WN权重提升优化效率不对激活值归一化提高收敛速度的优化任务
AdaLN样本内和样本间自适应效果强计算复杂生成式任务

归一化方法的选择应根据任务需求、批量大小和计算资源等因素综合考虑。在大批量训练任务中,BN 仍然是主流方法;而在小批量或特殊任务中,如 NLP 和生成式模型,则可以选择更适合的归一化方法(如 GNLN)。


http://www.kler.cn/a/409823.html

相关文章:

  • 正则表达式灾难:重新认识“KISS原则”的意义
  • 【vue】vue中插槽slot的用法详解
  • elasticsearch7.10.2集群部署带认证
  • UG NX二次开发(C++)-UIStyler-指定平面的对象和参数获取
  • 桥梁、隧道、道路、铁路、结构、岩土,哪个发展更好?
  • C语言蓝桥杯组题目
  • 鸿蒙心路旅程:探索与收获之旅 勇攀高峰
  • 【我在CSDN成长】我的五周年创作纪念日
  • 掌握控制流的艺术:Go语言中的if、for和switch语句
  • php 导出excel 一个单元格 多张图片
  • 释放已删除空间资源
  • API设计与开发
  • MATLAB R2024b软件下载安装步骤
  • A047-基于Spring Boot的医疗挂号管理系统的设计与实现
  • java编程开发基础,正则表达式的使用案例Demo
  • 基于微信小程序的小动物救助领养平台
  • 页的初步认识
  • H3C OSPF 多区域实验
  • 【数据结构与算法】相交链表、环形链表(判断是否有环)、环形链表(返回入环节点)
  • Rust环境安装乱码解决
  • cookie属性SameSite简介
  • java多线程 1
  • 第02章_MySQL环境搭建(基础)
  • Elasticsearch:Retrievers 介绍
  • 【Android】静态广播接收不到问题分析思路
  • 谷粒商城篇章12--P326-P339--Sentinel/Sleuth+Zipkin服务链路追踪【分布式高级篇九】