这篇博客是上篇博客的后续,主要是原文2.2节和3、4章。
Examples of Loss Functions
我们现在描述几个已被提出的且用于机器学习任务中的标准的损失函数。我们将讨论且在基于能量的设定中,将它们归类为“好的”或者“坏的”。暂时,我们抛开正则项,只关注于损失函数与数据相关的部分。
Energy Loss
最简单直接的损失函数就是能量损失(energy loss),对于训练样本
(
X
i
,
Y
i
)
(X^i,Y^i)
(Xi,Yi),每个样本的损失定义为:
L
e
n
e
r
g
y
(
Y
i
,
E
(
W
,
Y
,
X
i
)
)
=
E
(
W
,
Y
i
,
X
i
)
L_{energy}(Y^i,E(W,\mathcal{Y},X^i))=E(W,Y^i,X^i)
Lenergy(Yi,E(W,Y,Xi))=E(W,Yi,Xi)这个损失函数虽然对于回归和神经网络训练非常流行,但不能被用于大多数框架:这个损失将会降低目标答案的能量,但不能提高其他答案的能量。在一些其他框架中使用时,这个损失函数可能会导致collapsed solution(崩溃的答案),其中能量是常数且为0。能量损失只能和特定的框架一起学习:在该框架中,
E
(
W
,
Y
i
,
X
i
)
E(W,Y^i,X^i)
E(W,Yi,Xi)的降低,将自动使得其他回答的能量升高。一个简单的例子就是
E
(
W
,
Y
i
X
i
)
=
∣
∣
Y
i
−
G
(
W
,
X
i
)
∣
∣
2
E(W,Y^iX^i)=||Y^i-G(W,X^i)||^2
E(W,YiXi)=∣∣Yi−G(W,Xi)∣∣2,对应于以G为回归函数的均方误差回归。
Generalized Perceptron Loss
训练样本
(
X
i
,
Y
i
)
(X^i,Y^i)
(Xi,Yi)的泛化的感知机损失(Generalized Perceptron Loss)定义为:
L
p
e
r
c
e
p
t
r
o
n
(
Y
i
,
E
(
W
,
Y
,
X
i
)
)
=
E
(
W
,
Y
i
,
X
i
)
−
m
i
n
y
∈
Y
E
(
W
,
Y
,
X
i
)
L_{perceptron}(Y^i,E(W,\mathcal{Y},X^i))=E(W,Y^i,X^i)-min_{y\in \mathcal{Y}}E(W,Y,X^i)
Lperceptron(Yi,E(W,Y,Xi))=E(W,Yi,Xi)−miny∈YE(W,Y,Xi)后面那项叫做contrastive term。这个损失函数总会是正的,因为第二项是第一项的下界,最小化这个损失函数将可以降低
E
(
W
,
Y
i
,
X
i
)
E(W,Y^i,X^i)
E(W,Yi,Xi),同时了提高了模型产生的答案的能量。
感知机损失被广泛地用在多种配置中,包括结构化输出如 手写识别、部分语音标记。它有着一个主要的缺陷:没有机制在正确答案和错误答案之间产生能量差值。因此,作为能量损失,感知机损失可能产生比较平的能量表面。因此,只有当模型不可能产生一个平坦的损失表面(平坦的损失表面即是指上面提到的collapsed solution)时,这个损失函数才能保证一个有意义的、不崩溃的结果。对于其他模型,这个损失函数不能保证。
Generalized Margin Losses
多种损失函数都可以定义为margin losses:hinge loss、log loss、LVQ2 Loss、minimum classification error loss、square-exponential loss。这些形式的损失函数在正确答案和错误答案之间创造一个能量差值。
定义1:
Y
Y
Y是一个离散变量,对于训练变量
(
X
i
,
Y
i
)
(X^i,Y^i)
(Xi,Yi),最冒犯的错误答案
Y
‾
i
\overline Y^i
Yi是指所有错误答案中能量最低的答案。
Y
‾
i
=
a
r
g
m
i
n
Y
∈
Y
a
n
d
Y
≠
Y
i
E
(
W
,
Y
,
X
i
)
\overline Y^i=argmin_{Y\in \mathcal{Y}and Y\neq Y^i}E(W,Y,X^i)
Yi=argminY∈YandY=YiE(W,Y,Xi)
如果
Y
Y
Y是一个连续变量,最冒犯的错误答案可以定义成多种形式。最简单的定义如下:
定义2:
Y
Y
Y是一个连续变量,对于训练变量
(
X
i
,
Y
i
)
(X^i,Y^i)
(Xi,Yi),最冒犯的错误答案
Y
‾
i
\overline Y^i
Yi是指所有距正确答案
ϵ
\epsilon
ϵ的答案中拥有最低能量的答案。
Y
‾
i
=
a
r
g
m
i
n
Y
∈
Y
a
n
d
∣
∣
Y
−
Y
i
∣
∣
>
ϵ
E
(
W
,
Y
,
X
i
)
\overline Y^i=argmin_{Y\in \mathcal{Y}and ||Y-Y^i||>\epsilon}E(W,Y,X^i)
Yi=argminY∈Yand∣∣Y−Yi∣∣>ϵE(W,Y,Xi)
Generalized Margin Loss是一个比Generalized Perceptron Loss更具有鲁棒性的版本,它直接在contrastive term中使用最冒犯的错误答案。
L
m
a
r
g
i
n
(
W
,
Y
i
,
X
i
)
=
Q
m
(
E
(
W
,
Y
i
,
X
i
)
,
E
(
W
,
Y
‾
i
,
X
i
)
)
L_{margin}(W,Y^i,X^i)=Q_m(E(W,Y^i,X^i),E(W,\overline Y^i,X^i))
Lmargin(W,Yi,Xi)=Qm(E(W,Yi,Xi),E(W,Yi,Xi))这里
m
m
m是一个正的参数,叫做margin,
Q
m
(
e
1
,
e
2
)
Q_m(e_1,e_2)
Qm(e1,e2)是一个凸函数,该凸函数在
E
(
W
,
Y
i
,
X
i
)
+
m
>
E
(
W
,
Y
‾
i
,
X
i
)
E(W,Y^i,X^i)+m>E(W,\overline Y^i,X^i)
E(W,Yi,Xi)+m>E(W,Yi,Xi)区域内与向量
[
−
1
,
1
]
[-1,1]
[−1,1]有正点积。用另一句话说,如果
E
(
W
,
Y
i
,
X
i
)
E(W,Y^i,X^i)
E(W,Yi,Xi)不小于
E
(
W
,
Y
‾
i
,
X
i
)
E(W,\overline Y^i,X^i)
E(W,Yi,Xi)。
两个特别的损失例子在下面给出:
Hinge Loss
这个损失函数在支持向量机中使用,它结合了线性参数化的能量和一个二次正则化器。
L
h
i
n
g
e
(
W
,
Y
i
,
X
i
)
=
m
a
x
(
0
,
m
+
E
(
W
,
Y
i
,
X
i
)
−
E
(
W
,
Y
‾
i
,
X
i
)
)
L_{hinge}(W,Y^i,X^i)=max(0,m+E(W,Y^i,X^i)-E(W,\overline Y^i,X^i))
Lhinge(W,Yi,Xi)=max(0,m+E(W,Yi,Xi)−E(W,Yi,Xi))
这里的
m
m
m是一个正的边际(margin)。
上图给出了hinge loss的形状。当正确答案
Y
i
Y^i
Yi和
Y
‾
i
\overline Y^i
Yi的能量差超过-m时,将会受到线性惩罚。hinge loss只依赖于能量差,因此单个能量不受任何特别值的约束。
Log loss
一个hinge loss简单的变形就是log loss,可以看成有着无限边界的“soft”版本的hinge loss。
L
l
o
g
(
W
,
Y
i
,
X
i
)
=
l
o
g
(
1
+
e
E
(
W
,
Y
i
,
X
i
)
−
E
(
W
,
Y
‾
i
,
X
i
)
)
L_{log}(W,Y^i,X^i)=log(1+e^{E(W,Y^i,X^i)-E(W,\overline Y^i,X^i)})
Llog(W,Yi,Xi)=log(1+eE(W,Yi,Xi)−E(W,Yi,Xi))
LVQ2 Loss
最早提出用于区别训练序列标签系统(特别是语音识别系统)的是一个Kohonen’s LVQ2 Loss。自90年代初期,Driancourt和Bottou一直主张这个损失函数:
L
l
v
q
2
(
W
,
Y
i
,
X
i
)
=
m
i
n
(
1
,
m
a
x
(
0
,
E
(
W
,
Y
i
,
X
i
)
−
E
(
W
,
Y
‾
i
,
X
i
)
δ
E
(
W
,
Y
‾
i
,
X
i
)
)
)
L_{lvq2}(W,Y^i,X^i)=min(1,max(0,\frac{E(W,Y^i,X^i)-E(W,\overline Y^i,X^i)}{\delta E(W,\overline Y^i,X^i)}))
Llvq2(W,Yi,Xi)=min(1,max(0,δE(W,Yi,Xi)E(W,Yi,Xi)−E(W,Yi,Xi)))其中
δ
\delta
δ是一个正参数,LVQ2是一个零边界损失,但是它具有饱和
E
(
W
,
Y
i
,
X
i
)
E(W,Y^i,X^i)
E(W,Yi,Xi)和
E
(
W
,
Y
‾
i
,
X
i
)
E(W,\overline Y^i,X^i)
E(W,Yi,Xi)之间比率到
1
+
δ
1+\delta
1+δ的特性。这通过使得它们贡献一个损失值
M
M
M来减轻异常值的影响。这个损失函数是分类错误数的连续近似值。不像generalized margin losses,LVQ2损失值是非凸的。
MCE Loss
最小分类误差损失(Minimum Classification Error)最初由Juang等人提出,在语音识别系统中用于判别训练。动机是构建一个损失函数能够近似于分类误差数,同时是光滑的并且可微分。分类误差数可以写成:
θ
(
E
(
W
,
Y
i
,
X
i
)
−
E
(
W
,
Y
‾
i
,
X
i
)
)
\theta(E(W,Y^i,X^i)-E(W,\overline Y^i,X^i))
θ(E(W,Yi,Xi)−E(W,Yi,Xi))其中
θ
\theta
θ是step function(阶跃函数,对于负数,阶跃函数结果为0,对于正数,阶跃函数结果为1)。然而这个函数是不能微分的,因此优化很困难。MCE loss使用sigmoid来“软化”它:
L
m
c
e
(
W
,
Y
i
,
X
i
)
=
σ
(
E
(
W
,
Y
i
,
X
i
)
−
E
(
W
,
Y
‾
i
,
X
i
)
)
L_{mce}(W,Y^i,X^i)=\sigma(E(W,Y^i,X^i)-E(W,\overline Y^i,X^i))
Lmce(W,Yi,Xi)=σ(E(W,Yi,Xi)−E(W,Yi,Xi))其中
σ
\sigma
σ是一个逻辑函数
σ
(
x
)
=
(
1
+
e
−
x
)
−
1
\sigma(x)=(1+e^{-x})^{-1}
σ(x)=(1+e−x)−1。尽管MCE损失没有明确的边界,但它确实
E
(
W
,
Y
i
,
X
i
)
E(W,Y^i,X^i)
E(W,Yi,Xi)和
E
(
W
,
Y
‾
i
,
X
i
)
E(W,\overline Y^i,X^i)
E(W,Yi,Xi)之间产生了一个能量差。
Square-Square Loss
不像hinge loss,这个square-square损失将
E
(
W
,
Y
i
,
X
i
)
E(W,Y^i,X^i)
E(W,Yi,Xi)和
E
(
W
,
Y
‾
i
,
X
i
)
E(W,\overline Y^i,X^i)
E(W,Yi,Xi)分别对待了。
L
s
q
−
s
q
(
W
,
Y
i
,
X
i
)
=
E
(
W
,
Y
i
,
X
i
)
2
+
(
m
a
x
(
0
,
m
−
E
(
W
,
Y
‾
i
,
X
i
)
)
)
2
L_{sq-sq}(W,Y^i,X^i)=E(W,Y^i,X^i)^2+(max(0,m-E(W,\overline Y^i,X^i)))^2
Lsq−sq(W,Yi,Xi)=E(W,Yi,Xi)2+(max(0,m−E(W,Yi,Xi)))2大的
E
(
W
,
Y
i
,
X
i
)
E(W,Y^i,X^i)
E(W,Yi,Xi)和比m还要小的
E
(
W
,
Y
‾
i
,
X
i
)
E(W,\overline Y^i,X^i)
E(W,Yi,Xi)都会受到惩罚。不像margin loss,本函数锁住了0处的正确答案能量,以及m处的错误答案能量。因此它只适用于能量函数的下限在0,特别是在输出模块测量某种距离的体系结构中。
Square-Exponential
这个损失和上一个损失很相似,不同点仅在于contrastive term:没有使用二次项,而是使用
E
(
W
,
Y
‾
i
,
X
i
)
E(W,\overline Y^i,X^i)
E(W,Yi,Xi)的负能量值的指数形式:
L
s
q
−
e
x
p
(
W
,
Y
i
,
X
i
)
=
E
(
W
,
Y
i
,
X
i
)
2
+
γ
e
−
E
(
W
,
Y
‾
,
X
i
)
L_{sq-exp}(W,Y^i,X^i)=E(W,Y^i,X^i)^2+\gamma e^{-E(W,\overline Y,X^i)}
Lsq−exp(W,Yi,Xi)=E(W,Yi,Xi)2+γe−E(W,Y,Xi)其中
γ
\gamma
γ是一个正的常数,不像square-square损失,这个损失是无穷的边界,并且促使错误答案的能量值到负无穷。
Negative Log-Likelihood Loss
负对数似然损失的动机来源于概率建模:
L
n
l
l
(
W
,
Y
i
,
X
i
)
=
E
(
W
,
Y
i
,
X
i
)
+
F
β
(
W
,
Y
,
X
i
)
L_{nll}(W,Y^i,X^i)=E(W,Y^i,X^i)+\mathcal{F}_\beta(W,\mathcal{Y},X^i)
Lnll(W,Yi,Xi)=E(W,Yi,Xi)+Fβ(W,Y,Xi)其中
F
\mathcal{F}
F是总体
E
(
W
,
y
,
X
i
)
,
y
∈
Y
E(W,y,X^i),y\in \mathcal{Y}
E(W,y,Xi),y∈Y的自由能:
F
β
(
W
,
Y
,
X
i
)
=
1
β
l
o
g
(
∫
y
∈
Y
e
x
p
(
−
β
E
(
W
,
y
,
X
i
)
\mathcal{F}_\beta(W,\mathcal{Y},X^i)=\frac{1}{\beta}log(\int_{y\in \mathcal{Y}}exp(-\beta E(W,y,X^i)
Fβ(W,Y,Xi)=β1log(∫y∈Yexp(−βE(W,y,Xi)其中
β
\beta
β是一个正常数,这个损失只有在
Y
\mathcal{Y}
Y上可积分时才可行。
这个形式的负对数似然损失源于最大条件概率原理下学习问题的概率公式,给定一个训练集
S
S
S,给定训练集S,我们必须找到参数的值,使给定训练集中所有输入的所有答案的条件概率最大。假设样本是独立的,
P
(
Y
i
∣
X
i
,
W
)
P(Y^i|X^i,W)
P(Yi∣Xi,W)表示给定
X
i
X^i
Xi的条件下,用参数
W
W
W的模型产生
Y
i
Y^i
Yi的概率分布式多少。训练集的条件概率是所有样本上简单的乘积:
P
(
Y
1
,
…
,
Y
P
∣
X
1
,
…
,
X
P
,
W
)
=
∏
i
=
1
P
P
(
Y
i
∣
X
i
,
W
)
P(Y^1,\ldots,Y^P|X^1,\ldots,X^P,W)= \prod_{i=1}^P P(Y^i|X^i,W)
P(Y1,…,YP∣X1,…,XP,W)=i=1∏PP(Yi∣Xi,W)使用最大似然估计策略,我们通过最大化上述乘积来找到
W
W
W,或者最小化上述乘积的负对数:
−
l
o
g
∏
i
=
1
P
P
(
Y
i
∣
X
i
,
W
)
=
∑
i
=
1
P
−
l
o
g
P
(
Y
i
∣
X
i
,
W
)
-log\prod_{i=1}^P P(Y^i|X^i,W)=\sum_{i=1}^P -log P(Y^i|X^i,W)
−logi=1∏PP(Yi∣Xi,W)=i=1∑P−logP(Yi∣Xi,W)使用Gibbis分布,可以得到:
最终得到负对数似然损失的形式:
很多其他的损失函数中,都会在contrastive term中使用
E
(
W
,
Y
‾
i
,
X
i
)
E(W,\overline Y^i,X^i)
E(W,Yi,Xi),然而此处的contrastive term涉及到所有
Y
Y
Y的值。这一项也可以解释成配分函数,该项使得所有
Y
Y
Y值对应的能量值都被提高,正确答案的能量值也会被提高,但不会比第一项降低的难。这可以在单个样本的梯度表达式中看到:
其中
P
(
Y
∣
X
i
,
W
)
P(Y|X^i,W)
P(Y∣Xi,W)由Gibbis分布得到:
因此,contrastice term拉高每个答案的能量值,且拉高的程度正比例于该答案在模型中产生的概率。不幸的是,很多模型上计算 Y Y Y的积分是困难的。估计这个积分是一个主要的研究课题。大量的工作致力于近似方法,包括巧妙地组织计算、蒙特卡罗抽样方法和变分法。虽然这些方法已经被设计成减小NLL损耗的近似方法,但是在能量的框架下,它们可以被看作是选择Y的能量被拉升的不同策略。
Mininum Empirical Error Loss
一些作者认为负对数似然过多强调了错误,因此后面有人提出了minimum empirical error loss,它将样本的条件概率相加,而不是相乘:
与MCE损失和LVQ2损失一样,MEE损失饱和了任意单一误差的贡献。这使得系统对标签噪声和离群点具有更强的鲁棒性,这对于语音识别等这类应用尤其重要,但却使得损失非凸。与NLL损失一样,MEE需要评估分区函数。
3.Simple Architectures
为了证实到目前为止提出的想法,本章节将演示如何将简单的分类和回归模型表示为基于能量的模型。这为后续讨论损失函数的好坏、前沿的结构化预测结构奠定了基础。
上图是将一些简单的学习模型看成EBMs。左边的是一个回归模型,能量就是回归函数
G
W
(
X
)
G_W(X)
GW(X)和真实值
Y
Y
Y之间的差异。最好的推断可以表示成
Y
∗
=
G
W
(
X
)
Y^*=G_W(X)
Y∗=GW(X)。中间的是一个简单的二分类问题,答案域是
{
−
1
,
+
1
}
\{-1,+1\}
{−1,+1},最好的推断可以表示成
Y
∗
=
s
i
g
n
(
G
W
(
X
)
)
Y^*=sign(G_W(X))
Y∗=sign(GW(X))。右边的是一个多分类问题,判别函数为三个种类各产生一个值,答案域有三个值,答案控制一个“开关”的位置,这个开关将判别函数的一个输出连接到能量函数。最好的推断是
G
W
(
X
)
G_W(X)
GW(X)最小的输出分量对应的index。
下面三小节是对上面这个图的EBMs设计进行了介绍。
3.1 Regression
能量函数是回归函数
G
W
(
X
)
G_W(X)
GW(X)和正确值
Y
Y
Y之间的平方差,可以是一个标量,也可以是一个向量。
E
(
W
,
Y
,
X
)
=
1
2
∣
∣
G
W
(
X
)
−
Y
∣
∣
2
E(W,Y,X)=\frac{1}{2}||G_W(X)-Y||^2
E(W,Y,X)=21∣∣GW(X)−Y∣∣2
推理阶段就是求得一个使得能量
E
E
E最低的
Y
Y
Y值,这就是
G
W
(
X
)
G_W(X)
GW(X)。最小的能量值始终等于0。当使用这个框架时,能量损失、感知损失和对数似然损失都是相等的,因为感知损失的contrastive term是0,NNL损失的contrastive term是常数。
损失函数表示为:
L
e
n
e
r
g
y
(
W
,
S
)
=
1
P
∑
i
=
1
P
E
(
W
,
Y
i
,
X
i
)
=
1
2
P
∑
i
=
1
P
∣
∣
G
W
(
X
i
−
Y
i
)
∣
∣
2
L_{energy}(W,S)=\frac{1}{P}\sum_{i=1}^PE(W,Y^i,X^i)=\frac{1}{2P}\sum_{i=1}^P||G_W(X^i-Y^i)||^2
Lenergy(W,S)=P1i=1∑PE(W,Yi,Xi)=2P1i=1∑P∣∣GW(Xi−Yi)∣∣2这与标准回归具有均方误差相对应。
当G时一个线性函数时:
ϕ
k
\phi_k
ϕk是
N
N
N个特征的集合,
w
k
w_k
wk是
N
N
N维参数向量
W
W
W的元素。为了简便,我们使用向量表示
W
T
Φ
(
X
)
W^T\Phi(X)
WTΦ(X),其中
W
T
W^T
WT是
W
W
W的转置,
Φ
(
X
)
\Phi(X)
Φ(X)是由每个
ϕ
k
(
x
)
\phi_k(x)
ϕk(x)组成的向量。通过这种线性参数化,具有能量损失的训练可简化为一个易于求解的最小二乘最小化问题,该问题是凸的:
W
=
a
r
g
m
i
n
W
[
1
2
P
∑
i
=
1
P
∣
∣
W
T
Φ
(
X
i
)
−
Y
i
∣
∣
2
]
W=argmin_W[\frac{1}{2P}\sum_{i=1}^P||W^T\Phi(X^i)-Y^i||^2]
W=argminW[2P1i=1∑P∣∣WTΦ(Xi)−Yi∣∣2]在简单的模型中,特征函数是设计者手工设定的,或者单独的无监督获得。在核方法的对偶形式中,它们被定义为
ϕ
k
(
X
)
=
K
(
X
,
X
k
)
,
k
=
1
,
…
,
P
\phi_k(X)=K(X,X^k),k=1,\ldots,P
ϕk(X)=K(X,Xk),k=1,…,P,其中
K
K
K是核函数。在更复杂的模型,如多层神经网络中,
ϕ
\phi
ϕ本身是可以参数化的,且需要学习。在这种情况下,回归函数不再是参数的线性函数,因此损失函数在参数中可能不是凸的。
3.2 Two-Class Calssifier
需要预测的变量是一个二进制数:
Y
=
{
−
1
,
+
1
}
\mathcal{Y}=\{-1,+1\}
Y={−1,+1},能量函数可以定义为:
E
(
W
,
Y
,
X
)
=
−
Y
G
W
(
X
)
E(W,Y,X)=-YG_W(X)
E(W,Y,X)=−YGW(X)其中
G
W
(
X
)
G_W(X)
GW(X)是一个由W参数化的标量判别函数。推理阶段很简单:
学习阶段可以使用多种不同的损失函数,包括感知损失,hinge损失和NNL。将上面两个等式带入感知机损失,我们将会得到:
用随机梯度下降更新准则来最小化损失值将是:
其中
η
\eta
η是正的步长,如果我们在线性模型中选择
G
W
(
X
)
G_W(X)
GW(X),能量函数将变成
E
(
W
,
Y
,
X
)
=
−
Y
W
T
Φ
(
X
)
E(W,Y,X)=-YW^T\Phi(X)
E(W,Y,X)=−YWTΦ(X),那么感知机损失将会是:
随机梯度下降也变成了
假设能量函数仍然是本小节一开始的定义,那么二分类的hinge损失定义为:
使用
G
W
(
X
)
=
W
T
X
G_W(X)=W^TX
GW(X)=WTX和这种损失定义以及一个正则化项
∣
∣
W
∣
∣
2
||W||^2
∣∣W∣∣2,就给出了常见的支持向量机。
NNL损失也是类似,不写了。
3.3 Multiclass Classifier
对于多分类问题,一个判别式函数 G W ( X ) G_W(X) GW(X)产生一个输出向量 [ g 1 , g 2 , … , g c ] [g_1,g_2,\ldots,g_c] [g1,g2,…,gc],该向量的每个元素对应着每个类别,共有 C C C个类别。每个元素 g j g_j gj可以解读成:将 X X X归类为第 j j j个类别的惩罚。一个离散的开关模块选择某个元素到输出能量。该开关是由一个离散的变量 Y ∈ { 1 , 2 , … , C } Y\in\{1,2,\ldots,C\} Y∈{1,2,…,C},这解释为分类。输出能量等于 E ( W , Y , X ) = ∑ j = 1 C δ ( Y − j ) g j E(W,Y,X)=\sum_{j=1}^C\delta(Y-j)g_j E(W,Y,X)=∑j=1Cδ(Y−j)gj。其中 δ ( Y − j ) \delta(Y-j) δ(Y−j)是Kronecker delta函数,如果 Y − j = 0 Y-j=0 Y−j=0, δ ( Y − j ) = 1 \delta(Y-j)=1 δ(Y−j)=1,否则 δ ( Y − j ) = 0 \delta(Y-j)=0 δ(Y−j)=0。损失函数可以直接转变为多分类问题。
3.4 Implicit Regression
隐式回归结构。
X
X
X和
Y
Y
Y分别被输入两个函数
G
1
W
1
G_{1W1}
G1W1和
G
2
W
2
G_{2W2}
G2W2,这个结构允许给定X的条件下,多种
Y
Y
Y值都可以得到低能量值。
上一节中描述的体系结构是Y的简单函数,在集合Y中只有一个极小值。然而,对于某些任务,多个答案同样有效。例如机器人导航,左转和右转对于躲避障碍物都是可以的,或者一个语言模型中,“the cat ate the”后面可以跟“mouse”或者"bird"。
更一般地,X和Y之间的依赖性有时不能表示为将X映射到Y的函数(例如,考虑约束
X
2
+
Y
2
=
1
X^2+Y^2=1
X2+Y2=1),这种情况,我们成为“implicit regression”,隐式回归。我们对X和Y必须满足的约束进行建模,并设计能量函数来度量对约束的违背的代价。X和Y都可以通过函数传递,能量是它们输出的函数。一个简单的例子是:
E
(
W
,
Y
,
X
)
=
1
2
∣
∣
G
X
(
W
X
,
X
)
−
G
Y
(
W
Y
,
Y
)
∣
∣
2
E(W,Y,X)=\frac{1}{2}||G_X(W_X,X)-G_Y(W_Y,Y)||^2
E(W,Y,X)=21∣∣GX(WX,X)−GY(WY,Y)∣∣2对于多种问题,函数
G
X
G_X
GX必须和
G
Y
G_Y
GY不同,在其他情况下,
G
X
G_X
GX和
G
Y
G_Y
GY必须是相同函数
G
G
G的例子。一个有趣的例子是Siamese架构,变量
X
1
X_1
X1和
X
2
X_2
X2传入
G
W
G_W
GW的两个实例。一个二进制标签
Y
Y
Y确定
G
W
(
X
1
)
G_W(X_1)
GW(X1)和
G
W
(
X
2
)
G_W(X_2)
GW(X2)的约束:如果
Y
=
0
Y=0
Y=0,
G
W
(
X
1
)
G_W(X_1)
GW(X1)和
G
W
(
X
2
)
G_W(X_2)
GW(X2)需要相等,如果
Y
=
1
Y=1
Y=1,
G
W
(
X
1
)
G_W(X_1)
GW(X1)和
G
W
(
X
2
)
G_W(X_2)
GW(X2)应该不等。这样,
X
1
X_1
X1和
X
2
X_2
X2的回归通过约束
Y
Y
Y的隐式学习得到,而不是显式地通过监督学习得到。Siamese结构用于学习带标签的样例的相似度矩阵。当两个输入样本
X
1
X_1
X1和
X
2
X_2
X2已知相似(比如两张图片是同一个人),
Y
=
0
Y=0
Y=0,如果不同,
Y
=
1
Y=1
Y=1。
Siamese结构原来用于签名验证,最近他们和平方指数损失一起用于学习面部识别的相似度矩阵。他们同样和square-square loss结合用于流形的无监督学习。
在其他的应用中,一个非线性函数结合
X
X
X和
Y
Y
Y。一个这样框架的例子是Bengio等人的可训练语言模型。在这个模型下,输入
X
X
X是文本中连续几个单词的序列,答案
Y
Y
Y是在文本中下一个单词。由于很多不同的单词可以作为一个特定单词序列的下一个单词,这个框架必须允许多种
Y
Y
Y值拥有低能量值。作者使用多层神经网络作为
G
(
W
,
X
,
Y
)
G(W,X,Y)
G(W,X,Y),并且选择负对数似然损失来训练。由于
Y
\mathcal{Y}
Y的基数比较大,他们只能使用近似(重要性采样)并且必须在集群机器上训练系统。
本节经常提到能量关于W的是线性的或二次的,而损耗函数关于W是凸的,但是重要的是要记住,许多讨论同样适用于更复杂的架构,我们将在后面看到。
4. Latent Variable Architecture
能量最小化是表示reasoning和inference一般过程的简便方法。在通常的场景中,给定观测变量
X
X
X,最小化能量预测
Y
Y
Y。然而,有许多应用程序可以方便地使用依赖于一组隐藏变量Z的能量函数,这些变量的正确值从来没有(或很少)给我们,甚至在训练期间也没有。例如,我们可以想象训练一个面部识别系统,但面部的尺寸和位置信息都不可获得。对于这些体系结构,给定变量集X和Y的推理过程涉及最小化这些隐藏的变量Z:
E
(
Y
,
X
)
=
m
i
n
Z
∈
Z
(
Z
,
Y
,
X
)
E(Y,X)=min_{Z\in\mathcal{Z}}(Z,Y,X)
E(Y,X)=minZ∈Z(Z,Y,X)这样的隐藏的变量就叫latent variable,类似于概率模型中相似的概念。
E
(
Y
,
X
)
E(Y,X)
E(Y,X)的估计涉及到
Z
Z
Z的最小化,这对目前提到的方法没有明显的影响,但使用隐变量十分普遍,且应当特别的注意。
特别的,可以将存在隐变量的推理过程看成
Y
Y
Y和
Z
Z
Z上同时的最小化过程:
Y
∗
=
a
r
g
m
i
n
Y
∈
Y
,
Z
∈
Z
E
(
Z
,
Y
,
X
)
Y^*=argmin_{Y\in \mathcal{Y},Z\in \mathcal{Z}}E(Z,Y,X)
Y∗=argminY∈Y,Z∈ZE(Z,Y,X)隐变量可以看成寻找最优输出
Y
Y
Y的中间结果。这样看来,我们可以看到
Y
Y
Y和
Z
Z
Z没有在概念上的差别:
Z
Z
Z可以简单折叠到
Y
Y
Y。区别出现在训练过程中,区别出现在训练过程中:对于许多训练样本,我们得到了正确的Y值,但是我们从来没有得到正确的Z值。
当被建模的过程的一个隐藏特征可以从观测中推理到,但不能直接预测到时,隐变量就会非常的有用。一个这样的例子就是识别问题。例如,在面部识别中,人的性别或面部的方向可以是一个隐变量。知道这些值会让识别任务更简单。同样,在不变物体识别中,物体的姿态参数(位置、方向、尺度)或光照可能是潜在变量。在序列数据的分割必须与识别任务同时进行的问题中,它们起着至关重要的作用。语音识别就是一个很好的例子,将句子分割成单词和将单词分割成音素必须与识别同时进行,但是在训练过程中很少有正确的音素分割。同样,在手写体识别中,将单词分割成字符应该与识别同时进行。本节讨论了潜在变量在人脸识别中的应用,第7.3节描述了手写识别的潜在变量体系结构。
4.1 An Example of Latent Variable Architecture
为了举例隐变量的概念,我们考虑面部检测任务,也就是检测是否有一个面部在一个小图片中。想象我们被提供了一个面部识别函数
G
f
a
c
e
(
X
)
G_{face}(X)
Gface(X),输入是一个小图片窗,产生一个标量输出。当一个人类的脸在该输入图片中,该函数将会产生一个小的输出值。如果没有脸,就会产生一个很大的输出值。基于能量的面部检测基于上面的图(a),变量
Y
Y
Y控制着二进制开关(1=“face”,0=“non-face”)。当
Y
=
1
Y=1
Y=1时输出能量等于
G
f
a
c
e
(
X
)
G_{face}(X)
Gface(X),当
Y
=
0
Y=0
Y=0时,等于一个固定的阈值。
E
(
Y
,
X
)
=
Y
G
f
a
c
e
(
X
)
+
(
1
−
Y
)
T
E(Y,X)=YG_{face}(X)+(1-Y)T
E(Y,X)=YGface(X)+(1−Y)T如果
G
f
a
c
e
(
X
)
<
T
G_{face}(X)<T
Gface(X)<T,最小化能量函数的
Y
Y
Y值是1(face),否则就是0(non-face)。
让我们现在考虑一个更复杂的任务:在大图像中检测且定位单个人脸。我们可以应用
G
f
a
c
e
G_{face}
Gface函数到一个大图像的多个窗口,计算哪个窗口产生了
G
f
a
c
e
(
X
)
G_{face}(X)
Gface(X)最低的值,并且如果某个位置的值小于
T
T
T,该位置就检测到了面部。这个过程可以由上图(b)实现,隐变量——位置变量
Z
Z
Z选择
K
K
K个
G
f
a
c
e
G_{face}
Gface函数的窗口值哪个作为输出能量。能量函数可以写成:
E
(
Z
,
Y
,
X
)
=
Y
[
∑
k
=
1
K
δ
(
Z
−
k
)
G
f
a
c
e
(
X
k
)
]
+
(
1
−
Y
)
T
E(Z,Y,X)=Y[\sum_{k=1}^K\delta(Z-k)G_{face}(X_k)]+(1-Y)T
E(Z,Y,X)=Y[k=1∑Kδ(Z−k)Gface(Xk)]+(1−Y)T其中
X
k
X_k
Xk是图片窗口。在图像中定位到最好的分数的位置在于最小化相对于Y和Z的能量。Y的结果值将指示是否找到了面部,Z的结果值将指示位置。
4.2 Probabilistic Latent Variables
当给定
X
X
X和
Y
Y
Y时,潜变量的最佳值是模糊的时候,我们也许可以考虑通过在潜变量上边缘化而不是相对于那些变量最小化来组合各种可能值的贡献。
当隐变量存在时,
Y
Y
Y和
Z
Z
Z的联合条件分布用Gibbis分布给定:
P
(
Z
,
Y
∣
X
)
=
e
−
β
E
(
Z
,
Y
,
X
)
∫
y
∈
Y
,
z
∈
Z
e
−
β
E
(
z
,
y
,
X
)
P(Z,Y|X)=\frac{e^{-\beta E(Z,Y,X)}}{\int_{y\in \mathcal{Y},z\in \mathcal{Z}}e^{-\beta E(z,y,X)}}
P(Z,Y∣X)=∫y∈Y,z∈Ze−βE(z,y,X)e−βE(Z,Y,X)边缘化
Z
Z
Z,得到:
P
(
Y
∣
X
)
=
∫
z
∈
Z
e
−
β
E
(
Z
,
Y
,
X
)
∫
y
∈
Y
,
z
∈
Z
e
−
β
E
(
z
,
y
,
X
)
P(Y|X)=\frac{\int_{z\in \mathcal{Z}}e^{-\beta E(Z,Y,X)}}{\int_{y\in \mathcal{Y},z\in \mathcal{Z}}e^{-\beta E(z,y,X)}}
P(Y∣X)=∫y∈Y,z∈Ze−βE(z,y,X)∫z∈Ze−βE(Z,Y,X)
在边缘化
Z
Z
Z后找到最好的
Y
Y
Y:
Y
∗
=
a
r
g
m
i
n
Y
∈
Y
−
1
β
l
o
g
∫
z
∈
Z
e
−
β
E
(
z
,
Y
,
X
)
Y^*=argmin_{Y\in \mathcal{Y}}-\frac{1}{\beta}log\int_{z\in \mathcal{Z}}e^{-\beta E(z,Y,X)}
Y∗=argminY∈Y−β1log∫z∈Ze−βE(z,Y,X)这实际上是一个传统的基于能量的推断,其中能量函数从
E
(
Z
,
Y
,
X
)
E(Z,Y,X)
E(Z,Y,X)重新定义为
F
(
Z
)
=
−
1
β
l
o
g
∫
z
∈
Z
e
−
β
E
(
z
,
Y
,
X
)
F(\mathcal{Z})=-\frac{1}{\beta}log\int_{z\in \mathcal{Z}}e^{-\beta E(z,Y,X)}
F(Z)=−β1log∫z∈Ze−βE(z,Y,X),这叫
{
E
(
z
,
Y
,
X
)
,
z
∈
Z
}
\{E(z,Y,X),z\in \mathcal {Z}\}
{E(z,Y,X),z∈Z}的free energy(自由能)。上述的边缘化推理公式,在一定条件下,当
β
→
∞
\beta→∞
β→∞时简化为之前的最小化推理公式。