多示例学习 multiple instance learning (MIL)
多示例学习:包(bags) 和 示例 (instance).
包是由多个示例组成的,举个例子,在图像分类中,一张图片就是一个包,图片分割出的patches就是示例。在多示例学习中,包带有类别标签而示例不带类别标签,最终的目的是给出对新的包的类别预测。
多示例学习是弱监督学习中的一个popular的方法。用于训练分类器的instance是没有类别标记的,但是bags却是有类别标记的,这一点与以往所有框架均不甚相同。
多示例学习中的规则:如果一个bag 里面存在至少一个instance被分类器判定标签为+(或者1)的示例,则该包为正包;如果一个bag里面所有的instance都被分类器判定标签为-,则该包为负包。
问题的实际应用:做检测问题,标记训练图片样本的时候需要给出一个矩形框指明目标的位置,有可能标的不够准确,导致不同的样本之间对不齐,这时候可以将标记的矩形框做一些局部扰动得到一些新的矩形框,将它们一起看成一个bag,其中总有一个是最佳的正样本,也就是标记为正。而取一张没有目标的图片,作为负样本包,无论在里面怎么截取图片,都是负样本。
解决这个问题的方法:迭代优化(alternative optimization)。分为两步:监督学习,标记更新
首先假设已知所有样本的标记,使用一个监督学习的方法得到一个分类模型;用这个模型对每个训练样本进行预测,更新它们的标记。------以上是一个过程
之后再根据新得到的标记样本重新训练分类器,再对每个训练样本进行预测;再训练分类器,再预测标记;再训练,再预测。。。。。。
需要注意的地方:
1)训练监督学习模型的时候,只从正样本包里挑选被预测的“最像正确”(也就是分类得到最高)的那一个,正样本包里面其他的样本,不管预测出来的是正还是负的都不要了。这是因为,其中多示例的问题也可以描述为,正样本包里面“最正确”的一个样本标记是正的,跟其他样本无关。所以,这种选择策略恰恰是符合问题定义的。
2)如果负样本足够多的话,可以只挑选每个负样本包里面被预测“最像正确”的一个样本作为负样本进行训练,这样的负样本也叫做hard sample 或者 most violated sample。实践中,它们对于模型快速收敛是最有效的。
流程图:
输入:数据矩阵
MILL (MIL Library) is an open-source toolkit for multiple instance learning algorithms written in Matlab. Multiple-instance learning (MIL) is a form of semi-supervised learning where there is only incomplete knowledge on the labels of the training data. Specifically, instances in MIL are grouped into a set of bags. The labels of the bags are provided, but the labels of instances in the bags are unknown. However, a bag is labeled positive if at least one instance in the bag is positive, and a bag is negative if all the instances in it are negative. MIL algorithms attempt to learn a classification function that can predict the labels of bags and/or instances in the testing data. The applications of MIL include molecule activity prediction (分子活动预测), text categorization(文本分类), image classification and retrieval (图像分类和检索), etc.
多示例学习 multiple instance learning (MIL)的更多相关文章
- ObjecT4:On-line multiple instance learning (MIL)学习
原文链接:http://blog.csdn.net/ikerpeng/article/details/19235391 用到论文,直接看翻译. 文章:Robust object tracking wi ...
- Multiple Instance Learning
///////////////////////////////////////////推荐学习组////////////////////////////// http://www.robots.ox. ...
- 读《Tooth-Marked Tongue Recgnition Using Multiple Instance Learning and CNN Features》
本人 组会汇报的一篇关于齿痕舌判定的文章,贴上PPT 涉及多示例学习和神经网络方面知识. 准确率有待提高哈哈.
- [paper reading] C-MIL: Continuation Multiple Instance Learning for Weakly Supervised Object Detection CVPR2019
MIL陷入局部最优,检测到局部,无法完整的检测到物体.将instance划分为空间相关和类别相关的子集.在这些子集中定义一系列平滑的损失近似代替原损失函数,优化这些平滑损失. C-MIL learns ...
- 论文笔记(5):Fully Convolutional Multi-Class Multiple Instance Learning
这篇论文主要介绍了如何使用图片级标注对像素级分割任务进行训练.想法很简单却达到了比较好的效果.文中所提到的loss比较有启发性. 大体思路: 首先同FCN一样,这个网络只有8层(5层VGG,3层全卷积 ...
- MIL 多示例学习 特征选择
一个主要的跟踪系统包含三个成分:1)外观模型,通过其可以估计目标的似然函数.2)运动模型,预测位置.3)搜索策略,寻找当前帧最有可能为目标的位置.MIL主要的贡献在第一条上. MIL与CT的不同在于后 ...
- 深度学习(Deep Learning)资料大全(不断更新)
Deep Learning(深度学习)学习笔记(不断更新): Deep Learning(深度学习)学习笔记之系列(一) 深度学习(Deep Learning)资料(不断更新):新增数据集,微信公众号 ...
- 多视图学习(multiview learning)
多视图学习(multi-view learning) 前期吹牛:今天这一章我们就是来吹牛的,刚开始老板在和我说什么叫多视图学习的时候,我的脑海中是这么理解的:我们在欣赏妹子福利照片的时候,不能只看45 ...
- 【论文笔记】多任务学习(Multi-Task Learning)
1. 前言 多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法.在机器学习领域,标准的算法理论是一次学习一个任务,也就 ...
随机推荐
- 【Java源码解析】ThreadLocal
简介 线程本地变量,用于同一线程之间的传递.每一个线程对象都保存在两个ThreadLocalMap,threadLocals和inheritableThreadLocals,后者会继承父线程的本地变量 ...
- 常见的浏览器端的存储技术:cookie
工作原理: cookie是存在用户硬盘中,用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息.当用户再次访问这个站点时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie. ...
- linux下的python3,virtualenv,Mysql,nginx,redis安装配置
Mysql安装和使用:点我 Redis安装和使用:点我 centos7安装Python3以及tab补全键的使用:点我 Linux下的virtualenv:点我 nginx的安装和使用:点我
- 程序员应该懂的ip地址知识汇总
1.A类ip由1字节(1字节是8位2进制数)的网络地址和3字节的主机地址组成,网络地址最高位必须是0,地址范围是从1.0.0.0到126.0.0.0,所以A类网络地址有126个,每个网络能容纳至少2^ ...
- 从零开始的Python学习Episode 23——进程
---恢复内容开始--- 进程 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Python提供了非常好用 ...
- 如何寻找无序数组中的第K大元素?
如何寻找无序数组中的第K大元素? 有这样一个算法题:有一个无序数组,要求找出数组中的第K大元素.比如给定的无序数组如下所示: 如果k=6,也就是要寻找第6大的元素,很显然,数组中第一大元素是24,第二 ...
- To Do List | 事实上是咕咕咕计划
1.写一两篇关于数学的博文 类似于这种反演啥的或者说是FFT一些更本质的东西趴...反正是我根本不会的东西 再写一点自己会的东西趴...(好像也只有什么课本上的东西讲讲了,不过应该会写一些自己曾经发现 ...
- Mac环境搭建以太坊私有链
原文地址: 石匠的blog 为了测试以太坊智能合约,最方便的是在本地搭建一个以太坊私有链.在mac上搭建环境主要需要以下步骤. geth安装 geth是go-ethereum的简写,是一个用go语言编 ...
- uptime命令详解
基础命令学习目录首页 users个数和窗口数一致 原文链接:https://www.cnblogs.com/ultranms/p/9253217.html uptime 另外还有一个参数 -V(大写) ...
- Python3中的函数 大全
Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print().但也可以自己创建 ...