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

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

为什么要做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阶段可以调用这个更新的均值和方差
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

相关文章:

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

为什么要做batch normlization,怎么做batch normlization 1. batch normlization1.1 批量归一化是什么:1.2 为什么要做批量归一化: 2. feature normalization2.1 特征归一化是什么:2.2 为什么要做特征归一化: 3. batc…...

【C++指南】命名空间

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《C指南》 期待您的关注 目录 一、命名空间的重要性 1. C语言中没有命名空间而存在的问题 2. C引入了命名空间解决的问题 3.…...

RocketMQ Dashboard安装

RocketMQ Dashboard 是一个基于 Web 的管理工具,用于监控和管理 RocketMQ 集群。它提供了一个用户友好的界面,使管理员能够轻松地查看和操作 RocketMQ 系统中的各种组件和状态。 主要功能包括: 集群管理: 监控和管理 NameServer 和 Broker …...

前端web开发HTML+CSS3+移动web(0基础,超详细)——第3天

目录 一,列表-无序和有序的定义列表 二,表格-基本使用与表格结构标签 三,合并单元格 四,表单-input标签 五,表单-下拉菜单 六,表单-文本域 七,表单-label标签 八,表单-按钮 …...

认识MySQL

目录 数据库是什么呢?MySQL 数据库是什么呢? 在我们开始学习MySQL之前,先来了解一下,什么是数据库呢?我相信此时很多人会说是管理数据的,完全正确!用数据库我们可以去存储大量的数据。我来给你…...

尚品汇-创建ES索引库(二十七)

目录: (1)商品检索功能介绍 (2)根据业务搭建数据结构 (3)nested 介绍 (4)搭建service-list服务 (5)构建实体与es mapping建立映射关系 &…...

设计模式-六大原则

概述 设计模式的六大原则是设计模式的基础,了解设计模式的原则,有利于设计模式实际应用的理解,在真实使用的时候,一般不太可能一个程序满足所有的设计模式六大原则,或多或少都会有违背设计模的地方,所以不…...

MyBatis搭建和增删改查

MyBatis是一个开源的持久层框架,用于处理数据库的增删改查操作。它能够将Java对象与数据库中的数据进行映射关系的配置,并自动生成对应的SQL语句,从而简化了数据库操作的编码工作。 MyBatis的核心思想是将SQL语句与Java代码分离,…...

【一图学技术】6.反向代理 vs API网关 vs 负载均衡的原理和使用场景

反向代理 vs API网关 vs 负载均衡 一、概念 ​ 🌏反向代理(Reverse Proxy)是一种位于服务器和客户端之间的代理服务器。 ​ 它接收来自客户端的请求,并将其转发给后端服务器,然后将后端服务器的响应返回给客户端。客…...

python爬虫番外篇 | Reuqests库高级用法(1)

文章目录 1.会话对象(Session Objects)2.请求和响应对象(Request and Response Objects)3.准备好的请求(Prepared Requests)4.SSL证书验证5.客户端证书6.CA 证书7.正文内容工作流程(Body Conten…...

【链表OJ】常见面试题 3

文章目录 1.[环形链表II](https://leetcode.cn/problems/linked-list-cycle-ii/description/)1.1 题目要求1.2 快慢指针1.3 哈希法 2.[随机链表的复制](https://leetcode.cn/problems/copy-list-with-random-pointer/description/)2.1 题目要求2.2 迭代法 1.环形链表II 1.1 题目…...

Linux学习笔记9(Linux包管理)

目录 归档包管理 归档 查看归档包 解归档包 压缩包管理 Zip/unzip gzip/gunzip bzip2/bunzip2 源码包安装软件 三大步: 预备步骤:安装依赖的编译库 一、./configure --prefix/usr/local/nginx 二、make 三、make install 软件包安装 配置…...

论文阅读《Geometric deep learning of RNA structure》

引入了机器学习方法,通过少量的数据学习。只使用原子坐标作为输入。 预测RNA三维结构比预测蛋白质结构更困难。 设计了一个原子旋转等变评分器ARES,由每个原子的三维坐标和化学元素类型(输入)指定,ARES预测模型与未知真…...

宏集方案 | 传统建筑智能化改造,迈向物联新时代

前言 智能建筑涉及多个系统的集成,如照明、空调、安防等,这些系统的兼容性和协调运作是一大挑战。然而,传统的工业建筑和商业楼宇受早期设计的局限,多个控制系统间互不兼容,并且难以重新部署通信线缆。 针对传统建筑…...

如果服务器更改Web端口会减少被攻击的风险吗?

通过更改服务器的Web端口,是否能够显著降低被攻击的风险?首先,理解Web服务默认使用的端口是关键。HTTP协议通常使用80端口,而HTTPS则默认使用443端口。这些端口因其广泛认知而成为黑客攻击的首要目标。理论上,将Web服务迁移到非标…...

vim列编辑模式

在编辑文本时,经常会有这样的需求,对特定列进行进行批量编辑。比如批量注释一段代码,或者删除待定字符(如一列空格)。幸运的是VIM支持列编辑模式。 假设文本内容: Maximum length of a custom vocabulary…...

如何实现pxe安装部署

此实验环境:rhel7主机 一、kickstart自动化安装脚本 1、安装可视化图形 [rootlocalhost ~]# yum group install "Server with GUI" 2、关闭vmware dhcp功能(编辑-虚拟网络编辑器) 3、httpd 1、安装httpd服务 [rootlocalhost …...

机器学习常见模型

1、线性模型 线性模型是机器学习最基本的算法类型,它试图学到一个通过多个特征(属性)计算的线性组合来预测的函数,简单的线性回归形式如yaxb,其中,x代表特征,而y代表结果,一旦a和b的…...

【python案例】基于Python 爬虫的房地产数据可视化分析设计与实现

引言 研究背景与意义 房地产行业在我国属于支柱性产业,在我国社会经济发展中一直扮演着重要角色。房价问题,尤其是大中城市的房价问题,一直是政府、大众和众多研究人员关注的热点。如何科学地预测房价是房价问题的研究方向之一。随着互联网…...

如何在Python中诊断和解决内存溢出问题

python的内存溢出即程序在申请内存后未能正确释放,导致随着时间推移占用的内存越来越多,以下是一些可能导致内存溢出的原因: 1、循环引用:当对象之间形成循环引用,并且这些对象定义了__del__方法时,Python…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

华硕a豆14 Air香氛版,美学与科技的馨香融合

在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...