多视图学习(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. fetch_20newsgroups 数据集导入失败: no handlers could be fetch_20newsgroups

    最简单的办法 下载'20news-bydate.pkz', 放到C:\\Users\[Current user]\scikit_learn_data 下边就行. 实际上 scikit learning ...

  2. MySQL插入语句解析

    1.INSERT INTO 最常用简单的插入语句,可以有以下两种用法 1>  INSERT INTO tb_user(id, name, age) VALUES (100022, 'Tom', ...

  3. SQL Server 2008 R2——使用FULL OUTER JOIN实现多表信息汇总

    =================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮 ...

  4. sql中毫秒数与格式化时间的转换

    使用MYSQL自带的函数FROM_UNIXTIME(unix_timestamp,format). 如: SELECT FROM_UNIXTIME(1461201575895/1000,"% ...

  5. J2EE基础之Servlet

    J2EE基础之Servlet 1.  什么是Servlet? Servlet即Java服务小程序,是使用应用程序设计接口以及相关类和方法的Java程序.它可以作为一种插件,像Applet程序一样嵌入到 ...

  6. Oracle存储过程基本语法介绍

    Oracle存储过程基本语法 存储过程 1 CREATE OR REPLACE PROCEDURE 存储过程名 2 IS 3 BEGIN 4 NULL; 5 END; 行1: CREATE OR RE ...

  7. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  8. 基于网格的分割线优化算法(Level Set)

    本文介绍一种网格分割线的优化算法,该方法能够找到网格上更精确.更光滑的分割位置,并且分割线能够自由地合并和分裂,下面介绍算法的具体原理和过程. 曲面上的曲线可以由水平集(level set)形式表示, ...

  9. 你不知道的Javascript(上卷)读书笔记之二 ---- 词法作用域

    在前一篇文章中,我们把作用域定义为"管理.维护变量的一套规则",接下来是时候来深入讨论一下Js的作用域问题了,首先我们要知道作用域一般有两种主要的工作类型,一种是词法作用域,一种是 ...

  10. Intellij Idea中定制getter setter的模板

    Alt + Ins, 调出快捷菜单后选择 Getter and Setter, 在对话框里, 选择对应的template, 右侧点开后, 可以新建自己的模板并编辑 将getter和setter都生成到 ...