量纲、无量纲,标准化、归一化、正则化是我百度了很多次都不进脑子的知识,所以我决定还是放在博客上面。
不过鉴于我查阅了很多资料,说是有许多的坑,所以我也不清楚我的理解和解释是否是坑,具体的就留给各位来帮忙评判了!

目录

  • 1 量纲与无量纲
    • 1.1 量纲
    • 1.2 无量纲
  • 2 标准化
  • 3 归一化
  • 4 正则化
  • 5 总结
  • 6 参考

1 量纲与无量纲

1.1 量纲

量纲我觉得最重要的一句话是:物理量的大小与单位有关

从这句话我们来思考下最核心的两个单词:大小单位。就是说量纲是有两部分组成:单位。就比如1块钱1分钱,就是两个不同的量纲,因为度量的单位不同了。

1.2 无量纲

结合上面的内容来说,那么无量纲就是:物理量大小与单位无关

那么我们来考虑下,哪些内容是无量纲的。首先标量肯定是无量纲的,因为只有大小,没有单位。其次就是比值,因为一般来说比值都是由一个量纲除以了某个量纲后得到的,比如速度可以有“km/skm/skm/s”,“m/sm/sm/s”等等。还有一个很显眼的无量纲,就是协方差的相关系数,因为协方差的相关系数是协方差归一化后得到的结果,可以用来衡量相关性,既然能够直接拿来衡量相关性,那么就是无量纲的。

2 标准化

标准化(standardization)是一种特征缩放(feature scale)的方法,在书《python machine learning》中,关于标准化的定义如下:

Gradient descent is one of the many algorithms that benefit from feature scaling. In this section, we will use a feature scaling method called standardization, which gives our data the property of a standard normal distribution, which helps gradient descent learning to converge more quickly. Standardization shifts the mean of each feature so that it is centered at zero and each feature has a standard deviation of 1.

用我粗糙的英语翻译一下就是:

梯度下降是受益于特征缩放的算法之一。有一种特征缩放的方法叫标准化,标准化使得数据呈现正态分布,能够帮助梯度下降中学习进度收敛的更快。标准化移动特征的均值(期望),使得特征均值(期望)为0,每个特征的标准差为1。

标准化公式如下:
xj′=xj−μjσjx_j^{'}=\frac{x_j-\mu_j}{\sigma_j}xj′​=σj​xj​−μj​​

xjx_jxj​是nnn个训练样本中第jjj个特征值组成的向量,μj\mu_jμj​是训练样本中的均值,σj\sigma_jσj​是训练样本的标准差。

关于为何标准化能够帮助到梯度下降,书本上的解释如下:

One of the reasons why standardization helps with gradient descent learning is that the optimizer has to go through fewer steps to find a good or optimal solution (the global cost minimum), as illustrated in the following figure, where the subfigures represent the cost surface as a function of two model weights in a two-dimensional classification problem:


我们先翻译解释,再解释图片:

为何标准化能够帮助梯度下降学习是因为优化器需要经历一些步骤才能找到好的或最优的方案(全局最小代价),如图所示,这表示了一个二分类问题中,关于两个权重的代价曲线函数。
而我们再来看看图,图的正中心代表着全局最优的代价(代价最小),而左边的图w2w_2w2​方向比较宅,w1w_1w1​方向又比较宽,那么在梯度下降的过程中,在w2w_2w2​方向梯度会很小,所以会一直寻找最优的点,那么带来了迭代次数变多的后果,降低了效率。而当对其标准化后,变为了右图这种0均值,1标准差的情况,那么在梯度下降的过程中,不会因为某个方向梯度过小而带来更多的迭代。

3 归一化

归一化(normalization)和标准化(standardization)区别不是很大,都是特征缩放(feature scale)的方式。

有的资料中说的,归一化是把数据压缩到[0,1][0,1][0,1],把量纲转为无量纲的过程,方便计算、比较等。

在书本《python machine learning》中对归一化的定义为:

Now, there are two common approaches to bring different features onto the same scale: normalization and standardization. Those terms are often used quite loosely in different fields, and the meaning has to be derived from the context. Most often, normalization refers to the rescaling of the features to a range of [0, 1], which is a special case of min-max scaling.

翻译如下:

我们有两种普通的方法来将不同的特征带到同样的范围:归一化(normalization)和标准化(standardization)。这两个术语在不同领域的使用比较松散,通常需要靠上下文来判断它们的含义。普遍情况下,归一化指的是将特征缩放到[0,1][0, 1][0,1]这个区间,这是一个“min-max scaling”的特殊栗子。

而对于不同特征列向量来说,min-max scaling公式如下:
xnorm(i)=xi−xminxmax−xminx_{norm}^{(i)}=\frac{x^{i}-x_{min}}{x_{max}-x_{min}}xnorm(i)​=xmax​−xmin​xi−xmin​​

其中xix^{i}xi是这个向量中具体的某个特征,xminx_{min}xmin​是这一列特征向量中最小值,xmaxx_{max}xmax​是这一列特征向量中最大值。

就比如说我们有个关于西瓜的数据集,其特征为[声音,颜色,大小][声音,颜色,大小][声音,颜色,大小],关于声音声音声音这个特征我们有三个值,构成了一个向量:[1,5,3][1,5,3][1,5,3],对于这三个特征值来说,归一化后如下:
xnorm(1)=1−15−1=0x_{norm}^{(1)}=\frac{1-1}{5-1}=0xnorm(1)​=5−11−1​=0
xnorm(2)=5−15−1=1x_{norm}^{(2)}=\frac{5-1}{5-1}=1xnorm(2)​=5−15−1​=1
xnorm(3)=3−15−1=0.5x_{norm}^{(3)}=\frac{3-1}{5-1}=0.5xnorm(3)​=5−13−1​=0.5

归一化还有一点,就是说归到[0,1][0,1][0,1]区间后,并不会改变原本的数值大小排序关系(本想用单调性,但是感觉不妥)。就比如上面的栗子,[1,5,3][1,5,3][1,5,3]的大小关系为(1,3,2)(1,3,2)(1,3,2),归一化为[0,1,0.5][0,1,0.5][0,1,0.5]后的大小关系依旧为(1,3,2)(1,3,2)(1,3,2),并没有发生变化。

那么关于归一化、标准化的本质区别就是说:归一化是将特征缩放到[0,1][0,1][0,1]区间,标准化是把特征缩放到均值为0,标准差为1

4 正则化

正则化(regularization)是与标准化还有归一化完全不同的东西。正则化相当于是个惩罚项,用于惩罚那些训练的太好的特征。

在书《python machine learning》中,对于正则化的描述如下:

Regularization is a very useful method to handle collinearity (high correlation among features), filter out noise from data, and eventually prevent overfitting. The concept behind regularization is to introduce additional information (bias) to penalize extreme parameter (weight) values.

我们来翻译一下:

正则化就是用来处理collinearity的,这个collinearity指的是与特征高度相关,清理掉数据的噪声,最终阻止过拟合。而正则化实际上就是引入一个额外的信息(偏置)来惩罚极端的参数(权重)值。

我们借用吴恩达老师的PPT来说:

我们看到图三这个曲线非线性拟合的太完美了,那么就造成了过拟合,造成的原因是因为特征过多,训练的太好了,而这个特征过多,我个人认为就对应了上面英文中的collinearity (high correlation among features)

我们再来分析图二和图三的公式,多了的特征是x3x^3x3和x4x^4x4,为何多了这两个就造成了图三这样的车祸现场(因为拟合的太好了,导致泛化性能很差,当有新的特征来的时候就哦豁了)?大家不妨回忆下泰勒级数,就是用多项式逼近任意一个曲线,这里也是同样的道理。那么我们要怎样解决过拟合?我们有以下两种方法:

  1. 减少特征个数(特征约减):
    1.1 手工保留部分特征(你觉得你能做到么?反正我觉得我做不到)
    1.2 模型选择算法(PCA,SVD,卡方分布)
  2. 正则化:保留所有特征,惩罚系数θ\thetaθ,使之接近于0,系数小,贡献就小。

所以也就对应了书本上的惩罚极端参数值。

正则化通常采用L2正则化,公式如下:
λ2∥w∥2=λ2∑j=1mwj2\frac{\lambda}{2}\left\|w\right\|^2=\frac{\lambda}{2}\sum_{j=1}^mw_j^22λ​∥w∥2=2λ​j=1∑m​wj2​

其中λ\lambdaλ称作正则化项。这里12\frac{1}{2}21​是方便求导。

关于为何通常采用第二范数而非第一范数,我个人认为有如下两个理由:

  1. 计算机中计算平方比计算绝对值简单;
  2. 第二范数是光滑且可求导的,但是第一范数至少在0这个点是不可导的。

5 总结

  1. 量纲与无量纲的区别就是:物理量是否与单位有关。
  2. 标准化与归一化没有显著的区别,具体是谁要依据上下文确定。归一化是把特征缩放到[0,1][0,1][0,1],标准化是把特征缩放到均值为0,标准差为1。
  3. 正则化是与标准化和归一化完全不同的东西,是用于惩罚训练的太好的参数,防止模型过拟合,提高模型的泛化能力。

6 参考

[1]Sebastian Raschka,Vahid Mirjalili.Python Machine Learning[M].Packt Publishing - ebooks Account:Birmingham,2017.
[2]龚焱.标准化和归一化什么区别?[EB/OL].https://www.zhihu.com/question/20467170,2018-5-16.
[3]lcdxshengpeng.无量纲量和有量纲量[EB/OL].https://blog.csdn.net/lcdxshengpeng/article/details/82794603,2018-9-20.

机器学习学习笔记(3)——量纲与无量纲,标准化、归一化、正则化相关推荐

  1. 吴恩达机器学习学习笔记第七章:逻辑回归

    分类Classification分为正类和负类 (规定谁是正谁是负无所谓) 吴恩达老师举例几个例子:判断邮箱是否是垃圾邮箱 一个在线交易是否是诈骗 一个肿瘤是良性的还是恶性 如果我们用之前学习的lin ...

  2. R语言与机器学习学习笔记(分类算法)

    转载自:http://www.itongji.cn/article/0P534092014.html 人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经 ...

  3. 【机器学习笔记】可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning)

    [机器学习笔记]可解释机器学习-学习笔记 Interpretable Machine Learning (Deep Learning) 目录 [机器学习笔记]可解释机器学习-学习笔记 Interpre ...

  4. 机器学习学习笔记(一)绪论

    机器学习学习笔记(一)绪论 声明在开头:本篇文章主要是针对周志华教授的<机器学习>的学习心得. A. 机器学习初见 ArthurArthurArthur SamuelSamuelSamue ...

  5. 天池龙珠训练营-机器学习学习笔记-03 LightGBM 分类

    天池龙珠训练营-机器学习学习笔记-03 LightGBM 分类 本学习笔记为阿里云天池龙珠计划机器学习训练营的学习内容,学习链接为:训练营 一 原理简介: 它是一款基于GBDT(梯度提升决策树)算法的 ...

  6. 机器学习学习笔记(13)----岭回归(Ridge回归)

    在<机器学习学习笔记(4)----线性回归的数学解析>,我们通过计算线性模型的损失函数的梯度,得到使得损失函数为最小值的的解析解,被称之为普通最小二乘法:    (1) 公式(1)能够求得 ...

  7. “张量网络压缩感知(TNCS)与无监督机器学习”学习笔记

    TNCS学习笔记 一.前情小故事 二.张量网络压缩感知(TNCS) 如何构造和优化∣ψ⟩\left| \psi \right\rangle∣ψ⟩ 如何通过在∣ψ⟩\left| \psi \right\ ...

  8. 在.NET Core下的机器学习--学习笔记

    摘要 .NET Core 在机器学习的应用场景,除了 ML .NET 还会介绍一个非常棒的開源技術 TensorFlow .NET , Keras .NET. 讲师介绍 本课内容 人工智能介绍 ML ...

  9. 【机器学习-学习笔记】吴恩达老师机器学习课的笔记(黄海广博士)

    吴恩达老师机器学习课的笔记github地址:https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes,黄海广博士原创,黄海广博士也是这门课的最初翻译 ...

  10. 机器学习学习笔记(二)---PR曲线

    学习笔记 PR曲线 一.P和R代表什么 TP FP TN FN 基本概念 P与R 的定义 评估PR曲线 二.绘制PR曲线 代码 参考文献 一.P和R代表什么 在信息检索中,我们经常会关心"检 ...

最新文章

  1. TensorFlow实现多层感知机MINIST分类
  2. 一分钟了解 TCP/IP 模型
  3. 巨人网络开发工程师试题
  4. FPGA之道(73)设计方法学与FPGA程序设计的境界
  5. 枚举可以被子类化以添加新元素吗?
  6. 【字符串处理算法】最长连续字符及其出现次数的算法设计及C代码实现
  7. dede php标签 禁用,DedeCMS Error:Tag disabled:php的解决办法
  8. spark.mllib:Optimizer
  9. Linq 下的扩展方法太少了,您期待的 MoreLinq 来啦
  10. Boltzmann Machine 入门(1)
  11. Envi 4.7 破解安装及下载(转)
  12. Android游戏开发基础part4--Bitmap位图的渲染与操作
  13. DDoSCoin:加密货币奖励用户参与 DDoS 攻击
  14. ECharts数据可视化:从0到1的蜕变(内部技术分享总结)
  15. 2022-04-13 分布式任务调度Quartz
  16. ffmpeg视频录制
  17. [JAVA面试] java面试
  18. AssertionError: Torch not compiled with CUDA enabled问题
  19. 【数据报表中心】强大的迈安2019年大数据分析有哪些工具
  20. 将yolov2-tiny模型部署到前端

热门文章

  1. 软件项目工作量估算方法解析
  2. Mac系统查看端口占用的进程
  3. CAD打断曲线(网页版)
  4. Unity3D面经以及我个人对游戏研发学习路径的一些理解
  5. Ubuntu20.04安装微信的方法
  6. poj-2115 C Looooops 扩展欧几里德算法求最小非负整数解
  7. 回文素数(10亿)—— unfinished
  8. Easy EDA #学习笔记04# |Type-C Micro USB APPLELighting 充电头
  9. 使用 paddlehub的人物识别 对游戏人物识别 绘制方框
  10. 利用bilibili增强脚本下载B站视频+更多强大功能