参考
凸优化(一):https://blog.csdn.net/xierhacker/article/details/61415747
凸优化(二):https://blog.csdn.net/xingce_cs/article/details/73648609
凸优化(三):https://blog.csdn.net/xingce_cs/article/details/73715903
凸优化(四):https://blog.csdn.net/xingce_cs/article/details/73748679
一. 预备知识
1. 直线的向量表达式
(向量x为直线上没一点的向量,参考向量的加法原理)
当时,表示过AB的直线。
当时,表示过AB的线段。
2. 几何体的向量表达式(由直线的向量表达式推广所得)
任何体都可以用向量表达
三维平面:
三角形
超平面:
(超)几何体:
3. 仿射集
如果通过集合C中任意两个不同点之间的直线 (上的任何点) 仍在集合C中,那么称集合C是仿射的;
{ C | θ*x1+(1-θ)*x2 ∈ C;其中 x1∈ C,x2∈ C} 注意,对θ没有限定。
4. 凸集
如果通过集合C中任意两个不同点之间的线段(上的任何点)仍在集合C中,那么称集合C是凸的;
符号定义:{ C | θ*x1+(1-θ)*x2 ∈ C;其中 x1∈ C,x2∈ C,0<=θ<=1} 注意,对θ有限定
5.凸包
在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,...Xn)的线性组合来构造。在二维欧几里得空间中,凸包可想象为一条刚好包著所有点的橡皮圈。用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边型,它能包含点集中所有的点。
集合C的凸包是能够包含C的最小的凸集。
6.超平面和半空间
超平面是n维欧氏空间中余维度等于一的线性子空间,也就是必须是(n-1)维度
超平面hyper plane (矩阵乘以向量:将向量旋转和转移)
(a是法向量,b是直线到远点的距离)
半空间half space
详细参考:https://blog.csdn.net/myarchangel/article/details/8852074
https://blog.csdn.net/denghecsdn/article/details/77313758
7、欧式球和椭球
欧式球:
椭球:
。
8、范数:
范数球
范数锥
9、多面体
多面体有限个半空间和超平面的交集。
仿射集(如超平面、直线)、射线、线段、半空间都 是多面体。
多面体是凸集。
10. 保凸运算
10.1 交集
交集是保凸的,无穷个凸集的交集也是凸的。
10.2 仿射变换(透视变换的特殊情况)
仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间
参考:https://www.zhihu.com/question/20666664
10.3 透视变换
透视变换:透视函数对向量进行伸缩(规范化),使得最 后一维的分量为1并舍弃之。(降维)
参考:https://blog.csdn.net/xiaowei_cqu/article/details/26471527
参考:https://blog.csdn.net/zhanghua1816/article/details/23121735
10.4 投射变换
投射变换:投射函数是透视函数和仿射函数的复合
11. 分割超平面
假设CC和DD是两个不相交的凸集,那么一定存在a≠0a≠0的超平面aTx=baTx=b将凸集分隔开,使CC中点满足aTx≤baTx≤b,而DD中点满足aTx≥baTx≥b。注意,逆定理能被超平面分离说明不相交是不成立的。
严格分离:如果存在a≠0a≠0的超平面aTx=baTx=b将凸集分隔开,使CC中点满足aTx<baTx<b,而DD中点满足aTx>baTx>b,我们称超平面将凸集严格分离。对于不相交的凸集来说,不一定能被严格分离,但是通常是可以构造出严格分离的。
12. 支撑超平面
设C⊆RnC⊆Rn而x0x0是其边界bdCbdC上一点,若a≠0a≠0,并且对于任意x∈Cx∈C满足aTx≤aTx0aTx≤aTx0,那么称超平面{x∣aTx=aTx0}{x∣aTx=aTx0}为集合CC在x0x0点处的支撑超平面。(有点像切线的感觉)对于任意非空的凸集边界上任意一点一定存在支撑超平面。
参考:凸优化(四)
13. 凸函数
14、上境图
15、Jesen不等式
若f是凸函数:
16、保持函数凸性的算子
a. 凸函数的非负加权和
b. 凸函数与仿射函数的复合
c. 凸函数的逐点最大值、逐点上确界
17、共轭函数
原函数共轭函数定义:
定义式的右端是关于y的仿射函数,它们逐点求上确界,得到的函数f*(y)一定是凸函数。
18、Fenchel不等式
根据共轭函数定义有:
二. 凸优化
参考:https://www.cnblogs.com/ooon/p/5721119.html
优化问题的基本形式(所有的优化问题都可以化成这种形式):
优化的目标函数:
服从1:
服从2:
如果、为凸函数,为仿射函数(线性函数)那么为凸优化问题。
优化的变量为:x
不等式约束:
等式约束:
无约束优化:i, j
优化问题域:
可行解:
可行域:所有可行解的集合
拉格朗日函数:
对于固定的x,拉格朗日函数为关于λ与v的仿射函数。
根据约束条件,其中λ≥0满足:
才有等号。原始问题为求在x上的最小值,所以原问题可以描述为:
将原始问题转变一下,表示为:
那么,就是将原问题转换为对偶问题(最大最小转换为最小最大)。凸优化最为核心的解决方法。为什么要这么做?在x不定的情况下,求两个变量(λ与v)的最大值不容易做。
对于λ1而言,
其中,α剩余项,那么α表示λ1的常数,那么就是关于λ1的仿射函数。所以可以得到关于λi都是仿射的。同理关于vj也是仿射的。由于仿射变换是线性的,可以表示为空间中的好多条线。x的不同线也不同。对这若干条线逐点(下图中的黑点所示)求下界一定是一个凹函数。这个凹函数可以即为:
称为拉格朗日对偶函数。对该函数(凹函数)求最大值,即
求解过程:
领,可以得到:,然后回代到,得到关于λ, v的函数。求解最大值。
与的关系?
那么可以认为是关于x的一个函数,即为:,所以有:
那么对取最小,即
为定值(常数),所以,那么,而是关于λ, v的函数,即为,所以有:
全部还原得到:
所以通过对偶问题求解的最小值有可能比原问题的最小值小,如果能满足f(x)是凸函数,h(x)是仿射的,那么原问题与对偶问题相等。
(意味着不要输在起跑线上)
KKT是必要条件:为了满足等号,即:
有驻点。
拉格朗日何kkt参考:https://www.cnblogs.com/sddai/p/5728195.html