凸优化基础
数学基础系列博客是自己在学习了稀牛学院&网易云课堂联合举办的《人工智能数学基础》微专业后的课程笔记总结。怀着对授课讲师Jason博士无限的敬佩与感激之情,我在完整听了两遍课程之后,对这门进行了笔记整理。Jason博士用深入浅出的方式把数学知识真的是讲透彻了,我的笔记显然无法完整传达Jason博士的精彩授课内容,在此非常推荐每一个打算进入或了解AI的同学去学习这门课程!
一:一般优化问题
1.1 无约束优化问题
自变量为矢量的函数 f : R n → R f: \mathbf{R}^n\rightarrow \mathbf{R} f:Rn→R:
m i n f ( x ) x ∈ R n minf(\mathbf{x})\quad \mathbf{x} \in \mathbf{R}^n minf(x)x∈Rn
求解方法有两种:(均求得局部最优解,不一定是全局最优解,因为不知道函数的形状)
- 直接法求解。令 ∇ f ( x ) = 0 \nabla f(\mathbf{x})=0 ∇f(x)=0,求得驻点,如果有必要,则再根据Hessian矩阵的正定性判断驻点的性质(局部极大、局部极小、鞍点)
- 迭代法求解
- 梯度下降法( d k = − g k ) d_k=-g_k) dk=−gk),每次下降的方向为负梯度方向。
- 牛顿法( d k = − H k − 1 g k d_k=-H_k^{-1}g_k dk=−Hk−1gk),考虑泰勒级数中的二阶项。
- 拟牛顿法(避免求Hessian矩阵的逆,使用另一个矩阵 S k S_k Sk近似)
- DFP
- BFGS
- 两者的区别在于 S k S_k Sk的不同。
1.2 有约束优化问题
- 约束优化问题的一般形式:
m i n m i z e f 0 ( x ) s u b j e c t t o f i ( x ) ≤ 0 f o r i = 1 , 2 , . . . m h i ( x ) = 0 f o r i = 1 , 2 , . . . p minmize\quad f_0(\mathbf{x})\\ subject\ to\ f_i(\mathbf{x})\le0 \quad for\ i = 1,2,...m\\ \quad \quad \quad \quad h_i(\mathbf{x}) = 0\quad for\ i=1,2,...p minmizef0(x)subject to fi(x)≤0for i=1,2,...mhi(x)=0for i=1,2,...p
-
可行域:满足 f ( x ) f(\mathbf{x}) f(x)定义域和约束条件的 x \mathbf{x} x的集合。
-
举例:下图中虚线为等高线
minimize f ( x ) = x 1 2 + x 2 2 − 4 x 1 + 4 = ( x 1 − 2 ) 2 + x 2 2 subject to c 1 ( x ) = x 1 − 2 x 2 + 6 ≥ 0 c 2 ( x ) = − x 1 2 + x 2 − 1 ≥ 0 , c 3 ( x ) = x 1 ≥ 0 , c 4 ( x ) = x 2 ≥ 0 \text{minimize} \quad f(\mathrm{x})=x_{1}^{2}+x_{2}^{2}-4 x_{1}+4=\left(x_{1}-2\right)^{2}+x_{2}^{2}\\ \text{subject to} \quad c_{1}(\mathrm{x})=x_{1}-2 x_{2}+6 \geq 0\\ \qquad \qquad \qquad c_{2}(\mathrm{x})=-x_{1}^{2}+x_{2}-1 \geq 0, \\\quad c_{3}(\mathrm{x})=x_{1} \geq 0, \\\quad c_{4}(\mathrm{x})=x_{2} \geq 0 minimizef(x)=x12+x22−4x1+4=(x1−2)2+x22subject toc1(x)=x1−2x2+6≥0c2(x)=−x12+x2−1≥0,c3(x)=x1≥0,c4(x)=x2≥0
1.3 补充知识 A x = b \mathbf{Ax=b} Ax=b
矩阵乘法
[ 2 − 1 1 1 ] ⎵ A ∈ R 2 × 2 [ x y ] ⎵ x ∈ R 2 = [ 1 5 ] ⎵ b ∈ R 2 \underbrace{\left[ \begin{array}{cc}{2} & {-1} \\ {1} & {1}\end{array}\right]}_{\mathbf{A} \in \mathbb{R}^{2 \times 2}} \underbrace{\left[ \begin{array}{l}{x} \\ {y}\end{array}\right]}_{\mathbf{x} \in \mathbb{R}^{2}}=\underbrace{\left[ \begin{array}{l}{1} \\ {5}\end{array}\right]}_{\mathbf{b} \in \mathbb{R}^{2}} A∈R2×2
[21−11]x∈R2
[xy]=b∈R2
[15]
[ 2 1 1 4 − 6 0 − 2 7 2 ] ⎵ A ∈ R 3 × 3 [ u v w ] ⎵ x ∈ R 3 = [ 5 − 2 9 ] ⎵ b ∈ R 3 \underbrace{\left[ \begin{array}{ccc}{2} & {1} & {1} \\ {4} & {-6} & {0} \\ {-2} & {7} & {2}\end{array}\right]}_{\mathbf{A} \in \mathbb{R}^{3 \times 3}} \underbrace{\left[ \begin{array}{l}{u} \\ {v} \\ {w}\end{array}\right]}_{\mathbf{x} \in \mathbb{R}^{3}}=\underbrace{\left[ \begin{array}{c}{5} \\ {-2} \\ {9}\end{array}\right]}_{\mathbf{b} \in \mathbb{R}^{3}} A∈R3×3 ⎣⎡24−21−67102⎦⎤x∈R3 ⎣⎡uvw⎦⎤=b∈R3 ⎣⎡5−29⎦⎤
- 行视图- 超平面
2 x − y = 1 x + y = 5 \begin{aligned} 2 x-y &=1 \\ x+y &=5 \end{aligned} 2x−yx+y=1=5
对于 A x = b \mathbf{Ax=b} Ax=b,从行视图的角度,可以理解为多个超平面的交集。所谓超平面,在二维空间中指直线,在三维空间中指平面。在更高维空间中,不可以可视化,但可以类比理解为 y = w T x + b y = \mathbf{w^Tx}+b y=wTx+b的平面。
二:凸集和凸函数
2.1 凸集
2.1.1 凸集和仿射集
-
仿射集:集合中任意两点间的直线也在集合中,那么该集合称为仿射集。例如 x = θ x 1 + ( 1 − θ ) x 2 ∈ C , ( C ∈ R n , θ ∈ R ) \mathbf{x}=\theta\mathbf{x_1}+(1-\th