白话(whitening)

白化

Contents

 [hide]
  • 1 介绍
  • 2 2D 的例子
  • 3 ZCA白化
  • 4 正则化
  • 5 中英文对照
  • 6 中文译者

介绍

我们已经了解了如何使用PCA降低数据维度。在一些算法中还需要一个与之相关的预处理步骤,这个预处理过程称为白化(一些文献中也叫sphering)。举例来说,假设训练数据是图像,由于图像中相邻像素之间具有很强的相关性,所以用于训练时输入是冗余的。白化的目的就是降低输入的冗余性;更正式的说,我们希望通过白化过程使得学习算法的输入具有如下性质:(i)特征之间相关性较低;(ii)所有特征具有相同的方差。


2D 的例子

下面我们先用前文的2D例子描述白化的主要思想,然后分别介绍如何将白化与平滑和PCA相结合。

如何消除输入特征之间的相关性? 在前文计算 \textstyle x_{\rm rot}^{(i)} = U^Tx^{(i)} 时实际上已经消除了输入特征\textstyle x^{(i)}之间的相关性。得到的新特征 \textstyle x_{\rm rot} 的分布如下图所示:

PCA-rotated.png

这个数据的协方差矩阵如下:

\begin{align}\begin{bmatrix}7.29 & 0  \\0 & 0.69\end{bmatrix}.\end{align}

(注: 严格地讲, 这部分许多关于“协方差”的陈述仅当数据均值为0时成立。下文的论述都隐式地假定这一条件成立。不过即使数据均值不为0,下文的说法仍然成立,所以你无需担心这个。)


\textstyle x_{\rm rot} 协方差矩阵对角元素的值为 \textstyle \lambda_1 和 \textstyle \lambda_2 绝非偶然。并且非对角元素值为0; 因此, \textstyle x_{​{\rm rot},1} 和 \textstyle x_{​{\rm rot},2} 是不相关的, 满足我们对白化结果的第一个要求 (特征间相关性降低)。

为了使每个输入特征具有单位方差,我们可以直接使用 \textstyle 1/\sqrt{\lambda_i} 作为缩放因子来缩放每个特征 \textstyle x_{​{\rm rot},i} 。具体地,我们定义白化后的数据 \textstyle x_{​{\rm PCAwhite}} \in \Re^n 如下:

\begin{align}x_{​{\rm PCAwhite},i} = \frac{x_{​{\rm rot},i} }{\sqrt{\lambda_i}}.   \end{align}


绘制出 \textstyle x_{​{\rm PCAwhite}} ,我们得到:

PCA-whitened.png


这些数据现在的协方差矩阵为单位矩阵 \textstyle I 。我们说,\textstyle x_{​{\rm PCAwhite}} 是数据经过PCA白化后的版本: \textstyle x_{​{\rm PCAwhite}} 中不同的特征之间不相关并且具有单位方差。

白化与降维相结合。 如果你想要得到经过白化后的数据,并且比初始输入维数更低,可以仅保留 \textstyle x_{​{\rm PCAwhite}} 中前 \textstyle k 个成分。当我们把PCA白化和正则化结合起来时(在稍后讨论),\textstyle x_{​{\rm PCAwhite}}中最后的少量成分将总是接近于0,因而舍弃这些成分不会带来很大的问题。


ZCA白化

最后要说明的是,使数据的协方差矩阵变为单位矩阵 \textstyle I 的方式并不唯一。具体地,如果 \textstyle R 是任意正交矩阵,即满足 \textstyle RR^T = R^TR = I (说它正交不太严格,\textstyle R 可以是旋转或反射矩阵), 那么 \textstyle R \,x_{\rm PCAwhite} 仍然具有单位协方差。在ZCA白化中,令 \textstyle R = U 。我们定义ZCA白化的结果为:

\begin{align}x_{\rm ZCAwhite} = U x_{\rm PCAwhite}\end{align}

绘制 \textstyle x_{\rm ZCAwhite},得到:

ZCA-whitened.png


可以证明,对所有可能的 \textstyle R,这种旋转使得 \textstyle x_{\rm ZCAwhite} 尽可能地接近原始输入数据 \textstyle x 。

当使用 ZCA白化时(不同于 PCA白化),我们通常保留数据的全部 \textstyle n 个维度,不尝试去降低它的维数。


正则化

实践中需要实现PCA白化或ZCA白化时,有时一些特征值 \textstyle \lambda_i 在数值上接近于0,这样在缩放步骤时我们除以 \sqrt{\lambda_i} 将导致除以一个接近0的值;这可能使数据上溢 (赋为大数值)或造成数值不稳定。因而在实践中,我们使用少量的正则化实现这个缩放过程,即在取平方根和倒数之前给特征值加上一个很小的常数 \textstyle \epsilon

\begin{align}x_{​{\rm PCAwhite},i} = \frac{x_{​{\rm rot},i} }{\sqrt{\lambda_i + \epsilon}}.\end{align}

当 \textstyle x 在区间 \textstyle [-1,1] 上时, 一般取值为 \textstyle \epsilon \approx 10^{-5}

对图像来说, 这里加上 \textstyle \epsilon ,对输入图像也有一些平滑(或低通滤波)的作用。这样处理还能消除在图像的像素信息获取过程中产生的噪声,改善学习到的特征(细节超出了本文的范围)。


ZCA 白化是一种数据预处理方法,它将数据从 \textstyle x 映射到 \textstyle x_{\rm ZCAwhite} 。 事实证明这也是一种生物眼睛(视网膜)处理图像的粗糙模型。具体而言,当你的眼睛感知图像时,由于一幅图像中相邻的部分在亮度上十分相关,大多数临近的“像素”在眼中被感知为相近的值。因此,如果人眼需要分别传输每个像素值(通过视觉神经)到大脑中,会非常不划算。取而代之的是,视网膜进行一个与ZCA中相似的去相关操作 (这是由视网膜上的ON-型和OFF-型光感受器细胞将光信号转变为神经信号完成的)。由此得到对输入图像的更低冗余的表示,并将它传输到大脑。


中英文对照

白化 whitening

冗余 redundant

方差 variance

平滑 smoothing

降维 dimensionality reduction

正则化 regularization

反射矩阵 reflection matrix

去相关 decorrelation

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

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

相关文章

Python小白的数学建模课-04.整数规划

整数规划与线性规划的差别只是变量的整数约束。 问题区别一点点,难度相差千万里。 选择简单通用的编程方案,让求解器去处理吧。 『Python小白的数学建模课 Youcans』带你从数模小白成为国赛达人。 1. 从线性规划到整数规划 1.1 为什么会有整数规划&…

实现主成分分析和白化

实现主成分分析和白化 在这一节里,我们将总结PCA, PCA白化和ZCA白化算法,并描述如何使用高效的线性代数库来实现它们。 首先,我们需要确保数据的均值(近似)为零。对于自然图像,我们通过减去每个图像块(patc…

Python小白的数学建模课-05.0-1规划

0-1 规划不仅是数模竞赛中的常见题型,也具有重要的现实意义。 双十一促销中网购平台要求二选一,就是互斥的决策问题,可以用 0-1规划建模。 小白学习 0-1 规划,首先要学会识别 0-1规划,学习将问题转化为数学模型。 『…

mac下一些终端命令的使用

mac基础终端命令入门作为一名编程人员,(叫程序猿显得屌丝,叫攻城狮感觉还达不到),我经常看到许多大神在终端里面进行一些神操作。鉴于此,我今天就百度了一下,别问我为什么不Google,穷…

Python小白的数学建模课-A3. 12个新冠疫情数模竞赛赛题与点评

新冠疫情深刻和全面地影响着社会和生活,已经成为数学建模竞赛的背景帝。 收集了与新冠疫情相关的的数学建模竞赛赛题,关注收藏本文或者在评论区留下邮箱,送你赛题分析点评及优秀论文。 『Python小白的数学建模课 Youcans』带你从数模小白成…

Python小白的数学建模课-06.固定费用问题

Python 实例介绍固定费用问题的建模与求解。 学习 PuLP工具包中处理复杂问题的快捷使用方式。 『Python小白的数学建模课 Youcans』带你从数模小白成为国赛达人。 前文讲到几种典型的 0-1 规划问题,给出了 PuLP 求解的案例。由于 0-1 规划问题种类很多&#xff0…

html细节

HTML细节一 以下是使文本显示特殊样式的标签<em>把文本定义为强调的内容<strong>把文本定义为更强语气的内容<dfn>定义一个定义项目<code>定义计算机代码文本<samp>定义样本文本<kbd>定义键盘文本。表示文本是从键盘上建入的。经常用在与计…

Python小白的数学建模课-07.选址问题

选址问题是要选择设施位置使目标达到最优&#xff0c;是数模竞赛中的常见题型。 小白不一定要掌握所有的选址问题&#xff0c;但要能判断是哪一类问题&#xff0c;用哪个模型。 进一步学习 PuLP工具包中处理复杂问题的字典格式快捷建模方法。 欢迎关注『Python小白的数学建模…

Python小白的数学建模课-09.微分方程模型

小白往往听到微分方程就觉得害怕&#xff0c;其实数学建模中的微分方程模型不仅没那么复杂&#xff0c;而且很容易写出高水平的数模论文。 本文介绍微分方程模型的建模与求解&#xff0c;通过常微分方程、常微分方程组、高阶常微分方程 3个案例手把手教你搞定微分方程。 通过…

html标签详解

HTML标签详解 大家知道&#xff0c;学习html最重要的就是学习它里面的标签。今天&#xff0c;我就给大家整理了一下。基础 <!DOCTYPE>定义文档类型<html>定义HTML文档<title>定义文档标题<body>定义HTML主体<h1> to <h6> 定义HTML标题<…

Python小白的数学建模课-B2. 新冠疫情 SI模型

传染病的数学模型是数学建模中的典型问题&#xff0c;常见的传染病模型有 SI、SIR、SIRS、SEIR 模型。 SI 模型是最简单的传染病模型&#xff0c;适用于只有易感者和患病者两类人群。 我们就从 SI 模型开始吧&#xff0c;从模型、例程、运行结果到模型分析&#xff0c;全都在…

Python小白的数学建模课-B3. 新冠疫情 SIS模型

传染病的数学模型是数学建模中的典型问题&#xff0c;常见的传染病模型有 SI、SIR、SIRS、SEIR 模型。 SIS 模型型将人群分为 S 类和 I 类&#xff0c;考虑患病者可以治愈而变成易感者&#xff0c;但不考虑免疫期。 本文详细给出了 SIS 模型的建模、例程、运行结果和模型分析…

html里面Meta标签的使用

HTML meta标签使用 先上思维导图&#xff0c;接下来在是文章内容。一、meta标签的组成 meta标签共有两个属性&#xff0c;它们分别是http-equiv属性和name属性&#xff0c;不同的属性又有不同的参数值&#xff0c;这些不同的参数值就实现了不同的网页功能。 1、name属性 name属…

Python小白的数学建模课-B4. 新冠疫情 SIR模型

传染病的数学模型是数学建模中的典型问题&#xff0c;常见的传染病模型有 SI、SIR、SIRS、SEIR 模型。 SIR 模型将人群分为易感者&#xff08;S类&#xff09;、患病者&#xff08;I类&#xff09;和康复者&#xff08;R 类&#xff09;&#xff0c;考虑了患病者治愈后的免疫能…

iOS开发cocoaPod的使用

iOS开发cocoaPod的使用 cocoaPod在我们开发iOS的时候是经常使用的,因此我们要熟练运用cocoaPod.注意:使用第6步里面的括号里面的代码&#xff0c;可以使pod的安装更快。

Python小白的数学建模课-B5. 新冠疫情 SEIR模型

传染病的数学模型是数学建模中的典型问题&#xff0c;常见的传染病模型有 SI、SIR、SIRS、SEIR 模型。 考虑存在易感者、暴露者、患病者和康复者四类人群&#xff0c;适用于具有潜伏期、治愈后获得终身免疫的传染病。 本文详细给出了 SEIR 模型微分方程的建模、例程、结果和分…

Python小白的数学建模课-B6. 新冠疫情 SEIR 改进模型

传染病的数学模型是数学建模中的典型问题&#xff0c;常见的传染病模型有 SI、SIR、SIRS、SEIR 模型。 SEIR 模型考虑存在易感者、暴露者、患病者和康复者四类人群&#xff0c;适用于具有潜伏期、治愈后获得终身免疫的传染病。 本文详细给出了几种改进 SEIR 模型微分方程的思…

iOS里面MVC模式详解

iOS里面MVC模式详解MVC是IOS里面也是很多程序设计里面的一种设计模式&#xff0c;M是model&#xff0c;V是view&#xff0c;C是controller。MVC模式在ios开发里面可谓是用得淋漓尽致。 以下是对斯坦福大学ios开发里面MVC模式的一段话的翻译 主要的宗旨是把所有的对象分为3个阵营…

Python小白的数学建模课-10.微分方程边值问题

小白往往听到微分方程就觉得害怕&#xff0c;其实数学建模中的微分方程模型不仅没那么复杂&#xff0c;而且很容易写出高水平的数模论文。 本文介绍微分方程模型边值问题的建模与求解&#xff0c;不涉及算法推导和编程&#xff0c;只探讨如何使用 Python 的工具包&#xff0c;…