基于深度学习的标签分布学习介绍

Tianyi_Li 发表于 2022/01/11 00:10:31 2022/01/11
【摘要】 背景学习的本质是构建从实例到标签的映射关系,但有时候标签存在模糊性,即一个实例不一定映射到一个标签,现有的学习范式中,主要存在两种形式——单标签学习和多标签学习。单标签学习是指给一个实例分配一个标签,多标签学习是指给一个实例分配多个标签。以上两种形式都在回答一个问题:“哪个(哪些)标签可以描述这个实例”,但都没有回答一个问题是“每个标签能够在多大程度上描述这个实例”,也就是每个标签之间相对...

背景

学习的本质是构建从实例到标签的映射关系,但有时候标签存在模糊性,即一个实例不一定映射到一个标签,现有的学习范式中,主要存在两种形式——单标签学习和多标签学习。单标签学习是指给一个实例分配一个标签,多标签学习是指给一个实例分配多个标签。

以上两种形式都在回答一个问题:“哪个(哪些)标签可以描述这个实例”,但都没有回答一个问题是“每个标签能够在多大程度上描述这个实例”,也就是每个标签之间相对的重要程度。

假设对于一个实例 x x ,分配一个实数 d x y d_x^y 描述 y y 描述 x x 的程度。一般 d x y [ 0 , 1 ] d^y_x \in [0,1] ,如果这个标签集是完整的,标签集合里面的标签总是能够完整的描述实例,则存在 y d x y = 1 \sum_y{d_x^y}=1 .

对于一个实例,所有标签的描述程度构成一个类似于概率分布的数据形式,称为标签分布。

与传统学习范式

LDL与传统的学习范式

  1. 每个LDL实例都与标签分布明确相关,而不是单个标签或相关标签集,标签分布的标签来自于原始数据,是原始数据的一部分,而不是人为地从原始数据生成的。

  2. 以前的学习范式通过对预测结果进行排序,根据顺序决定。只要排名不变,标签的值不是很重要;LDL关心的是整体的标签分布,每个标签的描述程度的值是很重要的。

  3. 以往的SLL和MLL的评价指标是通用的;LDL的性能通过预测标签分布和真实标签分布之间的相似性或距离和评估。

问题定义

LDL

由上图可知,LDL是SLL和MLL更普遍的情况,SLL和MLL可以看作是LDL的特殊情况。

LDL意味着更大的输出空间,SLL的输出可能性是标签的个数 c c ,MLL的输出可能性是 2 c 1 2^c-1 ,LDL的输出值只需要满足 d x y [ 0 , 1 ] d^y_x \in [0,1] y d x y = 1 \sum_y{d_x^y}=1 ,意味着无数种可能性。

问题定义如下:

输入空间为 X = R 2 \mathcal{X} = \mathbb{R^2} ,完整标签集合为 y = y 1 , y 2 , . . . , y c \mathcal{y} = {y_1,y_2,...,y_c} ,给定一个训练集 S = ( x 1 , D 1 ) , ( x 2 , D 2 ) , . . . , ( x n , D n ) S = {(\textbf{x}_1,D_1),(\textbf{x}_2,D_2),...,(\textbf{x}_n,D_n)} ,LDL的目标是学习一个条件概率密度函数 p ( y x ) p(y|\textbf{x}) ,其中 x X , y Y x \in \mathcal{X}, y\in\mathcal{Y}

利用 p ( y x ; θ ) p(y | \textbf{x};\theta) 表示参数模型, θ \theta 表示模型参数,对于输入训练集 S S ,找到参数 θ \theta 使得模型生成的分布与实际分布 D i D_i 相似。

如果采用KL散度度量两个分布的相似性,那么最优的模型参数 θ \theta^* 的公式为:

KL

对于SLL,上式变为

SLL

对于MLL,则上式为

MLL

评价指标

measure

KL散度

距离度量:香农信息熵家族,信息熵偏差测量

D i s ( D , D ^ ) = j = 1 c d j ln d j d j ^ Dis(D,\hat{D}) = \sum^c_{j=1}{d_j \ln{\frac{d_j}{\hat{d_j}}}}

dis = np.sum(real * np.log(real/predict))

Chebyshev

切比雪夫距离:距离度量,属于 L_p 闵氏距离家族

D i s ( D , D ^ ) = m a x j d j d j ^ Dis(D,\hat{D}) = max_j|d_j-\hat{d_j}|

真实分布与预测分布标签之间差值的最大值

dis = np.sum(np.max(np.abs(real-predict) , 1)) / batch_size

Clark

克拉克距离:距离度量,属于 Squared L_2 家族,以平方的欧几里得距离做为被除数

D i s ( D , D ^ ) = j = 1 c ( d j d j ^ ) 2 ( d j + d j ^ ) 2 c Dis(D,\hat{D}) = \sqrt{\frac{\sum^c_{j=1} \frac{(d_j-\hat{d_j})^2}{(d_j+\hat{d_j})^2}}{c} }

因为该度量值与标签的种类数有关,为标准化,除以标签数量的平方根。

numerator = np.sum( (real-predict)**2 / (real+predict)**2, axis=1)
denominator = c

dis = np.sum(np.sqrt(numerator/denominator)) / batch_size

Canberra

堪培拉距离:距离度量,属于 L_1 家族,矢量空间中的点对之间的距离的数值度量,它是L_1距离的加权版本。

D i s ( D , D ^ ) = j = 1 c d j d j ^ d j + d j ^ c Dis(D,\hat{D}) =\frac{\sum^c_{j=1} \frac{\lvert d_j-\hat{d_j}\rvert}{d_j+\hat{d_j}}}{c}

该度量值与标签的种类数有关,为标准化,除以标签的数量。

numerator = np.sum( np.abs(real-predict) / (real+predict), axis=1)
denominator = c

dis = np.sum(numerator/denominator) / batch_size

Cosine

余弦距离:相似性度量,属于 Inter Product 家族,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。

S i m ( D , D ^ ) = j = 1 c d j d j ^ j = 1 c d j 2 j = 1 c d j ^ 2 Sim(D,\hat{D}) = \frac{ \sum^c_{j=1} d_j \hat{d_j} }{\sqrt{\sum^c_{j=1}{d_j}^2} \sqrt{\sum^c_{j=1} \hat{d_j}^2}}

numerator = np.sum(real*predict, axis=1)
denominator = np.sqrt(np.sum(real**2, axis=1)) * np.sqrt(np.sum(predict**2, axis=1))

sim = np.sum(numerator / denominator) / batch_size

Intersection

交叉距离:相似性度量,最小轨道交叉距离,是天文学中用于评估天文物体之间潜在的近距离接近和碰撞风险的度量。它被定义为两个物体的密切轨道的最近点之间的距离。

S i m ( D , D ^ ) = j = 1 c m i n ( d j , d j ^ ) Sim(D,\hat{D}) = \sum^c_{j=1}{min(d_j,\hat{d_j})}

真实分布与预测分布标签之间差最小值的和

min_value = np.min(np.dstack(real, predict), axis=-1) 

sim = np.sum(min_value) / batch_size

SquareChord

Squared-chord 家族,在量子信息理论中,量子态“接近”的度量。

D i s ( D , D ^ ) = j = 1 c ( d j d j ^ ) 2 Dis(D,\hat{D}) = \sum^c_{j=1}{(\sqrt{d_j} - \sqrt{\hat{d_j}})}^2

sum_value = (np.sqrt(real) - np.sqrt(predict))**2

dis = np.sum(sum_value) / batch_size

Sorensen

L1家族,用于准确测量绝对差异的特征。

D i s ( D , D ^ ) = j = 1 c d j d j ^ j = 1 c ( d j + d j ^ ) Dis(D,\hat{D}) = \frac{ \sum^c_{j=1} | d_j - \hat{d_j} | }{\sum^c_{j=1} (d_j + \hat{d_j})}

numerator = np.sum(np.abs(real - predict), axis=1)
denominator = np.sum(real + predict, axis=1)

dis = np.sum(numerator/denominator) / batch_size

KL散度的理解

对于离散信源 X = { x 1 , x 2 , x 3 , , x n } X = \{x_1,x_2,x_3,……,x_n\} ,对应的概率为 p i = p ( X = x i ) p_i = p\left( X = x_i\right)

  • 自信息量

    I ( x i ) = log ( 1 p ( x i ) ) I(x_i) = \log(\frac{1}{p(x_i)})

  • 信息熵

    H ( X ) = i = 1 n p ( x i ) log p ( x i ) H(X) = -\sum^n_{i=1} p(x_i) \log p(x_i)

交叉熵

对于两个离散变量,设其概率分布为 p ( x ) p(x) q ( x ) q(x) ,其交叉熵的定义为

H ( p , q ) = x p ( x ) log 1 q ( x ) = a p ( x ) log q ( x ) H(p,q) = \sum_xp(x)\log\frac{1}{q(x)} = - \sum_ap(x) \log q(x)

信息论,表示对预测分布 q ( x ) q(x) 用真实分布 p ( x ) p(x) 进行编码所需的信息量的大小。

KL散度(相对熵)

由交叉熵推出相对熵

D K L ( p q ) = H ( p , q ) H ( p ) = a p ( x ) log q ( x ) a p ( x ) log p ( x ) = a p ( x ) ( log q ( x ) log p ( x ) ) = a p ( x ) log q ( x ) p ( x ) = a p ( x ) log p ( x ) q ( x ) \begin{aligned} D_{KL}(p||q) &= H(p,q) - H(p)\\ &= - \sum_a p(x) \log q(x) - \sum_a - p(x) \log p(x)\\ &= - \sum_a p(x)( \log q(x) -\log p(x))\\ &= - \sum_a p(x) \log \frac{q(x)}{p(x)}\\ &= \sum_a p(x) \log \frac{p(x)}{q(x)} \end{aligned}

由期望推导
本质上,KL散度计算对原始分布中数据概率与近似分布之间的对数差的期望,近似一个分布与实际分布时损失了多少信息。

D K L ( p q ) = E [ log p ( x ) l o g q ( x ) ] = p ( x ) a ( log q ( x ) log p ( x ) ) = p ( x ) a log p ( x ) q ( x ) \begin{aligned} D_{KL}(p||q) &= E[ \log p(x) - log q(x)]\\ &= -p(x) \sum_a ( \log q(x) -\log p(x))\\ &= p(x) \sum_a \log \frac{p(x)}{q(x)} \end{aligned}

性质

  • 正定性

D K L ( p q ) 0 D_{KL}(p||q) \geq 0

由Gibbs不等式:

i = 1 n p i = i = 1 n q i = 1 \sum_{i=1}^n p_i =\sum_{i=1}^n q_i =1 ,且 p i , q i ( 0 , 1 ] p_i,q_i \in(0,1] ,则有:

i n p i log p i i n p i log q i -\sum_i^n p_i \log p_i \leq -\sum_i^n p_i \log q_i

当且仅当 p i = q i p_i = q_i 时等号成立。

  • 不对称性

D K L ( p q ) D K L ( q p ) D_{KL}(p||q) \neq D_{KL}(q||p)

参考资料

Label Distribution Learning

R语言实现46种距离算法

Kullback-Leibler Divergence Explained

KL散度(Kullback-Leibler Divergence)介绍及详细公式推导

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。