Prototypical Networks for Multi-Label Learning(PNML) 阅读笔记

一、概述

最近对小样本学习+多标签分类很感兴趣,找到一篇原型网络来做多标签分类的文章,很符合我的需求,所以来读一下。
文章是2020年完稿的,但还没有发表,所以没有开源代码。

二、创新点

  • 通过联合估计非线性嵌入空间(nonlinear embedding space)中所有标签的类别分布来解决多标签学习问题,有效利用了非线性标签依赖性和特征标签预测关系。

三、方法

Overview of the proposed model PNML
上图里面符号很多,逐一来看一下。

  • k=1,2,…,K,一共有K个标签;
  • E p o s _ k \mathbb E_{pos\_k} Epos_k代表的是 X p o s _ k \mathbb X_{pos\_k} Xpos_k经过embedding network后得到的特征,pos下标代表标签k下的正样本,neg代表标签k下的负样本;
  • P p o s _ k \mathbb P_{pos\_k} Ppos_k代表由 E p o s _ k \mathbb E_{pos\_k} Epos_k得到的标签k下的正类原型;
  • d p o s _ k d_{pos\_k} dpos_k代表 P p o s _ k \mathbb P_{pos\_k} Ppos_k和查询集样本 x i x_i xi经过distance network of label k得到的距离值;
  • P k P_k Pk x i x_i xi具有标签k的预测概率。
    基于原型的生成方法,文章分了两种:
    1.PNML-multiple:采用基于自适应距离的聚类方法产生原型,其中原型的数量和参数在训练过程中联合调整。
    2.PNML-single: P p o s _ k \mathbb P_{pos\_k} Ppos_k E p o s _ k \mathbb E_{pos\_k} Epos_k特征集的平均。

PNML-single方法很好理解
在这里插入图片描述
计算原型的方式跟最初的Prototypical Network一样,就是把所有embedding加起来求平均。

PNML-multiple方法

  1. 初始化 μ c = μ E p o s _ k ( μ E n e g _ k ) \mu_c=\mu_{\mathbb E_{pos\_k}}(\mu_{\mathbb E_{neg\_k}}) μc=μEpos_k(μEneg_k)作为 E p o s _ k ( E n e g _ k ) \mathbb E_{pos\_k}(\mathbb E_{neg\_k}) Epos_k(Eneg_k)的均值,C=1作为原型数量的初始值, σ c = σ \sigma_c=\sigma σc=σis the trainable variance of one cluster from which instance is assumed to be sampled(这句话不是很懂,我理解就是选取的多个 E p o s _ k ( E n e g _ k ) \mathbb E_{pos\_k}(\mathbb E_{neg\_k}) Epos_k(Eneg_k)计算得到的方差)
  2. 根据以下公式估计距离阈值,其中 ρ \rho ρ是用于绘制原型的基本分布的标准偏差的度量。M是 embedding vector的维度。 α \alpha α是名为concentration parameter的超参数。在这里插入图片描述
  3. 对于 E p o s _ k ( E n e g _ k ) \mathbb E_{pos\_k}(\mathbb E_{neg\_k}) Epos_k(Eneg_k)中的每一个embedding vector e i e_i ei,计算其与{1,…,C}中原型 c c c的距离 d i , c = d ψ ( e i , μ c ) d_{i,c}=d_{\psi}(e_i,\mu_c) di,c=dψ(ei,μc)。如果 m i n c d i , c > λ min_cd_{i,c}>\lambda mincdi,c>λ,则C=C+1,更新 μ c = e i \mu_c=e_i μc=ei σ c = σ \sigma_c=\sigma σc=σ。之后通过softmax计算 e i e_i ei属于每个cluster的概率 z i , c z_{i,c} zi,c,并重新计算cluster的均值在这里插入图片描述
  4. 重复步骤3cluster的数量次,最终每一个 μ c \mu_c μc都是一个prototype vector,所有的 μ c \mu_c μc构成了 P p o s _ k ( P n e g _ k ) \mathbb P_{pos\_k}(\mathbb P_{neg\_k}) Ppos_k(Pneg_k)

四、损失函数

第一部分是交叉熵损失
在这里插入图片描述
在这里插入图片描述
p是查询样本 X i X_i Xi具有标签k的概率。

第二部分与PNML-multiple中计算距离的 d i , c = d ψ ( e i , μ c ) d_{i,c}=d_{\psi}(e_i,\mu_c) di,c=dψ(ei,μc)有关。由于多标签问题具有non-spherical distribution的特性,所以采用Mahalanobis distance function d m k d_m^k dmk来估计Bregman divergence d ψ ( e i , μ c ) d_{\psi}(e_i,\mu_c) dψ(ei,μc)
在这里插入图片描述
其中权重矩阵 U k U_k Uk是通过一层全连接网络+线性激活函数学习得到的,就是overview图片中的Distance Network。此外,需要在损失函数中加入以下正则化项来防止过拟合。
在这里插入图片描述
第三部分考虑了标签之间的相关性。假设标签j和标签k相关,那么它们的正原型也应该是相似的,也就是说两者的向量会具有更大的内积。因此定义相关性正则化项:
在这里插入图片描述
因此完整的损失函数是
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值