Convex Formulation for Learning from Positive and Unlabeled Data
Unbiased PU learning.
该论文在之前PU learning中使用非凸函数作为loss的基础上,对正类样本和未标记样本使用不同的凸函数loss,从而将其转为凸优化问题。结果表明,该loss(double hinge loss)与非凸loss(ramp)精度几乎一致,但大大减少了计算量。
Introdution
Background
论文首先强调了PU问题的重要性,举了几个例子:
- Automatic face tagging
- 用户对自己的画像标记为正类,其余都是未标记数据,需要正确识别用户的照片
- Inlier-based outlier detection
- 需要在只有
inliers
和未标记数据中识别outliers
,这种方法比完全无监督学习的效果要好
- 需要在只有
- Class is too diverse
- 如果要识别的数据集中类别太多,也就是
one-vs-rest
classification
- 如果要识别的数据集中类别太多,也就是
- Negative-class dataset shift
- 由于训练数据和测试数据采集的实践差异导致负类样本的概率分布发生了变化,那么如果使用PU learning,可以减少重新标记的代价
Method
作者简单回顾了之前PU learning的常见做法:
- 直接在正类样本和未标记样本中训练一个分类器。但很显然这样的效果非常差,因为未标记样本中包含两类数据。
- 根据先验π\piπ使用一个loss function来权衡每个样本的权重,目标是使得loss function最小化。但这样做的结果是会产生bias。
- 使用满足l(z)+l(−z)=1l(z) + l(-z) = 1l(z)+l(−z)=1条件的loss function可以消除这种bias,但对于
ramp loss
,是非凸函数,导致在优化过程中可能求导局部解。
因此,本文提出了一种新的凸函数的loss function,也就是double hinge loss
,不仅能够消除bias,同时也能保证凸性。关键点在于对未标记数据和正类数据使用不同的loss function。
Non-convex PU classification
作者回顾了在 Analysis of Learning from Positive and Unlabeled Data 这篇文章中的方法。
首先,根据
two-simple
的假设,我们可以认为正类样本和未标记样本是在两个数据集上分别进行采样得到的:- xi∼p(x∣y=1)xi′∼p(x)x_i \sim p(x|y = 1) \quad x^{'}_i \sim p(x)xi∼p(x∣y=1)xi′∼p(x)
- 对于未标记样本来说,边际概率可以表示为:p(x)=πp(x∣y=1)+(1−π)p(x∣y=−1)p(x) = \pi p(x|y=1) + (1-\pi ) p(x|y=-1)p(x)=πp(x∣y=1)+(1−π)p(x∣y=−1)
- 目标是训练一个分类器g(x)g(x)g(x)
最佳的分类器是最小化01损失:
- J0−1(g)=πE1[l0−1(g(X))]+(1−π)E−1[l0−1(−g(X))]J_{0-1}(g) = \pi E_1[l_{0-1}(g(X))] + (1-\pi )E_{-1}[l_{0-1}(-g(X))] J0−1(g)=πE1[l0−1(g(X))]+(1−π)E−1[l0−1(−g(X))]
- 其中loss function为 l0−1(z)=12sign(z)+12l_{0-1}(z) = \frac{1}{2}sign(z) + \frac{1}{2}l0−1(z)=21sign(z)+21
但由于我们的数据集没有负类样本,因此没有办法估计E−1E_{-1}E−1,所以可以将其转换为:
J0−1(g)=2πE1[l0−1(g(X))]+EX[l0−1(−g(X))]−πJ_{0-1}(g) = 2 \pi E_1[l_{0-1}(g(X))] + E_{X}[l_{0-1}(-g(X))] -\piJ0−1(g)=2πE1[l0−1(g(X))]+EX[l0−1(−g(X))]−π
其中EXE_XEX是在p(x)p(x)p(x)上的期望:EX[l0−1(−g(X))]=πE1[l0−1(−g(X))]+(1−π)E−1[l0−1(−g(X))]E_X[l_{0-1}(-g(X))] = \pi E_1[l_{0-1}(-g(X))] + (1-\pi)E_{-1}[l_{0-1}(-g(X))]EX[l0−1(−g(X))]=πE1[l0−1(−g(X))]+(1−π)E−1[l0−1(−g(X))]
但是,对01损失函数进行优化是非常困难的,因为其梯度在除了0以外的地方都为0
因此,直觉的使用
hinge loss
作为替代,但是我们发现会多出来一个惩罚项,这样会导致估计的bias。而如果使用l(z)+l(−z)=1l(z) + l(-z) = 1l(z)+l(−z)=1这样的loss function,就不会有bias(使用凹函数ramp loss
)
Convex PU classifiction
由于l0−1(−g(X))=1−l0−1(g(X))l_{0-1}(-g(X)) = 1 - l_{0-1}(g(X))l0−1(−g(X))=1−l0−1(g(X)),可以将损失函数改写为:
- J0−1(g)=πE1[l0−1(g(X))−l0−1(−g(X))]+EX[l0−1(−g(X))]J_{0-1}(g) = \pi E_1[l_{0-1}(g(X)) - l_{0-1}(-g(X))] + E_{X}[l_{0-1}(-g(X))]J0−1(g)=πE1[l0−1(g(X))−l0−1(−g(X))]+EX[l0−1(−g(X))]
我们用另外的损失函数l(z)l(z)l(z)代替,则可以得到:
J(g)=πE1[l^(g(X))]+EX[l(−g(X))]J(g) = \pi E_1[\hat{l}(g(X))] + E_X[l(-g(X))]J(g)=πE1[l^(g(X))]+EX[l(−g(X))]
注意到,在正类样本上我们的损失是
composite loss
:l^(z)=l(z)−l(−z)\hat{l}(z) = l(z) - l(-z)l^(z)=l(z)−l(−z)在正类样本上使用
composite loss
,在未标记样本上使用普通的损失
因此,最关键的就是l^(z)\hat{l}(z)l^(z)是不是凸函数,论文做了以下的证明:
- If the composite loss l^(z)\hat{l}(z)l^(z) is convex, it is linear.
- 为了简便,论文取了最简单的线性关系:l^(z)=−z\hat{l}(z) = -zl^(z)=−z
- 因此,损失函数变为:J(g)=πE1[−g(X)]+EX[l(−g(X))]J(g) = \pi E_1[-g(X)] + E_X[l(-g(X))]J(g)=πE1[−g(X)]+EX[l(−g(X))]
- 作者证明该损失函数表明learning with label noise实际上就是PU learning的特例
- 实际中,我们用
linear-inparameter mode
来进行分类:- g(x)=αTϕ(x)+bg(x) = \alpha^T\phi(x) + bg(x)=αTϕ(x)+b
- 其中ϕ(x)=[ϕ1(x),....,ϕm(x)]T\phi(x) = [\phi_1(x),....,\phi_m(x)]^Tϕ(x)=[ϕ1(x),....,ϕm(x)]T,也就是作用在所有样本上的基函数(作者建议使用高斯核)
- If the composite loss l^(z)\hat{l}(z)l^(z) is convex, it is linear.
基于
composite loss
是线性的假设,用均值代替期望,可以将loss function改写为:- J^(α,b)=−πn∑i=1nαTϕ(xi)−πb+1n′∑j=1n′l(−αTϕ(xj′)−b)+λ2αTα\hat{J}(\alpha,b) = -\frac{\pi}{n}\sum\limits_{i=1}^n \alpha^T\phi(x_i) - \pi b + \frac{1}{n^{'}} \sum\limits_{j=1}^{n^{'}}l(-\alpha^T\phi(x_j^{'})-b) + \frac{\lambda}{2} \alpha^T \alphaJ^(α,b)=−nπi=1∑nαTϕ(xi)−πb+n′1j=1∑n′l(−αTϕ(xj′)−b)+2λαTα
- 最后一项做正则项
根据观察我们发现,在原来的损失函数中:J(g)=πE1[−g(X)]+EX[l(−g(X))]J(g) = \pi E_1[-g(X)] + E_X[l(-g(X))]J(g)=πE1[−g(X)]+EX[l(−g(X))],这两项始终为正数;然而在我们的经验风险函数中,由于正则项的存在,前两项可能变为可能为负数,论文说在实际中需要限制这两项始终非负(这导致了后面nnPU的出现)
Convex loss functions for PU classification
可以发现,我们最终的目标函数就只需要指定lll就完成了,本节作者讨论了多种可能的凸函数作为loss。
Squared loss
- 论文使用了lS(z)=14(z−1)2l_S(z) = \frac{1}{4}(z-1)^2lS(z)=41(z−1)2作为loss,可以将目标函数变为:
- $J_S(g) = \frac{1}{4}\int g(x)^2p(x)dx -\frac{1}{2}\int g(x) [2\pi p_1(x) - p(x)]dx +C $
- 同时,很巧妙的定义了在xxx给定的条件下,分类为1和分类为0的概率的差:
- r(x)=p(y=1∣x)−p(y=−1∣x)=[2πp(x∣y=1)−p(x)]/p(x)r(x) = p(y=1|x) - p(y=-1|x) = [2\pi p(x|y=1) - p(x)] / p(x)r(x)=p(y=1∣x)−p(y=−1∣x)=[2πp(x∣y=1)−p(x)]/p(x)
- 积分后可以是不相关的常数,带入目标函数并化简可以得到(太赞了!):
- 14∫(g(x)−2πp1(x)−p(x)p(x))2p(x)dx\frac{1}{4}\int (g(x) - \frac{2\pi p_1(x) - p(x)}{p(x)})^2 p(x)dx41∫(g(x)−p(x)2πp1(x)−p(x))2p(x)dx
- 论文说这个目标函数的好处是可以直接从理论分析得到数值解,如果我们省略
linear-inparameter mode
中的常数bbb:- J^S(α)=14n′αTΦUTΦUα+12n′1TΦUα−πn1TΦPα+λ2αTα\hat{J}_S(\alpha) = \frac{1}{4n^{'}} \alpha^T\Phi^T_U \Phi_U\alpha + \frac{1}{2n^{'}}1^T\Phi_U \alpha - \frac{\pi}{n}1^T\Phi_P \alpha + \frac{\lambda}{2}\alpha^T \alphaJ^S(α)=4n′1αTΦUTΦUα+2n′11TΦUα−nπ1TΦPα+2λαTα
- 对这个二次型函数求导即可得到α\alphaα的数值解(牛啊。。)
- 但这个loss函数并不好,原因在于lS(z)=14(z−1)2l_S(z) = \frac{1}{4}(z-1)^2lS(z)=41(z−1)2当zzz大于1时这个loss会增大,而对于二分类来说,如果大于1说明能正确识别。
- 论文使用了lS(z)=14(z−1)2l_S(z) = \frac{1}{4}(z-1)^2lS(z)=41(z−1)2作为loss,可以将目标函数变为:
logistic loss
- 定义Logistic loss为lLL(z)=log(1+exp(−z))l_{LL}(z) = \log(1+\exp(-z))lLL(z)=log(1+exp(−z)),因此带入目标函数为:
- JLL(g)=−πE1[g(X)]+EX[log(1+exp(g(X)))]J_{LL}(g) = -\pi E_1[g(X)] + E_X[\log(1+\exp(g(X)))]JLL(g)=−πE1[g(X)]+EX[log(1+exp(g(X)))]
- 有log(1+exp(−z))=−log11+e−z=−z+log(1+exp(z))\log(1+\exp(-z)) = -\log \frac{1}{1+e^{-z}} = -z + \log(1+\exp(z))log(1+exp(−z))=−log1+e−z1=−z+log(1+exp(z)),带入原始的分类损失中,可以得到其和目标函数是一样的,因此可以用于PU classification
- 最终经验风险函数可以表示为:
- J^LL(α,b)=−πn∑i=1nαTϕ(xi)−πb+λ2αTα+1n′∑j=1n′lLL(−αTϕ(xj′)−b)\hat{J}_{LL} (\alpha,b) = -\frac{\pi}{n}\sum\limits_{i=1}^n \alpha^T \phi(x_i) - \pi b + \frac{\lambda}{2} \alpha^T\alpha + \frac{1}{n^{'}}\sum\limits_{j=1}^{n^{'}} l_{LL}(-\alpha^T\phi(x^{'}_j) - b)J^LL(α,b)=−nπi=1∑nαTϕ(xi)−πb+2λαTα+n′1j=1∑n′lLL(−αTϕ(xj′)−b)
- 定义Logistic loss为lLL(z)=log(1+exp(−z))l_{LL}(z) = \log(1+\exp(-z))lLL(z)=log(1+exp(−z)),因此带入目标函数为:
Double hinge losses
由于
hinge loss
并不是凸函数,因此不满足我们的定理(l^\hat{l}l^表示线性的)论文构造了
Double hinge losses
使得满足凸函数的性质:lDH(z)=max(−z,max(0,12−12z))l_{DH}(z) = \max(-z,\max (0,\frac{1}{2} - \frac{1}{2}z))lDH(z)=max(−z,max(0,21−21z))
因此经验风险函数可以写为:
- J^LL(α,b)=−πn∑i=1nαTϕ(xi)−πb+λ2αTα+1n′∑j=1n′lDH(−αTϕ(xj′)−b)\hat{J}_{LL} (\alpha,b) = -\frac{\pi}{n}\sum\limits_{i=1}^n \alpha^T \phi(x_i) - \pi b + \frac{\lambda}{2} \alpha^T\alpha + \frac{1}{n^{'}}\sum\limits_{j=1}^{n^{'}} l_{DH}(-\alpha^T\phi(x^{'}_j) - b)J^LL(α,b)=−nπi=1∑nαTϕ(xi)−πb+2λαTα+n′1j=1∑n′lDH(−αTϕ(xj′)−b)
Theoretical Analysis
待看。。。
Experiments
三组对比实验在MNIST数据集上进行实验,将0作为正类,其余作为负类,同时假设先验已知:
- Hinge损失(会有bias)
- Logistic 和 Double hinge loss
- Ramp (非凸优化)
实验结果说明,提出的凸优化结果与非凸优化效果相当,但减少了计算量。
Convex Formulation for Learning from Positive and Unlabeled Data相关推荐
- 人群密度估计--Leveraging Unlabeled Data for Crowd Counting by Learning to Rank
Leveraging Unlabeled Data for Crowd Counting by Learning to Rank CVPR2018 https://github.com/xialeil ...
- A Variational Approach for Learning from Positive
从正的和未标记的数据中学习的变分方法 摘要 仅从正样本和未标记的样本中学习二类分类器在许多实际应用中是一项重要且具有挑战性的任务. 大多数最近的PU学习方法是基于监督学习类型的错误分类风险开发的,并且 ...
- [半监督学习] Combining Labeled and Unlabeled Data with Co-Training
论文地址: Combining Labeled and Unlabeled Data with Co-Training 会议: COLT 1998 任务: 分类 A FORMAL FRAMEWORK ...
- Dual Contrastive Learning: Text Classification via Label-Aware Data Augmentation 阅读笔记
Dual Contrastive Learning: Text Classification via Label-Aware Data Augmentation PyTorch实现:https://g ...
- 图像去噪--Noise2Noise: Learning Image Restoration without Clean Data
Noise2Noise: Learning Image Restoration without Clean Data ICML 2018 1 Introduction 基于 corrupted or ...
- 读论文:Noise2Noise: Learning Image Restoration without Clean Data
很有意思的文章,我之前做过一些深度学习的降噪任务,针对不同光照条件下的图像进行降噪.这个时候就会涉及到标签样本的制作. 在监控领域中,相差6个db的照度,图像的噪点就会有明显的差异性.所以我们在训练模 ...
- Noise2Noise:Learning Image Restoration without Clean Data读书笔记
论文题目:Noise2Noise: Learning Image Restoration without Clean Data 一.简介 论文提出,在没有干净数据的情况下也能对图像进行重建,重建效果和 ...
- [论文评析]DeepSMOTE: Fusing Deep Learning and SMOTE for Imbalanced Data, IEEE TNNLS 2022
DeepSMOTE: Fusing Deep Learning and SMOTE for Imbalanced Data 论文信息 动机 SMOTE回顾 主要思路 DeepSMOTE **Permu ...
- 论文阅读《Meta-FDMixup:Cross-Domain Few-Shot Learning Guided by Labeled Target Data》
Background & Motivation 之前看的小样本论文大部分是目标域和源域属于同一个域,比如 COCO 数据集里的小样本设定:60类为 Base,20类为 Novel.Base 和 ...
最新文章
- python删除重复值所在的行数_使用python读取txt文件的内容,并删除重复的行数方法...
- iSCSI存储技术全攻略
- 教怎样写好一份“漏洞报告”
- 删除word中所有的表格_如何在Word中删除表格
- python3 urlencode及urldecode
- 2021-10-14 矩阵求导相关
- D3/Echarts/G2的对比分析
- 【LeetCode】【数组】题号:485,最大连续1的个数
- 34 个免费学习编程的最佳网站
- 我不生产代码,只是代码的搬运工!超级多的 —— 第三方
- Excel Pearson相关系数
- Java 性能优化实战工具实践:如何获取代码性能数据?
- “我只警告一次,下次我会直接忽略你发的垃圾,懂?”Linus 精彩炮轰语录集锦...
- jQuery ajax请求两次问题,jquery ajax请求了两次问题
- java毕业设计——基于java+JSP+J2EE的城市公交查询系统设计与实现(毕业论文+程序源码)——城市公交查询系统
- 魔力宝贝服务器端文件介绍,对魔力宝贝数据库的认识,及SQL数据库详细说明
- 结构体自定义指针函数c语言,C语言结构体中的函数指针
- 全国计算机应用语言设计,全国计算机应用技术证书考试程序设计教程:NIT C语言...
- mysql中数据发生变化时判断_MySql插入记录时判断
- 【正点原子STM32连载】 第二十五章 TFTLCD(MCU屏)实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1