【深度学习/机器学习】为什么要归一化?归一化方法详解

news2024/9/30 11:35:47

【深度学习/机器学习】为什么要归一化?归一化方法详解

文章目录

    • 1. 介绍
      • 1.1 什么是归一化
      • 1.2 归一化的好处
    • 2. 归一化方法
      • 2.1 最大最小标准化(Min-Max Normalization)
      • 2.2 Z-score标准化方法
      • 2.3 非线性归一化
      • 2.4 L范数归一化方法(最典型的是L2范数归一化)
    • 3. 应用场景说明
    • 4. 参考

1. 介绍

1.1 什么是归一化

在机器学习领域中,不同评价指标(即一组特征中的不同特征就是所述的不同评价指标)往往具有不同的量纲和量纲单位,这样的情况会影响到数据分析的结果,为了消除指标之间的量纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。即,原始数据经过数据标准化处理后,各指标处于同一数量级,适合进行综合对比评价。

其中,最典型的就是数据的归一化处理。简而言之,归一化的目的就是使得预处理的数据被限定在一定的范围内(比如[0,1]或者[-1,1]),从而消除奇异样本数据导致的不良影响。

  • 在统计学中,归一化的具体作用是归纳统一样本的统计分布性。归一化在[0,1]之间是统计的概率分布,而归一化在[-1,+1]之间是统计的坐标分布。

  • 奇异样本数据是指相对于其他输入样本特别大或特别小的样本矢量(即特征向量),譬如,下面为具有两个特征的样本数据x1、x2、x3、x4、x5、x6(特征向量—>列向量),其中x6这个样本的两个特征相对其他样本而言相差比较大,因此,x6认为是奇异样本数据。
    在这里插入图片描述

奇异样本数据的存在会引起训练时间增大,同时也可能导致无法收敛,因此,当存在奇异样本数据时,在进行训练之前需要对预处理数据进行归一化;反之,不存在奇异样本数据时,则可以不进行归一化。总结就是,

  • 如果不进行归一化,那么由于特征向量中不同特征的取值相差较大,会导致目标函数变“扁”。这样在进行梯度下降的时候,梯度的方向就会偏离最小值的方向,走很多弯路,即训练时间过长。
  • 如果进行归一化以后,目标函数会呈现比较“圆”,这样训练速度大大加快,少走很多弯路。

1.2 归一化的好处

归一化有如下好处:

  • 归一化后加快了梯度下降求最优解的速度;
  • 归一化有可能提高精度(如KNN)

另外没有一种数据标准化的方法,放在每一个问题,放在每一个模型,都能提高算法精度和加速算法的收敛速度。

2. 归一化方法

2.1 最大最小标准化(Min-Max Normalization)

又称为离差标准化,使特征值值映射到 [0 , 1]之间,转换函数如下:

x ′ = x − m i n ( x ) m a x ( x ) − m i n ( x ) x' = \frac{x-min(x)}{max(x) - min(x)} x=max(x)min(x)xmin(x)

  • 适用情况:数值比较集中
  • 缺陷:如果max和min不稳定,很容易使得归一化结果不稳定,使得后续使用效果也不稳定。实际使用中可以用经验常量来替代max和min。
  • 应用场景:在不涉及距离度量、协方差计算、数据不符合正太分布的时候,可以使用第一种方法或其他归一化方法(不包括Z-score方法)。比如图像处理中,将RGB图像转换为灰度图像后将其值限定在[0 255]的范围。

2.2 Z-score标准化方法

这种方法基于原始数据的均值(mean)和标准差(standard deviation)进行数据的标准化。将A的原始值x使用z-score标准化到x’。转换函数如下:

x ′ = x − μ σ x' = \frac{x-\mu}{σ} x=σxμ
其中μ为所有样本数据的均值,σ为所有样本数据的标准差。

  • 适用情况:该属性特征的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。注意:该方法要求原始数据的分布可以近似为高斯分布,否则归一化的效果会变得很糟糕。
  • 应用场景:在分类、聚类算法中,需要使用距离来度量相似性的时候、或者使用PCA技术进行降维的时候,Z-score standardization表现更好。

2.3 非线性归一化

该类归一化方法经常用在数据分化比较大的场景,有些数值很大,有些很小。通过一些数学函数,将原始值进行映射。该类方法包括 tanh(-1,1)、sigmoid(0,1)、softmax(0,1),relu(0, +∞)等,需要根据数据分布的情况,决定非线性函数的曲线。类似于一些激活函数,参考:激活函数说明。

  • 适用情况:神经网络中隐藏层之后的操作,可以引入非线性。

2.4 L范数归一化方法(最典型的是L2范数归一化)

L范数归一化方法,对应的转换函数为:

x ′ = x m a x ( ∣ ∣ x ∣ ∣ p , θ ) x' = \frac{x}{max(||x||_p, \theta)} x=max(∣∣xp,θ)x

其中 t h e t a theta theta 是为了防止除0,一般设置为1e-12。其中 L p L_p Lp范数被定义为:
1

  • 适用场景:网络线性层之后,可以避免某些特征过大或者过小。

3. 应用场景说明

  • 概率模型不需要归一化,因为这种模型不关心变量的取值,而是关心变量的分布和变量之间的条件概率;

  • SVM、线性回归之类的最优化问题需要归一化,是否归一化主要在于是否关心变量取值;

  • 神经网络需要标准化处理,一般变量的取值在-1到1之间,这样做是为了弱化某些变量的值较大而对模型产生影响。一般神经网络中的隐藏层采用tanh激活函数比sigmod激活函数要好些,因为tanh双曲正切函数的取值[-1,1]之间,均值为0.

  • 在K近邻算法中,如果不对解释变量进行标准化,那么具有小数量级的解释变量的影响就会微乎其微。

4. 参考

【1】https://blog.csdn.net/qq_23100417/article/details/84347475

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

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

相关文章

宝塔搭建实战人才求职管理系统admin前端vue源码(二)

大家好啊,我是测评君,欢迎来到web测评。 上一期给大家分享骑士cms后台端在宝塔的搭建部署方式,这套系统是前后端分离的架构,前端是用vue2开发的,还需要在本地打包手动发布上宝塔,所以本期给大家分享&#x…

智能笔式万用表简单体验加拆解 - VC6012C - 智能电笔

简而言之,能用,甚至还挺好用的,机身大小参考上面的示意图,跟比较粗的记号笔差不多。单纯想买个万用表的话,如果不追求这种精简的外形,同价位有其他功能更强的选项。其实就是个能自动切换档位的智能万用表加…

山东大学软件学院面向对象简答题整理【个人向】

面向对象简答题整理【个人向】 0.试用面向对象语言简述改写和重定义的异同,以及方法绑定时的差别 改写是子类的方法和父类的方法具有相同的方法名和类型签名重定义是子类的方法和父类的方法方法名相同但类型签名不同在方法绑定时,改写是动态绑定&#…

kettle开发-Day38-其实chatGPT一直在身边

前言:最近chatGPT火出圈,其实不是chatGPT多智能,只是它用了一种新的交互方式来组织我们现有的知识,然后通过“高智商”的表达来使我们惊艳。但是目前或者未来的人工智能缺少创造力,他们只会整合信息目的是提高我们的效…

力扣sql简单篇练习(十八)

力扣sql简单篇练习(十八) 1 报告的记录 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT extra report_reason,count(distinct post_id) report_count FROM Actions WHERE action_dateDATE_SUB(2019-07-05,interval 1 day) AND extra IS NOT N…

突破监管“困局”,ScanV为您提供重保安全监测保障!

三月重保即将开始,重保期间是重要时间区间、重要基础设施和重要业务系统安全保障的“三重”考验期。 作为基于实战的网络安全提供商,知道创宇ScanV为您提供三月重保期间免费安全监测保障,并专门针对监管客户重保时期需求提供实战化监测保障方…

GGX发布全新路线图,揭示具备 Layer0 特性且可编程的跨链基建生态

据彭博社报道,具备跨链通信且可编程的 Layer0 基础设施协议 Golden Gate (GGX) 已进行了 两年的线下开发,于近日公开发布了最新的路线图,该路线图不仅显示了该生态在过去两年的发展历程,也披露了 2023 年即将实现的重要里程碑。 G…

IDEA上配置并运行Scala

这里使用 java17 和 Scala3.2.2作为演示 其中, IDEA 版本为2022.3.2 首先,要安装scala插件 Of course, you can also install third one above to format you scala program! 个人认为 Build system 选择 Intellij 比较方便! 然后&#xf…

jvm中指定时区信息user.timezone

问题 同一份程序使用时间LocalDateTime类型,在国内和国外部署后,返回的时间信息前端使用出问题。 因为LocalDateTime不带时区信息,国内调用后,前端页面默认使用的浏览器所在os的时区(我们的系统中没有给用户设置时区&…

Apache Beanutils为什么被禁止使用?

收录于热门专栏Java基础教程系列(进阶篇) 在实际的项目开发中,对象间赋值普遍存在,随着双十一、秒杀等电商过程愈加复杂,数据量也在不断攀升,效率问题,浮出水面。 问:如果是你来写…

09 OpenCV图形检测

1 轮廓描边 cv2.findContours() 函数是OpenCV中用于寻找轮廓的函数之一。它可以用于在二值图像中查找并检测出所有的物体轮廓,以及计算出这些轮廓的各种属性,例如面积、周长、质心等。 cv2.findContours() 函数的语法如下: contours, hiera…

张杰清唱高启强专属BGM简直就是天作之合,千万别点进来看

张杰清唱高启强专属BGM简直就是天作之合,千万别点进来看,#张杰#BGM#音乐 张杰演唱的《听》狂飙高启强自从出现在抖音上更是火得不可思议,它成为了不少年轻人喜爱的BGM,尤其是用它作为专属BGM的抖音视频更是受到网友的一致好评。 …

详解如何在ChatGPT内构建一个Python解释器

这篇文章主要为大家详细介绍了如何在ChatGPT内构建一个Python解释器,文中的示例代码讲解详细,具有一定的学习价值,需要的可以参考一下目录引用:Art Kulakov 《How to Build a Python Interpreter Inside ChatGPT》这个灵感来自于一…

Day892.MySql读写分离过期读问题 -MySQL实战

MySql读写分离过期读问题 Hi,我是阿昌,今天学习记录的是关于MySql读写分离过期读问题的内容。 一主多从架构的应用场景:读写分离,以及怎么处理主备延迟导致的读写分离问题。 一主多从的结构,其实就是读写分离的基本…

Java SE(1)——JDK安装,基本数据类型和运算

JDK安装,基本数据类型和运算 一 Java语言的初体验 1.JDK下载地址 Oracle官网: Java Downloads | Oracle,根据需要,下载最新或历史版本。 2.运行Java文件 编写一个简单的 HelloWorld.java 文件 public class HelloWorld{publ…

提供网络可测试的接口【公共Webservice】

提供网络可测试的接口 1、腾讯QQ在线状态 WEB 服务 Endpoint: qqOnlineWebService Web 服务 Disco: http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?disco WSDL: http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl 腾讯QQ在线状态 WEB 服…

【每日一题】 将一句话单词倒置,标点不倒置

用C语言将一句话的单词倒置,标点不倒置。 比如输入: i like shanghai. 输出得到: shanghai. like i 这道题目有很多种做法,既可以用递归,也可以分成两部分函数来写,本文就详细来讲解分装为两个函数的做法。…

如何从0开始搭建Vue组件库

前言: 组件设计是通过对功能及视觉表达中元素的拆解、归纳、重组,并基于可被复用的目的,形成规范化的组件,通过多维度组合来构建整个设计方案,將这些组件整理在一起,便形成组件库。本文我们主要讲述基于 V…

微服务学习:SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

目录 一、高级篇 二、面试篇 实用篇 day05-Elasticsearch01 安装elasticsearch 1.部署单点es 2.部署kibana 一、高级篇 二、面试篇 实用篇 day05-Elasticsearch01 安装elasticsearch 1.部署单点es 1.1.创建网络 因为我们还需要部署kibana容器,因此需要…

高校房产管理系统用到了哪些技术?

数图互通高校房产管理系统是基于公司自主研发的FMCenterV5.0平通过在中国100多所高校的成功实施和迭代,形成了一套成熟、完善、全生命周期的房屋资源管理解决方案。台,是针对中国高校房产的管理特点和管理要求,研发的一套标准产品&#xff1b…