Stephen P. Boyd convex lecture notes
2013-11-07 19:22
281 查看
昨天没去听Stanford大学的 Stephen 教授(convex optimization 教材的作者)的convex的第一课,甚是可惜。好在他昨天主要讲的是basic concepts 以及framework of convex optimizattion。今天讲的是他的拿手好戏,报告的名字就叫做:Distributed Optimization via alternating direction method of multiplier,核心算法简称ADMM。第一次听stanford 大牛讲课,甚是激动啊,写篇博客总结一下课堂笔记
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/899229cfab2c02d614490485cabb781b.gif)
。
刚开始,professor 先简单介绍了报告的outline:包括Dual decomposition(对偶分解),multiplier methods(乘子方法),ADMM(报告主题),讲了ADMM的common pattern,以及采用ADMM的examples,再就是讨论一致性和交换性,最后是结论。
Part 1
对偶问题是常用的解决约束优化的方法,常见的就是Lagrange dual。假设一个凸优化问题为
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/87b5e801304ff16d992a445226c9997f)
转化为Lagrange
function为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/f3587efa35763f5834216a0f85e19871)
对偶函数就是:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/947780a36adbcb0fb381359d16be4626)
,inf表示下确界。于是对偶问题变成
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/82ecbbf7223e065c73c6fa0d2aada662)
,求解问题就变成了:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/8734d7b67df4e98b9a32dfc3ac05e049)
。
如果说f函数时可分离的:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/87fb1fb103c91aa3649bbbd27549b174)
,那么我们就可以推导出L函数也是可分的:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/94c3a793a3d6ce955081bb70d86d60d7)
,其中
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/911f4864200a09dd3f860135f4535e9f)
。于是对x矢量的最小化过程便可以分解为N个分离的最优化过程,分而治之的思想。当然,这个需要很多假设条件,而且计算比较慢,这些也是促使ADMM出现的原因。
Part2:
Part1 介绍完了,然后介绍part2---------method of multipliers。它是对上述方法的改进,使用了augmented Lagrangian(拉格朗日增广法)就是在原来的方程的后面添加了一项,变成:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/44987e9f4abc245a222e112f6d72ef8d)
,rou
is positive。于是迭代公式变为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/addcd771674e8c0c6b96f35efd56fe67)
,与part1的方法相比,多个乘子的方法收敛的条件更加宽松,但是由于lagrange中二次项的引入已经不能执行分解运算(decomposition)。于是一种结合着part1和part2的方法横空出世了就是下面要介绍的ADMM。
Part 3:
我们期望的到这样的效果:既有dual 方法的decomposition又有multiplier方法的robust,于是1976年,Gabay等人提出了ADMM。ADMM问题的形式如下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/c7bd647f1bc441661f0d6e361de0c35f)
,两个变量集合,不同的目标函数。于是写出来的Lagrange函数就是:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/71ed99da1bbe05b2f016523211430920)
,ADMM为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/1357e5ef2759f9f978f8ea64f8b327f7)
采用高斯-赛德尔方法,交替优化的思想,依次优化x和z。
仿照着增广拉格朗日的思想,合并Lagrange 方程的一次项和二次项我们得到:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/f1cf37aced6710de4ae263a21de0c369)
。同时ADMM也变为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/709310aa347a55a5f82778ad2023b1a1)
。
我们注意到在对x的更新的时候是需要求解:minimize
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/7e69906c0a4263373291cb4b5d283d60)
,同理对z也是一样的,这里针对几种特殊的case,这些case下可以简化更新的算法。
Case 1:如果f是可分为成块的情况,case2 函数f是smooth function(光滑函数)。
Part 4,
介绍完ADMM之后,就到了举栗子的时候,这里简单介绍几个栗子:
ex1:带约束条件,原来形式为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/5346c4222c303e5f508e9e8e6b6b7f98)
,转化为ADMM格式下:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/bd7232758b5316b180f4dc592380b077)
,更新算法就是
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/4c701050e24e10e955f405e381467daf)
。
ex2:Lasso 算法,原始形式为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/09c513827109b07baa13851da0345ad1)
,转化为ADMM形式为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/19aac1f018a2ba24187f50c23832102f)
,更新算法为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/01/30a83adb892d0143bfa028cb90844dbc)
。
Part 5:
结语:ADMM与上世纪70年代的很多算法相似,计算速度很快,可以解决大规模问题!
![](https://oscdn.geek-share.com/Uploads/Images/Content/201603/899229cfab2c02d614490485cabb781b.gif)
。
刚开始,professor 先简单介绍了报告的outline:包括Dual decomposition(对偶分解),multiplier methods(乘子方法),ADMM(报告主题),讲了ADMM的common pattern,以及采用ADMM的examples,再就是讨论一致性和交换性,最后是结论。
Part 1
对偶问题是常用的解决约束优化的方法,常见的就是Lagrange dual。假设一个凸优化问题为
转化为Lagrange
function为:
对偶函数就是:
,inf表示下确界。于是对偶问题变成
,求解问题就变成了:
。
如果说f函数时可分离的:
,那么我们就可以推导出L函数也是可分的:
,其中
。于是对x矢量的最小化过程便可以分解为N个分离的最优化过程,分而治之的思想。当然,这个需要很多假设条件,而且计算比较慢,这些也是促使ADMM出现的原因。
Part2:
Part1 介绍完了,然后介绍part2---------method of multipliers。它是对上述方法的改进,使用了augmented Lagrangian(拉格朗日增广法)就是在原来的方程的后面添加了一项,变成:
,rou
is positive。于是迭代公式变为:
,与part1的方法相比,多个乘子的方法收敛的条件更加宽松,但是由于lagrange中二次项的引入已经不能执行分解运算(decomposition)。于是一种结合着part1和part2的方法横空出世了就是下面要介绍的ADMM。
Part 3:
我们期望的到这样的效果:既有dual 方法的decomposition又有multiplier方法的robust,于是1976年,Gabay等人提出了ADMM。ADMM问题的形式如下:
,两个变量集合,不同的目标函数。于是写出来的Lagrange函数就是:
,ADMM为:
采用高斯-赛德尔方法,交替优化的思想,依次优化x和z。
仿照着增广拉格朗日的思想,合并Lagrange 方程的一次项和二次项我们得到:
。同时ADMM也变为:
。
我们注意到在对x的更新的时候是需要求解:minimize
,同理对z也是一样的,这里针对几种特殊的case,这些case下可以简化更新的算法。
Case 1:如果f是可分为成块的情况,case2 函数f是smooth function(光滑函数)。
Part 4,
介绍完ADMM之后,就到了举栗子的时候,这里简单介绍几个栗子:
ex1:带约束条件,原来形式为:
,转化为ADMM格式下:
,更新算法就是
。
ex2:Lasso 算法,原始形式为:
,转化为ADMM形式为:
,更新算法为:
。
Part 5:
结语:ADMM与上世纪70年代的很多算法相似,计算速度很快,可以解决大规模问题!
相关文章推荐
- LeetCode Path Sum II路径和II
- CKEditor和FCKEditor的使用记录
- UVa 11332 Summing Digits (water ver.)
- Redhat/CentOS6.2 x86系统KVM虚拟机网络配置(二)—Bridge方式
- 韩国vieworks
- Redhat/CentOS6.2 x86系统KVM虚拟机网络配置(一)—NAT方式
- Linux分区
- Linux下调试段错误的方法[Segmentation Fault]
- 五个小球完全弹性碰撞
- 增加难度的抽签问题(最内层使用二分法)
- What does grep stand for in Linux operating system?
- hdu 1544 水题
- php应用数据库连接中的单例模式
- 【Android】菜单功能的实现:使用Java代码
- 将java源码打成jar包的两种方法
- WordPress Think Responsive Themes ‘upload_settings_image.php’任意文件上传漏洞
- DELL-linux-风扇
- 有关爬虫的
- 如何设置ubuntu和redhat网络接口
- 长英文自动换行的最终解决方法