Rubost PCA 优化
Rubost PCA 优化
最近一直在看Robust PCA做背景建模的paper, 顺便总结了一下了Robust PCA.前面一篇博客介绍了PCA与Robust PCA区别,本篇博客总结Robust PCA 常见的优化方法,欢迎交流学习。在这里强烈推荐一篇博客Rachel Zhang的Robust PCA 学习笔记。
1.预备知识
2.问题描述
许多实际应用中已知的数据矩阵D往往是低秩或近似低秩的,但存在随机幅值任意大且分布稀疏的误差破坏了原有数据的低秩性,为了恢复矩阵D的低秩结构,可将矩阵D分解为两个矩阵之和,即D=A+E,其中矩阵A和E未知,但A是低秩的,E是稀疏的。
当矩阵E的元素服从独立同分布的高斯分布时,可用经典的PCA来获得最优的矩阵A,即转换为如下最优化问题:
当E为稀疏的大噪声矩阵时,同时引入折中因此,此问题可转化为如下优化问题:
上式中秩函数、0范数均非凸,变成了NP-hard问题,需要对其松弛,方可进行优化。由范数知识可知,核范数是秩函数的凸包,1范数是0范数的凸包,所以上述NP-hard问题松弛后可转化凸优化问题:
3.Rubost PCA优化
增广拉格郎日乘子法(Augmented Lagrang Multipliers)
交替方向法(Alternating Direction Methods)
ADM 是对ALM的改善,加快了收敛速度,又称为不精确拉格朗日乘子法。
迭代阈值法(Iterative Thresholding)
**加速近端梯度(Accelerated Proximal Gradient)
**
将优化问题式的等式约束松弛到目标函数中,得到如下的拉格朗日函数:
f(A,E)的Frechet梯度Lipschitz连续性推导
f(x)二次逼近推导
4.Rubost PCA优化总结
IT算法的迭代形式简单且收敛,但收敛速度比较慢,且很难选取合适的步长;APG与IT算法类似,但它却大大降低了迭代次数;ALM比APG快很多,而且ALM可以达到较高的精度,需要较低的存储空间。不精确拉格朗日乘子法(IALM)改善了EALM,不需要求解精确解,速度较快。
参考
1. The Augmented Lagrange Multiplier Method for Exact Recovery of Corrupted Low-Rank Matrices
2. Fast Convex Optimization Algorithms for Exact Recovery of a Corrupted Low-Rank Matrix
3. A Singular Value Thresholding Algorithm for Matrix Completion
4. Sparse and Low-Rank Matrix Decomposition via Alternating Direction Methods
5. Robust Principal Component Analysis
6. http://blog.csdn.net/tiandijun/article/details/44917237
Rubost PCA 优化的更多相关文章
- 机器学习公开课笔记(8):k-means聚类和PCA降维
K-Means算法 非监督式学习对一组无标签的数据试图发现其内在的结构,主要用途包括: 市场划分(Market Segmentation) 社交网络分析(Social Network Analysis ...
- Andrew Ng机器学习课程笔记--week8(K-means&PCA)
Unsupervised Learning 本周我们讲学习非监督学习算法,会学习到如下概念 聚类(clustering) PCA(Principal Componets Analysis主成分分析), ...
- 主成分分析(PCA)原理总结
主成分分析(Principal components analysis,以下简称PCA)是最重要的降维方法之一.在数据压缩消除冗余和数据噪音消除等领域都有广泛的应用.一般我们提到降维最容易想到的算法就 ...
- 数据降维技术(1)—PCA的数据原理
PCA(Principal Component Analysis)是一种常用的数据分析方法.PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降 ...
- 主成分分析 (PCA) 与其高维度下python实现(简单人脸识别)
Introduction 主成分分析(Principal Components Analysis)是一种对特征进行降维的方法.由于观测指标间存在相关性,将导致信息的重叠与低效,我们倾向于用少量的.尽可 ...
- 机器学习笔记----四大降维方法之PCA(内带python及matlab实现)
大家看了之后,可以点一波关注或者推荐一下,以后我也会尽心尽力地写出好的文章和大家分享. 本文先导:在我们平时看NBA的时候,可能我们只关心球员是否能把球打进,而不太关心这个球的颜色,品牌,只要有3D效 ...
- PCA原理与实践
在对数据进行预处理时,我们经常会遇到数据的维数非常之大,如果不进行相应的特征处理,那么算法的资源开销会很大,这在很多场景下是我们不能接受的.而对于数据的若干维度之间往往会存在较大的相关性,如果能将数据 ...
- PRML读书会第十二章 Continuous Latent Variables(PCA,Principal Component Analysis,PPCA,核PCA,Autoencoder,非线性流形)
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:00:49 我今天讲PRML的第十二章,连续隐变量.既然有连续隐变量,一定也有离散隐变量,那么离散隐变量是 ...
- PCA算法是怎么跟协方差矩阵/特征值/特征向量勾搭起来的?
PCA, Principle Component Analysis, 主成份分析, 是使用最广泛的降维算法. ...... (关于PCA的算法步骤和应用场景随便一搜就能找到了, 所以这里就不说了. ) ...
随机推荐
- 讲座 - Transposable elements, non-coding RNAs and epigenetic control in embryonic stem cells
Dr. Andrew Paul HutchinsDepartment of BiologySouthern University of Science and Technology, Shenzhen ...
- RTSP、RTMP、HTTP协议
一.异同1.RSTP.RTMP.HTTP协议共同点RTSP RTMP HTTP都是用在应用层.理论上这三种协议都可以做直播和点播,但直播一般用RTSP和RTMP点播用HTTP.2.RSTP.RTMP. ...
- [JDBC/Oracle]设置Statement.setQueryTimeout(seconds)并不好用 原因:环境问题
对比实验:https://www.cnblogs.com/xiandedanteng/p/11960320.html 注:setQueryTimeout语句还是好用的,但有些环境不支持,下文是在单位虚 ...
- 微信小程序设置全局请求URL 封装wx.request请求
app.js: App({ //设置全局请求URL globalData:{ URL: 'https://www.oyhdo.com', }, /** * 封装wx.request请求 * metho ...
- 浏览器cookie数 跨站请求伪造 欧盟Cookie指令
<?php for ($w=0; $w < 200 ; $w++) { setcookie('name'.$w,'value'.$w, time()+3600*10 ); } var_du ...
- 算法的时间复杂度O
一.时间复杂度 在进行算法分析时,语句总的执行次数 T(n) 是关于问题的规模n 的函数,进而分析 T(n) 随 n 的变化情况并确定 T(n) 的数量级,算法的时间复杂度,也就是算法的时间度量,记作 ...
- JS-SDK相关参考
原文: https://www.cnblogs.com/wuhuacong/p/5482848.html https://www.cnblogs.com/29boke/p/5483599.html
- OctetString 转String
/// <summary> /// OctetString转时间 /// </summary> /// <param name="ss">字符串 ...
- shell编程系列17--文本处理三剑客之awk动作中的表达式用法
shell编程系列17--文本处理三剑客之awk动作中的表达式用法 awk动作表达式中的算数运算符 awk动作中的表达式用法总结: 运算符 含义 + 加 - 减 * 乘 / 除 % 模 ^或** 乘方 ...
- python web开发Django连接mysql
需要MYSQL-python,一般情况下直接pip install window系统会报错,所以要去 https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml ...