凸优化
1. 凸函数
详解
cs229笔记-凸优化1
在凸的定义域上取两个点
x
1
,
x
2
x_1,x_2
x1,x2 ,其凸组合的值应该小于等于其值的凸组合:
对
于
任
意
λ
∈
[
0
,
1
]
,
f
(
λ
x
1
+
(
1
−
λ
)
x
2
)
≤
λ
f
(
x
1
)
+
(
1
−
λ
)
f
(
x
2
)
对于任意\lambda \in [0,1],f(\lambda x_1 + (1-\lambda)x_2) \leq \lambda f(x_1)+(1-\lambda)f(x_2)
对于任意λ∈[0,1],f(λx1+(1−λ)x2)≤λf(x1)+(1−λ)f(x2)如果这个函数是光滑的(几乎处处可以求导数/Hessian):
(一阶充要条件)
f
(
x
2
)
≥
f
(
x
1
)
+
∇
f
(
x
1
)
T
(
x
2
−
x
1
)
,
∀
x
1
,
x
2
∈
D
o
m
a
i
n
(
f
)
f(x_2)\geq f(x_1) + \nabla f(x_1)^T(x_2-x_1), \forall x_1,x_2 \in Domain(f)
f(x2)≥f(x1)+∇f(x1)T(x2−x1),∀x1,x2∈Domain(f)
(二阶充要条件)
∇
2
f
(
x
)
≥
0
,
∀
x
∈
D
o
m
a
i
n
(
f
)
\nabla^2 f(x) \geq 0, \forall x \in Domain(f)
∇2f(x)≥0,∀x∈Domain(f)
2. 最优化问题
详解
cs229笔记-凸优化2
+ 线性最优化:
+ 非线性最优化:
* 无约束最优化:直接令梯度等于0求解。
为了避免陷入局部最优,人们尽可能使用凸函数作为优化问题的目标函数。
方法举例:
* 梯度下降法:
x
k
+
1
=
x
k
−
α
∇
f
(
x
k
)
x_{k+1}=x_k - \alpha \nabla f(x_k)
xk+1=xk−α∇f(xk)
* 牛顿法:
x
k
+
1
=
x
k
−
α
H
k
−
1
∇
f
(
x
k
)
x_{k+1}=x_k - \alpha H_k^{-1}\nabla f(x_k)
xk+1=xk−αHk−1∇f(xk)
使用牛顿法收敛更快(迭代更少次数)。但是每次迭代的时间比梯度下降法长。
通俗来说梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。详解
* 约束最优化:
* 等式约束最优化:拉格朗日乘子法,构造拉格朗日函数,令偏导为0求解。
* 不等式约束最优化:构造拉格朗日函数,利用KKT条件求解。