背景知识

优化问题

  • 凸优化是一类数学优化问题,介绍凸优化前先简单介绍数学优化问题。
  • 优化问题定义(形式):
    minimizef0minimizef0

    minimize \quad f_{0}

    subject tofi≤bi,i=1,...,msubjecttofi≤bi,i=1,...,m

    subject\ to\quad f_{i}\leq b_{i},\qquad i = 1,...,m
    其中 x=(x1,…,xn)x=(x1,…,xn)x = (x_{1},\ldots,x{n})(向量)是需要优化的变量
    f0:Rn→Rf0:Rn→Rf_{0}:R^{n}\rightarrow R 是目标函数
    fi:Rn→R, i=1,⋯,mfi:Rn→R,i=1,⋯,mf_i:R^n \rightarrow R,\ i=1, \cdots ,m是m个约束函数
    最终要求解的值x∗x∗x^*是满足所有约束的条件下的所有向量中,使得目标函数取得最小值的向量

优化问题的具体应用场景

  1. 投资组合优化

    • 优化变量:投资于不同投资方案的金额
    • 约束:预算/每个投资方案的最大或最小投资额/最小回报率
    • 目标函数:整个投资组合的风险回报率
  2. 电子电路中的设备大小
    • 优化变量:设备的长和宽
    • 约束:制造工艺的限制/时间要求/最大面积
    • 目标函数:功耗
  3. 数据拟合(机器学习中的一些算法,譬如svm等应用)
    • 优化变量:模型的参数
    • 约束:参数的限制/优先的条件
    • 目标函数:预测的误差函数(loss function等)

除了这些之外优化问题在其他各个领域还有很多的应用,总之优化问题在实际应用场景中是非常常见的。

如何解决优化问题

  1. 一般的优化问题:都比较难解决,解决方法一般都是一种折中方案(逼近),由于非常长的计算时间,或者一直没有找到问题的解。
  2. 一些特例(能够高效和可靠的被解决的一类问题):

    • 最小二乘法问题
    • 线性规划问题
    • 凸优化问题

    下面的特例介绍

最小二乘

  1. 问题定义(形式)

    minimize||Ax−b||22minimize||Ax−b||22

    minimize\quad \left|\left|Ax-b\right|\right|_2^2

  2. 最小二乘问题特性:
    • 存在可解析解:x∗=(ATA)−1ATbx∗=(ATA)−1ATbx^*=(A^TA)^{-1}A^Tb
    • 已有可靠和高效的算法解决此类问题
    • 计算时间复杂度:O(n2k), A∈Rk×nO(n2k),A∈Rk×nO(n^2k),\ A\in R^{k\times n}
    • 已经是一种成熟的工业技术(解决此类问题)
    • 最小二乘问题很容易识别

线性规划

  1. 问题定义(形式)

    minimizecTxminimizecTx

    minimize \quad c^Tx

    subject toaTix≤bi,i=1,…,msubjecttoaiTx≤bi,i=1,…,m

    subject\ to\quad a_i^Tx\leq b_i,\qquad i=1,\ldots ,m

  2. 特性:
    • 没有解析解
    • 已有可靠和高校的算法解决此类问题
    • 当m≥nm≥nm\geq n时,计算时间复杂度O(nm)O(nm)O(n^m)
    • 已经是一种成熟的工业技术(解决此类问题)
    • 相对最小二乘来说比较难识别出来
    • 有一些技巧是把问题转化成线性规划问题求解

凸优化问题

1.问题定义(形式)

minimizef0(x)minimizef0(x)

minimize \quad f_0(x)

subject tofi(x)≤bi,i=1,…,msubjecttofi(x)≤bi,i=1,…,m

subject\ to\quad f_i(x)\leq b_i,\qquad i=1,\ldots ,m
目标函数和约束函数都是凸函数,即
fi(αx+βy)≤αfi(x)+βfi(y)fi(αx+βy)≤αfi(x)+βfi(y)f_i(\alpha x+\beta y)\leq\alpha f_i(x)+\beta f_i(y),其中
α+β=1,α≥0,β≥0α+β=1,α≥0,β≥0\alpha +\beta = 1,\alpha \geq 0 , \beta\geq0
2. 特性:

  • 没有解析解
  • 有可靠和高效的算法解决此类问题
  • 计算时间复杂度maxn3,n2m,Fmaxn3,n2m,Fmax{n^3,n^2m,F},其中F是约束函数fifif_i的运算时间消耗以及他们各自的一次二次微分的总和
  • 不像之前两种问题一样是一种成熟的工业技术,但是算是以及很成熟了(almost)
  • 通常很难识别出来
  • 有很多技巧把问题转换成凸优化问题形式求解

    最小二乘问题和线性规划问题是优化问题的特例

注:很多非凸问题也可以通过某种形式转化成凸优化问题来求解其近似解(一般在找不到原问题的解或求解原问题所需的时间复杂度太大的情形下使用)。这是解决一类问题的一种技巧,在深度学习的一些模型中经常用到。这是一种逼近的思想。

非线性优化

  1. 局部优化方法(非线性规划)
  2. 全局优化方法

凸优化中的一些定义

仿射集(Affine set)

定义:

仿射集是包含过两个不同的点的直线的所有点。
即x=θx1+(1−θ)x2(θ∈R)x=θx1+(1−θ)x2(θ∈R)x=\theta x_1+(1-\theta)x_2\quad (\theta \in R)
如下图:

  • 一个例子:线性方程组的解集{x|Ax=bx|Ax=bx|Ax=b}

    • 推导:设x1,x2x1,x2x_1,x_2是解集中两个不同的点,则有Ax1=b,Ax2=bAx1=b,Ax2=bAx_1=b,Ax_2=b,且A(θx1+(1−θ)x2)=θAx1+(1−θ)Ax2=θb+(1−θ)b=bA(θx1+(1−θ)x2)=θAx1+(1−θ)Ax2=θb+(1−θ)b=bA(\theta x_1+(1-\theta)x_2)=\theta Ax_1+(1-\theta)Ax_2=\theta b+(1-\theta)b=b,又Ax=bAx=bAx=b,所以x=θx1+(1−θ)x2x=θx1+(1−θ)x2x=\theta x_1+(1-\theta)x_2,得证。

注:所有的仿射集都可以用线性方程组的解集表示

凸集

定义

凸集是包含两个不同点之间的直线的所有点。
即x=θx1+(1−θ)x2θ∈x=θx1+(1−θ)x2θ∈x=\theta x_1+(1-\theta)x_2\quad \theta \in(0,1)

  • 凸集C中,x1,x2∈C,0≤θ≤0⟹θx1+(1−θ)x2∈Cx1,x2∈C,0≤θ≤0⟹θx1+(1−θ)x2∈Cx_1,x_2\in C,\quad 0\leq \theta \leq 0 \quad \Longrightarrow \quad \theta x_1+(1-\theta)x_2 \in C
  • 例子如下图:

凸组合和凸包

凸组合(convex combination)

定义:x1,x2,...,xkx1,x2,...,xkx_1,x_2,...,x_k的凸组合是满足x=θ1x1+θ2x2+...+θkxkx=θ1x1+θ2x2+...+θkxkx=\theta_1x_1+\theta_2x_2+...+\theta_kx_k,其中θ1+θ2+...+θk=1,θi≥0θ1+θ2+...+θk=1,θi≥0\theta_1+\theta_2+...+\theta_k=1,\theta_i\geq0的任意点x。

凸包(convex hull)

定义:conv S:集合S中的所有点的凸组合所成的集合。
如下图所示,黑点表示原始集合S,阴影部分表示conv S(凸包集合)

凸锥(Convex cone)

锥组合(conic (nonnegative) combination)

定义:x1,x2x1,x2x_1,x_2的锥组合是满足x=θ1x1+θ2x2x=θ1x1+θ2x2x=\theta_1x_1+\theta_2x_2,其中θ2≥0,θ1≥0θ2≥0,θ1≥0\theta_2\geq0,\theta_1\geq0的任意点x。
如下图,阴影部分为锥组合所成的集合

凸锥

定义:convex cone:集合S中的所有点的锥组合所成的集合。

超平面和半空间

超平面(hyperplane)

定义:满足{x|aTx=bx|aTx=bx|a^Tx=b} (a≠0)(a≠0)\ (a\neq 0)的集合。
如下图,其中b可以看作是截距或者是位移项,a是法向量。


注:更多关于超平面的介绍请看之后关于SVM介绍一文中的预备知识

半空间(halfspaces)

定义:满足{x|aTx≤b (a≠0)x|aTx≤b(a≠0)x|a^Tx\leq b\ (a\neq 0)}的集合。
如下图所示,阴影部分为半空间:


注:超平面是仿射集,同时是凸集,半空间是凸集但不是仿射集

  • 从图中就可以很直观的看出来,下面以半空间为例子,来进行推导,其他情形推导方式一致。
  • 推导:令x1,x2x1,x2x_1,x_2为半空间中的点,则aTx1≤b,aTx2≤b,x=θx1+(1−θ)x2, θ∈[0,1]aTx1≤b,aTx2≤b,x=θx1+(1−θ)x2,θ∈[0,1]a^Tx_1\leq b,a^Tx_2\leq b,x=\theta x_1+(1-\theta)x_2,\ \theta \in[0,1],所以aTx=aTθx1+aT(1−θ)x2≤θb+(1−θ)b=baTx=aTθx1+aT(1−θ)x2≤θb+(1−θ)b=ba^Tx=a^T\theta x_1+a^T(1-\theta )x_2\leq \theta b+(1-\theta)b=b,得证。

球和椭圆

球(Euclidean ball)

定义:B(xc,r)=B(xc,r)=B(x_c,r)={x| ||x−xc||2≤rx|||x−xc||2≤r x|\ ||x-x_c||_2\leq r }={xc+ru| ||u||2≤1xc+ru|||u||2≤1x_c+ru|\ ||u||_2\leq 1},其中xcxcx_c是圆心,r是半径。

椭圆

定义:{x| (x−xc)TP−1(x−xc)≤1x|(x−xc)TP−1(x−xc)≤1x|\ (x-x_c)^TP^{-1}(x-x_c)\leq 1}={xc+Au| ||u||2≤1xc+Au|||u||2≤1x_c+Au|\ ||u||_2\leq 1},其中

P∈Sn++P∈S++nP\in S_{++}^n,即P是对称正定矩阵,A是方阵,非奇异矩阵。

范数球和范数锥

范数

定义:满足以下条件的函数||.||

  • ||x||≥0; ||x||≥0;||x||\geq 0;\ 当且仅当x=0x=0x=0时,||x||=0||x||=0||x||=0
  • 对t∈R, t∈R,t\in R, \ ||tx||=|t| ||x||||tx||=|t|||x||||tx||=|t|\ ||x||
  • ||x+y||≤||x||+||y||||x+y||≤||x||+||y||||x+y||\leq||x||+||y||(三角不等式)
    符号:||.||是一般范数,||.||symb||.||symb||.||_symb是特殊范数。

注:

  • 范数(包括LpLpL^p)是将向量映射到非负值的函数,直观上,向量x的范数衡量从原点到点x的距离。
  • LpLpL^p范数定义:||x||p=(∑i|xi|p)1p||x||p=(∑i|xi|p)1p||x||_p=(\sum_i|x_i|^p)^\frac{1}{p}
  • L2L2L^2范数称为欧几里得范数,表示原点到向量x的欧几里得距离
  • L∞L∞L^\infty范数为最大范数,即||x||∞=maxi|xi|||x||∞=maxi|xi|||x||_\infty=max_i|x_i|
  • Frobenius范数,即||A||F=∑i,jA2i.j−−−−−−−√=tr(ATA)−−−−−−−√||A||F=∑i,jAi.j2=tr(ATA)||A||_F= \sqrt{\sum_{i,j}A_{i.j}^2}=\sqrt{tr(A^TA)},用于衡量矩阵大小
  • 两个向量的点积可以用范数来表示:xTy=||x|| ||y||cosθxTy=||x||||y||cosθx^Ty=||x||\ ||y||cos\theta
  • 平方L2L2L_2范数也常用来衡量向量的大小,可通过xTxxTxx^Tx来计算

范数球

定义:{x| ||x−xc||≤rx|||x−xc||≤r x|\ ||x-x_c||\leq r },其中xcxcx_c是圆心,r是半径。

范数锥

定义:{(x,t)| ||x||≤t(x,t)|||x||≤t(x,t)|\ ||x||\leq t}

注:欧几里得范数锥又叫第二顺序锥(L2L2L^2锥),范数球和范数锥都是凸集

多面体(Polyhedra)

定义:Ax≤b,Cx=dAx≤b,Cx=dAx\leq b,\qquad Cx=d,
其中A∈Rm×n, C∈Rp×nA∈Rm×n,C∈Rp×nA\in R^{m\times n},\ C\in R^{p\times n},不等式≤≤\leq是分量式不等式,即每个维度上这个不等式都成立。


注:多面体是有限个超平面和半空间的交集,如上图所示

半正定锥

符号定义:

  • SnSnS^n是n×nn×nn\times n的对称矩阵集
  • Sn+=S+n=S_+^n={X∈Sn|X≥0X∈Sn|X≥0X\in S^n|X\geq 0}是n×nn×nn\times n半正定矩阵集,其中X∈Sn+⟺X∈S+n⟺X\in S_+^n\qquad\Longleftrightarrow\qquad (对所有的z)zTXz≥0zTXz≥0z^TXz\geq 0, $S_+^n是凸锥(convex cone)
  • Sn++=S++n=S_{++}^n={X∈Sn|X=0X∈Sn|X=0X\in S^n|X= 0}是n×nn×nn\times n正定矩阵

参考

  • 《Convex Optimization》 – Stephen Boyd and Lieven Vandenberghe

凸优化一(基本概念介绍)相关推荐

  1. 凸优化笔记(1) —— 基本概念

    凸优化笔记 -- 基本概念之凸集 1. 数学优化 基本概念 2.1 凸优化问题 2.2 线性函数与凸函数 2.3 凸集 仿射集. 2.3.2 凸集 2.3.3锥 三种集合的比较: 基本准备 本科没学过 ...

  2. 今天开始学Convex Optimization:引言、第1章基本概念介绍

    文章目录 引言 第1章 Introduction 凸优化问题 最小二乘问题 线性规划问题 一个优化问题例子:最佳灯源问题 Chebyshev逼近问题,转化成线性规划 参考资料 2020年我自己希望多看 ...

  3. 凸集、凸函数、凸优化问题 概念关联

    参考我的博客:http://blog.csdn.net/GoodShot/article/details/79162032 机器学习中,经常会用到凸集.凸函数.凸优化问题. 这里对这些概念进行介绍,简 ...

  4. 凸优化基本概念与kkt条件

    凸优化问题 一般用 min f0(x){f_{_0}}(x)f0​​(x) s.t. fi(x)≤0,i=1,...,m{f_i}(x) \le 0,i = 1,...,mfi​(x)≤0,i=1,. ...

  5. 关于凸优化的一些简单概念

    http://www.cnblogs.com/tornadomeet/p/3300132.html 没有系统学过数学优化,但是机器学习中又常用到这些工具和技巧,机器学习中最常见的优化当属凸优化了,这些 ...

  6. 机器学习数据挖掘笔记_15(关于凸优化的一些简单概念)

    没有系统学过数学优化,但是机器学习中又常用到这些工具和技巧,机器学习中最常见的优化当属凸优化了,这些可以参考Ng的教学资料:http://cs229.stanford.edu/section/cs22 ...

  7. [转]关于凸优化的一些简单概念

    没有系统学过数学优化,但是机器学习中又常用到这些工具和技巧,机器学习中最常见的优化当属凸优化了,这些可以参考Ng的教学资料:http://cs229.stanford.edu/section/cs22 ...

  8. 【机器学习】凸集、凸函数、凸优化、凸优化问题、非凸优化问题概念详解

    目录 1 基本概念 2 凸优化问题 3 非凸优化问题 4 总结 1 基本概念 (1)凸集和非凸集 凸集是一个点集, 这个点集有一个性质, 就是在这个集合中任取不同的两个点x和y, 他们之间的线段(包括 ...

  9. 优化问题---凸优化基本概念

    目录 1.凸优化到底是什么? 1.1 基本概念 1.2 凸优化和非凸优化 2.集合概念 2.1 仿射集.仿射包.仿射组合 2.2 凸集.凸包.凸组合 2.3 锥.凸锥 3.凸函数与非凸函数 4.总结 ...

最新文章

  1. android 当对一个视图设置多个同类的监听器时 对应的机制
  2. Glide控制显示4个角
  3. Android RxJava 3.x 使用总结
  4. Netty 4.x – ByteBuf
  5. win10开启oracle服务器配置,Windows环境(Win10)下安装、配置服务器类Oracle Database 11g Release 2...
  6. 计算机与数字媒体专业概论
  7. 使用Nodejs将js文件转换成json文件
  8. 2020 cr节目源_2020/8月最新IPTV M3U8直播源分享
  9. 计算机网络工程师多久过期,软考网络工程师证书有效期
  10. python2线程池_python 线程池
  11. java redis hscan_redis操作之迭代器(scan和hscan)讲解
  12. linux下游戏手柄测试程序
  13. iOS 汉语数字与阿拉伯数字的相互转化
  14. 无线上网认证之Portal认证——企业WiFi管家
  15. 如何快速发表一篇SCI论文
  16. xio you c语言 程序设计入门——函数的定义
  17. 前工程师讲解:开关电源设计-LLC电源
  18. am335x linux 的uboot工作流程.doc,am335x uboot2016.05 (MLO u-boot.img)执行流程(转)
  19. Statement与PreparedStatement
  20. Win7系统提示“内置管理员无法激活此应用”的原因和解决方法

热门文章

  1. Android开发笔记(一百五十)自动识别验证码图片
  2. 掌阅科技上半年净利增长21%,牵手字节后能与阅文一战吗?
  3. qmake:高级用法
  4. 网络协议基础01-七层网络协议
  5. 区块链新应用,为什么要选smac?
  6. Kotlin Jetpack 实战:01. Kotlin 基础
  7. 椰青文案:椰青水果促销活动策划文案,朋友圈椰青水果文案
  8. 分享一种超简单的js解密方法
  9. php针式打印机打多张,ppt打印怎么一页打多个
  10. 使用老毛桃进行uefi下的win10备份