哎。刚刚submit上paper比較心虚啊。无心学习。还是好好码码文字吧。

subgradient介绍

subgradient中文名叫次梯度。和梯度一样,全然能够多放梯度使用。至于为什么叫子梯度,是由于有一些凸函数是不可导的,没法用梯度。所以subgradient就在这里使用了。

注意到。子梯度也是求解凸函数的。仅仅是凸函数不是处处可导。

f:X→R是一个凸函数,X∈Rn是一个凸集。

若是f在x′处∇f(x′)可导。考虑一阶泰勒展开式:

f(x)≥f(x′)+∇(f(x′)T(x−x′),∀x∈X

能够得到f(x)的一个下届(f(x)是一个凸函数)

若是f(x)在x′处不可导,仍然。能够得到一个f(x)的下届

f(x)≥f(x′)+gT(x−x′),∀x∈X

这个g就叫做f(x)的子梯度。g∈Rn

非常明显。在一个点会有不止一个次梯度,在点x全部f(x)的次梯度集合叫做此微分∂f(x)

















我们能够看出,当f(x)是凸集而且在x附近有界时,∂f(x)是非空的,而且∂f(x)是一个闭凸集。

次梯度性质

∂f(x)={g}⇔f(x)可微并且g=∇f(x)

满足:

1)scaling:

∂(αf(x))=α∂f(x),if α>0

2)addition:

∂(f1(x)+f2(x))=∂fz(x)+∂f2(x)

3)point-wise maximum:f(x)=maxi=1,...,mfi(x)而且fi(x)是可微的,那么:

∂f(x)=Co{∇fi(x)∣fi(x)=f(x)}

即全部该点函数值等于最大值的函数的梯度的凸包。

在非约束最优化问题中。要求解一个凸函数f:Rn→R的最小值

x∗∈argminx∈Rnf(x)

非常显然,若是f可导。那么我们仅仅须要求解导数为0的点

f(x∗=minx∈Rn⇔0=∇f(x∗)

当f不可导的时候,上述条件就能够一般化成

f(x∗)=minx∈Rn⇔0∈∇f(x∗)

也即0满足次梯度的定义

f(x)≥f(x′)+0T(x−x′),∀x∈Rn

以下是次梯度法的一般方法:

1.t=1选择有限的正的迭代步长{αt}∞t=1

2.计算一个次梯度g∈∂f(xt)

3.更新xt+1=xt−αtgt

4.若是算法没有收敛。则t=t+1返回第二步继续计算

次梯度方法性质:

1.简单通用性:就是说第二步中,∂f(xt)不论什么一个次梯度都是能够的.

2.收敛性:仅仅要选择的步长合适。总会收敛的

3.收敛慢:须要大量的迭代才干收敛

4.非单调收敛:−gt不须要是下降方向。在这样的情况下,不能使用线性搜索选择合适的αt

5.没有非常好的停止准则

对于不同步长的序列的收敛结果

最好还是设ftbest=min{f(x1),..,f(xt)}是t次迭代中的最优结果

1.步长和不可消时(Non-summable diminishing step size):

limt→∞αt=0 而且∑∞t=1αt==∞

这样的情况能够收敛到最优解:limt→∞ftbest−f(x∗)=0

2.Constant step size:

αt=γ,where γ>0

收敛到次优解:limt→∞ftbest−f(x∗)≤αG2/2

3.Constant step length:

αt=γ||gt||(i.e. ||xt+1−xt||=γ),||g||≤G,∀g∈∂f

能够收敛到次优解limt→∞ftbest−f(x∗)≤γG/2

4.Polyak’s rule: αt=f(xt)−f(x∗)||gt||2

若是最优值f(x∗)可知则能够用这样的方法。

不等式约束的凸二次优化问题

问题formulate

一个不等式约束的凸二次优化问题能够表示为:

(w∗,b∗,ξ∗)=argminw,b,ξ[12||w||2+C∑i=1mξi]
s.t.       yi(wTxi+b)ξi≥1−ξi,   ≥0              i=1,⋯,m,i=1,⋯,m.

注意到ξi≥max(0,1−yi(wTxi+b)),而且当目标函数取得最优的时候,这里的等号是成立的,所以能够进行取代:

ξi=max(0,1−yi(wTxi+b))

所以就能够将这个二次悠哈问题改写成一个非约束凸优化问题

(w∗,b∗)=argminw,bf(w,b)=argminw,b[12||w||2f0(w,b)+C∑i=1mmax(0,1−yi(wTxi+b))fi(w,b)]

问题求解

由于

f0(w,b)=12||w||2

是可微的,而且

∂wf0(w,b)=w,  ∂bf0(w,b)=0

函数fi(w,b)=max0,1−yi(wTxi+b)是一个点最大值。所以其次微分能够写作,全部active function的梯度的convex combination

i-th function ∂wfi(w,b) ∂bfi(w,b)
I+={i|yi(wTxi+b)>1} 0 0
I0={i|yi(wTxi+b)=1} Co{0,−yixi} Co{0,−yi}
I−={i|yi(wTxi+b)<1} −yixi −yi

所以次微分能够写作∂f(w,b)=∂f0(w,b)+C∑mi=1∂fi(w,b)能够使用參数话的表示方法,设0≤βi≤1,i∈I0,所以就有g=[w′b′]∈∂f(x)

w′(β)b′(β)=w−C∑i∈I0βiyixi−C∑i∈I−yixi=−C∑i∈I0βiyi−C∑i∈I−yi

优化中的subgradient方法的更多相关文章

  1. 拓扑优化中SIMP方法与水平集方法有何优缺点,水平集法变换到高维,不是更复杂了

    作者:周平章链接:https://www.zhihu.com/question/52008623/answer/187927508来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...

  2. 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法

    若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...

  3. jquery 中一些 特殊方法 的特殊使用 一览表

    cnblogs的页面, 一种是管理页面, 是随笔的列表 a full list of essays. 另一种是 首页. 要搜索文档的话, 就使用 "首页"的那种方式. 一个jque ...

  4. 优化PHP程序的方法(温故知新)

    1. If a method c++an be static, declare it static. Speed improvement is by a factor of 4. 如果一个方法可静态化 ...

  5. Java String类中的intern()方法

    今天在看一本书的时候注意到一个String的intern()方法,平常没用过,只是见过这个方法,也没去仔细看过这个方法.所以今天看了一下.个人觉得给String类中加入这个方法可能是为了提升一点点性能 ...

  6. [转]优化PHP程序的方法

    1. If a method c++an be static, declare it static. Speed improvement is by a factor of 4. 如果一个方法可静态化 ...

  7. 网站静态化处理—web前端优化—中(12)

    网站静态化处理—web前端优化—中(12) Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原 ...

  8. 《JS权威指南学习总结--7.9 ES5中的数组方法》

    内容要点: ES5中定义了9个新的数组方法来遍历.映射.过滤.检测.简化和搜索数组. 概述:首先,大多数方法的第一个参数接收一个函数,并且对数组的每个元素(或一个元素)调用一次该函数. 如果是稀疏数组 ...

  9. MySQL分页优化中的“INNER JOIN方式优化分页算法”到底在什么情况下会生效?

    本文出处:http://www.cnblogs.com/wy123/p/7003157.html 最近无意间看到一个MySQL分页优化的测试案例,并没有非常具体地说明测试场景的情况下,给出了一种经典的 ...

随机推荐

  1. cuowu

    ngFor不能用于Object rowspan colspan不能绑定变量,要用attr.colspan https://stackoverflow.com/questions/35615751/wh ...

  2. python版本共存

    要玩多版本最好使用虚拟环境,避免根python切换及包误安装的麻烦 1.直接安装实现 1.1 windows下 到官网(https://www.python.org/downloads/)下载,如py ...

  3. ZOJ 3962 Seven Segment Display(数位DP)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3962 题目大意: 有t组数据. 给你一个n,和8位的十六进制数s ...

  4. 为通过 ATS 检测 Tomcat 完全 TLS v1.2、完全正向加密及其结果检验

    2017 年起 app store 要求 app 对接的服务器支持 TLS v1.2,否则 ats 检测不予通过.有点强制推 TLS v1.2 的意味.本文介绍如何使 tomcat 强制执行 TLS ...

  5. Java工程师知识图谱

    一.Java工程师知识图谱(思维导图版) 二.Java工程师知识图谱(图文版) 三.Java工程师知识图谱(文字版) http://note.youdao.com/noteshare?id=615da ...

  6. Effective STL 学习笔记 Item 17: Swap Trick

    假设有若干对象存于一个 vector 中: class Widget; vector<Widget> vw; 后来由于某些原因,从该容器中删除了若干对象(参考erase-remove id ...

  7. 20155225 2016-2017-2 《Java程序设计》第一周学习总结

    20155225 2016-2017-2 <Java程序设计>第一周学习总结 教材学习内容总结 JVM(java virtual machine)就是java虚拟机,我的理解就是编译运行j ...

  8. Oracle与Sqlserver数据共享

    需求:在一个集成平台中有一个主系统使用的是Oralce数据库,子系统使用的SqlServer 数据库,如何让子系统的数据库与主系统的人员同步呢? 思路:通过服务WebService 公开接口 1.与主 ...

  9. SSIS 学习之旅 数据同步

    这一章 别人也有写过但是我觉得还是写写比较好.数据同步其实就是想仿照 数据库的发布订阅功能 第一章:SSIS 学习之旅 第一个SSIS 示例(一)(上) 第二章:SSIS 学习之旅 第一个SSIS 示 ...

  10. #JS 异步处理机制的几种方式

    Javascript语言的执行环境是"单线程"(single thread,就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推) ...