背景知识
优化问题
- 凸优化是一类数学优化问题,介绍凸优化前先简单介绍数学优化问题。
- 优化问题定义(形式):
minimizef0 m i n i m i z e f 0
subject tofi≤bi,i=1,...,m s u b j e c t t o f i ≤ b i , i = 1 , . . . , m
其中 x=(x1,…,xn) x = ( x 1 , … , x n ) (向量)是需要优化的变量
f0:Rn→R f 0 : R n → R 是目标函数
fi:Rn→R, i=1,⋯,m f i : R n → R , i = 1 , ⋯ , m 是m个约束函数
最终要求解的值 x∗ x ∗ 是满足所有约束的条件下的所有向量中,使得目标函数取得最小值的向量
优化问题的具体应用场景
- 投资组合优化
- 优化变量:投资于不同投资方案的金额
- 约束:预算/每个投资方案的最大或最小投资额/最小回报率
- 目标函数:整个投资组合的风险回报率
- 电子电路中的设备大小
- 优化变量:设备的长和宽
- 约束:制造工艺的限制/时间要求/最大面积
- 目标函数:功耗
- 数据拟合(机器学习中的一些算法,譬如svm等应用)
- 优化变量:模型的参数
- 约束:参数的限制/优先的条件
- 目标函数:预测的误差函数(loss function等)
除了这些之外优化问题在其他各个领域还有很多的应用,总之优化问题在实际应用场景中是非常常见的。
如何解决优化问题
- 一般的优化问题:都比较难解决,解决方法一般都是一种折中方案(逼近),由于非常长的计算时间,或者一直没有找到问题的解。
一些特例(能够高效和可靠的被解决的一类问题):
- 最小二乘法问题
- 线性规划问题
- 凸优化问题
下面的特例介绍
最小二乘
- 问题定义(形式)
minimize||Ax−b||22 m i n i m i z e | | A x − b | | 2 2 - 最小二乘问题特性:
- 存在可解析解: x∗=(ATA)−1ATb x ∗ = ( A T A ) − 1 A T b
- 已有可靠和高效的算法解决此类问题
- 计算时间复杂度: O(n2k), A∈Rk×n O ( n 2 k ) , A ∈ R k × n
- 已经是一种成熟的工业技术(解决此类问题)
- 最小二乘问题很容易识别
线性规划
- 问题定义(形式)
minimizecTx m i n i m i z e c T x
subject toaTix≤bi,i=1,…,m s u b j e c t t o a i T x ≤ b i , i = 1 , … , m - 特性:
- 没有解析解
- 已有可靠和高校的算法解决此类问题
- 当 m≥n m ≥ n 时,计算时间复杂度 O(nm) O ( n m )
- 已经是一种成熟的工业技术(解决此类问题)
- 相对最小二乘来说比较难识别出来
- 有一些技巧是把问题转化成线性规划问题求解
凸优化问题
1.问题定义(形式)
minimizef0(x) m i n i m i z e f 0 ( x )
subject tofi(x)≤bi,i=1,…,m s u b j e c t t o f i ( x ) ≤ b i , i = 1 , … , m