【ML】为什么要做batch normlization,怎么做batch normlization

news2024/11/27 14:40:42

为什么要做batch normlization,怎么做batch normlization

      • 1. batch normlization
        • 1.1 批量归一化是什么:
        • 1.2 为什么要做批量归一化:
      • 2. feature normalization
        • 2.1 特征归一化是什么:
        • 2.2 为什么要做特征归一化:
      • 3. batch normlization test

1. batch normlization

Batch Normalization(批量归一化)是一种在深度神经网络中常用的技术,特别是在训练期间,用于提高训练速度、稳定性和性能。它由 Sergey Ioffe 和 Christian Szegedy 在 2015 年提出。

1.1 批量归一化是什么:

批量归一化操作涉及对神经网络中的每个小批量(batch)数据进行归一化处理。具体来说,它对每个特征通道(feature map)的激活值进行归一化,使其具有固定的均值和方差。归一化过程如下:

  1. 计算批次的均值和方差
    对于每个特征通道,计算小批量数据的均值 (\mu_B) 和方差 (\sigma_B^2)。

  2. 归一化
    使用批次的均值和方差对数据进行归一化,得到:
    [ \hat{x} = \frac{x - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} ]
    其中 (\epsilon) 是一个很小的常数,用来保证数值稳定性。

  3. 缩放和平移
    然后通过两个可学习的参数 (\gamma)(缩放因子)和 (\beta)(偏移量)对归一化后的数据进行缩放和平移:
    [ y = \gamma \hat{x} + \beta ]

1.2 为什么要做批量归一化:
  1. 加速训练
    批量归一化可以显著加速训练过程,因为它减少了训练初期的震荡,使得优化算法能够更快地收敛。

  2. 提高稳定性
    它使得每层网络的输入分布更加稳定,减少了梯度消失或爆炸的风险。

  3. 允许更高的学习率
    由于批量归一化减少了深度网络中的内部协变量偏移问题,可以使用更高的学习率,从而加快训练速度。

  4. 减少对初始化的依赖
    传统的网络训练对权重初始化非常敏感,而批量归一化减少了这种敏感性,使得网络更容易训练。

  5. 作为正则化
    批量归一化在一定程度上起到了正则化的作用,可以减少过拟合。

  6. 允许更深层网络
    由于它有助于缓解梯度消失和梯度爆炸问题,因此使得训练更深的网络成为可能。

  7. 加速收敛
    批量归一化可以使得训练过程中的损失函数更快地下降,从而加速收敛。

尽管批量归一化带来了许多好处,但它也有一些局限性,比如可能会轻微增加模型的计算负担,以及在小批量大小下可能导致训练和推理不一致的问题。在某些情况下,研究者可能会使用其他的归一化技术,如 Layer Normalization、Instance Normalization 或 Group Normalization。

在这里插入图片描述

2. feature normalization

Feature normalization(特征归一化)是深度学习和机器学习中用于数据预处理的一种技术,旨在将数据的特征缩放到统一的范围或分布。这通常有助于提高模型的训练效率和性能。

2.1 特征归一化是什么:

特征归一化通常包括以下几种类型:

  1. 零均值归一化(Zero-Mean Normalization):
    将特征的均值调整为0,即通过减去特征的均值来实现。

  2. 单位方差归一化(Unit Variance Normalization):
    将特征缩放到单位方差,即在零均值归一化的基础上,再除以特征的标准差。

  3. 最小-最大归一化(Min-Max Normalization):
    将特征缩放到指定的 [a, b] 范围内,通常是 [0, 1],通过线性变换实现。

  4. Z得分归一化(Z-Score Normalization):
    基于特征的均值和标准差进行归一化,使得结果具有单位方差和零均值。

2.2 为什么要做特征归一化:
  1. 提高模型收敛速度
    归一化可以加速基于梯度下降的优化算法的收敛速度,因为梯度在各个方向上的尺度一致。

  2. 防止某些特征占优
    当特征在不同尺度上时,尺度较大的特征可能会在模型训练中占主导地位,归一化可以避免这种情况。

  3. 提高模型泛化能力
    归一化有助于模型学习到更加一般化的特征表示,从而提高模型对新数据的泛化能力。

  4. 稳定训练过程
    归一化可以减少训练过程中的数值不稳定性,如梯度爆炸或消失问题。

  5. 适应不同模型的需求
    某些模型,如支持向量机(SVM)和 K-近邻(KNN)等,对特征的尺度非常敏感,归一化是这些模型训练的前提。

  6. 改善模型性能
    在某些情况下,归一化可以显著提高模型的预测精度。

  7. 便于比较不同特征
    当特征在不同的量纲和尺度时,归一化后可以更容易地比较和组合不同特征。

  8. 数据预处理的一部分
    特征归一化是数据预处理的重要步骤之一,有助于后续的特征工程和模型训练。

然而,并非所有情况下都需要特征归一化。例如,一些基于树的模型(如决策树、随机森林)和一些深度学习模型(如使用批量归一化的卷积神经网络)可能不依赖于特征的尺度。此外,如果数据集中的特征已经接近归一化,或者特征的尺度对于问题本身具有重要意义,则可能不需要进行归一化。

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

3. batch normlization test

test 阶段如何获取 train 呢? 如何更新 均值和方差,如果使用pytorch实现,那么pytorch再训练阶段,(假设batch =64) ,在数据陆续进入 train的batch个过程中 , 会维持更新 均值和方差,当test阶段可以调用这个更新的均值和方差
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1985379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux中apache服务安装与mysql安装

目录 一、apache安装 二、MySQL安装 一、apache安装 准备环境:一台虚拟机、三个安装包(apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz、httpd-2.4.29.tar.bz2) 安装过程: tar xf apr-1.6.2.tar.gz tar xf apr-util-1.6.0.tar.gz tar xf http…

怎么限制电脑不能打开某个网页或网站(四个方法你可一定要学会)

老板:我公司的员工真的很让人头疼。 朋友:怎么了? 老板:我一不在就有人偷偷打开某些违法网站,画面不可描述啊! 朋友:难道你还不知道可以禁止员工打开某个网站? 老板:…

传奇三职业复古单机版+无需虚拟机一键安装

今天给大家带来一款单机游戏的架设:传奇单机版。沉默版本 三职业 数值不变态 ,没有花里胡哨的东西(比如切割,生肖,时装等功能),客户端为16周年客户端 。另外:本人承接各种游戏架设&a…

[论文阅读笔记34] LISA (LISA: Reasoning Segmentation via Large Language Model) 代码精读

LISA是一个很好的Reason Segmentation的baseline, 其利用特殊的token [SEG]来微调多模态LLM和SAM的decoder来实现复杂逻辑下的prompt的推理分割. 其整体框图如下, 本篇文章精度此代码并作简单复现. 1. 推理流程 流程如下: 1.1 加载Tokenizer与模型 首先利用trans…

为什么越来越多的企业走上了数字化转型之路?

原因很简单,只要我们稍加了解就能明白的。 一方面是国家政策支持,另一方面是市场竞争的压力(什么产能过剩、服务过剩、经营维度低等因素都是导致企业不得不转型提升利润的关键点)。而恰恰数字化转型是能给企业带来效率提升、成本…

MS2201以太网收发电路

MS2201 是吉比特以太网收发器电路,可以实现超高速度的 全双工数据传输。它的通信遵从 IEEE 802.3 Gigabit Ethernet 协议 中的 10 比特接口的时序要求协议。 MS2201 支持数据传输速率从 1Gbps 到 1.85Gbps 。 主要特点 ◼ 电源电压: 2.5V 、 3.3V …

【Qt】管理创建子项目

新建项目 打开是这样,无法添加子项目 pro添加 TEMPLATE subdirs有了 点击添加子项目 其他项目-子目录项目 (空的子项目,只有pro,无h、cpp) 子目录名字 直接创建子目录下子项目 选择有无界面或者其他类型项目 …

Python pyinstaller打包exe最完整教程

1 简介 python提供了多种方法用于将普通的*.py程序文件编译成exe文件(有时这里的“编译”也称作“打包”)。exe文件即可执行文件,打包后的*.exe应用不用依赖python环境,可以在他人的电脑上运行。 pyinstaller是一个第三方模块&a…

《网络安全自学教程》- Windows防火墙原理分析与策略配置

《网络安全自学教程》 防火墙(Firewall)是用来「隔离」内、外「网络」的安全设备,可以是硬件设备、软件或者云防火墙。 Windows防火墙 1、防火墙分类1.1、包过滤防火墙1.2、应用代理防火墙1.3、状态检测防火墙1.4、下一代防火墙2、开启防火墙3、添加策略1、防火墙分类 防火…

OSPF路由协议多区域

一、OSPF路由协议单区域的弊端 1、LSDB庞大,占用内存大,SPF计算开销大; 2、LSA洪泛范围大,拓扑变化影响范围大; 3、路由不能被汇总,路由表庞大,查找路由开销大。 二、如何解决OSPF单区域的问题? 引入划分区域 1、每个区域独立存储LSDB,划分区域减小了LSDB。 2、…

Python的100道经典练习题,每日一练,必成大神!!!

Python的100道经典练习题是一个广泛而深入的学习资源,可以帮助Python初学者和进阶者巩固和提升编程技能 完整的100多道练习题可在下面图片免沸获取哦~ 整理了100道Python的题目,如果你是一位初学者,这一百多道题可以 帮助你轻松的使用Python…

Harbor系列之11:制品签名

借助Cosign或Notaion对制品进行签名 制品签名和签名验证是关键的安全功能,它们允许你验证制品的完整性。Harbor 通过与 Cosign 或 Notation 的集成来支持内容信任。 项目管理员可以配置项目以强制执行内容信任,要求所有制品在从 Harbor 注册表中拉取之…

Vue3 中如何使用 Monaco

本文将介绍如何在 Vue3 使用 Monaco。 创建 vue3 项目 通过以下命令创建项目,根据提示一步一步创建即可。 npm create vuelatest除了 Typescript 其他全默认即可。 安装项目依赖 Monaco 开源项目很多,这个项目更新很活跃,用法和 react …

一、安装go环境以及编译输出HelloWorld

目前的热门技术方向从分布式微服务开始转向云原生而云原生方向需要掌握GO语言,基于此决定利用平时的时间来完成GO语言的学习。 安装(基于mac m1) (翻看了网上很多的资料,发现很多人记录的有很多问题,一个…

SuccBI+低代码文档中心 — 低代码应用(SuperPage)(上)(重点)

SuperPage介绍 SuperPage是SuccAP提供的一种可视化设计制作任意的、业务化的和个性化的页面或对话框的功能。 使用SuperPage制作个性化页面或对话框相比于传统编码方式具有如下优势: 低成本、高效率零编码、易维护可扩展、高复用美观易用、不损失业务体验 新建Su…

PMP新考纲下,考前冲刺指南

01新考纲变化 【1】题型变化 旧考纲:考试题目为200道单选题,敏捷题型占比不足10% 新考纲:考试题目为180道题;题型将包括单选题和多选题,多选题将说明需选择几个正确选项;敏捷项目管理比重增加。 【2】内…

免费【2024】springboot 分类信息服务平台移动端的设计与实现

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

Ubuntu 24.04服务器或桌面上安装Notepad++

Notepad 默认仅适用于 Windows,但我们可以使用 Wine 或 Snap 在 Ubuntu 24.04 Noble 上安装它,在本教程中,我们讨论了在 Ubuntu Linux 上安装 NotePad plus-plus 的过程。 任何编写代码的人都已经知道这个应用程序。它提供语法突出显示等功能…

如何判断IP地址属于住宅IP还是机房IP

在数字化时代,IP地址作为互联网通信的基础标识,扮演着重要的角色。无论是网络管理、数据分析还是安全监控,正确识别IP地址的类型——尤其是区分是住宅IP还是机房IP,对于确保网络安全、优化网络性能以及合法合规运营具有重要意义。IPIDEA代理I…

【从零开始一步步学习VSOA开发】同步RPC客户端

同步RPC客户端 概念 前面的测试例程都是以异步 RPC 的模式运行的,客户端调用 RPC 请求后无需等待服务端应答即可返回,后面通过回回调方式获取返回结果。 同步 RPC 即客户端在发送完毕请求后,函数进入阻塞模式一直等待,直到接受到…