ADMM与one-pass multi-view learning
现在终于开始看论文了,机器学习基础部分的更新可能以后会慢一点了,当然还是那句话宁愿慢点,也做自己原创的,自己思考的东西。现在开辟一个新的模块----多视图学习相关论文笔记,就是分享大牛的paper,然后写出自己的反思,希望大家多多交流。
现在来说说周志华老师的opmv算法。
一摘要
:多视图学习已经成为机器学习非常重要的组成部分,很多得到的效果都比单视图学习要好的多,但是这些方法经常被用在小的和低维的数据集上,主要原因是因为这些算法都占用了,大量的计算内存。最近几年,这些算法有了长足的进步,比如每分钟在youtobe上更新的视频文件中包括视频,音频,和文本文件,要想对如此大的数据量进行分类。传统的多视图学习算法,可能行不通。所以周老师想出了opmv框架---一个不存储整个训练样本集,仅仅完成一次训练。这个方法是通过对不同视图的线性约束复合功能函数进行优化,然后周老师从理论上和经验上对这个算法进行论证。
二介绍
现在越来越多的数据都有两个视图,比如上文说的youtube视频,现在每天的新闻报道可能被写成好几种语言,还有我们以后发表的paper有txt content也有citation linkes。所以说多视图学习会有很大的用武之地的。
然后简要说了一些,多视图的发展历史和最近大牛提出的方法。比如Blum和Mitcgell在1998年提出的co-training算法。
下面我给出co-training算法的工作流程:
Opmv可以看成一个一般形式的在线ADMM优化框架,但是不同点是,以前的ADMM只考虑不变的线性约束,而opmv考虑的是可变的线性约束,比如Y=X+B,以前B是常数,先在变成Y=X+T,T是自变量,所以可以说:opmv包括ADMM?当然这是我猜测,所以不好说。哈哈。。关于ADMM我这里作个补充:
一:ADMM为Alternating Direction Method of Multipliers 交替方向乘子法的缩写,主要是为了求解大规模分布式凸优化问题。
二 凸函数。
2.1形如f(ax+by)<=af(x)+bf(y) 的f(X)函数 其中a+b=1。
2.2 凸函数表达式
三:ADMM求解最优化问题
Min f(X)+g(Z)
s.t. Ax+Bz=C,
X∈C1 z∈C2
其中x∈Rn,z∈Rm,且A∈RP*n,B∈RP*m C∈RP,f(X)和g(X)都是属于凸函数。C1 C2属于非空集合。那么我们如何求解这个最优化问题呢,很多人说用拉格朗日乘子法吧,但是经过很多大牛的验证啊,乘子法没有我们下面说的优化方法好,下面我们来看看增量拉格朗日函数。
3.1增量拉格朗日函数
式子如下:
这其实就是在拉格朗日乘子法的基础上加了一个其中p是惩罚系数,||Ax+Bz-C||22是Ax+Bz-C向量的长度范数,就是内积相乘,在相加,最后开方。
我们可以把上个式子看成:
现在可以用迭代的方法分别对这个对偶问题求解:
求解步骤如下:
这样一直迭代下去,直到满足下列条件为止:
其中p和n表示样本的维度和样本量,阈值包含了绝对容忍度(absolute tolerance)和相对容忍度(relative tolerance),这个设置是很烦的,但是貌似大家都认为10-3貌似是比较靠谱的。、
ADMM算法就补充到这里了。
说到这里,one-pass的思想已经说完了,关于推导过程周老师已经推导的很详细了,下面给出他这篇文章的连接,大家自己研究然后互相交流。http://cs.nju.edu.cn/zhouzh/zhouzh.files/publication/acml15opmv.pdf
ADMM与one-pass multi-view learning的更多相关文章
- Wordpress Calendar Event Multi View < 1.4.01 反射型xss漏洞(CVE-2021-24498)
简介 WordPress是Wordpress基金会的一套使用PHP语言开发的博客平台.该平台支持在PHP和MySQL的服务器上架设个人博客网站.WordPress 插件是WordPress开源的一个应 ...
- [读论文]Shading-aware multi view stereo
如何实现refine的? 几何误差和阴影误差如何加到一起? 为了解决什么问题? 弱纹理或无纹理:单纯的多视图立体算法在物体表面弱纹理或者无纹理区域重建完整度不够高,精度也不够高,因此结合阴影恢复形状来 ...
- 多视图学习(multiview learning)
多视图学习(multi-view learning) 前期吹牛:今天这一章我们就是来吹牛的,刚开始老板在和我说什么叫多视图学习的时候,我的脑海中是这么理解的:我们在欣赏妹子福利照片的时候,不能只看45 ...
- Android 自定义View及其在布局文件中的使用示例(二)
转载请注明出处 http://www.cnblogs.com/crashmaker/p/3530213.html From crash_coder linguowu linguowu0622@gami ...
- 简单研究Android View绘制一 测量过程
2015-07-27 16:52:58 一.如何通过继承ViewGroup来实现自定义View?首先得搞清楚Android时如何绘制View的,参考Android官方文档:How Android Dr ...
- android.view.View
* This class represents the basic building block for user interface components. A View * occupies a ...
- SVO原理解析
最近空闲时间在研究Semi-Direct Monocular Visual Odometry(SVO)[1,2],觉得它值得写一写.另外,SVO的运算量相对较小,我想在手机上尝试实现它. 关于SVO的 ...
- {Reship}{Code}{CV}
UIUC的Jia-Bin Huang同学收集了很多计算机视觉方面的代码,链接如下: https://netfiles.uiuc.edu/jbhuang1/www/resources/vision/in ...
- UIUC同学Jia-Bin Huang收集的计算机视觉代码合集
转自:http://blog.sina.com.cn/s/blog_631a4cc40100wrvz.html UIUC的Jia-Bin Huang同学收集了很多计算机视觉方面的代码,链接如下: ...
- 计算机视觉与模式识别代码合集第二版two
Topic Name Reference code Image Segmentation Segmentation by Minimum Code Length AY Yang, J. Wright, ...
随机推荐
- java 单例(懒汉式)
该示例考虑了懒汉式单例的线程安全问题
- angularJS 如何读写缓冲
写在前面 1.在客户端.服务端架构中,HTTP协议是主流通信技术: 2.HTTP协议的无状态特性,节省带宽,较少服务器的负载,缓冲技术具有重要的运用:这里主要讲解在客户端浏览器中angular如何读写 ...
- [Java入门笔记] Java语言基础(五):数组
简介 数组可用用于存储存储多个数据,Java的数组要求所有的数组元素具有一种相同的数据类型.一旦数组初始化完成,数组在内存中的空间被固定下来,长度不可改变,即使把数组的元素清空,所占用的空间依然被保留 ...
- 如何正确的使用json?如何在.Net中使用json?
什么是json json是一种轻量级的数据交换格式,由N组键值对组成的字符串,完全独立于语言的文本格式. 为什么要使用json 在很久很久以前,调用第三方API时,我们通常是采用xml进行数据交互,但 ...
- Nginx服务状态监控
在Nginx的插件模块中有一个模块stub_status可以监控Nginx的一些状态信息,默认安装可能没有这个模块,手动编译的时候加一下即可. 1. 模块安装 先使用命令查看是否已经安装这个模块: [ ...
- TJ2016 CTF Write up
No zuo no die. Use markdown to write writeup in the future......
- hibernate 中的 lazy=”proxy” 和 lazy=”no-proxy” 的区别
网上找到个描述的很精妙的例子 Child <- many-to-one ->Parent class Child { private ...
- Jenkins学习四:Jenkins 邮件配置
本文主要对Windows环境 jenkins 的邮件通知进行介绍 jenkins 内置的邮件功能 使用email-ext插件扩展的邮件功能 邮件通知功能主要包含两个部分:全局配置和项目配置. 一. 先 ...
- VS 常用高效 快捷键
强迫智能感知:Ctrl+J.智能感知是Visual Studio最大的亮点之一,选择Visual Studio恐怕不会没有这个原因. 2 撤销:Ctrl+Z.除非你是天才,那么这个快捷键也是最常用的. ...
- OrchardNoCMS模块生成工具命令简化
OrchardNoCMS模块生成工具命令行简化列表: 目前只有codegen feature和cultures三个命令. 对应的都进行了参数简化. 例如:codegen module 简化为cod ...