Active-learning 学习(一)——Random-Walker-Based Collaborative learning
来源:互联网 发布:淘宝刷客论坛 编辑:程序博客网 时间:2024/06/17 00:16
本文系原创博文,转载请注明出处http://blog.csdn.net/JYZhang_CVML/article/details/56326202
作为Active Learning的入门小菜鸟,最近学习了Bin Sun在TGRS上的一篇文章”Random-Walker-Based Collaborative Learning for Hyperspectral Image Classification”。随手记录,便于大家交流学习和之后备忘查阅。高手绕道~
ps 本人并不是做遥感图像,本文解释不到位的地方还望交流指正。
引言
Active Learning 和 Semi-supervised Learning 结合是目前Active Learning 领域研究方向之一。首先,有少部分已经标注好的样本用来初始化分类器,然后在未标注的样本集中,使用AL来挑选出待查询的样本,SSL来挑选出伪标注样本,这两者联合之前小部分标注好的样本来重新训练分类器,提高分类效果。
本文的主要创新点在于:
1. 首先同时使用基于随机游走Random Walker的图像分割算法和基于Extend RW的光谱-空间位置分类方法(卫星遥感图像中使用光谱和空间位置有助于准确分类每个像素点,注:卫星遥感图像中像素点相当于图像分类问题中的每张图像,该像素点有较大深度并非传统图像中只有RGB三个通道)。将其两者结果相比较,将未标注样本分成两类。如何分成两类?耐心点下面即将慢慢介绍
2. 对于高置信度的未标记样本,伪标记工作会在其中进行,在高置信度未标记样本集中挑选伪标记样本的方法会保证伪标记样本的正确性和具有高信息性。对于低置信度的未标记样本,AL算法采用主动选择策略查询样本,交给砖家进行标注。
总的来说,不管是伪标记还是主动查询标注工作,这些样本通过新标注都能够有效提高分类器效果。
3. 最后,上述过程不断迭代,标注好的样本集(原始标注样本集+伪标注样本集+主动查询标注样本集)不断增大,ERW分类器能够得到相对准确的分类结果。
Introduction
通俗来说,联合使用AL和SSL和联合学习方法,标注样本由砖家和分类器自动标注来实现,是目前研究很多的方法。
对于本文适用的遥感图像,采用合适的分类器准确分类样本是很重要的。根据遥感图像的特点,光谱-空间分类器spectral-spatial融合遥感图像的光谱信息和空间位置信息,因此相比于仅仅考虑光谱信息的监督分类器更有助于准确分类。但是由于这类spectral-spatial分类器严重依赖于标注样本的数量,因此将AL的思想引入其中成了理所应当的事情。
算法的大致思想流程上面引言部分,自我觉着应该说清楚了。
Random-Walker & Extend RW
Random-Walker算法
简单的说一下我的理解,对于遥感图像而言,图像分割问题基本等同于分类问题(分割问题本质上是对像素的分类,而遥感图像的分类也就是对其中像素的分类分割)。RW算法仅仅考虑像素的空间信息而没有考虑像素光谱信息,所以造成分类准确度很差。所以需要ERW算法。
Extend RW算法
基于ERW算法的分类器能够结合像素空间信息和光谱信息,因此可以得到每个未标注样本到某个已标注样本的游走概率。考虑游走概率最大时,就可以得到未标注样本对应的类别。
从本质上来说,ERW算法就是一种适用于遥感光谱的分类器,只不过这种分类器并不是传统的分类器而已。正是因为上面提到的ERW算法的优势,本文将ERW算法作为AL和SSL联合学习算法框架的basic 分类器。
具体RW用于图像分割的算法可以参考博客http://blog.csdn.net/hjimce/article/details/45201263?locationNum=3
算法具体流程
算法大体是这么做的:
*对于一幅多光谱的遥感图像里面已有的标记好的样本集Training Set,进行基于随机游走的verification,得到高置信度的样本集(像素)和低置信度的样本集(像素)。
*都采用主动查询策略,以保证算法查询样本的有效性和高信息性。其中对于低置信度的样本集采用人工标记的方法,对于高置信度的样本集采用伪标记的方法(也就是机器自动标注)。无论是对于人工标注的样本还是伪标注的样本,更新原先的Training Set。注意,上述第一步和第二步是算法训练过程,迭代完成的。这样的话,标注好的训练集不断增大。
*测试过程,利用上面最后更新的Training Set,得到最终的ERW分类器。(正是因为ERW上面讨论的优势,将其作为本文联合学习算法的基本分类器。)最后得到整幅图像所有样本(像素)的准确分类结果,完成分类任务。
对本算法的理解,其实本算法利用RW图像分割方法(也就是一种粗糙的分类方法)和ERW分类方法来进行verification操作,所以从本质上来说RW和ERW方法就是经典算法QBC中的Committe。然后利用AL和SSL不断挑选可以标注的样本(人工标注的样本从AL中得到),扩大Training Set,最后用于最后分类的分类器ERW在最终的Training Set上完成整个训练集的分类问题。
ps,QBC算法最后的basic classifier可以是Committe中的一员,也可以不是~
基于RW的verification算法
第一步
使用加权的graph来最大程度利用图像的空间信息。
第二步
根据上面利用多光谱图像构建出来的graph信息,用RW算法和ERW算法进行分割和分类操作(本质上都是分类器)。
对于基于RW的分割算法
其中关键在于计算RW游走概率
因此分割结果对于每个像素点
对于基于ERW的分类器
给定
其中第一项代表空间信息,第二项代表光谱信息(利用上面LORSAL分类器所得到的
读者们看到这儿可能表示疑问了,为啥分类器采用RW算法和ERW算法呢?本文的解释大概意思是这样的:
1. RW和ERW算法存在互补关系,RW分割算法分类标准基于样本的空间信息,ERW分类器基于样本的空间信息和光谱信息。是否可以理解为multi-view的QBC算法?
2. ERW算法能够在较少样本时依然保持良好的分类效果,在整体算法框架起始阶段有相对稳定的表现。
3. RW算法和ERW在优化阶段能够被有效实现。…这也算是理由…
第三步
已经得到RW算法分割结果
其中
本文算法具体细节
我在看这个算法的时候觉得有几个地方需要注意:
- 每次迭代的时候,都要用标注好的样本集(原始标注好的样本集+查询人工标注的样本集+伪标注的样本集),来训练multi_view QBC算法中的RW分类器和ERW分类器,得到新的分类结果,分别表示为
s 和c ,再根据s 和c 得到投票结果U^ 和U˘ 。 - 最后很容易理解我们在
U^ 和U˘ 分别采集查询的人工标注样本和伪标注样本。要注意的是一定要采用主动查询策略保证我们采集的样本一定是具有信息量和有效的。本文这里采用的是MBT查询策略。 - 伪标注样本的标注问题,直接给 最有可能的标签。
- 最后返回的是ERW分类器,它本身也是Committe的一员。(用最后更新的标记好的样本训练的)
总结
总的来讲,本文本质上是multi_view的基于QBC的AL+SSL算法。Committe内的分类器并没有使用传统的分类器,而是使用的适用于多光谱遥感图像的分类器(遥感图像的segmentation算法就是分类器),而且这两种分类器相互之间互补,可以认为multi-view。然后从技术理解的层面上,相比于传统的AL算法,本文所说的联合学习SSL算法用于在高置信度的样本中获取伪标注样本,从而进一步降低样本标注量。
本人所做的方向并非遥感图像处理,博文中解释不到位的地方还请广大网友批评指正。交流可email 1459416934@qq.com。
- Active-learning 学习(一)——Random-Walker-Based Collaborative learning
- 自主学习(active learning)
- (论文阅读笔记1)Collaborative Metric Learning(一)(WWW2017)
- Active learning(主动学习)
- Active Learning 主动学习
- Active Learning 主动学习
- 主动学习 active learning(简单例子)
- 主动学习(二)——将 active selecting methods 引入semi-supervised learning
- Active-Learning 主动学习(三)—— Hierarchical Sampling 分层采样
- 主动学习 active learning-1
- 主动学习 Active Learning-2
- 机器学习分支:active learning、incremental learning、online machine learning
- Active Learning
- 深度学习笔记——理论与推导之Structured Learning【Markov Random Field】(十)
- Deep Learning学习笔记(一)——基本介绍
- Deep learning 学习(一)
- 【deep learning学习笔记】Restricted Boltzmann Machines for Collaborative Filtering
- 集成学习(ensemble learning):bagging、boosting、random forest总结
- c++学习心得(二)
- Angular2组件与指令的小实践——实现一个图片轮播组件
- I2C总线之(三)---以C语言理解IIC
- 【LeetCode 13】 Roman to Integer
- append中一直添加的是最后一个单词
- Active-learning 学习(一)——Random-Walker-Based Collaborative learning
- HDU 5907 Find Q
- Zookeeper的Leader选举
- web service开发时,wsdl2java 客户端代码的生成
- CUDA 核函数调用核函数
- Codeforces768C-Jon Snow and his Favourite Number
- Objective-C使用NSFileHandle类对文件进行基本操作,IOS文件操作
- javaWEB总结(23):HttpSession URL重写
- 《JAVA与模式》之门面模式