在稀疏编码中,字典的学习至关重要。监督的字典学习方法大致可以分为3类。第一类为学习出针对所有信号的一个统一字典(universal dictionary)。该方法将字典学习与分类器训练完美的糅合为一个目标函数优化问题,旨在通过学习出的字典将信号的高维表示变得更加可分,可表示为
L(D,θ)=minD,θ∑i=1Nℓ(yi,f(xi,ψ(xi,D),θ))+λ∥θ∥22
其中 ℓ 为损失函数, f 为分类器,
L(D,A)=minD,A∑i=1C{
∥Xi−DAi∥2F+λ∥Ai∥1}+S(A)
其中 D=[D1,⋯,DC] , A=[A1,⋯,AC] , S 为给类别辨别能量(discriminative power) 函数。 此方法能得到较好识别度的信号高维表示,但在测试过程中进行稀疏编码时只能考虑重构误差、稀疏度。其典型应用MCA,人脸识别。第三类即为前两类的结合。
1. SDL
文献 Supervised dictionary learning 发表于NIPS2009,属于第一类。文中的分类器
minD,θ,α∑i=1N{
C(yif(xi,θ,αi))+λ0∥xi−Dαi∥22+λ1∥αi∥1}+λ2∥θ∥22
值得注意的是 yi∈{ −1,1} ,前3项在式中称为损失函数 ℓ 。在测试时,通过学习到的字典进行稀疏编码,在通过下式预测样本类别。可统一的表示为
y=argminy∈{
−1;1},θℓ(y,f(ψ(x,D),θ))
从上可知,比较该样本在不同类别下的损失函数值而预测样本。所以如果二者差值更大,那么就更加可分,继续优化得到:
L(D,θ)=minD,θ∑i=1N{
C(ℓ(−yi,f(xi,ψ(xi,D),θ))−ℓ(yi,f(xi,ψ(xi,D),θ)))}+λ∥θ∥22
可以发现此式更难求解。可以将上式推广到多类别:a.直接法,则损失函数采用softmax discriminative cost function,如下式
Ci(x1,⋯,xp)=log(∑j=1pexj−xi)
针对每一类别学习一个模型 θi ,如何求解真是个问题;b.one-vs-all 或者 one-vs-one。其中图中的 S 函数即为文中定义的损失函数
- 固定 D ,进行监督稀疏编码
α - 固定 α ,采用投影梯度下降法(projected gradient descent)更新字典 D 和模型
θ
2. D-KSVD
该文Discriminative k-svd for dictionary learning in face recognition 发表在CVPR2010。方法算是对上述论文模型的简化,也属于第一类。损失函数没有采用logistic loss function,而是采用了更为简单类似于平方误差的损失函数,即 ℓ(yi,f(xi,ψ(xi,D),θ))=∥yi−f(xi,ψ(xi,D),θ)∥2 ,那么目标优化函数可以改写为
<D,W,A>=argminD,W,A∥X