00-凸优化引言
凸优化从入门到放弃完整教程地址:https://www.cnblogs.com/nickchen121/p/14900036.html
一、知识点罗列
1.1 概述
-
优化问题:
-
[minimizequad f_0(x) \ subject\,toquad f_i(x) leq b_i, quad i=1cdots,m ]
-
-
优化变量:(x=(x_1,cdots,x_m))
-
目标函数:(f_0: R^n->R)
-
约束(不等式)函数:(f_i: R^n->R, quad i=1,cdots,m)
-
约束边界(约束上界):常数 (b_1,cdots,b_m)
-
最优解(解)(x^*):所有满足约束的向量中的向量 (x^*) 对应的目标函数的值最小
- 另一种严格的说法:对于任意满足约束 (f_1(z) leq b_1, cdots, f_m(z) leq b_m) 的向量 (z),有 (f_0(z) leq f_0(x^*)),则称 (x^*) 为最优解(解)
-
线性函数:对于任意的 (x,y in R^n) 和 (alpha , eta in R),并且有 (f_i(alpha x+eta y) = alpha f_i(x)+eta f_i(y))
-
线性规划问题:目标函数和约束函数都为线性函数的优化问题
-
非线性规划问题:不是线性规划就是非线性规划
-
凸函数:对于任意 (x,yin R^n),任意的 (alpha,etain R) 且满足 (alpha+eta = 1,\,alphageq 0,\,etageq 0) 时,下述不等式 (f_i(alpha x+eta y) leq alpha f_i(x)+eta f_i(y)) 成立
-
凸优化问题:目标函数和约束函数都是凸函数的优化问题
-
线性规划和凸函数:线性函数需要严格满足凸函数的定义,因此线性规划问题就是凸优化问题,也可以把凸优化看成是线性规划的扩展
1.2 应用
- 优化问题:可以看成在向量空间 (R^n) 的一组备选接解中选择最好的解
- 备选解:满足约束条件 (f_i(x) leq b_i) 的所有解
- 目标函数(成本函数):目标函数 (f_0(x)) 可以看成是选择 (x) 的成本(同理也可以认为 (-f_0(x)) 表示选择 (x) 的效益或效用)
- 优化问题的解:满足约束条件的所有备选解中成本最小(或效用最大)的解
- 投资组合优化(实例):寻求一个最佳投资方案将资本在 (n) 种资产中进行分配。
- 变量:变量 (x_i) 表示投在在第 (i) 种资产上的资本,则向量 (xin R^n) 描述了资本在各个资产上的分配情况
- 约束条件:
- 对投资预算的限制(总投资额的限制)
- 每一份投资额非负
- 期望收益大于最小可接受收益值
- 目标函数(成本函数):对总的风险值或投资回报方差的度量
- 优化问题:在所有可能的投资组合中选择满足所有约束条件且风险最小的那个组合
- 数据拟合(实例):在一族模型中选择最符合观测数据和先验知识的模型
- 变量:模型中的参数
- 约束条件:先验知识、参数限制(比如非负性)
- 目标函数:观测数据与估计模型的预测值之间的偏差、参数值的似然度和置信度的统计和估计
- 优化问题:寻找合适的模型参数值,使其符合先验知识,且与真实模型之间的偏差或预测值与观测值之间的偏差最小(或统计意义上更加相似)
- 嵌入式实时优化的目的:嵌入式应用中,在没有(或者极少)人为干预的条件下实时做出选择甚至实时执行。
- 缺点:优化结果必须非常可靠,并且必须在给定的时间(和存储量)内解决问题
1.3 求解优化问题
-
优化问题的求解方法:以给定精度求解此类优化问题中的某一实例的算法
-
求解优化问题的难度所取决的因素:比如目标函数和约束函数的形式、优化问题所包含的变量和约束个数、特殊的结构如稀疏结构(约束函数仅取决于为数不多的几个变量)等,这些因素的复杂可能会导致优化问题难以解决
- 目标函数和约束函数是光滑的(如多项式):求解这中形式的问题,需要较长的时间或找不到节
-
高效解决某些优化问题的例子:最小二乘问题、线性规划问题
-
凸优化问题的求解:凸优化问题,存在有效的求解算法可以如最小二乘以及线性规划问题一样进行有效求解
二、已解决疑难点
2.1 为什么线性函数不满足线性函数定义
- 以前认为机器学习中讲的线性函数只是如普通的一次线性函数 (y=kx+b) 这样的线性函数。
- 但是今天看到书中线性函数的定义:对于任意的 (x,y in R^n) 和 (alpha , eta in R),并且有 (f_i(alpha x+eta y) = alpha f_i(x)+eta f_i(y))。
- 通过 (y=2x+3) 这样的的一次线性函数套用定义却发现行不通。
- 首先自己发现从线性函数中的定义可以看出 (x,y) 指的是向量,我直接套用简单的线性函数有点冒失。
- 然后经过百度验证线性函数指的是空间的映射,或者可以说成是 (f) 对加法和乘法的一种刚性的保持,而不是简单地直线,也就是说不能通过直观感受去理解。
- 这样就行得通了,也更明白了。