多视图学习(multi-view learning)

前期吹牛:今天这一章我们就是来吹牛的,刚开始老板在和我说什么叫多视图学习的时候,我的脑海中是这么理解的:我们在欣赏妹子福利照片的时候,不能只看45度角的吧,要不那样岂不是都是美女了,这还得了。所以我们要看各个角度的照片,打击盗版美女,给大家创建一个真诚的少点欺骗的和谐世界。所以说,多视图学习就是360度,全方位无死角的欣赏(学习)然后得到最接近真实值的判定。

话说那么一天啊,一个人和一个蚂蚁在对话,他们看着一个米饭粒,人说,这个米饭粒胖嘟嘟的一定很香,蚂蚁说:你胡说,这米粒明明是长方形的,你干嘛说他胖嘟嘟的。然后他们就吵得面红耳赤,就去问上帝,这米究竟是什么样子的。上帝说:你们都没有错,人看到的是三维的世界,所以他们能看到立体的东西,而蚂蚁只能看到二维的,所以蚂蚁只能看到平面的。

从上面的小故事我们可以看出,多视图学习就是从多个角度去学习,然后数据进行预测提高准确性。

一 半监督学习

半监督学习问题在真实世界中大量存在,以下列举几例:

在文本分类中,例如,垃圾邮件过滤问题,所有邮件都可以作为未标记数据,标记数据的获取要求用户标注哪些是垃圾邮件,哪些不是,如果使用传统的监督学习方法,需要用户标记上千个邮件作为样本,才能使训练的学习器有较好的过滤性能,而几乎没有用户愿意花如此多的时间标记邮件,在只有少量的用户标记邮件和大量的未标记邮件的情况下,使用半监督学习方法训练垃圾邮件过滤器可能是一个好的选择。在图像处理中,例如,计算机辅助医学图像分析问题,可以从医院获得大量的医学图像作为未标记数据,但如果要求医学专家把这些图像中的病灶都标识出来,往往是不现实的,一般只能对少量医学图像中的病灶进行标识,所以需要使用半监督学习方法来减少对标记数据的需求,在自然语言处理中,例如,句法分析问题,为了训练一个好的句法分析器需要构造句子/句法树,这是一项十分耗时的工作,构造几千个句法树可能要耗费一个语言学家几年的时间,而可以作为未标记数据使用的句子是普遍存在的,考虑未标记数据的半监督学习能解决语言学家的困难,上述实例表明,随着信息技术的飞速发展,我们面临的问题是,数据大量存在,但获取数据的标记却需要耗费大量的人力物力,传统的监督学习方法在标记数据较少的情况下很难获得好的预测性能"半监督学习正是为了解决这类问题而提出,在理论和实际中都具有重要意义。

1.1多视图的半监督学习

1.1.1多视图数据

在一些实际问题中,对于同一事物可以从多种不同的途径或不同的角度对其进行描述,这多种描述构成事物的多个视图(multi view)。本文用带下标的xi表示第i个数据点,用带上标的x(t)表示数据的第i个视图,则多视图数据可表示为xi={x1x2,…,xn}其中,表示视图的个数,多视图数据在真实世界中广泛存在,以下列举几例:在网页分类问题中,既可以根据网页本身包含的信息来对网页进行分类,也可以利用链接到该网页的超链接所包含的信息来进行分类,这样,网页数据就可以用两个视图表示,刻画网页本身包含信息的特征集构成第一个视图,刻画超链接所包含信息的特征集构成第二个视图,在电视片段的识别问题中,既可以根据视频中包含的信息来进行识别,也可以根据音频中包含的信息来进行识别,所以电视数据可以用视频和音频这两个视图表示"在自然语言理解问题中,同一语义对象,可以用不同的语言来表达,这些不同的语言描述就构成了此语义对象的不同视图表示,上述示例中,多视图用于表示数据的不同特征集,多视图还可以用于表示数据的不同来源;例如对于同一个数据源,用不同的采集装置进行采集,这多个采集结果构成了数据的不同视图;另外,多视图还可以用于表示数据间的不同关系;例如,学术论文的分类问题中,论文间既有参考文献的引用关系,也有作者的合作关系,可以把不同的关系用不同的视图来表示;有一些文献涉及多模态(multimodal)学习问题,但不同的文献中模态一词的含义不同"狭义的多模态是指人的不同感官,如视觉,听觉,嗅觉!触觉等;视觉所对应的图像或文字信息,和听觉所对应的声音信息,就构成多模态数据;广义的模态数据是指对于一个事物,通过不同的方法收集到的数据"例如在人脸识别中,可能收集到人脸的2D图像和3D形状模型,这就构成人脸数据的两个模态;在指纹识别中,用不同传感器采集的一个指纹的多种不同印痕,构成指纹数据的多个模态;对比多模态数据和多视图数据的概念可以看出,多视图的含义里包含了多模态,多视图可以表示更广泛的实际问题;

1.3.2多视图数据的表示

数据的表示问题是机器学习的重点和难点问题之一,因为学习效果往往受到数据表示方法的影响。对于客观世界的对象,常常提取它的特征,然后用特征向量表示此对象,即xi={x1, x2… xn}了,其中n代表特征的个数。人们希望提取的特征体现了此对象的本质,从而能够用这些特征学习到目标概念。然而,对于一个学习问题,需要的最小特征集是不可知的,在缺乏先验信息的情况下,只能提取尽可能多的特征,提供给学习器,期望学习器能获得更好的预测性能"另外,数据收集技术的发展,使得人们可以通过更加复杂多样的手段对事物进行描述,这也导致数据的特征较多。这些描述对象的特征中,有些特征具有不同的属性,因此不适合使用同一种学习器进行学习。例如上述电视片段的识别问题中,电视片段具有视频和音频两部分特征,这两部分特征更适合分别用图像识别方法和声音识别方法来学习。如果使用单视图(即用所有特征组成一个特征向量,来表示电视片段,将无法选择一种既适合图像又适合声音的普适学习方法,在这种情况下,使用多视图的表示法较为适合,即把数据表示成多个特征集,然后在每个特征集上可以用不同的学习方法进行学习。

即使数据的特征能够使用同一种学习器进行学习,多视图学习也可能比单视图学习具有优势"例如上述网页分类问题中,网页本身所包含的信息和指向该网页的超链接所包含的信息均由单词构成,网页视图和超链接视图都可以表示成文本向量的形式,在这两个视图上可以用同一种学习器进行学习"然而,如果要把这两个视图合成一个视图,则得到的特征向量失去了原有的意义,而且可能增加了特征空间的维数,从而给学习带来不必要的困难"另外,数据的多视图表示方法还能够发挥各个视图的优势,利用未标记数据达到协同学习的目的,以改善学习性能,这一点接下来将具体介绍。

1.3.3多视图的半监督学习

在多视图的半监督学习中,一方面数据有多个视图,即x=xt,另一方面数据由标记数据集L和未标记数据集U组成,学习算法应考虑如何利用多个视图蕴含的信息和未标记数据蕴含的信息,来辅助传统的监督学习.在该领域具有代表性的算法有A.Blum和T.Mitchell提出的协同训练算法 (co一training)。该算法假设数据有两个视图,首先在两个视图上利用标记数据分别训练出一个分类器,然后,在协同训练过程中,每个分类器从未标记数据中挑选若干预测置信度较高的数据进行标记,并把标记后的数据加入另一个分类器的标记数据集中,以便对方利用这些新标记的数据进行更新,此过程不断迭代进行,直到达到某个停止条件。

上图展示了协同训练算法的主要思想,图中,Cl和C2分别代表两个类别的数据,用两个不同的颜色表示,X(l)和X(2)代表数据的两个不同视图,在视图X(1)中,这两个类别的数据可以被分类器很好地区别开来,而在视图X(2)中,这两个类别的数据混合分布,很难训练得到好的分类器,在这种情况下,用视图X(l)训练的分类器可以把它对未标记数据的分类结果中比较置信那些的未标记数据,连同它对那些未标记数据的分类结果,一起提供给视图X(2)上的分类器,然后,用视图x(2)训练的分类器能够利用从视图X(l)上得到的信息,排除自身的不确定性,从而提高用视图X(2)训练的分类器性能,反之亦然,多视图学习正是利用数据在不同的视图学习的难易程度不同,来发挥视图之间的相互作用,,优势互补,协同学习。自从协同训练算法被提出以后,多视图的半监督学习得到研究者的重视,涌现出了一批相关工作,并取得了很多研究以根据音频中包含的信息来进行识别,所以电视数据可以用视频和音频这两个视图表示,在自然语言理解问题中,同一语义对象,可以用不同的语言来表达,这些不同的语言描述就构成了此语义对象的不同视图表示。上述示例中,多视图用于表示数据的不同特征集,多视图还可以用于表示数据的不同来源。例如对于同一个数据源,用不同的采集装置进行采集,这多个采集结果构成了数据的不同视图。另外,多视图还可以用于表示数据间的不同关系。例如,学术论文的分类问题中,论文间既有参考文献的引用关系,也有作者的合作关系,可以把不同的关系用不同的视图来表示,有一些文献涉及多模态(multimodal)学习问题,但不同的文献中模态一词的含义不同。狭义的多模态是指人的不同感官,如视觉,听觉,嗅觉,触觉等视觉所对应的图像或文字信息,和听觉所对应的声音信息,就构成多模态数据。广义的多模态数据是指对于一个事物,通过不同的方法收集到的数据。例如在人脸识别中,可能收集到人脸的3D图像和3D形状模型,这就构成人脸数据的两个模态。在指纹识别中,用不同传感器采集的一个指纹的多种不同印痕,构成指纹数据的多个模态。对比多模态数据和多视图数据的概念可以看出,多视图的含义里包含了多模态,多视图可以表示更广泛的实际问题。

二 本文总结:

本文是科普性的文章,大家没事读一读,对多视图学习有个大概的了解,我以后的方向大概就是这个了。

多视图学习(multiview learning)的更多相关文章

  1. 多视图子空间聚类/表示学习(Multi-view Subspace Clustering/Representation Learning)

    多视图子空间聚类/表示学习(Multi-view Subspace Clustering/Representation Learning) 作者:凯鲁嘎吉 - 博客园 http://www.cnblo ...

  2. 【深度学习Deep Learning】资料大全

    最近在学深度学习相关的东西,在网上搜集到了一些不错的资料,现在汇总一下: Free Online Books  by Yoshua Bengio, Ian Goodfellow and Aaron C ...

  3. 多视图学习利器----CCA(典型相关分析)及MATLAB实现

    Hello,我是你们人见人爱花见花开的小花.又和大家见面了,今天我们来聊一聊多视图学习利器------CCA. 一 典型相关分析的基本思想 当我们研究两个变量x和y之间的相关关系的时候,相关系数(相关 ...

  4. 【转】mysql的union、left join、 right join、 inner join和视图学习

    1.联合 union 进行多个查询语句时,要求多次查询的结果列数必须一样.此时,查询的结果以第一个sql语句的列名为准且union会自动去重复我们应该使用union all. 例...... 1.联合 ...

  5. ADMM与one-pass multi-view learning

    现在终于开始看论文了,机器学习基础部分的更新可能以后会慢一点了,当然还是那句话宁愿慢点,也做自己原创的,自己思考的东西.现在开辟一个新的模块----多视图学习相关论文笔记,就是分享大牛的paper,然 ...

  6. 增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)

    接下来我们回顾一下动态规划算法(DP)和蒙特卡罗方法(MC)的特点,对于动态规划算法有如下特性: 需要环境模型,即状态转移概率\(P_{sa}\) 状态值函数的估计是自举的(bootstrapping ...

  7. 集成学习(Ensembling Learning)

    集成学习(Ensembling Learning) 标签(空格分隔): 机器学习 Adabost 对于一些弱分类器来说,如何通过组合方法构成一个强分类器.一般的思路是:改变训练数据的概率分布(权值分布 ...

  8. 机器学习(Machine Learning)&深度学习(Deep Learning)资料【转】

    转自:机器学习(Machine Learning)&深度学习(Deep Learning)资料 <Brief History of Machine Learning> 介绍:这是一 ...

  9. (转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

    特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

随机推荐

  1. Windows Universal 应用 – Tip Calculator

    声明 以下内容取材于 Bob Tabor 的课程<Windows Phone 8.1 Development for Absolute Beginners>,链接地址为:http://ww ...

  2. Linux内核的文件预读readahead

    Linux的文件预读readahead,指Linux系统内核将指定文件的某区域预读进页缓存起来,便于接下来对该区域进行读取时,不会因缺页(page fault)而阻塞.因为从内存读取比从磁盘读取要快很 ...

  3. Symantec Backup Exec Agent For Linux防火墙问题

    如果在Unix或Linux安装配置好了Symantec Backup Exec Agent For Linux,但是在Symantec Backup Exec服务端无法访问Symantec Backu ...

  4. .NET应用架构设计—工作单元模式(摆脱过程式代码的重要思想,代替DDD实现轻量级业务)

    阅读目录: 1.背景介绍 2.过程式代码的真正困境 3.工作单元模式的简单示例 4.总结 1.背景介绍 一直都在谈论面向对象开发,但是开发企业应用系统时,使用面向对象开发最大的问题就是在于,多个对象之 ...

  5. Conquer and Divide经典例子之Strassen算法解决大型矩阵的相乘

    在通过汉诺塔问题理解递归的精髓中我讲解了怎么把一个复杂的问题一步步recursively划分了成简单显而易见的小问题.其实这个解决问题的思路就是算法中常用的divide and conquer, 这篇 ...

  6. 解决MyEclipse中的js报错的小方法

    今天,下了个模版,但是导进去的时候发现js会报错.看了下其他都没有错误.而有一个js报错误,请原谅我有点红色强迫症,不能留一点红色 . 错误如下:Syntax error on token " ...

  7. Linux下安装Nginx1.9.3

    操作系统:CentOS6.5 64bit Nginx: 1.9.3 1.下载Nginx [root@iZ94jj63a3sZ softs]# wget http://nginx.org/downloa ...

  8. [WPF系列]-Adorner

      简介 通常我们想对现有的控件,做些修饰时我们就会想到一个装饰模式.WPF中也提供了这样的实现思路:通过将Adorner添加到AdornerLayer中来实现装饰现有控件的效果.如图示:   本来T ...

  9. python爬虫学习 —— 总目录

    开篇 作为一个C党,接触python之后学习了爬虫. 和AC算法题的快感类似,从网络上爬取各种数据也很有意思. 准备写一系列文章,整理一下学习历程,也给后来者提供一点便利. 我是目录 听说你叫爬虫 - ...

  10. 【原】使用VirtIE6代替IE6

    做前端开发难免要使用IE6,相信很多朋友知道win7上是不支持安装IE6的,通常会使用IETester,要么在win7中安装虚拟机,在虚拟机中安装IE6. 分析下这2种方式: IETester:并不是 ...