期望E,方差D,协方差Cov,主成分分析PCA,应用于图像分类识别

1、期望方差的理解

  关于此主题,网上可以搜到很多,我写下来的目的是让自己理解透彻一些。同时,也发现自己学生时代学习的数学知识,仅仅停留在单纯的计算上,几乎没有联系实际,更不用说在具体问题上去利用数学规律来解决实际问题了。这是此文章的初衷!

  首先,期望衡量的是一组变量X取值分布的平均值,记作:E[X],反应不同数据集的整体水平。

μ = E ( X ) = 1 n ∑ 1 n x i \mu = E(X) = \frac{1}{n} \sum_{1}^n xi μ=E(X)=n1​1∑n​xi

注:并不是任意数据求期望、方差都是有意义的,这必须是同类数据之间才有可比性。比如,可以是一类事物对某种刺激的反应结果,组成的一组数据。换句话说,这组数据是一类个体对相同的一种或一组刺激的写照。也可以说成这一类个体在这一次刺激下具有这种特征(这组数据所表现的特征)。而求期望方差则反过来评价了这一类个体。

  eg: 比如,在一次期末考试中,一班的平均成绩是90分,二班的平均成绩是85分,那么从两个班成绩的均值来看,就反映出一班的总体上优于二班。

  eg:再比如:采用A卷积核对图像做卷积运算,得到一组数据A1;采用B卷积核对改图像做卷积云算,得到一组数据B1;

所以,这里是这幅图相中所有像素作为这类中的个体,参与卷积运算。反应所有像素的特征,也反映卷积核的作用。

E(A1)和E(B1),反应A卷积核和B卷积核,谁对图像总体作用好?那么,N个不同的卷积核作用于一幅图像,可以表示这幅图像的N组特征;广泛来说,N组不同卷积核作用于一类图像,反应这一类图像的N组特征。那么是不是隐约感性+理性地认识了卷神经网络对图像特征提取的意义了呢!

  方差这个概念大家也不陌生,方差的定义是: V [ X ] = E [ ( X − E [ X ] ) 2 ] V[X]=E[(X-E[X])^2] V[X]=E[(X−E[X])2],它反应的是一组数据的离散程度。换句话说,方差越大,数据的分布就越发散,方差越小,数据的分布就越集中。在一组样本集的方差计算中,V为样本X的方差估计:

V = 1 n − 1 ∑ 1 n ( x i − μ ) 2 V = \frac {1}{n-1} \sum_{1}^n(x_i - \mu)^2 V=n−11​1∑n​(xi​−μ)2

  方差反应样本的分散程度。作为一类事物的某组特征,计算方差,就可以用这组特征体现所描述事物的差异性。

  eg:那么在图像中,上述两个卷积核在同一幅图像上的作用,在方差的表现上,知道他们在各自位置上的区分能力。方差大,分布发散,区分能力强(这组特征更好的发现一类事物之间存在的差异,比如一幅图像所有像素,各个像素贡献对图像意义贡献的差异)。


有一组班级成绩数据,A列表示英语成绩,B列为数学成绩,C列表示物理成绩。


期望E,方差D,协方差Cov,主成分分析PCA_方差

  计算得期望方差:

  E[A] = 79.1,D[A] = 54.98888888888888

  E[B] = 80.6,D[B] = 188.04444444444442

  E[C] = 80.1,D[C] = 181.87777777777777


从运行结果中我们可以看出这10名同学的英语、数学、物理三门功课的成绩所体现出的一些特征。
三门课的平均值都差不多,但是方差值相差非常大,英语成绩的方差要明显小于数学和物理成绩的方差,这恰恰说明了这10名同学的英语成绩的分布相对而言要集中一些,换句话说就是大家的成绩相差不大,而另外两门理科的分数分布的则要更加分散,成绩差距相对更大。


2、协方差与协方差矩阵

  大多数人都会有这样一种感觉,一般而言一个人如果数学成绩好,那他的物理成绩大概也会不错,反之亦然。而英语成绩和数学成绩相关性却没有那么大。如何从量化的层面解释这种现象,引入协方差这个概念?

  对于随机变量X、Y,二者的协方差定义如下(随机变量可以计算协方差,那两组特征(某科成绩),乃至N组特征,互相之间也可以计算协方差):

C o v [ X , Y ] = E [ ( X − E ( X ) ) ( Y − E ( Y ) ) ] Cov[X,Y] = E[(X-E(X))(Y-E(Y))] Cov[X,Y]=E[(X−E(X))(Y−E(Y))]

注:方差公式: V [ X ] = E [ ( X − E [ X ] ) 2 ] V[X]=E[(X-E[X])^2] V[X]=E[(X−E[X])2],方差只是协方差的特殊形式。

  通俗概括协方差的含义:当X和Y的协方差为正,表示X增大,Y也倾向于随之增大;协方差为负,表示当X增大,Y倾向于减小;当协方差为0,表示当X增大,Y没有明显增大或减小。反之,Y变化,X也会根据协方差趋势同步变化。

  eg:这种计算方式引入到卷积神经网络中,一个卷积层有N个不同的卷积核。图像经过一个卷积层,输出N组特征值,如果在这里计算N组特征之间的关系,可以计算协方差矩阵。例如:一组变量X1,X2,X3,两两之间的协方差矩阵的形式表达式:

[ V [ X 1 ] C o v [ X 1 , X 2 ] C o v [ X 1 , X 3 ] C o v [ X 2 , X 1 ] V [ X 2 ] C o v [ X 2 X 3 ] C o v [ X 3 , X 1 ] C o v [ X 3 , X 2 ] V [ X 3 ] ] \begin{bmatrix} V[X1] & Cov[X1,X2] & Cov[X1,X3] \\ Cov[X2,X1] & V[X2] & Cov[X2X3] \\ Cov[X3,X1] & Cov[X3,X2] & V[X3] \end{bmatrix} ⎣⎡​V[X1]Cov[X2,X1]Cov[X3,X1]​Cov[X1,X2]V[X2]Cov[X3,X2]​Cov[X1,X3]Cov[X2X3]V[X3]​⎦⎤​

  协方差矩阵的第i行,第j列表示Xi和Xj之间的协方差,根据协方差的定义, C o v [ X i , X j ] Cov[Xi,Xj] Cov[Xi,Xj]与 C o v [ X j , X i ] Cov[Xj,Xi] Cov[Xj,Xi]的值相等;观察协方差矩阵,主对角线上为各组数据自身的方差;所以协方差矩阵是一个主对角线对称矩阵。

  同样,计算英语,数学,物理分数(三组特征)之间的协方差矩阵如下:

​英语、数学、物理分数特征组成的协方差矩阵:
[[ 54.98888889 70.82222222 56.76666667]
[ 70.82222222 188.04444444 175.15555556]
[ 56.76666667 175.15555556 181.87777778]]

  从量化的层面得出三组特征之间的关系

  从这个协方差矩阵中我们观察出,数学和物理成绩之间的协方差为:175.16,而英语和数学、英语和物理之间的协方差分别是70.82和56.77,要明显小于数学和物理之间的协方差,这就从量化的层面说明了,数学和物理成绩之间的正相关性更强一些。

​参考:知乎,如何通俗易懂讲解什么是PCA主成分分析?​

3、数据降维的需求背景

  在研究工作中,我们常常针对我们关注的研究对象,收集大量有关他的特征属性,从而对其进行观测和分析。

  比如,对一组城市进行研究的时候,我们可以从人口、GDP、面积、年降水量、年平均温度、人均寿命、人均工资、人均受教育年份、性别比例、宗教人口、汽车保有量、人均住房面积等等收集相关数据。这里随手一列就是十几个特征属性,其实就算列出一百个来,也不足为奇。我们收集越多的特征属性就越方便我们全方面的对事物进行细致的研究,对深层次的规律进行探寻。

比如,做图像分类等任务的时候,通过卷积层的N个卷积核来提取N组数据特征。那么这N组特征之间有什么关系,如何确定卷积核操作得到的所有组特征没有相关性或者冗余。

  或将一幅图MxN个像素看成特征,并不是所有像素都是表达图像意义所必须的,必然存在冗余。如图显示(非真正PCA,形象比喻),

期望E,方差D,协方差Cov,主成分分析PCA_数据_02

期望E,方差D,协方差Cov,主成分分析PCA_其他_03

  因此这种现状让我们感觉到,用这么多彼此相关的特征属性去描述一件事物,一方面很复杂,另一方面似乎也显得不是那么有必要。我们希望能在原有基础上减少特征属性的数量。

4、PCA就是从解决特征之间的相关性入手,剔除冗余特征

  步骤:一是,要考虑去除掉特征之间的相关性,想法是创造另一组新的特征来描述样本,并且新的特征必须彼此之间不相关。

  二是,在新的彼此无关的特征集中,舍弃掉不重要的特征,保留较少的特征,实现数据的特征维度降维,保持尽量少的信息损失。


假设有一个图像包含8x8个像素点,也就是说原始数据包括64个维度。图像是通过这64个像素点的信息构建的:
image(x) = x1*(pixel 1)+x2*(pixel 2)+x3*(pixel 3)…+x64 * (pixel 64)
含义:这幅图像的含义表示64个位置上的像素对构成图像的贡献,xi是影响因子。换句话说:像素值是特征,xi是该特征对形成完整意义图像的贡献。


  主成份分析PCA,并不是简单舍弃一些特征,留下个别特征;而是,从原来的特征中重新构建新的保留大部分信息的新特征

即它重构图像的方式是(pc1,到pc N,是新特征,也是N个主成分):

i m a g e ( x ) = m e a n + x 1 ∗ ( p c 1 ) + x 2 ∗ ( p c 2 ) + x 3 ∗ ( p c 3 ) + . . . image(x) = mean + x1*(pc 1) + x2*(pc 2) + x3*(pc 3) + ... image(x)=mean+x1∗(pc1)+x2∗(pc2)+x3∗(pc3)+...

  主成分分析从原始数据的特征中重新构建了新的特征,并剔除了特征之间存在的冗余信息。它可以让我们仅仅使用少量的新特征,就可以最大程度地重构原始数据所包含的信息。

  如知乎作者舒小曼提供的,直接去除特征,保留8个特征并不能重构图像;而经过PCA分析,得到8个新特征的主要成分,可以重构图像,丢失信息较少。

期望E,方差D,协方差Cov,主成分分析PCA_协方差_04

期望E,方差D,协方差Cov,主成分分析PCA_协方差_05

  适用于寻找合适的卷积参数,或者数据压缩?

5、PCA的细节

  再明确以下目标:对样本的特征属性降维:特征维数变小,描述样本的信息损失尽量要小。

  举例说明:采用2个新的特征来对样本进行描述,那么为了让这两个新特征满足彼此无关的要求,就得让这两个新特征的协方差为0,构成的协方差矩阵是一个对称矩阵。原始特征X、Y的协方差不为零,则其协方差矩阵为一个普通对角矩阵。我们的目的就是要将当前的对称矩阵变成对角矩阵。

  X、Y的协方差矩阵:

[ V [ X ] C o v [ X , Y ] C o v [ Y , X ] V [ Y ] ] \begin{bmatrix} V[X] & Cov[X,Y] \\ Cov[Y,X] & V[Y] \end{bmatrix} [V[X]Cov[Y,X]​Cov[X,Y]V[Y]​]

  回顾协方差的定义式: C o v [ X , Y ] = E [ ( X − E ( X ) ) ( Y − E ( Y ) ) ] Cov[X,Y] = E[(X-E(X))(Y-E(Y))] Cov[X,Y]=E[(X−E(X))(Y−E(Y))],简化公式的方法是,特征标准化,将每个特征的均值变为0时,将简化表达式。

  这个其实好办,我们将X中的每一个变量都减去他们的均值 μ = E ( X ) \mu=E(X) μ=E(X) ,同样将 Y中的每一个变量都减去他们的均值 μ = E ( Y ) \mu=E(Y) μ=E(Y) ,这样经过零均值化处理后,特征 X和特征Y的平均值都变为了0。显然,这样处理并不会改变方差与协方差的值,因为数据的离散程度并未发生改变,同时,从公式的表达上来看也非常清楚。

  经过零均值处理后,X和Y的协方差就可以写成:

[ V [ X ] C o v [ X , Y ] C o v [ Y , X ] V [ Y ] ] = [ E [ X 2 ] E [ X Y ] E [ Y X ] E [ Y 2 ] ] \begin{bmatrix} V[X] & Cov[X,Y] \\ Cov[Y,X] & V[Y] \end{bmatrix}= \begin{bmatrix} E[X^2] & E[XY] \\ E[YX] & E[Y^2] \end{bmatrix} [V[X]Cov[Y,X]​Cov[X,Y]V[Y]​]=[E[X2]E[YX]​E[XY]E[Y2]​]

. . . = [ 1 n − 1 ∑ 1 n x i 2 1 n − 1 ∑ 1 n x i y i 1 n − 1 ∑ 1 n y i x i 1 n − 1 ∑ 1 n y i 2 ] = 1 n − 1 [ ∑ 1 n x i 2 ∑ 1 n x i y i ∑ 1 n y i x i ∑ 1 n y i 2 ] ...= \begin{bmatrix} \frac{1}{n-1}\sum_1^n{x_i^2} & \frac{1}{n-1}\sum_1^n{x_iy_i} \\ \frac{1}{n-1}\sum_1^n{y_ix_i} & \frac{1}{n-1}\sum_1^n{y_i^2} \end{bmatrix}= \frac{1}{n-1}\begin{bmatrix} \sum_1^n{x_i^2} & \sum_1^n{x_iy_i} \\ \sum_1^n{y_ix_i} & \sum_1^n{y_i^2} \end{bmatrix} ...=[n−11​∑1n​xi2​n−11​∑1n​yi​xi​​n−11​∑1n​xi​yi​n−11​∑1n​yi2​​]=n−11​[∑1n​xi2​∑1n​yi​xi​​∑1n​xi​yi​∑1n​yi2​​]

  此矩阵, [ ∑ 1 n x i 2 ∑ 1 n x i y i ∑ 1 n y i x i ∑ 1 n y i 2 ] = C \begin{bmatrix} \sum_1^n{x_i^2} & \sum_1^n{x_iy_i} \\ \sum_1^n{y_ix_i} & \sum_1^n{y_i^2} \end{bmatrix}=C [∑1n​xi2​∑1n​yi​xi​​∑1n​xi​yi​∑1n​yi2​​]=C就是零均值后的样本矩阵,同时,它也等于两个样本数据组成矩阵与自生转置的乘积,即:

A = [ x 1 x 2 x 3 . . . x n y 1 y 2 y 3 . . . y n ] A =\begin{bmatrix} x_1 &x_2&x_3&...&x_n \\ y_1&y_2&y_3&...&y_n \end{bmatrix} A=[x1​y1​​x2​y2​​x3​y3​​......​xn​yn​​]

[ ∑ 1 n x i 2 ∑ 1 n x i y i ∑ 1 n y i x i ∑ 1 n y i 2 ] = A A T = [ x 1 x 2 x 3 . . . x n y 1 y 2 y 3 . . . y n ] [ x 1 y 1 x 2 y 2 x 3 y 3 . . x n y n ] \begin{bmatrix} \sum_1^n{x_i^2} & \sum_1^n{x_iy_i} \\ \sum_1^n{y_ix_i} & \sum_1^n{y_i^2} \end{bmatrix}=AA^T=\begin{bmatrix} x_1 &x_2&x_3&...&x_n \\ y_1&y_2&y_3&...&y_n \end{bmatrix}\begin{bmatrix} x_1 &y_1 \\ x_2&y_2 \\x_3&y_3 \\.&. \\x_n&y_n \end{bmatrix} [∑1n​xi2​∑1n​yi​xi​​∑1n​xi​yi​∑1n​yi2​​]=AAT=[x1​y1​​x2​y2​​x3​y3​​......​xn​yn​​]⎣⎢⎢⎢⎢⎡​x1​x2​x3​.xn​​y1​y2​y3​.yn​​⎦⎥⎥⎥⎥⎤​

C = A A T C=AA^T C=AAT

  一般而言,X和Y满足线性无关,所以根据线性代数知识,协方差矩阵C是对称、正定的满秩矩阵。

期望E,方差D,协方差Cov,主成分分析PCA_方差_06

期望E,方差D,协方差Cov,主成分分析PCA_方差_07

  在以上一系列操作中,我们构造了新的特征。原始 x x x轴正方向和 y y y轴正方向,两个原始特征X,Y相关,而构造的两个新特征,协方差为0,线性无关。那么,只需将原始特征的采样值变换到两个新选取的投影基上,就得到一组新的特征取值,此值还代表原来事物的本质。新构建特征之间线性无关,可以根据对事物描述的贡献选择取舍,保留贡献大的特征,这就是主成分分析在数据特征降维上的意义所在。

  取舍的依据:主要判定标准是方差,方差越大,表明特征数据分布的离散程度越高,特征所包含的信息量越大;反之,分布集中,表明信息量小。自然保留信息量大的一组特征,而牺牲信息量少的特征,从而实现数据降维,便于进一步分析计算。

以上举例说明的是二维降到一维,那么推广到n个特征的降维,同理可得:

期望E,方差D,协方差Cov,主成分分析PCA_方差_08