多标签分布/多标记分布

来源:互联网 发布:淘宝代购申诉 编辑:程序博客网 时间:2024/05/21 10:45

多标记分布的损失函数:

根据分布之间距离或者相似度不同的衡量标准,可构成不同的优化目标。下面采用KL散度作为概率分布之间的距离:

θ=argminθij(dyjxiln dyjxip(yj|xi;θ))=argmaxθijdyjxiln p(yj|xi;θ)

利用ln (x/y)=ln xln y 很容易得到。其中dxi表示表示样本xi的标签分布,例如当yi具有5个取值时,dxi={dy1xi,dy2xi,dy3xi,dy4xi,dy5xi}={0.1,0.1,0.4,0.2,0.2},其和为1。p(yj|xi;θ)表示在参数为θ的分布下,样本xi的“真实标签”yj的取值或者说概率。因此我们的主要任务就变成了如何学习模型参数θ,但是函数p(yj|xi;θ)具体形式还未确定,下面来确定一下其具体的表达式。

确定函数p(yj|xi;θ)

采用最大熵模型来定义函数:p(yj|xi;θ):

p(yj|xi;θ)=1Zexp (kθyj,kgk(xi))

其中Z=yexp(kθy,kgk(xi)),y的为标签分布的取值空间,k为特征长度的取值空间。(文字描述的不严格,请详细理解)

因此,完整的损失函数为:

θ=argmaxθf(θ)=argmaxθijdyjxiln p(yj|xi;θ)=argmaxθijdyjxi ln 1yexp(kθy,kgk(x))exp (kθyj,kgk(xi))

很容易证明函数f(θ)是凹函数。
f(θ)=ijdyjxi ln 1yexp(kθy,kgk(x))exp (kθyj,kgk(xi))

其中dyjxi0,我们只需要证明下面的子函数为凹函数即可:

g(θ)= ln 1yexp(kθy,kgk(xi))exp (kθyj,kgk(xi))= ln exp(kθyj,kgk(xi)) ln yexp(kθy,kgk(xi))=kθyj,kgk(xi) ln yexp(kθy,kgk(xi))

红色部分是仿射函数的线性组合,其是凹函数(或凸函数)。
已知函数:
h(z)= log (i=1kezi)

是凸函数[4],并且kθy,kgk(xi))是凸函数(或凹函数),那么蓝色的部分为凸函数。但是前面有个负号,因此是凹函数。则凹函数+凹函数,还是一个凹函数。因此函数f(θ)是凹函数。

矢量编程

函数f(θ)的表达式中,还有三个叠加符号,即涉及到对样本i,标签分布j,以及特征索引k的求和运算。在算法中可能要涉及到函数值的求解,因此我们也不可能在Matlab中套用三层for循环来求解。

函数值f(θ)

假定训练数据具有格式(详细参考[5]):

trainFeature[2000 2045]的矩阵,其中2000为样本的数量,2045为特征的长度.trainDistribution[2000 5]的矩阵,其中2000为样本数量,5为标签分布,并且满足,每行元素之和为1.
modProb = exp(trainFeature * weights);  % size_sam * size_YsumProb = sum(modProb, 2);modProb = modProb ./ (repmat(sumProb,[1 size(modProb,2)]));target = -sum(sum(trainDistribution.*log(modProb)));

由上述代码中可以看出,target=f(θ),其中θ就是weights.其是大小为2045*5(特征长度*标签分布)

梯度grad(θ)

从上述公式g0(θ)=dyjxig(θ),其相当于单个样本xi对参数θy,k的变更。(注意这里的θ只是总的参数的一个分量):

g0(θ)θ=dyjxi(g(xi) ln yexp(kθy,kgk(xi))θ)=dyjxig(xi)dyjxi1yexp(kθy,kgk(xi))y(exp(kθy,kgk(x))g(xi))

上述公式表达不够准确,其中第一项对应一个矢量,第二个项对应为一个矩阵。y中的y控制更新那一列。梯度是一个矩阵的形式。那么针对其中一个元素的偏导数为:
g0(θ)θyj,k=dyjxigk(xi)dyjxi1yexp(kθy,kgk(xi))(exp(kθyj,kgk(x))gk(xi))=gk(xi)(dyjxi1yexp(kθy,kgk(xi))exp(kθyj,kgk(x)))

代码为:

gradient = trainFeature'*(modProb-trainDistribution)

我们同样的我们注意到其是求解f(θ)的梯度。

参考文献:
1. 标记分布学习及其应用. [季荣姿]
2. Label Distribution Learning [ tkde 2016]
3. http://cse.seu.edu.cn/people/xgeng/index.htm [geng xin professor]
4. 凸优化 [stephen Boyd]
5. LDLPackage_v1.2

0 0