文章目录

  • 数据初始部分
  • (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. βminimize​i=1∑m​huber(β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​=∣AiT​x3​−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)相关推荐

  1. 鲁棒图的三元素:抽象对象,实体对象和控制对象

    鲁棒图简介 ADMEMS方法推荐以鲁棒图来辅助初步设计.那么,什么是鲁棒图呢? 8.2.1  鲁棒图的3种元素 鲁棒图包含3种元素(如图8-2所示),它们分别是边界对象.控制对象.实体对象: 边界对象 ...

  2. UML交互图——鲁棒图的三元素:抽象对象,实体对象和控制对象

    转自:http://www.cnblogs.com/xiaruyan/archive/2011/04/24/2026278.html 鲁棒图简介 ADMEMS方法推荐以鲁棒图来辅助初步设计.那么,什么 ...

  3. VMWare虚拟机三种网络形式

    网关的概念 网关: 网关实质上是一个网络通向其他网络的IP地址.比如有网络A和网络B,网络A的IP地址范围为"192.168.1.1~192. 168.1.254",子网掩码为25 ...

  4. File类的构造方法:三种重载形式(新手)

    //导入的包.import java.io.File;//File类的构造方法 三种重载形式//创建的一个类.public class zylx1 { //公共静态的主方法. public stati ...

  5. 二极管的三种击穿形式

    二极管的三种击穿形式 二极管的击穿通常有三种情况:雪崩击穿.齐纳击穿和热击穿. PN结反向击穿有齐纳击穿和雪崩击穿,一般两种击穿同时存在.对于齐纳管来说,两者的区别主要是:电压低于5-6V的齐纳管,齐 ...

  6. 排序--Bubble的三种优化

    BubbleSort      冒泡排序是许多人接触的第一种排序方式,由于这种方式比较简单,所以大部分人也没有深入研究,所以写出的代码是这样的: void BubbleSort(int *arr, i ...

  7. 三种登录形式的实现—永久登录、每次进入页面登录、设置登录有效期

    三种登录形式的实现-永久登录.每次进入页面登录.设置登录有效期 前言 一.sessionStorage和localStorage区别和使用 1.localStorage(本地储存): 2.sessio ...

  8. IP 地址的三种表示形式

    使用TCP/IP协议进行网络应用开发的朋友首先要面对的就是对IP地址信息的处理.IP地址其实有三种不同的表示格式:   1)Ascii(网络点分字符串)-        2) 网络地址(32位无符号整 ...

  9. 机器数的三种表示形式---原码、补码、反码和移码

    疫情严重,没去上班,总结学习一下.武汉加油,中国加油. 一.真值和机器数 介绍机器数的三种表示形式之前,先介绍一下真值和机器数. 带+.-符号的数叫真值,把符号数字化得到的数称为机器数(1表示-,0表 ...

最新文章

  1. 遍历并批量删除容器中元素出现ConcurrentModificationException原因及处置
  2. python_day10_并发编程
  3. 中石油训练赛 - Isomorphic Inversion(哈希+贪心)
  4. 数据分析和数据挖掘的理论研究必要性
  5. 摩根士丹利 Morgan Stanley 2008校园招聘已经正式开
  6. linux 红帽6系统下载,Red Hat Enterprise Linux 6.2 ISO 下载
  7. session保存密码_年薪百万之路--第六十四天 Cookie操作与session操作
  8. spring 全局变量_Spring 十个错误的使用姿势!
  9. Qt QDataVisualization 三维图 坐标轴 显示比例
  10. 运维工程师绩效考核表_IT运维绩效考核表
  11. 怎样压缩图片大小到20k?教你一键压缩图片大小
  12. I am Groot java题解
  13. Apriltag编解码系统
  14. 【数据结构】顺序表和链表的优缺点
  15. c语言万年历报错系统,用c语言写万年历应该怎样写?
  16. h264中的pps和sps
  17. 游戏分类&&游戏开发常用术语
  18. 盘点2022年nft艺术品交易平台排行榜
  19. 基于Opencv自带BP网络的车标简易识别
  20. 电脑锁定屏幕网络就断开的解决方案

热门文章

  1. 高中必备学习软件_9个学习高中必备学习软件
  2. vue实现数字动态翻牌器
  3. 【项目精选】城市公交查询系统(论文+视频+源码)
  4. 外贸商务网站php源码,semcms外贸网站php版 v3.9
  5. 东芝Toshiba e-STUDIO810 一体机驱动
  6. 自定义UITableViewCell实现ibooks类似的图书列表形式
  7. mysql字连接查询实现至少选修C1和C2两门课的学生和一个都没有被选中的课程
  8. 华硕X550VC(Qualcomm Atheros AR9485 无线网卡)解决在ubuntu14.04/15.04下无线网卡不能链接无线网问题
  9. mysqlyog mysql8.012_瑞昱网卡驱动-Realtek瑞昱RTL-81xx系列网卡驱动(Win8)8.012.0304.2013版-东坡下载...
  10. wma和mp3哪个音质好 如何将wma转换成mp3