总目录

一、 凸优化基础(Convex Optimization basics)

  1. 凸优化基础(Convex Optimization basics)

二、 一阶梯度方法(First-order methods)

  1. 梯度下降(Gradient Descent)
  2. 次梯度(Subgradients)
  3. 近端梯度法(Proximal Gradient Descent)
  4. 随机梯度下降(Stochastic gradient descent)

三、对偶

  1. 线性规划中的对偶(Duality in linear programs)
  2. 凸优化中的对偶(Duality in General Programs)
  3. KKT条件(Karush-Kuhn-Tucker Conditions)
  4. 对偶的应用及拓展(Duality Uses and Correspondences)
  5. 对偶方法(Dual Methods)
  6. 交替方向乘子法(Alternating Direction Method of Multipliers)

Introduction

一个凸优化问题具有以下基本形式:
min⁡x∈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∈Dmin​f(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)两点连线。

在凸函数中有两种比较重要的特例:

  1. 严格凸函数(strictly convex):把上述公式的≤\leq≤变为<<<,即函数永远低于f(x)f(x)f(x)和f(y)f(y)f(y)两点连线,把线性情况给排除了。
  2. 强凸函数(strongly convex):即fff至少与二次函数一样凸,其最高阶数不小于2.
    强凸意味着严格凸,他们都是凸函数的子集,他们的关系为:
    stronglyconvex⊂strictlyconvex⊂convexstrongly\ convex \subset strictly\ convex \subset convexstrongly convex⊂strictly convex⊂convex

一些常见的函数如,指数函数,仿射函数,以及常用的范数和最大值函数等,都是凸函数。

凸函数的性质

从凸函数的定义我们可以得到两个性质:

  1. 一阶特性:如果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。

  2. 二阶特性:如果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=arg⁡min⁡x∈Df(x)X_{opt}=\arg\min_{x\in D} f(x)Xopt​=argx∈Dmin​f(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​只包含一个元素。

一阶最优化条件

对于一个凸优化问题
min⁡xf(x)subjecttox∈C\min_{x}f(x)\ subject\ to\ x\in Cxmin​f(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

典型的凸优化问题

线性规划

线性规划是最典型的一类凸优化问题,其基本形式为:
min⁡xcTxsubjecttoDx≤dAx=b\begin{aligned} \min_{x} c^Tx\\ subject\ to\qquad Dx\leq d\\ Ax=b \end{aligned} xmin​cTxsubject 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​∥β∥0​subject toXβ=y​

其中,∥β∥0=∑j=1p1{βj≠0}\|\beta\|_0=\sum^p_{j=1}1\{\beta_j \neq0\}∥β∥0​=∑j=1p​1{β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​∥β∥1​subject 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} β,zmin​1Tzsubject toz≥βz≥−βXβ=y​

二次规划

二次规划的基本形式为:
min⁡xcTx+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+21​xTQxsubject 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​,ξmin​subject to​21​∥β∥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β∥22​subject 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)相关推荐

  1. 对凸优化(Convex Optimization)的一些浅显理解

    ©作者 | 李航前 单位 | EPFL 研究方向 | 计算机图形学与三维视觉 最近学习了一些凸优化课程,整理笔记的同时写下一些自己的理解,向着头秃的道路上越走越远. 凸优化是应用数学的一个基本分支,几 ...

  2. 机器学习与深度学习神器!凸优化(Convex Optimization)学习必备

    Boyd的Convex Optimization是神书,真的想搞科研可以学一下这个书,但这个书理论多,侧重凸分析的基础,花了非常长的篇幅介绍函数的凸性.对偶等,但在机器学习中,至少在刚入门不久的阶段这 ...

  3. 凸优化(convex optimization)第二讲:convex set

    Convex opt  第二讲(convex set) Affine set affine set 表示经过两点的一条线,这条线满足: 相较于后面我们要讨论的convex set,这里少了一些限制,是 ...

  4. 凸优化“傻瓜”教程-----凸优化基础知识

    目录 凸优化基础知识 1.AI问题是什么? 2.对于常见的优化问题,我们可以写成什么形式? 3.针对一般的优化问题,我们从哪几个方向思考? 4.什么样的问题是凸优化问题? 4.1凸优化问题需要同时满足 ...

  5. 凸优化基础学习:凸集、凸函数、凸规划理论概念学习

    凸优化基础概念学习 1.计算几何是研究什么的? 2.计算几何理论中(或凸集中)过两点的一条直线的表达式,是如何描述的?与初中数学中那些直线方程有什么差异?有什么好处? 3.凸集是什么? 直线是凸集吗? ...

  6. 【001】机器学习基础-凸优化基础

    为什么开篇第一件事是介绍凸优化呢,原因很简单,就是它很重要! 凸优化属于数学最优化的一个子领域,所以其理论本身也是科研领域一门比较复杂高深的研究方向,常被应用于运筹学.管理科学.运营管理.工业工程.系 ...

  7. 凸优化基础知识笔记-凸集、凸函数、凸优化问题

    文章目录 1. 凸集 2. 凸函数 2.1. 凸函数的一阶条件 2.1. 凸函数例子 3. 凸优化问题 4. 对偶 4.1. Lagrange函数与Lagrange对偶 4.2. 共轭函数 4.3. ...

  8. 机器学习——凸优化基础知识

    文章目录 一.计算几何 (一)计算几何是研究什么的 (二)直线的表达式 二.凸集 (一)凸集是什么 (二)三维空间中的一个平面如何表达 (三)更高维度的"超平面"如何表达 三.凸函 ...

  9. 凸优化学习笔记 10:凸优化问题

    前面讲了那么多关于凸集.凸函数的知识,然而都是铺垫,现在我们才来到了这门课的重头戏部分--凸优化问题! 文章目录 1. 一般优化问题 2. 凸优化问题 2.1 凸优化问题定义 2.2 凸优化问题的最优 ...

  10. 数学之美:凸优化问题

    导言 凸优化(convex optimization)是最优化问题中非常重要的一类,也是被研究的很透彻的一类.对于机器学习来说,如果要优化的问题被证明是凸优化问题,则说明此问题可以被比较好的解决.在本 ...

最新文章

  1. 广度优先搜索算法(有向图和无向图)
  2. android项目两种构建方式的整合(Eclipse/idea和Android Studio)
  3. DataGrip 2019.2.5 —— 中文列名(字段名)(columns name)乱码问题解决方案
  4. Anconda安装教程
  5. 自动化html定位,Selenium自动化定位方法
  6. 计算机无法播放,如果无法播放计算机mp4文件怎么办?
  7. 批量反编译Andorid工程中的XML文件
  8. 关于Backup Exec的Agent启动失败的解决办法
  9. 【keil5】安装及注册
  10. python爬虫文字全是乱码_Python爬虫乱码的解决方案!
  11. 基于matlab的微分例题,matlab程序设计常微分方程编程例题答案数学.doc
  12. 循环神经网络--RNN GRU LSTM 对比分析
  13. 电脑遇到闪屏问题怎么解决
  14. 列表解析式,生成表达式
  15. IKBC键盘win键失效
  16. PHY--PDSCH
  17. Hive中的in、exists和left semi join
  18. GAIN: Missing Data Imputation using Generative Adversarial Nets学习笔记
  19. 执一不二 跬步千里-王子密码10月份月会心得(四)
  20. 异常之IllegalAccessException

热门文章

  1. android-第一行代码-第六章数据储存——持久化技术 含MMKV和Room新知识点(温故而知新)学习记录
  2. 【高等数学基础进阶】导数与微分
  3. fastlane二开java_从入门开始使用Fastlane
  4. 使用 pandoc 进行文档转换(markdown转pdf)
  5. RGB Triplets(后缀和)
  6. 论文解读 | CenterNet:Keypoint Triplets for Object Detection
  7. ClickHouse 之 FORMAT 应用
  8. Expression:vector subscript out of range
  9. ##24点游戏程序实现算法(文末源代码)
  10. Micaps3.2二次开发实例教程-11