鲁棒最小二乘法的三种优化形式(CVX)
文章目录
- 数据初始部分
- (a) robust least-squares problem
- (b)least-squares problem with variable weights
- (c)quadratic program
- 参考
鲁棒最小二乘法的主要思想是对误差大的样本进行抑制,减小他们对结果的影响。这里主要整理一下参考部分的CVX代码思路。这个代码给出了三种等价的优化形式
数据初始部分
测试数据是随机生成的
randn('state',0);
m = 16; n = 8;
A = randn(m,n);
b = randn(m,1);
M = 2;
(a) robust least-squares problem
minimizeβ∑i=1mhuber(βTxi−yi)huber(u)={u2,∣u∣<=MM(2∣u∣−M),∣u∣>M\underset{\beta}{minimize}\sum_{i=1}^{m} huber(\beta^Tx_i - y_i)\\ huber(u)=\left\{\begin{matrix} u^2 ,&|u| <= M \\ M(2|u| - M),& |u| > M \end{matrix}\right. βminimizei=1∑mhuber(βTxi−yi)huber(u)={u2,M(2∣u∣−M),∣u∣<=M∣u∣>M
这里是对他们的误差进行限制,以免回归系数过度偏向误差大的样本造成过拟合,M是一个常数。
当∣βTxi−yi∣>M|\beta^Tx_i - y_i|>M∣βTxi−yi∣>M,令∣u∣=∣βTxi−yi∣=M+v,v>0|u|=|\beta^Tx_i - y_i|=M+v,v>0∣u∣=∣βTxi−yi∣=M+v,v>0,则有M(2∣u∣−M)=M(2(M+v)−M)=M2+2Mv=(M+v)2−v2M(2|u| - M)=M(2(M+v)-M)=M^2+2Mv=(M+v)^2-v^2M(2∣u∣−M)=M(2(M+v)−M)=M2+2Mv=(M+v)2−v2
v视为超出M的部分,为了放缓残差的增长速率,这个函数实际时扔掉了v的二次项
disp('Computing the solution of the robust least-squares problem...');
cvx_beginvariable x1(n)minimize( sum(huber(A*x1-b,M)) )
cvx_end
(b)least-squares problem with variable weights
权值优化
disp('Computing the solution of the least-squares problem with variable weights...');
cvx_beginvariable x2(n)variable w(m)minimize( sum(quad_over_lin(diag(A*x2-b),w'+1)) + M^2*ones(1,m)*w)w >= 0;
cvx_end
这个形式感觉有一些突兀,没有第一种来得直观
先看看误差函数 f(w)=u2/(w+1)+M2∗w,u=βTxi−yi,w>=0f(w)=u^2/(w+1)+M^2*w,u =\beta^Tx_i - y_i,w>=0f(w)=u2/(w+1)+M2∗w,u=βTxi−yi,w>=0
f′(w)=M2−u2/(w+1)2f'(w)=M^2 - u^2/(w + 1)^2f′(w)=M2−u2/(w+1)2
可以看到,当∣u∣<M,f′(w)>0,f(w)|u|<M,f'(w)>0,f(w)∣u∣<M,f′(w)>0,f(w)单调递增,因此极值在w=0w=0w=0处得到,反之,取f′(w)=0⇒w∗=∣u∣M−1f'(w)=0\Rightarrow w^*=\frac{|u|}{M}-1f′(w)=0⇒w∗=M∣u∣−1
因此带入f(w)f(w)f(w)得到
f(w)={u2,∣u∣<=MM(2∣u∣−M),∣u∣>Mf(w)=\left\{\begin{matrix} u^2 ,&|u| <= M \\ M(2|u| - M),& |u| > M \end{matrix}\right.f(w)={u2,M(2∣u∣−M),∣u∣<=M∣u∣>M
等价于huber函数
这里需要说明的是
quad_over_lin(diag(A*x2-b),w’+1)的意思
A∗x2−b∈Rm×1A*x2-b \in \mathbb{R}^{m \times 1}A∗x2−b∈Rm×1属于向量,diagdiagdiag将其转为对角矩阵,对应其对角元素。个人理解纯粹是为了quad_over_lin(x,y)计算
fquad_over_lin(x,y)={xTx/yy>0+∞y≤0f_{\text{quad\_over\_lin}}(x,y) = \begin{cases} x^Tx/y & y > 0 \\ +\infty & y\leq 0 \end{cases} fquad_over_lin(x,y)={xTx/y+∞y>0y≤0
©quadratic program
disp('Computing the solution of the quadratic program...');
cvx_beginvariable x3(n)variable u(m)variable v(m)minimize( sum(square(u) + 2*M*v) )A*x3 - b <= u + v;A*x3 - b >= -u - v;u >= 0;u <= M;v >= 0;
cvx_end
目标值关于v,u的单调递增的函数,因此u和v越小越好
假设有ti=∣AiTx3−bi∣t_i=|A_i^Tx_3 - b_i|ti=∣AiTx3−bi∣,则有0<=ti<=ui+vi0<=t_i<=u_i+v_i0<=ti<=ui+vi
极值条件下,必有ui+vi=tiu_i+v_i=t_iui+vi=ti
vi=ti−ui,vi>=0⇒ui<=tiv_i = t_i-u_i,v_i>=0\Rightarrow u_i<=t_ivi=ti−ui,vi>=0⇒ui<=ti。
优化目标f(ui)=square(ui)+2∗M∗vi)=ui2−2Mui+2Mtif(u_i)=square(u_i) + 2*M*v_i)=u_i^2-2Mu_i+2Mt_if(ui)=square(ui)+2∗M∗vi)=ui2−2Mui+2Mti
一阶导得到f′(ui)=2ui−2Mf'(u_i)=2u_i-2Mf′(ui)=2ui−2M,由于∣0∣<=ui<=M|0|<=u_i<=M∣0∣<=ui<=M
当ui<=Mu_i<=Mui<=M目标单调递减,目标的极值位置取决于t_i
ui∗={∣ti∣,ti<=MM,ti>Mu_i^*=\left\{\begin{matrix} |t_i| ,&t_i <= M \\ M,& t_i > M \end{matrix}\right.ui∗={∣ti∣,M,ti<=Mti>M
相对应的
vi∗={0,ti<=Mti−M,ti>Mv_i^*=\left\{\begin{matrix} 0 ,&t_i <= M \\ t_i-M,& t_i > M \end{matrix}\right.vi∗={0,ti−M,ti<=Mti>M
将最优解带入到优化目标种可以得到
f(u,v)={ti2,ti<=MM(2ti−M),ti>Mf(u,v)=\left\{\begin{matrix} t_i^2 ,&t_i <= M \\ M(2 t_i-M),& t_i > M \end{matrix}\right.f(u,v)={ti2,M(2ti−M),ti<=Mti>M
参考
http://web.cvxr.com/cvx/examples/cvxbook/Ch04_cvx_opt_probs/html/ex_4_5.html#source
鲁棒最小二乘法的三种优化形式(CVX)相关推荐
- 鲁棒图的三元素:抽象对象,实体对象和控制对象
鲁棒图简介 ADMEMS方法推荐以鲁棒图来辅助初步设计.那么,什么是鲁棒图呢? 8.2.1 鲁棒图的3种元素 鲁棒图包含3种元素(如图8-2所示),它们分别是边界对象.控制对象.实体对象: 边界对象 ...
- UML交互图——鲁棒图的三元素:抽象对象,实体对象和控制对象
转自:http://www.cnblogs.com/xiaruyan/archive/2011/04/24/2026278.html 鲁棒图简介 ADMEMS方法推荐以鲁棒图来辅助初步设计.那么,什么 ...
- VMWare虚拟机三种网络形式
网关的概念 网关: 网关实质上是一个网络通向其他网络的IP地址.比如有网络A和网络B,网络A的IP地址范围为"192.168.1.1~192. 168.1.254",子网掩码为25 ...
- File类的构造方法:三种重载形式(新手)
//导入的包.import java.io.File;//File类的构造方法 三种重载形式//创建的一个类.public class zylx1 { //公共静态的主方法. public stati ...
- 二极管的三种击穿形式
二极管的三种击穿形式 二极管的击穿通常有三种情况:雪崩击穿.齐纳击穿和热击穿. PN结反向击穿有齐纳击穿和雪崩击穿,一般两种击穿同时存在.对于齐纳管来说,两者的区别主要是:电压低于5-6V的齐纳管,齐 ...
- 排序--Bubble的三种优化
BubbleSort 冒泡排序是许多人接触的第一种排序方式,由于这种方式比较简单,所以大部分人也没有深入研究,所以写出的代码是这样的: void BubbleSort(int *arr, i ...
- 三种登录形式的实现—永久登录、每次进入页面登录、设置登录有效期
三种登录形式的实现-永久登录.每次进入页面登录.设置登录有效期 前言 一.sessionStorage和localStorage区别和使用 1.localStorage(本地储存): 2.sessio ...
- IP 地址的三种表示形式
使用TCP/IP协议进行网络应用开发的朋友首先要面对的就是对IP地址信息的处理.IP地址其实有三种不同的表示格式: 1)Ascii(网络点分字符串)- 2) 网络地址(32位无符号整 ...
- 机器数的三种表示形式---原码、补码、反码和移码
疫情严重,没去上班,总结学习一下.武汉加油,中国加油. 一.真值和机器数 介绍机器数的三种表示形式之前,先介绍一下真值和机器数. 带+.-符号的数叫真值,把符号数字化得到的数称为机器数(1表示-,0表 ...
最新文章
- 遍历并批量删除容器中元素出现ConcurrentModificationException原因及处置
- python_day10_并发编程
- 中石油训练赛 - Isomorphic Inversion(哈希+贪心)
- 数据分析和数据挖掘的理论研究必要性
- 摩根士丹利 Morgan Stanley 2008校园招聘已经正式开
- linux 红帽6系统下载,Red Hat Enterprise Linux 6.2 ISO 下载
- session保存密码_年薪百万之路--第六十四天 Cookie操作与session操作
- spring 全局变量_Spring 十个错误的使用姿势!
- Qt QDataVisualization 三维图 坐标轴 显示比例
- 运维工程师绩效考核表_IT运维绩效考核表
- 怎样压缩图片大小到20k?教你一键压缩图片大小
- I am Groot java题解
- Apriltag编解码系统
- 【数据结构】顺序表和链表的优缺点
- c语言万年历报错系统,用c语言写万年历应该怎样写?
- h264中的pps和sps
- 游戏分类&&游戏开发常用术语
- 盘点2022年nft艺术品交易平台排行榜
- 基于Opencv自带BP网络的车标简易识别
- 电脑锁定屏幕网络就断开的解决方案
热门文章
- 高中必备学习软件_9个学习高中必备学习软件
- vue实现数字动态翻牌器
- 【项目精选】城市公交查询系统(论文+视频+源码)
- 外贸商务网站php源码,semcms外贸网站php版 v3.9
- 东芝Toshiba e-STUDIO810 一体机驱动
- 自定义UITableViewCell实现ibooks类似的图书列表形式
- mysql字连接查询实现至少选修C1和C2两门课的学生和一个都没有被选中的课程
- 华硕X550VC(Qualcomm Atheros AR9485 无线网卡)解决在ubuntu14.04/15.04下无线网卡不能链接无线网问题
- mysqlyog mysql8.012_瑞昱网卡驱动-Realtek瑞昱RTL-81xx系列网卡驱动(Win8)8.012.0304.2013版-东坡下载...
- wma和mp3哪个音质好 如何将wma转换成mp3