凸优化基础(Convex Optimization basics)
总目录
一、 凸优化基础(Convex Optimization basics)
- 凸优化基础(Convex Optimization basics)
二、 一阶梯度方法(First-order methods)
- 梯度下降(Gradient Descent)
- 次梯度(Subgradients)
- 近端梯度法(Proximal Gradient Descent)
- 随机梯度下降(Stochastic gradient descent)
三、对偶
- 线性规划中的对偶(Duality in linear programs)
- 凸优化中的对偶(Duality in General Programs)
- KKT条件(Karush-Kuhn-Tucker Conditions)
- 对偶的应用及拓展(Duality Uses and Correspondences)
- 对偶方法(Dual Methods)
- 交替方向乘子法(Alternating Direction Method of Multipliers)
Introduction
一个凸优化问题具有以下基本形式:
minx∈Df(x)subjecttogi(x)≤0,i=1,...,mhj(x)=0,j=1,...,r\begin{aligned} \min_{x\in D} f(x)\qquad\qquad\qquad\\ subject\ to\qquad g_i(x)\leq 0,\ i=1,...,m \\ h_j(x)=0,\ j=1,...,r\\ \end{aligned} x∈Dminf(x)subject togi(x)≤0, i=1,...,mhj(x)=0, j=1,...,r
其中,fff和gig_igi都是凸函数的,且hjh_jhj是仿射变换。凸优化问题有一个良好的性质,即对于一个凸优化问题来说,任何局部最小值都是全局最小值。凸优化问题是优化问题中被研究得比较成熟的,也是非凸优化的基础,许多非凸优化问题也被局部近似为凸优化问题求解。
凸集和凸函数
凸集
凸集的定义
一个集合c⊆Rnc \subseteq R^nc⊆Rn是凸集,如果对任意x,y∈Cx,y\in Cx,y∈C都有
tx+(1−t)y∈C,forall0≤t≤1tx+(1-t)y\in C,\ for\ all\ 0\leq t\leq 1tx+(1−t)y∈C, for all 0≤t≤1
许多常见的集合,如空集,点、线集合,仿射空间{x:Ax=b,forgivenA,b}\{x:Ax=b,\ for\ given\ A,b\}{x:Ax=b, for given A,b}都属于凸集。正因如此,对于凸集中的变量做仿射变换得到的仍然是凸集。
凸函数
凸函数的定义
如果函数f:Rn→Rf:\ R^n\rightarrow Rf: Rn→R是凸函数,那么函数的定义域dom(f)⊆Rndom(f)\subseteq R^ndom(f)⊆Rn是凸的,且对于所有x,y∈dom(f)x,y\in dom(f)x,y∈dom(f),都有
f(tx+(1−t)y)≤tf(x)+(1−t)f(y),for0≤t≤1f(tx+(1-t)y)\leq tf(x)+(1-t)f(y),\ for\ 0\leq t\leq 1f(tx+(1−t)y)≤tf(x)+(1−t)f(y), for 0≤t≤1
换句话说,函数永远不会高于f(x)f(x)f(x)和f(y)f(y)f(y)两点连线。
在凸函数中有两种比较重要的特例:
- 严格凸函数(strictly convex):把上述公式的≤\leq≤变为<<<,即函数永远低于f(x)f(x)f(x)和f(y)f(y)f(y)两点连线,把线性情况给排除了。
- 强凸函数(strongly convex):即fff至少与二次函数一样凸,其最高阶数不小于2.
强凸意味着严格凸,他们都是凸函数的子集,他们的关系为:
stronglyconvex⊂strictlyconvex⊂convexstrongly\ convex \subset strictly\ convex \subset convexstrongly convex⊂strictly convex⊂convex
一些常见的函数如,指数函数,仿射函数,以及常用的范数和最大值函数等,都是凸函数。
凸函数的性质
从凸函数的定义我们可以得到两个性质:
一阶特性:如果fff是可微的,那么fff是凸函数,当且仅当dom(f)dom(f)dom(f)是凸的,且对于所有x,y∈dom(f)x,y\in dom(f)x,y∈dom(f),都有
f(y)≥f(x)+∇f(x)T(y−x)f(y)\geq f(x)+\nabla f(x)^T (y-x)f(y)≥f(x)+∇f(x)T(y−x) 因此对于一个可微的凸函数来说,∇f(x)=0⇔xminimizesf\nabla f(x)=0 \Leftrightarrow x\ minimizes f∇f(x)=0⇔x minimizesf。二阶特性:如果fff是二次可微的,那么fff是凸函数,当且仅当dom(f)dom(f)dom(f)是凸的,且对于所有x∈dom(f)x\in dom(f)x∈dom(f)都有∇2f(x)≥0\nabla ^2 f(x)\geq 0∇2f(x)≥0。
其次我们还能得到詹森不等式(Jensen’s inequality):如果fff是凸的,且XXX是定义在dom(f)dom(f)dom(f)上的一个随机变量,那么有f(E[X])≤E[f(x)]f(E[X])\leq E[f(x)]f(E[X])≤E[f(x)]。
凸优化问题
前面我们给出了凸优化问题的定义,这里我们讨论凸优化问题的一些性质。
解集
令XoptX_{opt}Xopt为一个给定凸优化问题的所有解的集合,其可以写为:
Xopt=argminx∈Df(x)X_{opt}=\arg\min_{x\in D} f(x)Xopt=argx∈Dminf(x)
subjecttogi(x)≤0,i=1,...,msubject\ to\qquad g_i(x)\leq 0,\ i=1,...,m subject togi(x)≤0, i=1,...,m
Ax=bAx=bAx=b
则XoptX_{opt}Xopt为凸集。
若fff为严格凸函数,那么解是唯一的,即XoptX_{opt}Xopt只包含一个元素。
一阶最优化条件
对于一个凸优化问题
minxf(x)subjecttox∈C\min_{x}f(x)\ subject\ to\ x\in Cxminf(x) subject to x∈C
且fff可微,一个可行点是最优的,当
∇f(x)T(y−x)≥0\nabla f(x)^T(y-x)\geq 0∇f(x)T(y−x)≥0
换句话说,从当前点xxx起的所有可行方向都与梯度方向对齐。当最优化问题是无约束时,该条件简化为∇f(x)=0\nabla f(x)=0∇f(x)=0。
凸优化问题的层次
凸优化问题有许多分支,常见的有线性规划(linear programs, LPs),二次规划(qudaratic programs, QPs),半定规划(semidefinite programs, SDPs),锥规划(cone programs, CPs)。他们的关系为:
LPs⊂QPs⊂SDPs⊂CPs⊂ConvexProgramsLPs \subset QPs \subset SDPs \subset CPs \subset Convex\ ProgramsLPs⊂QPs⊂SDPs⊂CPs⊂Convex Programs
典型的凸优化问题
线性规划
线性规划是最典型的一类凸优化问题,其基本形式为:
minxcTxsubjecttoDx≤dAx=b\begin{aligned} \min_{x} c^Tx\\ subject\ to\qquad Dx\leq d\\ Ax=b \end{aligned} xmincTxsubject toDx≤dAx=b
许多解决线性规划的方法是单纯形法和内点法。压缩感知中的基追踪算法就是线性规划问题。
例子:基追踪
给定y∈Rny\in R^ny∈Rn和X∈Rn×pX\in R^{n\times p}X∈Rn×p,其中p>np>np>n。对于一个欠定线性系统Xβ=yX\beta =yXβ=y,我们想要找到其最稀疏的解,其可以表达为非凸优化形式:
minβ∥β∥0subjecttoXβ=y\begin{aligned} \min_{\beta}\|\beta\|_0\\ subject\ to\qquad X\beta =y \end{aligned} βmin∥β∥0subject toXβ=y
其中,∥β∥0=∑j=1p1{βj≠0}\|\beta\|_0=\sum^p_{j=1}1\{\beta_j \neq0\}∥β∥0=∑j=1p1{βj=0},为β\betaβ的零阶范数(l0l_0l0 norm)。
由于该问题是非凸的,我们可以对其做凸松弛,即进行l1l_1l1 norm近似,常常称为基追踪:
minβ∥β∥1subjecttoXβ=y\begin{aligned} \min_{\beta}\|\beta\|_1\\ subject\ to\qquad X\beta =y \end{aligned} βmin∥β∥1subject toXβ=y
基追踪是一个线性规划问题,可以将其变为基本形式:
minβ,z1Tzsubjecttoz≥βz≥−βXβ=y\begin{aligned} \min_{\beta,z}1^Tz\\ subject\ to\qquad z\geq \beta\\ z\geq -\beta\\ X\beta =y \end{aligned} β,zmin1Tzsubject toz≥βz≥−βXβ=y
二次规划
二次规划的基本形式为:
minxcTx+12xTQxsubjecttoDx≤dAx=b\begin{aligned} \min_{x}\ c^Tx+\frac{1}{2}x^TQx\\ subject\ to\qquad Dx\leq d\\ Ax=b \end{aligned} xmin cTx+21xTQxsubject toDx≤dAx=b
其中,Q⪰0Q\succeq 0Q⪰0,即为正定的。
例子:支持向量机(SVM)
给定y∈{−1,1}ny\in \{-1,1\}^ny∈{−1,1}n,X∈Rn×pX\in R^{n\times p}X∈Rn×p有行向量x1,...,xnx_1,...,x_nx1,...,xn,则支持向量机问题(support vector machine)定义为:
minβ,β0,ξ12∥β∥22+C∑i=1nξisubjecttoξi≥0,i=1,...,nyi(xiTβ+β0)≥1−ξi,i=1,...,n\begin{aligned} \min_{\beta,\beta_0,\xi} &\frac{1}{2}\|\beta\|^2_2+C\sum^n_{i=1}\xi_i\\ subject\ to\qquad & \xi_i\geq 0,\ i=1,...,n\\ &y_i(x_i^T\beta + \beta_0) \geq1-\xi_i,\ i=1,...,n \end{aligned} β,β0,ξminsubject to21∥β∥22+Ci=1∑nξiξi≥0, i=1,...,nyi(xiTβ+β0)≥1−ξi, i=1,...,n
例子:lasso
给定y∈Rny\in R^ny∈Rn,X∈Rn×pX\in R^{n\times p}X∈Rn×p,则lasso问题定义为:
minβ∥y−Xβ∥22subjectto∥β∥1≤s\begin{aligned} \min_{\beta} \|y-X\beta\|^2_2\\ subject\ to\qquad \|\beta\|_1\leq s \end{aligned} βmin∥y−Xβ∥22subject to∥β∥1≤s
其中,s≥0s\geq 0s≥0是一个可调参数。
将约束条件作为惩罚项加入到目标函数中可变形为:
minβ∥y−Xβ∥22+λ∥β∥1\min_{\beta} \|y-X\beta\|^2_2+\lambda \|\beta\|_1 βmin∥y−Xβ∥22+λ∥β∥1
这两种形式是等价的。
参考资料
CMU:Convex Optimization
凸优化基础(Convex Optimization basics)相关推荐
- 对凸优化(Convex Optimization)的一些浅显理解
©作者 | 李航前 单位 | EPFL 研究方向 | 计算机图形学与三维视觉 最近学习了一些凸优化课程,整理笔记的同时写下一些自己的理解,向着头秃的道路上越走越远. 凸优化是应用数学的一个基本分支,几 ...
- 机器学习与深度学习神器!凸优化(Convex Optimization)学习必备
Boyd的Convex Optimization是神书,真的想搞科研可以学一下这个书,但这个书理论多,侧重凸分析的基础,花了非常长的篇幅介绍函数的凸性.对偶等,但在机器学习中,至少在刚入门不久的阶段这 ...
- 凸优化(convex optimization)第二讲:convex set
Convex opt 第二讲(convex set) Affine set affine set 表示经过两点的一条线,这条线满足: 相较于后面我们要讨论的convex set,这里少了一些限制,是 ...
- 凸优化“傻瓜”教程-----凸优化基础知识
目录 凸优化基础知识 1.AI问题是什么? 2.对于常见的优化问题,我们可以写成什么形式? 3.针对一般的优化问题,我们从哪几个方向思考? 4.什么样的问题是凸优化问题? 4.1凸优化问题需要同时满足 ...
- 凸优化基础学习:凸集、凸函数、凸规划理论概念学习
凸优化基础概念学习 1.计算几何是研究什么的? 2.计算几何理论中(或凸集中)过两点的一条直线的表达式,是如何描述的?与初中数学中那些直线方程有什么差异?有什么好处? 3.凸集是什么? 直线是凸集吗? ...
- 【001】机器学习基础-凸优化基础
为什么开篇第一件事是介绍凸优化呢,原因很简单,就是它很重要! 凸优化属于数学最优化的一个子领域,所以其理论本身也是科研领域一门比较复杂高深的研究方向,常被应用于运筹学.管理科学.运营管理.工业工程.系 ...
- 凸优化基础知识笔记-凸集、凸函数、凸优化问题
文章目录 1. 凸集 2. 凸函数 2.1. 凸函数的一阶条件 2.1. 凸函数例子 3. 凸优化问题 4. 对偶 4.1. Lagrange函数与Lagrange对偶 4.2. 共轭函数 4.3. ...
- 机器学习——凸优化基础知识
文章目录 一.计算几何 (一)计算几何是研究什么的 (二)直线的表达式 二.凸集 (一)凸集是什么 (二)三维空间中的一个平面如何表达 (三)更高维度的"超平面"如何表达 三.凸函 ...
- 凸优化学习笔记 10:凸优化问题
前面讲了那么多关于凸集.凸函数的知识,然而都是铺垫,现在我们才来到了这门课的重头戏部分--凸优化问题! 文章目录 1. 一般优化问题 2. 凸优化问题 2.1 凸优化问题定义 2.2 凸优化问题的最优 ...
- 数学之美:凸优化问题
导言 凸优化(convex optimization)是最优化问题中非常重要的一类,也是被研究的很透彻的一类.对于机器学习来说,如果要优化的问题被证明是凸优化问题,则说明此问题可以被比较好的解决.在本 ...
最新文章
- 广度优先搜索算法(有向图和无向图)
- android项目两种构建方式的整合(Eclipse/idea和Android Studio)
- DataGrip 2019.2.5 —— 中文列名(字段名)(columns name)乱码问题解决方案
- Anconda安装教程
- 自动化html定位,Selenium自动化定位方法
- 计算机无法播放,如果无法播放计算机mp4文件怎么办?
- 批量反编译Andorid工程中的XML文件
- 关于Backup Exec的Agent启动失败的解决办法
- 【keil5】安装及注册
- python爬虫文字全是乱码_Python爬虫乱码的解决方案!
- 基于matlab的微分例题,matlab程序设计常微分方程编程例题答案数学.doc
- 循环神经网络--RNN GRU LSTM 对比分析
- 电脑遇到闪屏问题怎么解决
- 列表解析式,生成表达式
- IKBC键盘win键失效
- PHY--PDSCH
- Hive中的in、exists和left semi join
- GAIN: Missing Data Imputation using Generative Adversarial Nets学习笔记
- 执一不二 跬步千里-王子密码10月份月会心得(四)
- 异常之IllegalAccessException
热门文章
- android-第一行代码-第六章数据储存——持久化技术 含MMKV和Room新知识点(温故而知新)学习记录
- 【高等数学基础进阶】导数与微分
- fastlane二开java_从入门开始使用Fastlane
- 使用 pandoc 进行文档转换(markdown转pdf)
- RGB Triplets(后缀和)
- 论文解读 | CenterNet:Keypoint Triplets for Object Detection
- ClickHouse 之 FORMAT 应用
- Expression:vector subscript out of range
- ##24点游戏程序实现算法(文末源代码)
- Micaps3.2二次开发实例教程-11