示例選择的多示例学习.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
示例選择的多示例学习

MILIS: Multiple Instance Learning with Instance Selection Fu, Z.; Robles-Kelly, A.; Zhou, J.; Pattern Analysis and Machine Intelligence, IEEE Transactions on Volume: PP , Issue: 99 Digital Object Identifier: 10.1109/TPAMI.2010.155 Publication Year: 2010 , Page(s): 1 - 1 IEEE Early Access Abstract ?|? Full Text: PDF?(1453 KB)? 这篇文章讲的是多示例学习。 所谓的多示例就是指,每个样本有多个实例(){}组成,一个样本实际上是很多的集合()。 作者所设计的方法用下面这个图可以全部概括出来了: 首先,我们介绍所谓的Feature Mapping,就是用{ , },把一个bag 映射成一个矢量: 这样做的缺点是用所有的,太多了,映射成的矢量维数太高了,算起来太麻烦。 作者说:不用,用我的{ },只每个Bag只取一个instance作为IP,放在IPs里来映射个: 于是乎: 这样一个B_i就变成了一个n维矢量,我们用一个SVM来分类就可以了。 这篇文章的问题就是: 1.如何为每个选择一个放在中? 2.如何训练一个合适的SVM来分类? 为了回答上面第一个问题,作者先初步地选择一些。 在multiple instance learning中有个特点,就是positive bag吧,里面的instance 有positive 也有negative的,而,所以,关键问题是如何把哪些是positive的找出来。 如果你是小虾,肯定会想,建立一个positive instance的概率模型,然后算算看每个instance的概率,把概率最大的那些选出来。蠢呀!你训练样本中哪些是positive instance都不知道,怎么建立概率模型? 作者的聪明之处在于:先建立: 这里用的是技术 然后把些概率最小,不就最可能是正样本;然后概率最大的,不就最可能是负样本吗? 1. 对每个,我们 ,作为 2. 而对每个,我们就挑,作为IP。 这样就初步地选出了IPs。 这一步,用的是逆向思维。 有了, 把表达成矢量之后,我们训练一个SVM来分类: 好了,到这里,让我们再仔细看看上面那幅图: 原来是迭代的: 1.选择 ,形成新的矢量; 2. 用新的矢量训练SVM 好了,现在问题是,训练好了SVM,如何选择一个更好的集合呢? 如何没每个选一个呢?换言之,在的示例中,究竟该选择哪个? 这里,就是中选出来到那个的序号: 一共有n个,我们把所有放在一起,作为。这就是我们要求的结果了。 现在是,在迭代中,如何根据(t)中的SVM系数,以及,来确定下一次的呢? 很简单,如果你还懂点迭代的思想的话,就是让和中除之外按兵不动,光求一个能让代价函数最小的就行了: 但是,这样的计算复杂度太大了: 因为对于每个(一共n个)都要做一次,而这个计算要从项中找一个最小的。 但是,作者注意到:其实各个是独立的,互相的更新并不干扰,而上面那个式子中的,可不可以不用对每一个都算一遍,而是借鉴上个的结果来算? 沿着这个思路,作者提出了低复杂度的的计算方法: 输入是: 输出是: 过程是: 先初始化 然后挨个算每个训练集中的B_i的SVM输出: 算SVM分类的代价函数值,就是把所有B_i的()加起来: 然后,就是为每个B_i更新的时候了,这里,更新B_i的时候,可以随便用上B_i-1的结果,这也正是高效的原因所在,不是每个B_i单独算,而是用上个的结果接着算: 要是代价函数是0,就不跟新了;不是0的用下面方法更新: 对B_i中的每个不是的instance j,算用j代替后的代价函数: 要是比当前的代价函数小,就把:更新为 关键的是这一步:,这步算出了用j代替的代价函数,还有用j代替后,重新对每个B_i映射的矢量,以及这个矢量对应的SVM的输出: 具体地,是如下实现的: 代价函数初始化为零; 要是代替了之后更糟糕了,为了配合主函数中的,给无穷大。 好了,打完收工! 启发: 还是迭代的思想; 逆向思维听有意思的,而且求密度的思想也可以借鉴; multiple instance的方法,好像都是用instance embedding

文档评论(0)

df9v4fzI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档