图解机器学习-l2约束的最小二乘学习法-matlab源码

约束条件||\theta ||^{2}\leq R  L2约束的最小二乘学习法是以参数空间的圆点为圆心,在一定半径范围的圆内进行求解。

拉格朗日对偶问题:

原始问题:在约束条件  c_{i}(x)\leqslant 0 (i=1,2...k), h_{j}(x)=0(j=1,2...k)  下求  \underset{x}{min}f(x)

引入拉格朗日函数:

L(x,\alpha ,\beta ,)=f(x)+\sum_{i=0}^{k}\alpha _{i}c_{i}(x)+\sum _{j=1}^{l}\beta _{j}h_{j}(x)          \alpha _{i}\geq 0 ,\beta_{i}   称为拉格朗日乘子

约束条件下的最大值:

\theta _{p}(x)=\underset{\alpha ,\beta }{max}[f(x)+\sum _{i=0}^{k}\alpha _{i}c_{i}(x)+\sum _{j=1}^{k}\beta _{j}h_{j}(x)]=\underset{\alpha \beta }{max}f(x)=f(x)

原问题的等价描述为:在约束条件下求min\theta _{p}(x)

p*=\underset{x}{min}\theta _{p}(x)=\underset{x}{min}f(x)

设计对偶函数为了使问题变为等价无约束,然后用KKT求解原始问题最小值即对偶问题最大值

\theta _{D}(\alpha ,\beta )=\underset{\alpha ,\beta }{min}L(x,\alpha ,\beta )

取最大化使其与原始问题临界值对接

d*=\underset{\beta }{max}\theta _{D}(\alpha ,\beta )=\underset{\alpha ,\beta }{max}\underset{x}{min}L(x,\alpha ,\beta )

因为有

\theta _{D}(\alpha ,\beta )=\underset{x}{min}L(x,\alpha ,\beta )\leq L(x,\alpha ,\beta )\leq \underset{\alpha ,\beta }{max}L(x,\alpha ,\beta )=\theta _{p}(x)

即d*\leqp*  所以d*的最大值解\alpha *,\beta *,x* 就是p*的最小值解,也就是原始问题的最优解

求解d*的时候使用如下的KKT方法(Karush-Kuhn-Tucker)

\bigtriangledown _{x}L(x*,\alpha* ,\beta* )=0

\bigtriangledown _{\alpha }L(x*,\alpha *,\beta *)=0

\bigtriangledown _{\beta }L(x*,\alpha *,\beta *)=0

\alpha _{i}c_{i}(x)=0(i=1,2..k)

c_{i}\leq 0(i=1,2..k)

\alpha_{i}*\geq 0(i=1,2..k)

h_{j}(x*)=0(j=1...L)

总结:原始约束条件问题通过对偶问题去掉约束,根据对偶问题的最大值是原始问题的最小值这一对接性质,利用KKT求对偶问题的最大解,也即带有约束条件的原始问题的最小解。

matlab源代码及其解释:

 

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值