论文阅读 (91):Multi-Instance Partial-Label Learning: Towards Exploiting Dual Inexact Supervision

1 要点

1.1 概述

图1:不同的弱监督学习框架,其中灰色多边形表示错误正标签
  • 问题:在很多应用场景中,不确切监督信息同时存在于实例空间和标签空间,即对偶不确切监督信息,如图2所示。在此场景下,MIL和PLL均只能得到次优解。
图2:多示例偏标签 (MIPL) 的潜在应用,其中红色表示真实标签
  • 方法:本文提出基于高斯过程的多示例偏标签学习 (MIPLGP):
    1. 提出标签增广策略,为每个MIPL实例的候选标签集增加一个负类别标签,以保证候选标签集中包含真实标签;
    2. 提出Dirichlet消歧策略,使得模型可以从候选标签集中推断出真实标签,以及满足多输出高斯过程回归模型的求解条件;
    3. 设计MIPLGP算法解决MIPL问题。

1.2 代码及数据集

代码http://palm.seu.edu.cn/zhangml/files/MIPLGP.rar
数据集http://palm.seu.edu.cn/zhangml/Resources.htm#MIPL_data

1.3 引用

@article{Tang:2023:128,
author		=	{Wei Tang and Wei Jia Zhang and Min-Ling Zhang},
title		=	{Multi-Instance Partial-Label Learning: Towards Exploiting Dual Inexact Supervision},
journal		=	{Science China Information Science},
pages 		=	{1--28},
year		=	{2023},
url			=	{https://arxiv.org/pdf/2212.08997}
}

2 方法

MIPLGP为第一个处理MIPL问题的算法,首先介绍其符号系统。

X = R d \mathcal{X}=\mathbb{R}^d X=Rd表示实例空间, Y = { l 1 , l 2 , … , l q } \mathcal{Y}=\{ l_1,l_2,\dots,l_q \} Y={l1,l2,,lq}表示标签空间,其中 q q q是类别数量。MIPL的目标是基于训练数据集 { ( X i , y i ) ∣ 1 ≤ i ≤ m } \{ (\boldsymbol{X}_i,\boldsymbol{y}_i) | 1\leq i\leq m \} {(Xi,yi)∣1im}和相应的候选标签集习得一个分类器 h h h 2 X → Y 2^\mathcal{X}\to\mathcal{Y} 2XY,其中 m m m表示包的数量。特别地,MIPL的单个样本表示为 ( X i , y i ) (\boldsymbol{X}_i,\boldsymbol{y}_i) (Xi,yi),其中 X i = [ x i 1 , x i 2 , … , x i z i ] \boldsymbol{X}_i=[\boldsymbol{x}_i^1,\boldsymbol{x}_i^2,\dots,\boldsymbol{x}_i^{z_i}] Xi=[xi1,xi2,,xizi]是包含 z i z_i zi个实例的包、 x i j ∈ X \boldsymbol{x}_i^j\in\mathcal{X} xijX,以及 y i = [ y i 1 , y i 2 , … , y i q ] ∈ { 0 , 1 } q \boldsymbol{y}_i=[y_i^1,y_i^2,\dots,y_i^q]\in\{ 0,1 \}^q yi=[yi1,yi2,,yiq]{0,1}q候选标签集,其中 y i c = 1 y_i^c=1 yic=1表示第 c c c个标签是候选标签之一。

2.1 标签增广

在MIL中,仅有包标签可用,而实例标签未知。为了处理这个问题,一个简单的方法就是将包的标签简单的视作实例的虚拟标签。显然这样会给正包中的负实例分配错位的标签。相应地,在MIPL中,如果包级别候选标签集直接应用在包内实例上,大部分实例的真实标签将不存在于候选标签集中,这将违背PLL设置。

为了处理以上问题,我们引入增广标签空间 Y ~ = { l 1 , l 2 , … , l q , l n e g } \tilde{\mathcal{Y}}=\{ l_1,l_2,\dots,l_q,l_{neg} \} Y~={l1,l2,,lq,lneg},其中类别数为 q ~ = q + 1 \tilde{q}=q+1 q~=q+1,即将不属于标签空间 Y \mathcal{Y} Y的实例分配给增强负类 l n e g l_{neg} lneg。例如,给定一个MIL包 X i \boldsymbol{X}_i Xi,其候选标签集为 y i = [ y i 1 , y i 2 , … , y i q ] ⊤ \boldsymbol{y}_i=[y_i^1,y_i^2,\dots,y_i^q]^\top yi=[yi1,yi2,,yiq],每个实例的增广候选标签集为 y ~ i = [ y i 1 , y i 2 , … , y i q , y i n e g ] ⊤ \tilde{\boldsymbol{y}}_i=[y_i^1,y_i^2,\dots,y_i^q,y_i^{neg}]^\top y~i=[yi1,yi2,,yiq,yineg],其中 y i n e g = 1 y_i^{neg}=1 yineg=1

X = [ x 1 1 , x 1 2 , … , x 1 z 1 , x 2 1 , x 2 2 , … , x m 1 , … , x m z m ] ⊤ ∈ R n × d \mathbf{X}=[\boldsymbol{x}_1^1,\boldsymbol{x}_1^2,\dots,\boldsymbol{x}_1^{z_1},\boldsymbol{x}_2^1,\boldsymbol{x}_2^2,\dots,\boldsymbol{x}_m^1,\dots,\boldsymbol{x}_m^{zm}]^\top\in\mathbb{R}^{n\times d} X=[x11,x12,,x1z1,x21,x22,,xm1,,xmzm]Rn×d表示包含包中所有实例的特征句子,其中 Y ~ = [ y ~ 1 1 , y ~ 1 2 , … , y ~ 1 z 1 , y ~ 2 1 , y ~ 2 2 , y ~ m 1 , y ~ m z m ] ⊤ T ∈ R n × q ~ \tilde{\mathbf{Y}}=[\tilde{\boldsymbol{y}}_1^1,\tilde{\boldsymbol{y}}_1^2,\dots,\tilde{\boldsymbol{y}}_1^{z_1},\tilde{\boldsymbol{y}}_2^1,\tilde{\boldsymbol{y}}_2^2,\tilde{\boldsymbol{y}}_m^1,\tilde{\boldsymbol{y}}_m^{z_m}]^\top{T}\in\mathbb{R}^{n\times \tilde{q}} Y~=[y~11,y~12,,y~1z1,y~21,y~22,y~m1,y~mzm]TRn×q~,以及 n = ∑ i = 1 m z i n=\sum_{i = 1}^m z_i n=i=1mzi是实例总数。

2.2 Dirichlet消歧

受PLL中消歧策略的启发,本文构建了一个用于MIPL的Dirichlet消歧策略。

给定增强MIPL训练数据集 ( X , Y ~ ) (\mathbf{X},\tilde{\mathbf{Y}}) (X,Y~),单个实例及其候选标签集科研表示为 ( x i j , y ~ i j ) (\boldsymbol{x}_i^j,\tilde{\boldsymbol{y}}_i^j) (xij,y~ij)。当上下文清晰时,为了简介,我们省略了实例的索引,即有 ( x i , y ~ i ) (\boldsymbol{x}_i,\tilde{\boldsymbol{y}}_i) (xi,y~i)。直观上,可以使用类别分布 Cat ( θ i ) \text{Cat}(\boldsymbol{\theta}_i) Cat(θi)来推断实例的真实标签,其中类别概率 θ i = [ θ i 1 , θ i 2 , … , θ i q , θ i n e g ] \boldsymbol{\theta}_i=[\theta_i^1,\theta_i^2,\dots,\theta_i^q,\theta_i^{neg}] θi=[θi1,θi2,,θiq,θineg]是一个多值连续随机变量、 ∑ c = 1 q ~ θ i c = 1 \sum_{c=1}^{\tilde{q}}\theta_i^c=1 c=1q~θic=1,以及 θ i c ≤ 0 \theta_i^c\leq0 θic0。为了建立类别分布的类别概率,本文使用Dirichlet分布,其是一个到类别分布的先验共轭,可以降低计算困难。具体地,使用一个带有注意力参数 α i = [ α i 1 , α i 2 , … , α i q , α i n e g ] \boldsymbol{\alpha}_i=[\alpha_i^1,\alpha_i^2,\dots,\alpha_i^q,\alpha_i^{neg}] αi=[αi1,αi2,,αiq,αineg]的Dirichlet分布 Dir ( α i ) \text{Dir}(\boldsymbol{\alpha}_i) Dir(αi)来度量 θ i \boldsymbol{\theta}_i θi。综上,似然模型给定为:
p ( y ~ i ∣ α i ) = Cat ( θ i ) , θ i ∼ Dir ( α i ) . (1) \tag{1} p(\tilde{\boldsymbol{y}}_i|\boldsymbol{\alpha}_i)=\text{Cat}(\boldsymbol{\theta}_i),\boldsymbol{\theta}_i\sim\text{Dir}(\boldsymbol{\alpha}_i). p(y~iαi)=Cat(θi),θiDir(αi).(1)为了从Dirichlet分布中获取系数 θ i \boldsymbol{\theta}_i θi α i \boldsymbol{\alpha}_i αi的准确值变得至关重要。再监督学习中,每个实例都对应一个真实标签,因此一个厂里权重可以被直接附加给真实标签所对应的索引。例如,给定一个观察 y i = [ y i 1 , y i 2 , … , y i q ] ⊤ \boldsymbol{y}_i=[y_i^1,y_i^2,\dots,y_i^q]^\top yi=[yi1,yi2,,yiq],其满足 y i c = 1 y_i^c=1 yic=1 y i j = 0 ( ∀ j ≠ c ) y_i^j=0(\forall j\neq c) yij=0(j=c),我们有 α i c = ω + α ϵ \alpha_i^c=\omega+\alpha_\epsilon αic=ω+αϵ α i j = α ϵ \alpha_i^j=\alpha_\epsilon αij=αϵ,其中 0 < α ϵ ≪ 1 0<\alpha_\epsilon\ll1 0<αϵ1是Dirichlet先验。然而,在MIPL中直接添加一个常量权重是不合适的,因为候选标签集被虚假正标签污染了。为了克服这个问题,本文将Dirichlet分布与迭代消歧策略协同作用,以从受污染的候选标签集中识别真实标签。为了实现消歧策略, α i c , c ∈ { 1 , 2 , … , q , n e g } \alpha_i^c,c\in\{1,2,\dots,q,neg\} αic,c{1,2,,q,neg}初始化为均匀权重:
α i c = { 1 ∣ y ~ i ∣ + α ϵ if y i c = 1 , α ϵ otherwise , (2) \tag{2} \alpha_i^c=\left\{\begin{aligned} &\frac{1}{|\tilde{\boldsymbol{y}}_i|}+\alpha_\epsilon&\text{if}y_i^c=1,\\ &\alpha_\epsilon&\text{otherwise}, \end{aligned}\right. αic= y~i1+αϵαϵifyic=1,otherwise,(2)其中 0 < α ϵ ≪ 1 0<\alpha_\epsilon\ll1 0<αϵ1,以及 ∣ y ~ i ∣ |\tilde{\boldsymbol{y}}_i| y~i是增强候选标签集 y ~ i \tilde{\boldsymbol{y}}_i y~i中非零元素的数量。分类器输出的softmax值 h ~ i = h ~ ( x i ) = [ h i 1 , h i 2 , … , h i q , h i n e g ] \tilde{\boldsymbol{h}}_i=\tilde{\boldsymbol{h}}(\boldsymbol{x}_i)=[h_i^1,h_i^2,\dots,h_i^q,h_i^{neg}] h~i=h~(xi)=[hi1,hi2,,hiq,hineg]表示每个候选标签属于真实标签的概率。因此,在每次迭代中,我们利用softmax值来逐步消除虚假正标签和鉴定真实标签:
α i c = { exp ( h i c ) ∑ y i t = 1 exp ( h i t ) + α ϵ if y i c = 1 , α ϵ otherwise . (3) \tag{3} \alpha_i^c=\left\{\begin{aligned} &\frac{\text{exp}(h_i^c)}{\sum_{y_i^t=1}\text{exp}(h_i^t)}+\alpha_\epsilon&\text{if}y_i^c=1,\\ &\alpha_\epsilon&\text{otherwise}. \end{aligned}\right. αic= yit=1exp(hit)exp(hic)+αϵαϵifyic=1,otherwise.(3)接下来的问题变成如何从Dirichlet分布中采样。考虑到生成的质量与代价,设计了一个两阶段过程来从 q ~ \tilde{\boldsymbol{q}} q~个独立Gamma分布随机变量中生成Dirichlet采样

  1. 从Gamma分布 Gamma ( α i c , 1 ) \text{Gamma}(\alpha_i^c,1) Gamma(αic,1)中生成 q ~ \tilde{\boldsymbol{q}} q~个Gamma分布随机变量 { γ i 1 , γ i 2 , … , γ i q , γ i n e g } \{\gamma_i^1,\gamma_i^2,\dots,\gamma_i^q,\gamma_i^{neg}\} {γi1,γi2,,γiq,γineg}
  2. 标准化Gamma分布随机变量:
    θ i c = γ i c ∑ j = 1 q ~ γ i j , γ i c ∼ Gamma ( α i c , 1 ) . (4) \tag{4} \theta_i^c=\frac{\gamma_i^c}{\sum_{j=1}^{\tilde{q}}\gamma_i^j},\qquad\gamma_i^c\sim\text{Gamma}(\alpha_i^c,1). θic=j=1q~γijγic,γicGamma(αic,1).(4)

Gamma ( α i c , 1 ) \text{Gamma}(\alpha_i^c,1) Gamma(αic,1)的概率密度函数为 γ α i c − 1 exp ( − γ ) Γ ( α i c ) \frac{\gamma^{\alpha_i^c-1}\text{exp}(-\gamma)}{\Gamma(\alpha_i^c)} Γ(αic)γαic1exp(γ),其中 α i c > 0 \alpha_i^c>0 αic>0被称为形状参数,以及 Γ ( ⋅ ) \Gamma(\cdot) Γ()是Gamma函数。

为了使用确切的高斯过程模型来准确推测 α i c \alpha_i^c αic,使用来自对数正态分布 LogNormal ( y ˙ i c , σ ˙ i c ) \text{LogNormal}(\dot{y}_i^c,\dot{\sigma}_i^c) LogNormal(y˙ic,σ˙ic)的随机变量 x ˙ i c \dot{x}_i^c x˙ic,通过矩匹配来近似 γ i c \gamma_i^c γic,即均值匹配 E [ γ i c ] = E [ x ˙ i c ] \mathbb{E}[\gamma_i^c]=\mathbb{E}[\dot{x}_i^c] E[γic]=E[x˙ic]和方差匹配 V [ γ i c ] = V [ x ˙ i c ] \mathbb{V}[\gamma_i^c]=\mathbb{V}[\dot{x}_i^c] V[γic]=V[x˙ic]
α i c = exp ( y ˙ i c + σ i c ˙ 2 ) , α i c = ( exp ⁡ ( σ ˙ i c ) − 1 ) exp ⁡ ( 2 y ˙ i c + σ ˙ i c ) (5) \tag{5} \alpha_i^c=\text{exp}(\dot{y}_i^c+\frac{\dot{\sigma_i^c}}{2}),\\ \alpha_i^c=(\exp(\dot{\sigma}_i^c)-1)\exp(2\dot{y}_i^c+\dot{\sigma}_i^c) αic=exp(y˙ic+2σic˙),αic=(exp(σ˙ic)1)exp(2y˙ic+σ˙ic)(5)基于Milios的工作,以上近似是合理的。 LogNormal ⁡ ( y ˙ i c , σ ˙ i c ) \operatorname{LogNormal}\left(\dot{y}_i^c, \dot{\sigma}_i^c\right) LogNormal(y˙ic,σ˙ic)的参数可以通过求解公式5推到:
σ ˙ i c = log ⁡ ( 1 α i c + 1 ) , y ˙ i c = log ⁡ α i c − σ ˙ i c 2 = 3 2 log ⁡ α i c − 1 2 log ⁡ ( α i c + 1 ) , (6) \tag{6} \begin{gathered} \dot{\sigma}_i^c=\log \left(\frac{1}{\alpha_i^c}+1\right), \\ \dot{y}_i^c=\log \alpha_i^c-\frac{\dot{\sigma}_i^c}{2}=\frac{3}{2} \log \alpha_i^c-\frac{1}{2} \log \left(\alpha_i^c+1\right), \end{gathered} σ˙ic=log(αic1+1),y˙ic=logαic2σ˙ic=23logαic21log(αic+1),(6)其中 y ˙ i c \dot{y}_i^c y˙ic是对数空间中的连续标签,以及 σ ˙ i c \dot{\sigma}_i^c σ˙ic是与 y ˙ i c \dot{y}_i^c y˙ic相关的变量。基于以上Dirichlet消歧策略,原始样本 ( x i , y ~ i ) (\boldsymbol{x}_i,\tilde{\boldsymbol{y}}_i) (xi,y~i)被转换为 ( x i , y ˙ i ) (\boldsymbol{x}_i,\dot{\boldsymbol{y}}_i) (xi,y˙i),其中 y ˙ i \dot{\boldsymbol{y}}_i y˙i是具有连续标签的候选标签集。此外,一个高斯似然在对数空间中构建。给定一个MIPL训练集 ( X , Y ~ (\mathbf{X},\tilde{\mathbf{Y}} (X,Y~,我们将候选标签集重塑为按行拼接 Y ˙ = [ y ˙ 1 1 ; y ˙ 1 2 ; ⋯   ; y ˙ 1 z 1 ; y ˙ 2 1 ; y ˙ 2 2 ; ⋯   ; y ˙ m 1 , ⋯   ; y ˙ m z m ] ∈ R q ~ n \dot{\mathbf{Y}}=\left[\dot{\boldsymbol{y}}_1^1 ; \dot{\boldsymbol{y}}_1^2 ; \cdots ; \dot{\boldsymbol{y}}_1^{z_1} ; \dot{\boldsymbol{y}}_2^1 ; \dot{\boldsymbol{y}}_2^2 ; \cdots ; \dot{\boldsymbol{y}}_m^1, \cdots ; \dot{\boldsymbol{y}}_m^{z_m}\right] \in \mathbb{R}^{\tilde{q} n} Y˙=[y˙11;y˙12;;y˙1z1;y˙21;y˙22;;y˙m1,;y˙mzm]Rq~n

2.3 高斯过程回归模型

基于连续候选标记集矩阵 Y ˙ \dot{\mathbf{Y}} Y˙,可以将MIPL从一个多分类问题转换为有 q ~ \tilde{q} q~个输出的高斯过程回归过程。为了准确地评估 α i \boldsymbol{\alpha}_i αi,我们基于对数空间中的高斯似然开发了一个用于MIPL的多输出高斯过程回归模型。

对于多输出高斯过程回归模型,首先引入关于 n n n个训练实例的 q ~ \tilde{\boldsymbol{q}} q~个潜在函数 { f 1 ( ⋅ ) , f 2 ( ⋅ ) , ⋯   , f q ( ⋅ ) , f neg  ( ⋅ ) } \left\{f^1(\cdot), f^2(\cdot), \cdots, f^q(\cdot), f^{\text {neg }}(\cdot)\right\} {f1(),f2(),,fq(),fneg ()}的向量: F = \mathbf{F}= F= [ f 1 , f 2 , ⋯   , f neg  ] ⊤ = [ f 1 1 , ⋯   , f n 1 , f 1 2 , ⋯   , f n 2 , ⋯   , f 1 neg  , ⋯   , f n neg  ] ⊤ \left[f^1, f^2, \cdots, f^{\text {neg }}\right]^{\top}=\left[f_1^1, \cdots, f_n^1, f_1^2, \cdots, f_n^2, \cdots, f_1^{\text {neg }}, \cdots, f_n^{\text {neg }}\right]^{\top} [f1,f2,,fneg ]=[f11,,fn1,f12,,fn2,,f1neg ,,fnneg ],其中潜在变量 F \mathbf{F} F的长度为 q ~ n \tilde{q} n q~n F \mathbf{F} F的分布通过一个先验均值函数 μ = 0 \mu=0 μ=0和一个协方差函数,即一个先验核 k ( ⋅ , ⋅ ) : R d × R d → R k(\cdot, \cdot): \mathbb{R}^d \times \mathbb{R}^d \rightarrow \mathbb{R} k(,):Rd×RdR定义,其被选择为Mat e ′ \stackrel{\prime}{e} ern核。 ∀ c , c ′ ∈ { 1 , 2 , ⋯   , q \forall c, c^{\prime} \in\{1,2, \cdots, q c,c{1,2,,q, neg } \} },任意实例对 x x x and x ′ x^{\prime} x输出的相关性可以表示为:
Cov ⁡ [ f c ( x ) , f c ′ ( x ′ ) ] = k c ( x , x ′ ) = { 2 1 − ν Γ ( ν ) ( 2 ν d ℓ ) ν K ν ( 2 ν d ℓ )  if  c = c ′ 0 otherwise. (7) \tag{7} \operatorname{Cov}\left[f^c(x), f^{c^{\prime}}\left(x^{\prime}\right)\right]=k^c\left(x, x^{\prime}\right)=\left\{\begin{array}{cc} \frac{2^{1-\nu}}{\Gamma(\nu)}\left(\frac{\sqrt{2 \nu} d}{\ell}\right)^\nu K_\nu\left(\frac{\sqrt{2 \nu} d}{\ell}\right) & \text { if } c=c^{\prime} \\ 0 & \text {otherwise.} \end{array}\right. Cov[fc(x),fc(x)]=kc(x,x)={Γ(ν)21ν(2ν d)νKν(2ν d)0 if c=cotherwise.(7)一般而言, ν \nu ν是一个平滑参数,可以取值为 { 0.5 , 1.5 , 2.5 } \{0.5,1.5,2.5\} {0.5,1.5,2.5} ℓ \ell 是一个正参数、 d d d是两个实例 x x x x ′ \boldsymbol{x}^{\prime} x之间的欧式距离,以及 K ν K_\nu Kν是修改后的Bessel函数。最终,协方差矩阵 K ∈ R q ~ n × q ~ n \mathbf{K} \in \mathbb{R}^{\tilde{q} n \times \tilde{q} n} KRq~n×q~n是由形状为 n × n n\times n n×n的矩阵 K 1 , K 2 , ⋯   , K q ~ \mathbf{K}^1, \mathbf{K}^2, \cdots, \mathbf{K}^{\tilde{q}} K1,K2,,Kq~构成的块对角矩阵。高斯过程将高斯先验置于潜在变量 F ∼ G P ( 0 , K ) \mathbf{F} \sim \mathcal{G} \mathcal{P}(\mathbf{0}, \mathbf{K}) FGP(0,K),即 P ( F ∣ X ) = N ( 0 , K ) P(\mathbf{F} \mid \mathbf{X})=\mathcal{N}(\mathbf{0}, \mathbf{K}) P(FX)=N(0,K)之上,以及对数空间中的高斯似然是 P ( Y ˙ ∣ F ) = N ( F , Σ ) P(\dot{\mathbf{Y}} \mid \mathbf{F})=\mathcal{N}(\mathbf{F}, \Sigma) P(Y˙F)=N(F,Σ),其中 Σ \Sigma Σ log ⁡ Normal ⁡ ( y ˙ i c , σ ˙ i c ) \log \operatorname{Normal}\left(\dot{y}_i^c, \dot{\sigma}_i^c\right) logNormal(y˙ic,σ˙ic) σ ˙ i c \dot{\sigma}_i^c σ˙ic的矩阵形式。基于Bayes规则,后验分布 P ( F ∣ P(\mathbf{F} \mid P(F X , Y ˙ ) ∝ P ( F ∣ X ) P ( Y ˙ ∣ F ) \mathbf{X}, \dot{\mathbf{Y}}) \propto P(\mathbf{F} \mid \mathbf{X}) P(\dot{\mathbf{Y}} \mid \mathbf{F}) X,Y˙)P(FX)P(Y˙F)以及边缘似然 P ( Y ˙ ∣ X ) = ∫ F P ( F ∣ X ) P ( Y ˙ ∣ F ) P(\dot{\mathbf{Y}} \mid \mathbf{X})=\int_F P(\mathbf{F} \mid \mathbf{X}) P(\dot{\mathbf{Y}} \mid \mathbf{F}) P(Y˙X)=FP(FX)P(Y˙F)都是高斯分布。

以上似然均基于实例级特征和标签。然而,在MIL中,不可避免的一个问题是如何汇聚实例标签为包标签。这个问题在MIPL中同样存在,且由于多分类设置,其将更困难。一个可行的方式是将包标签设置为所有实例类别标签概率的最大值。令 Θ ~ i = [ θ i 1 , θ i 2 , ⋯   , θ i z i ] ⊤ ∈ R z i × q ˉ ( θ i j = [ θ i 1 , θ i 2 , ⋯   , θ i q , θ i neg  ] ⊤ \widetilde{\boldsymbol{\Theta}}_i=\left[\boldsymbol{\theta}_i^1, \boldsymbol{\theta}_i^2, \cdots, \boldsymbol{\theta}_i^{z_i}\right]^{\top} \in \mathbb{R}^{z_i \times \bar{q}}\left(\boldsymbol{\theta}_i^j=\left[\theta_i^1, \theta_i^2, \cdots, \theta_i^q, \theta_i^{\text {neg }}\right]^{\top}\right. Θ i=[θi1,θi2,,θizi]Rzi×qˉ(θij=[θi1,θi2,,θiq,θineg ] for j = 1 , 2 , ⋯   , z i ) \left.j=1,2, \cdots, z_i\right) j=1,2,,zi)表示实例的类别概率,我们将 Θ ~ i \widetilde{\boldsymbol{\Theta}}_i Θ i裁剪为 Θ i = [ θ ^ i 1 , θ ^ i 2 , ⋯   , θ ^ i z i ] ⊤ ∈ R z i × q \Theta_i=\left[\hat{\boldsymbol{\theta}}_i^1, \hat{\boldsymbol{\theta}}_i^2, \cdots, \hat{\boldsymbol{\theta}}_i^{z_i}\right]^{\top} \in \mathbb{R}^{z_i \times q} Θi=[θ^i1,θ^i2,,θ^izi]Rzi×q,其中 θ ^ i j = [ θ i 1 , θ i 2 , ⋯   , θ i q ] ⊤ \hat{\boldsymbol{\theta}}_i^j=\left[\theta_i^1, \theta_i^2, \cdots, \theta_i^q\right]^{\top} θ^ij=[θi1,θi2,,θiq]。最终,汇聚的包标签为:
Y i = ψ ( Θ i ) , (8) \tag{8} Y_i=\psi\left(\Theta_i\right), Yi=ψ(Θi),(8)其中 ψ ( Θ i ) \psi\left(\boldsymbol{\Theta}_i\right) ψ(Θi)用于查询 Θ i \Theta_i Θi列索引的最大值。MIPLGP的板块图如图3所示,其中灰色圈表示观测变量,即特征和包标签,白色圈表示潜在变量。

在训练阶段,模型参数 Φ \Phi Φ通过最小化负对数边缘似然习得:
L = − log ⁡ P ( Y ˙ ∣ X , Φ ) ∝ log ⁡ ∣ K ∣ + Y ˙ ⊤ K − 1 Y ˙ , (9) \tag{9} \mathcal{L}=-\log P(\dot{\mathbf{Y}} \mid \mathbf{X}, \Phi) \propto \log |\mathbf{K}|+\dot{\mathbf{Y}}^{\top} \mathbf{K}^{-1} \dot{\mathbf{Y}}, L=logP(Y˙X,Φ)logK+Y˙K1Y˙,(9)其导数为:
∂ L ∂ Φ ∝ Tr ⁡ ( K − 1 ∂ K ∂ Φ ) − Y ˙ ⊤ K ∂ K − 1 ∂ Φ K Y ˙ (10) \tag{10} \frac{\partial \mathcal{L}}{\partial \Phi} \propto \operatorname{Tr}\left(\mathbf{K}^{-1} \frac{\partial \mathbf{K}}{\partial \Phi}\right)-\dot{\mathbf{Y}}^{\top} \mathbf{K} \frac{\partial \mathbf{K}^{-1}}{\partial \Phi} \mathbf{K} \dot{\mathbf{Y}} ΦLTr(K1ΦK)Y˙KΦK1KY˙(10)其中 Tr ⁡ ( ⋅ ) \operatorname{Tr}(\cdot) Tr()是矩阵的迹操作。对于高斯过程, K − 1 \mathbf{K}^{-1} K1的Gholesky过程通常需要消耗 O ( q ~ n 3 ) \mathcal{O}\left(\tilde{q} n^3\right) O(q~n3)。而在GPU加速下,时间复杂度可以降为 O ( q ~ n 2 ) \mathcal{O}\left(\tilde{q} n^2\right) O(q~n2)。此外,一个预处理器被用于进一步加速计算。

给定一个无表情包 X ∗ = [ x 1 , x 2 , ⋯   , x z ∗ ] \boldsymbol{X}_*=\left[x^1, x^2, \cdots, x^{z_*}\right] X=[x1,x2,,xz],GP模型首先生成预测分布 P ( F ∗ ∣ X , Y ˙ , x i ∗ ) ( i ∗ = 1 , 2 , ⋯   , z ∗ ) P\left(\mathbf{F}^* \mid \mathbf{X}, \dot{\mathbf{Y}}, x^{i_*}\right)\left(i_*=1,2, \cdots, z_*\right) P(FX,Y˙,xi)(i=1,2,,z),其中 F ∗ = [ f ∗ 1 , f ∗ 2 , ⋯   , f ∗ q ~ ] ⊤ \mathbf{F}^*=\left[f^{* 1}, f^{* 2}, \cdots, f^{* \tilde{q}}\right]^{\top} F=[f1,f2,,fq~]是相应的潜在变量。类别标签的Dirichlet厚颜通过预测分布获取,因此类别概率的期望为:
E [ θ i ∗ c ∣ X , Y ˙ , x i ∗ ] = ∫ F ∗ exp ⁡ ( f ∗ c ( x i ∗ ) ) ∑ j = 1 q ~ exp ⁡ ( f ∗ j ( x i ∗ ) ) P ( f ∗ c ( x i ∗ ) ∣ X , Y ˙ , x i ∗ ) , (11) \tag{11} \mathbb{E}\left[\theta_{i_*}^c \mid \mathbf{X}, \dot{\mathbf{Y}}, x^{i_*}\right]=\int_{\mathbf{F}^*} \frac{\exp \left(f^{* c}\left(x^{i_*}\right)\right)}{\sum_{j=1}^{\tilde{q}} \exp \left(f^{* j}\left(x^{i *}\right)\right)} P\left(f^{* c}\left(x^{i_*}\right) \mid \mathbf{X}, \dot{\mathbf{Y}}, x^{i *}\right), E[θicX,Y˙,xi]=Fj=1q~exp(fj(xi))exp(fc(xi))P(fc(xi)X,Y˙,xi),(11)其中 P ( f ∗ c ( x i ∗ ) ∣ X , Y ˙ , x i ∗ ) P\left(f^{* c}\left(x^{i_*}\right) \mid \mathbf{X}, \dot{\mathbf{Y}}, x^{i_*}\right) P(fc(xi)X,Y˙,xi)是用于 f ∗ c ( ⋅ , ⋅ ) f^{* c}(\cdot, \cdot) fc(,)的预测分布。令实例 x i ∗ \boldsymbol{x}^{i_*} xi的类别概率为 θ ∗ i ∗ = [ θ i ∗ 1 , θ i ∗ 2 , ⋯   , θ i ∗ q , θ i ∗ neg  ] \boldsymbol{\theta}_*^{i_*}=\left[\theta_{i_*}^1, \theta_{i_*}^2, \cdots, \theta_{i_*}^q, \theta_{i_*}^{\text {neg }}\right] θi=[θi1,θi2,,θiq,θineg ],且令 Θ ~ ∗ = [ θ ∗ 1 , θ ∗ 2 , ⋯   , θ ∗ z ∗ ] ⊤ ∈ R z ∗ × q ~ \widetilde{\Theta}_*=\left[\boldsymbol{\theta}_*^1, \boldsymbol{\theta}_*^2, \cdots, \boldsymbol{\theta}_*^{z_*}\right]^{\top} \in \mathbb{R}^{z_* \times \tilde{q}} Θ =[θ1,θ2,,θz]Rz×q~表示测试包 X ∗ \boldsymbol{X}_* X中所有实例的类别概率。然后,去除类别 l neg  l_{\text {neg }} lneg ,得到 Θ ∗ ∈ R z ∗ × q \Theta_* \in \mathbb{R}^{z * \times q} ΘRz∗×q。最终包的预测概率为:
Y ∗ = ψ ( Θ ∗ ) (12) \tag{12} Y_*=\psi\left(\Theta_*\right) Y=ψ(Θ)(12)算法1总结了MIPLGP的完整过程。

3 实验

3.1 实验设置

3.1.1 数据集

目前并没有严格意义上的MIPL数据集,对此,我们合成了五个MIPL数据集,包括MNIST-MIPL、FMNIST-MIPL、Newsgroups-MIPL、Birdsong-MIPL,以及SIVAL-MIPL。

表1总结了这些数据集的特点,其中表头从第二列开始依次表示包的数量、实例的数量、最大包的大小、最小包的大小、实例的维度、对应数据集的目标类别数量、MIPL中目标类标签的数量、保留类标签的数量,以及每个数据集中正实例的百分比。

为了合成带有候选标签集的MIL包,我们从目标类别中选择正实例,负实例则从保留类中选择。此外,在没有替换的情况下从目标类中采样虚假正标签。为了更全面的性能评估,虚假正标签的数量依赖于控制参数 r ( ∣ y i ∣ = r + 1 ) r(|\boldsymbol{y}_i|=r+1) r(yi=r+1)

以MNIST-MIPL为例,首先从MNIST数据集中,选取目标类 { 0 , 2 , 4 , 6 , 8 } \{ 0,2,4,6,8 \} {0,2,4,6,8},余下则作为保留类。然后,将目标类中的任意 r r r个虚假正标签添加到候选标签集中。

好的,以下是使用PyTorch实现 "Learning a Deep ConvNet for Multi-label Classification with Partial Labels" 论文示例代码。 ```python import torch import torch.nn as nn import torch.optim as optim from torch.utils.data import DataLoader from torchvision.transforms import transforms from sklearn.metrics import f1_score from dataset import CustomDataset from model import ConvNet # 设置随机数种子,保证结果可重复 torch.manual_seed(2022) # 定义超参数 epochs = 50 batch_size = 128 learning_rate = 0.001 weight_decay = 0.0001 num_classes = 20 num_labels = 3 # 定义数据预处理 transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) ]) # 加载数据集 train_dataset = CustomDataset(root='./data', split='train', transform=transform) train_loader = DataLoader(train_dataset, batch_size=batch_size, shuffle=True, num_workers=2) test_dataset = CustomDataset(root='./data', split='test', transform=transform) test_loader = DataLoader(test_dataset, batch_size=batch_size, shuffle=False, num_workers=2) # 定义模型 model = ConvNet(num_classes=num_classes, num_labels=num_labels) # 定义损失函数和优化器 criterion = nn.BCEWithLogitsLoss() optimizer = optim.Adam(model.parameters(), lr=learning_rate, weight_decay=weight_decay) # 训练模型 for epoch in range(epochs): # 训练阶段 model.train() running_loss = 0.0 for i, data in enumerate(train_loader): inputs, labels = data optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() train_loss = running_loss / len(train_loader) # 测试阶段 model.eval() y_true, y_pred = [], [] with torch.no_grad(): for data in test_loader: inputs, labels = data outputs = model(inputs) predicted_labels = torch.round(torch.sigmoid(outputs)) y_true.extend(labels.cpu().numpy()) y_pred.extend(predicted_labels.cpu().numpy()) f1 = f1_score(y_true, y_pred, average='macro') print('[Epoch %d] Train Loss: %.3f, Test F1: %.3f' % (epoch + 1, train_loss, f1)) ``` `CustomDataset` 和 `ConvNet` 分别是数据集类和模型类,需要根据您的具体情况进行实现。在训练阶段,使用 `nn.BCEWithLogitsLoss()` 作为损失函数进行优化。在测试阶段,使用 `sklearn.metrics.f1_score()` 计算 F1 值作为模型评估指标。 希望以上示例代码对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值