数据挖掘中白化处理的作用和具体操作,以及白化在NLP、多模态领域的妙用

1. 什么是白化数据

        严格的数学定义为:一个随机向量 A 是“白色”随机向量,当且仅当其均值为0,且自相关函数为一个单位矩阵的倍数,即,该向量均值为0,且各个分量之间互不相关

        先解释下,自相关 自相关函数

        自相关:也叫序列相关,是一个信号自身在不同时间点的互相关。非正式地描述,就是两次观察之间的相似度对两次观察的时间差的函数。特别在统计学,自相关被定义为,两个随机过程中不同时刻的数值之间的皮尔森相关(Pearson correlation)。

        自相关函数(Autocorrelation Function):在不同的领域,定义不完全等效。在某些领域,自相关函数等同于协方差(autocovariance)。自相关函数是表达信号和它的多径信号的相似程度

        协方差(方阵):在概率论和统计学中用于衡量两个变量的总体误差。当两个变量相同时候,协方差化为方差,方差是协方差的一种特殊情况,只表示一个变量误差。

        协方差计算的博客https://www.cnblogs.com/cvlabs/archive/2010/05/08/1730319.html

        总结:现实中大部分数据都符合正态分布,在这类情况下,“白色”的定义为均值为0,且协方差矩阵可以表示成一个 倍的单位矩阵。

2. 如何进行白化操作

        简单的两步 :0均值化 + 使数据各维度之间独立

2.1 零均值化

x1  = [ -1 , 1 , 3  ]       均值为1,转换后的 [-2, 0, 2], 其均值为0

x2  = [ -2 , -2 , 2 ]

x3  = [ -3 , -3 , 2 ]

        当前矩阵3 * 3,每一行是一个数据,每一列是一个维度的特征。

        计算当前数据的平均值,意味着分别对每一行(每个数据)计算其均值,然后当前数据减去均值,即可得到一组均值为0的新数据。

        这样的零均值化操作,只是使数据在数值上共同向上或向下平移,并不会改变数据的其他特征。

2.2 白化变换     

        零均值化后,需要进一步让新数据的各个维度之间不相关,该操作被称为白化变换

        白化变换:是一种在协方差矩阵已知的前提下(提前计算好),将随机变量变成一组新的变量,新组成的向量协方差为单位矩阵,即对应 k = 1 ,方差为1的特殊情况(在1中的总结有讲),这表示了一种白化的标准型。

        白化变换的数学定义:假设 X 是一个均值为0的随机向量,协方差矩阵为 \Sigma 且非奇异。一个线性变换 Y = WX ,变换为白化变换,当且仅当 WW^{T} = \Sigma ^{-1} ,如果操作Y的协方差矩阵是单位矩阵。所以最终目的就是通过已知的 X 的协方差矩阵,求出协方差矩阵的,然后得到 W

        补充1:变换矩阵 w 的求解方法不唯一,包括ZCA白化(W=\Sigma^{-\frac{1}{2}}), Cholesky白化(Cholesky 分解)和PCA白化(PCA分解)。

        补充2:之所以要化为方差 = 1的原因,举例:在信号处理中,一个随机信号 x 通过一个放大率为100的线性放大器得到另一个随机变量 y ,从方差角度看 y 的方差是 x 方差的10000倍,看起来 y 是与 x 完全不相同的信号,但实际也只是数值按比例放大,相当于采用不同的计量单位来量化同一个物理信号 或 描述同一个物理现象。因此有必要在白化变换中统一将信号的整体方差归一化为1,从而避免类似的问题。

        补充3:批量归一化(BN)也可以做到0均值和1方差,但是没有考虑分量之间的相关性

白化变换操作 文档: https://en.wikipedia.org/wiki/Whitening_transformation

3. 白化操作在NLP领域的妙用

        已知BERT这个模型输出的第一个位置是CLS,CLS包含整个输入句子的语义,同时还被用来计算NSP(Next Sequence prediction),如果使用余弦相似度来计算句子之间的关联(两个句子输入BERT后得到的CLS,会被用来计算余弦相似度),在实验中会发现结果并不是很好。

        可能的原因:余弦相似度表示为两个向量的内积并除以各自的模长,其中左右两端等号成立的前提假设是向量所属的坐标系是“标准正交基”。换句话说,向量的“夹角余弦”本身是具有鲜明的几何意义的,但公式右端只是坐标的运算,坐标依赖于所选取的坐标基,基底不同,内积对应的坐标公式就不一样,从而余弦值的坐标公式也不一样。

cos\left ( x, y \right ) = \frac{ \sum_{i = 1}^{d}x_{i} * y_{i}}{\sqrt{ \sum_{i = 1}^{d}x_{i} * x_{i}} \sqrt{ \sum_{i = 1}^{d}y_{i} * y_{i}} }

        充足的训练样本能够保证BERT输出的CLS Token包含足够的语义,能够完成核心语义的表述,那么用余弦值来比较句子相似度,但表现不好的原因可能就是此时的CLS向量所属的坐标系并非标准正交基。

        因此一种可能的解法是:在计算余弦相似度之间,将CLS向量白化处理,将其转换为均值为0,协方差矩阵为单位矩阵的的新向量。

这部分可以查看苏建林老师的文章:你可能不需要BERT-flow:一个线性变换媲美BERT-flow - 科学空间|Scientific Spaces

4. 将思维进一步扩展到多模态

        在21年多模态开始发展的时候,在图文匹配任务中,出现了这样一类现象,image 进入 图像编码器 得到 image embedding = IE,text 进入 文本编码器 得到 text embedding = TE。第一种情况模型直接使用 IE TE 计算各类相似度(余弦相似度等),第二种情况 IE TE 作为输入,经过复杂的神经网络输出相似度,综合统计所有样本,第二种情况一般都好于第一种情况!

        可能的原因: IE TE 不在同一个坐标基下,因此无论使用那种相似度计算方式都不合适。

        解决办法:因此在后续模型中引入了新的任务 Image Text Constractive,中文名图像文本对比,英文简称 ITC。这个二分类任务引入相应的损失函数,进一步训练图像和文本各自的编码器权重,使其权重尽可能地处在同一个分布下 或 坐标基下。

        具体可以去看下B站上李沐老师的多模态串讲和CLIP!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值