机器学习中衡量“分布距离”损失函数的定义方法
0 引言
距离的损失函数的功能是通过样本来计算模型分布与目标分布之间的差异,在分布差异计算中我们最常见到的是交叉熵,其实还有很多其它的距离定义方法。
1 相对熵/KL散度
当一个离散事件
X
X
X发生的概率为
p
(
x
)
p(x)
p(x)时,则该事件的信息量为
−
l
o
g
(
p
(
x
)
)
-log(p(x))
−log(p(x))。当把该事件发生的
n
n
n种可能性
x
1
,
x
2
,
.
.
.
,
x
n
{x_1,x_2,...,x_n}
x1,x2,...,xn罗列起来,就可以得到该事件信息量的期望,即信息熵
H
(
X
)
H(X)
H(X):
H
(
X
)
=
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
(
p
(
x
i
)
)
H(X)=-\sum_{i=1}^np(x_i)log(p(x_i))
H(X)=−i=1∑np(xi)log(p(xi))
注:当然这里要考虑不同分布的期望计算方法,还有离散型和连续性的。对于同一个随机变量
x
x
x有两个单独的概率分布
P
(
x
)
P(x)
P(x)和
Q
(
x
)
Q(x)
Q(x),则可以通过KL散度来衡量二者之间的分布差异:
D
K
L
(
p
∣
∣
q
)
=
∑
i
=
1
n
p
(
x
i
)
l
o
g
(
p
(
x
i
)
q
(
x
i
)
)
D_{KL}(p||q)=\sum_{i=1}^np(x_i)log(\frac{p(x_i)}{q(x_i)})
DKL(p∣∣q)=i=1∑np(xi)log(q(xi)p(xi))
当Q越接近P时,那么
D
K
L
D_{KL}
DKL越小。在机器学习中通常用P(x)表示样本的真实分布,Q(x)表示模型预测的分布,如果二者之间的KL散度越小,那么证明模型预测能力越好。但是将上面的分式
p
p
p和
q
q
q的位置调换那么KL散度的值会改变,没有“距离空间上“的对称性。
2 交叉熵
交叉熵是根据KL散度推导得到的:
D
K
L
(
p
∣
∣
q
)
=
∑
i
=
1
n
p
(
x
i
)
l
o
g
(
p
(
x
i
)
q
(
x
i
)
)
D_{KL}(p||q)=\sum_{i=1}^np(x_i)log(\frac{p(x_i)}{q(x_i)})
DKL(p∣∣q)=i=1∑np(xi)log(q(xi)p(xi))
D
K
L
(
p
∣
∣
q
)
=
∑
i
=
1
n
p
(
x
i
)
l
o
g
p
(
x
i
)
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
q
(
x
i
)
D_{KL}(p||q)=\sum_{i=1}^np(x_i)logp(x_i)-\sum_{i=1}^np(x_i)logq(x_i)
DKL(p∣∣q)=i=1∑np(xi)logp(xi)−i=1∑np(xi)logq(xi)
D
K
L
=
−
H
(
X
)
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
q
(
x
i
)
D_{KL}=-H(X)-\sum_{i=1}^np(x_i)logq(x_i)
DKL=−H(X)−i=1∑np(xi)logq(xi)
H
(
X
)
H(X)
H(X)表示事件的信息量的期望,其值对
D
K
L
D_{KL}
DKL无影响,因此只需要保留后半部分就可以了,得到了交叉熵的定义:
H
(
p
,
q
)
=
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
q
(
x
i
)
H(p,q)=-\sum_{i=1}^np(x_i)logq(x_i)
H(p,q)=−i=1∑np(xi)logq(xi)
所以一般在机器学习中直接用用交叉熵做loss,评估模型。
3 JS散度
JS散度是专门用来克服KL散度不对称的问题:
D
J
S
(
p
∣
∣
q
)
=
1
2
D
K
L
(
p
∣
∣
p
+
q
2
)
+
1
2
D
K
L
(
q
∣
∣
p
+
q
2
)
D_{JS}(p||q)=\frac{1}{2}D_{KL}(p||\frac{p+q}{2})+\frac{1}{2}D_{KL}(q||\frac{p+q}{2})
DJS(p∣∣q)=21DKL(p∣∣2p+q)+21DKL(q∣∣2p+q)
KL散度和JS散度度量的时候有一个共同问题:
如果两个P,Q离得很远,完全没有重叠的时候,那么KL散度值是没有意义的,而JS散度值是一个常数。这在学习算法中是比较致命的,这就意味这这一点的梯度为0。梯度消失了。
4 Wasserstein距离(EMD:Earth Mover’s distance)
为了解决KL散度和JS散度没有重叠时会失效的问题,使用EMD距离,来解决。EMD也称推土机距离,顾名思义就像向推土,如何用最少的力气将P的土移动到Q,使二者有重叠。
E
M
D
(
P
r
,
Q
θ
)
=
i
n
f
γ
(
x
,
y
)
∈
Π
∑
x
,
y
∣
∣
x
−
y
∣
∣
γ
(
x
,
y
)
EMD(P_r,Q_{\theta})=inf_{\gamma(x,y)\in{\Pi}}\sum_{x,y}||x-y||\gamma(x,y)
EMD(Pr,Qθ)=infγ(x,y)∈Πx,y∑∣∣x−y∣∣γ(x,y)
E
M
D
(
P
r
,
Q
θ
)
=
i
n
f
γ
(
x
,
y
)
∈
Π
E
(
x
,
y
)
∼
γ
∣
∣
x
−
y
∣
∣
EMD(P_r,Q_{\theta})=inf_{\gamma(x,y)\in{\Pi}}E_{(x,y)\sim\gamma}||x-y||
EMD(Pr,Qθ)=infγ(x,y)∈ΠE(x,y)∼γ∣∣x−y∣∣
Π
\Pi
Π是
P
r
P_r
Pr和
Q
θ
Q_{\theta}
Qθ的联合分布,可以理解为将P移动到Q的方案,
γ
(
x
,
y
)
∈
Π
\gamma(x,y)\in{\Pi}
γ(x,y)∈Π表示要选取的移动方案。然后对样本进行采样
(
x
,
y
)
∼
γ
(x,y)\sim\gamma
(x,y)∼γ,
∣
∣
x
−
y
∣
∣
||x-y||
∣∣x−y∣∣表示采样的两个样本的距离。
i
n
f
inf
inf表示选取的
γ
(
x
,
y
)
∈
Π
\gamma(x,y)\in{\Pi}
γ(x,y)∈Π应该使EMD最小(下界)。
期望可以理解为在选择
γ
\gamma
γ这种推土方式时,把P的土移动到到Q所需要消耗的力,inf就是我们选取最省力气的方式。