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{[X−E(x)][Y−E(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
∣ρXY∣≤1,
∣
ρ
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=x1∗y1+x1∗y1+...+xn∗yn
cos
<
X
,
Y
>
=
X
T
Y
∣
∣
X
∣
∣
∣
∣
Y
∣
∣
\cos<X,Y>=\frac{X^{T} Y}{||X||\ ||Y||}
cos<X,Y>=∣∣X∣∣ ∣∣Y∣∣XTY
- 余弦相似度衡量了两个向量的夹角, 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|| X⋅Y=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}
X∈RH×W×M,
Y
∈
R
H
×
W
×
N
Y\in R^{H\times W\times N}
Y∈RH×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}
G∈RM×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=1∑Hw=1∑WH×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])