变量之间的相关性度量

1. 相关系数

称为Correlation coefficient,又称皮尔逊相关系数,衡量了两个变量的线性相关程度。定义变量 X X X Y Y Y的协方差 C o v ( X , Y ) Cov(X,Y) Cov(X,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{[XE(x)][YE(Y)]}
随机变量 X X X Y Y Y的相关系数 ρ X Y \rho_{XY} ρXY
ρ X Y = C o v ( X , Y ) D ( x ) D ( y ) \rho_{XY}=\frac{Cov(X,Y)}{\sqrt{D(x)}\sqrt{D(y)}} ρXY=D(x) D(y) Cov(X,Y)

相关系数有如下的性质:
1. ∣ ρ X Y ∣ ≤ 1 |\rho_{XY}|\leq 1 ρXY1, ∣ ρ X Y ∣ |\rho_{XY}| ρXY越大,标明线性相关程度越高,当 ∣ ρ X Y ∣ = 0 |\rho_{XY}|=0 ρXY=0,表示为不相关。
2. ∣ ρ X Y ∣ = 1 |\rho_{XY}|=1 ρXY=1的充要条件是,存在常数 a , b a,b a,b使得 P { Y = a + b X } = 1 P\{Y=a+bX\}=1 P{Y=a+bX}=1,即 X X X Y Y Y一定存在线性关系。
3.线性相关和独立的关系:

  • X X X Y Y Y相互独立时, C o v ( X , Y ) = 0 Cov(X,Y)=0 Cov(X,Y)=0,因此 ∣ ρ X Y ∣ = 0 |\rho_{XY}|=0 ρXY=0,此时 X X X Y Y Y一定不相关。
  • X X X Y Y Y不相关, X X X Y Y Y不一定相互独立。因为不相关针对线性关系来说的,相关独立是就一般关系来说的。

1.1相关矩阵

相关系数针对两个随机变量,相关矩阵是对相关系数在 n n n个随机变量的扩展: ( X 1 , X 2 , . . . , X n ) (X_{1},X_{2},...,X_{n}) (X1,X2,...,Xn),
R = [ ρ 11 ρ 12 . . . ρ 1 n ρ 21 ρ 22 . . . ρ 2 n . . . . . . . . . . . . ρ n 1 ρ n 2 . . . ρ n n ] R=\begin{bmatrix} \rho_{11} & \rho_{12}&... &\rho_{1n} \\ \rho_{21} & \rho_{22}&... &\rho_{2n} \\ ... & ...&... &... \\ \rho_{n1} & \rho_{n2}&... &\rho_{nn} \\ \end{bmatrix} R=ρ11ρ21...ρn1ρ12ρ22...ρn2............ρ1nρ2n...ρnn

2.向量的相似度

当前最常用的衡量向量相似度的是余弦相似度,或者是两者的点积。设两个向量 X = [ x 1 , x 2 , . . . , x n ] T X=[x_{1},x_{2},...,x_{n}]^{T} X=[x1,x2,...,xn]T, Y = [ y 1 , y 2 , . . . , y n ] T Y=[y_{1},y_{2},...,y_{n}]^{T} Y=[y1,y2,...,yn]T,点积也成为了内积(inner product),
X T Y = x 1 ∗ y 1 + x 1 ∗ y 1 + . . . + x n ∗ y n X^{T} Y=x_{1}*y_{1}+x_{1}*y_{1}+...+x_{n}*y_{n} XTY=x1y1+x1y1+...+xnyn
cos ⁡ < X , Y > = X T Y ∣ ∣ X ∣ ∣   ∣ ∣ Y ∣ ∣ \cos<X,Y>=\frac{X^{T} Y}{||X||\ ||Y||} cos<X,Y>=X YXTY

  • 余弦相似度衡量了两个向量的夹角, cos ⁡ < X , Y > ∈ [ − 1 , 1 ] \cos<X,Y>\in [-1,1] cos<X,Y>[1,1],值越大,标明两个向量夹角越小,相似度越高。
  • 点积, X ⋅ Y = cos ⁡ < X , Y > ∣ ∣ X ∣ ∣   ∣ ∣ Y ∣ ∣ X\cdot Y=\cos<X,Y>||X||\ ||Y|| XY=cos<X,Y>X Y。点积反映了夹角以及向量的长度因素,在余弦相似度的基础上,两个向量的模越大,相关性越大。点积被用在capsule network时的参数更新计算。

2.1 Gram矩阵

点积运算可以被扩展到3D的feature map,论文:A Gift from Knowledge Distillation:
Fast Optimization, Network Minimization and Transfer Learning中采用Gram矩阵来tranfer的teacher的解过程的流动。
X ∈ R H × W × M X\in R^{H\times W\times M} XRH×W×M, Y ∈ R H × W × N Y\in R^{H\times W\times N} YRH×W×N, H , W H,W H,W是spatial维度, M , N M,N M,N为channel维度,Gram矩阵 G ∈ R M × N G\in R^{M\times N} GRM×N
G i , j = ∑ h = 1 H ∑ w = 1 W X h , w , i × Y h , w , j H × W G_{i,j}=\sum_{h=1}^{H}\sum_{w=1}^{W}\frac{X_{h,w,i}\times Y_{h,w,j}}{H\times W} Gi,j=h=1Hw=1WH×WXh,w,i×Yh,w,j
得到的Gram矩阵相当于抓住了特征图 X X X Y Y Y之间的channel-wise相关度。
实现代码:

import torch

def GramMatrix(A, B):
    """
    Argument:
    A -- matrix of shape (batch_size, n_C,n_H, n_W)

    Returns:
    GA -- Gram matrix of A, of shape (n_C, n_C)
    """
    A_batch_size, A_n_C, A_n_H, A_n_W = A.size()
    B_batch_size, B_n_C, B_n_H, B_n_W = B.size()
    A = A.view(A_batch_size, A_n_C, -1)
    B = B.view(B_batch_size, B_n_C, -1)
    GA = torch.bmm(A, B.transpose(1, 2))
    return GA

x = torch.randn(2, 3, 4, 4)
y = torch.randn(2, 5, 4, 4)

print(GramMatrix(x,y).size())  # torch.Size([2, 3, 5])
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页