MIML(一):Fast Multi-Instance Multi-label learning

2014 AAAI 有代码

MIMLfast

  • MIML(一):Fast Multi-Instance Multi-label learning
  • 一、存在的问题
  • 二、解决方法
  • 三、MIMLfast算法概述
  • 四、算法详解
  • 五、实验
  • 六、可能的思路来源
  • 七、感悟

一、存在的问题

大多数MIML算法只能解决中等规模的问题,无法解决大规模的问题或者在解决大规模问题的时候需要大量的计算时间。

二、解决方法

提出了MIMLfast算法

三、MIMLfast算法概述

(1)构建一个由所有标签所共享的低维空间,将原始空间的数据映射到这个低维空间。
(2)在示例级别,基于这个共享空间,识别每个包中的关键示例用以表示包,使用SGD(随机梯度下降算法)优化排名损失,得到线性模型。
(3)训练过程中通过对复杂标签设置子概念的方法,减少标签语义性差异对算法产生的影响。

四、算法详解

X:包
x:示例
Y:标签集
l:一个标签
MIMLfast算法,在示例级别建立分类模型,通过示例级分类生成包标签。
基本假设:一个正包中至少有一个示例的标签为正,一个负包中所有示例的标签都为负,即这个包中得分最高的示例可以代表这个包。
在示例级别建立分类模型需要两个步骤:1. 学习从原始特征空间到被所有标签共享的低维空间的线性映射。2.基于共享空间建立线性模型。这两个部分交互优化,具体过程如下:
(1)线性函数的基本形式(示例的分类模型)

(2)标签的子概念
对于复杂标签可能有多种语义例如(苹果可以表示水果、电脑、手机。。),将复杂标签拆分成多个子概念,每个子概念一个模型,设置子概念个数为K,允许有空的子概念。
设对于标签l,有K个子概念,那么示例x在标签l上就有K个模型,K个预测值,取预测值最大的作为示例x在标签l上的预测值。

(3)包的分类模型
根据基本假设,包X在标签l上的预测值就是包X中所有示例x在标签l上预测值的最大值。而这个具有最大预测值的示例x就是包X的关键示例。

(4)排名损失

(5)排名损失的变形(没看明白)
根据公式(2)和公式(3)可得(这儿这种类似于y=y*x/x的操作,是因为左侧的那个损失他是对于X和l的函数,但是X和L在求和函数上面,所以在梯度下降的过程中要对其进行求导很困难,必须想办法对他做近似,让他变成一个常数或者更简单的表达,才能在后续的SGD中进行求导!)

别人的理解:

(6)利用随机梯度下降优化损失(SGD)

如果这个损失不为0,说明所选的不相关标签是违规标签(也就是预测值比较大)。
如果要最小化这个损失,那么在计算这个损失的时候,需要先知道R的值,但是每次都计算所有的R,计算量太大了,因此用近似值来对R进行估计。
R的估计:每次迭代中从不相关标签中随机抽取一个不相关标签,直到出现违规的标签,设第一个违规标签是第v次采样的结果,则

(7)算法伪代码

机器学习算法的训练基本过程:提出一个训练函数,形成从特征向量到输出标签结果之间的映射,初始化这个映射中的参数,使用特征、参数进行计算得到预测结果,使用损失函数和真实标签计算损失,然后根据参数更新准则更新参数再次及计算,直到损失满足要求。使用得到的参数值对测试集的特征向量进行测试。
算法输入:训练数据,m(共享空间的维度)、C(标签,训练的时候需要知道每个包X的相关标签集和不相关标签集)、K(子概念个数)、r(步长)
对参数进行初始化。
随机去一个包X及其一个相关标签y,根据初始化参数,计算这个包X及其相关标签y的关键示例x及其对应的子概念k,也就是可以得到包X对于标签y的预测值。
(计算损失)对于所有包X的不相关标签集中的标签,随机抽取,计算这个不相关标签在包X中的关键示例和对应的子概念,计算损失,如果损失不为0,使用SGD更新参数。
直到损失达到标准停止。
(8)预测
上述代码可以得出一个分类函数(具有最优参数),将测试数据包X输入,可以得到包X对于所有标签Y的预测值,但是如何根据预测值来划分相关标签和不相关标签呢?
划分方法:为每个包分配一个虚标签,在训练模型的时候,将虚标签放在所有不相关标签之前,所有相关标签之后,在进行采样的时候,先判断所选择的标签是不是虚标签,如果是虚标签,那么放在所有不相关标签之前,如果不是,那么不相关标签中还含有虚标签。
通过这种方法得到的分类模型,输入包X的示例特征后,可以得到一系列的标签值,只需要识别出虚标签即可将分类结果划分出来(所有大于虚标签预测值的都是这个包X的标签)。

五、实验

(1)数据集

(2)评价指标
hamming loss、one error、coverage、ranking loss、average precision

六、可能的思路来源

(1)Ando, R. K., and Zhang, T. 2005. A framework for learning predictive structures from multiple tasks and unlabeled data.The Journal of Machine Learning Research 6:1817–1853。从特征空间中学习子空间。(可能想到特征空间的映射)
(2)Ji, S.; Tang, L.; Yu, S.; and Ye, J. 2008. Extracting shared subspace for multi-label classification. In Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 381–389.从特征空间学习子空间。
(3)Weston, J.; Bengio, S.; and Usunier, N. 2011. Wsabie: Scaling up to large vocabulary image annotation. In Proceedings of the 22nd International Joint Conference on Artificial Intelligence, 2764–2770.使用类似的技术来优化图像标注中的排名损失。(可能想到使用排名损失作为损失函数)
(4)Li, Y.-F.; Hu, J.-H.; Jiang, Y.; and Zhou, Z.-H. 2012. Towards discovering what patterns trigger what labels. In Proceedings of the 26th AAAI Conference on Artificial Intelligence, 1012–1018.提出了使用聚类为复杂的概念发现子概念的方法(可能想到利用子概念来降低标签语义的复杂性,提高分类准确率)
(5)Usunier, N.; Buffoni, D.; and Gallinari, P. 2009. Rankng with ordered weighted pairwise classification. In Proceedings of the 26th International Conference on Machine Learning, 1057–1064.排名损失。
(6)Ben-David, S.; Loker, D.; Srebro, N.; and Sridharan, K.2012. Minimizing the misclassification error rate using a surrogate convex loss. In Proceedings of the 29th International Conference on Machine Learning.铰链损失(解决非凸不连续损失函数求解问题)

七、感悟

(1)复杂标签子概念可以扩展到挺多应用中,能够减少标签语义性差异所带来的问题。
(2)模型比较简单,只用了线性模型,那么W所代表的由标签构成的共享的低维空间就显得比较重要,这个空间具体有哪些作用呢,用着个新的空间的原因是所么,是通过这个由标签构成的共享空间可以表达一定的标签之间的关系么?
(3)设置虚拟标签可能是一个不错的选择,进行多标签分类的时候
(4)使用铰链损失来代替原来的损失进行优化,是解决非凸不连续函数优化的一个办法。
(5)如果使用别的损失函数,考虑标签之间的关系、用非线性模型会达到所么效果?

MIML(一):Fast Multi-Instance Multi-label learning相关推荐

  1. activiti串行多实例报错Could not execute inner activity behavior of multi instance behavior解决办法

    如你报的是这个错误.你看到的是Could not execute inner activity behavior of multi instance behavior.你先去看看你的流程图,他这个报错 ...

  2. 多智能体强化学习Multi agent,多任务强化学习Multi task以及多智能体多任务强化学习Multi agent Multi task概述

    概述 在我之前的工作中,我自己总结了一些多智能体强化学习的算法和通俗的理解. 首先,关于题目中提到的这三个家伙,大家首先想到的就是强化学习的五件套: 状态:s 奖励:r 动作值:Q 状态值:V 策略: ...

  3. 论文翻译 —— Disambiguation-Free Partial Label Learning 非消歧偏标记学习(PL-ECOC)

    标题:Disambiguation-Free Partial Label Learning 文章链接:http://aaai.org/ocs/index.php/AAAI/AAAI17/paper/v ...

  4. 【STL】rb_tree (multi)set (multi)map

    rb_tree rb_tree源码实现 G2.9版本的rb_tree源码 rb_tree底层实现红黑树,其示意图和代码如下: 4个需要注意的模板参数:Key,Value,KeyOfValue,Comp ...

  5. 【深度学习】论文导读:ELU激活函数的提出(FAST AND ACCURATE DEEP NETWORK LEARNING BY EXPONENTIAL LINEAR UNITS (ELUS))

    论文下载: FAST AND ACCURATE DEEP NETWORK LEARNING BY EXPONENTIAL LINEAR UNITS (ELUS)(2016,Djork-Arn´e Cl ...

  6. Noisy label learning

    Noisy Label Learning 1.f'create_noisy_data' include cuda : numpy, random, matplotlib, pandas, tensor ...

  7. 多示例学习(Multi Instance Learning)和 弱监督学习(Weakly Supervised Learning)

    目录 弱监督: 多示例学习: 弱监督: 1. 弱在缺标签:标签是不完全的,有的有标签,有的无标签 2. 弱在标签不准确:有的标签正确,有的标签错误 3. 弱在标签不精准: 标签不是在样本上,而是在更高 ...

  8. multi task训练torch_Multi-task Learning的三个小知识

    本文译自Deep Multi-Task Learning – 3 Lessons Learned by Zohar Komarovsky 在过去几年里,Multi-Task Learning (MTL ...

  9. 【多实例学习】2017-PR-多实例学习:问题特征和应用的调查

    2017-PR-Multiple instance learning: A survey of problem characteristics and applications 多实例学习:问题特征和 ...

  10. multi task训练torch_采用single task模型蒸馏到Multi-Task Networks

    论文地址. 这篇论文主要研究利用各个single task model来分别作为teacher model,用knowledge distillation的方法指导一个multi task model ...

最新文章

  1. 后端缓存的23个关键关注点
  2. 计算机书籍-R语言机器学习预测分析实战
  3. 数据中心冷热空气流控制优化方案
  4. python调用Linux下so文件
  5. vs2017字体最佳选择_如何为下一个项目选择最佳字体? 一个简单的游戏
  6. Node简单服务器开发
  7. Netty之自定义RPC
  8. Leetcode--1014. 最佳观光组合(java)
  9. WAP中推送技术的分析与设计
  10. Microsoft Office Visio 2007 免费下载
  11. Sql Server 2008R2 备份文件还原数据库
  12. 软件开发工程师应该具备哪些证书_初级软件工程师证书简介
  13. 离散数学知识点总结(5):蕴含式;命题的推理理论;逻辑推演的方法;推理的有效性证明
  14. 8/人天,小记一次 JAVA(APP后台) 项目改造 .NET 过程(后台代码已开源于 Github)
  15. 数据结构实验报告-实验四-实现桶式排序和基于桶式排序的基数排序
  16. 目标检测 | 丰富特征导向Refinement Network用于目标检测(附github源码)
  17. 把Form转换成TXT格式的文件
  18. 简单的人工智能背景调查
  19. 测试技术提升建议(测试必看)
  20. 阿斯利康新冠疫苗一种给药方案有效性达90%;中国香水消费客单价远超美欧市场 | 美通企业日报...

热门文章

  1. npm出现的错误导致cnpm安装失败
  2. PBOC/EMV-交易流程详解--POS与卡片的数据交互进行分析
  3. 15【背景 渐变色】
  4. LC-MS/MS与LC-MS的区别与联系
  5. java类和对象试题_java类和对象练习题1
  6. Elasticsearch高级搜索排序( 中文+拼音+首字母+简繁转换+特殊符号过滤)(示例代码)
  7. windows自带的程序
  8. 凡事就怕认真:强迫症米粉24Hr电池优化实测
  9. pandas使用melt函数将宽表变换为窄表、id_vars参数指定原宽表聚合数据列、value_vars参数指定需要被压缩的数据列(单个、多个)、var_name指定压缩后数据列的名称
  10. Microsoft Visio