凸优化简明笔记

文章目录

1. 优化

AI 问题 = 模型 + 优化

模型:DL、LR、SVM、XGboost、NN等
优化:GD/SGD、Adamw、L-BFGS、Coordinate Descent、EM等
 任何一个优化问题,都可以写成如下形式:Minimize f 0 ( x ) f_0(x) f0​(x)
 s.t.  f i ( x ) ≤ 0 , i = { 1 , … , K } g j ( x ) = 0 , j = { 1 , … , L } \begin{aligned} \text { s.t. } & f_{i}(x) \leq 0, & & i=\{1, \ldots, K\} \\ & g_{j}(x)=0, & & j=\{1, \ldots, L\} \end{aligned}  s.t. ​fi​(x)≤0,gj​(x)=0,​​i={1,…,K}j={1,…,L}​

1.1 机器学习中优化函数

机器学习算法 优化函数
线性回归 Linear Regression ∑ i = 1 n ( w T x i − y i ) 2 + ∥ w ∥ 2 2 \sum_{i=1}^{n}\left(w^{T} x_{i}-y_{i}\right)^{2}+\|w\|_{2}^{2} ∑i=1n​(wTxi​−yi​)2+∥w∥22​
逻辑回归 Logistic Regression ∑ i = 1 n y i log ⁡ σ ( w T x i + b ) + ( 1 − y i ) log ⁡ [ 1 − σ ( w T x i + b ) ] \sum_{i=1}^{n} y_{i} \log \sigma^{\left(w^{T} x_{i}+b\right)}+\left(1-y_{i}\right) \log \left[1-\sigma^{\left(w^{T} x_{i}+b\right)}\right] ∑i=1n​yi​logσ(wTxi​+b)+(1−yi​)log[1−σ(wTxi​+b)]
SVM Support Vector Machine ∥ w ∥ 2 2 + λ ∑ i = 1 n ϵ i \|w\|_{2}^{2}+\lambda \sum_{i=1}^{n} \epsilon_{i} ∥w∥22​+λ∑i=1n​ϵi​ s.t. ϵ i ≥ 1 − y i ( w T x i + b ) \epsilon_{i} \geq 1-y_{i}\left(w^{T} x_{i}+b\right) ϵi​≥1−yi​(wTxi​+b)
协同过滤 Collaborative Filtering ∑ ( i , j ) ∈ Ω ( μ i T v j − γ i j ) 2 + λ ∥ μ ∥ F 2 + γ ∥ μ ∥ F 2 \sum_{(i, j) \in \Omega}\left(\mu_{i}^{T} v_{j}-\gamma_{i j}\right)^{2}+\lambda\|\mu\|_{F}^{2}+\gamma\|\mu\|_{F}^{2} ∑(i,j)∈Ω​(μiT​vj​−γij​)2+λ∥μ∥F2​+γ∥μ∥F2​
K均值 K-means min ∑ i = 1 n ∑ k = 1 n γ i k ∥ x i − μ E ∥ 2 2 \sum_{i=1}^{n} \sum_{k=1}^{n} \gamma_{i k}\left\|x_{i}-\mu_{E}\right\|_{2}^{2} ∑i=1n​∑k=1n​γik​∥xi​−μE​∥22​
γ i k = { 1 ,  当样本i属于第k类 0 ,  others  \gamma_{i k}=\left\{\begin{array}{ll}1, & \text { 当样本i属于第k类} \\ 0, & \text { others }\end{array}\right. γik​={1,0,​ 当样本i属于第k类 others ​

1.2 优化分类 Optimization Categories

 根据优化的标准化形式 f 0 ( x ) f_0(x) f0​(x),接下来判断这个标准化形式是属于哪一个类别,从以下四个方面进行对优化进行分类

  1. 是否是convexnon-convex
  2. continuous 还是 discrete
  3. constrained(受约束) 还是 unconstrained
  4. smooth 还是 non-smooth

  对convex可以找到 Global optimal, 对non-convex只能找到 Local optimal,对于非凸问题,最好去找到 Better Local Optimal。在深度学习里面,初始化影响Local optimal,这也是为什么在深度学习领域花大量时间做预训练的过程。在图像识别领域,会做 ImageNet pre-training,用在后续的图像识别的任务里面,核心为了去找到更好的初始化的解。在 NLP领域,会使用像 word2vec词向量,词向量也是一种初始化的方式,把已经训练好的东西拿过来用,就意味着想在开始算法之前先找到一个初始解。在深度学习领域,会面对复杂的non-convex,这种算法里面,优化器也是非常重要的。
  遇到一个non-convex问题,一般三种做法

  1. 硬解,这个问题本身比较简单
  2. 问题本身比较难,转化成convex问题来解决,再优化
  3. 通过常规算法来解,带来的通常都是local optimal

1.3 凸集 Convex Set

Convex Optimization - cvxbook link
  实数域R上(或复数C上)的向量空间中,如果集合S中任意两点的连线上的点都在S内,则称集合S为凸集,如下图所示
凸优化简明笔记
  数学定义为:设集合 D ⊂ R n D\subset R^n D⊂Rn,若对于任意两点 x , y ∈ D x, y \in D x,y∈D,及实数 λ ( 0 ≤ λ ≤ 1 ) \lambda (0 \leq \lambda \leq 1) λ(0≤λ≤1)都有: λ x + ( 1 − λ ) y ∈ D \lambda x+(1-\lambda)y \in D λx+(1−λ)y∈D则称集合 D D D为凸集。
凸集的例子:

  • 所有的 R n R^n Rn
  • 所有正整数集合 R + n R_+^n R+n​
  • 范数 ∥ x ∥ ≤ 1 \|x\| \leq 1 ∥x∥≤1
    • ∀ x , y ∥ x ∥ ≤ 1 , ∥ y ∥ ≤ 1 , ∥ λ x + ( 1 − λ ) y ∥ ≤ ∥ λ x ∥ + ∥ ( 1 − λ ) y ∥ = λ ∥ x ∥ + ( 1 − λ ) ∥ y ∥ ≤ λ + ( 1 − λ ) = 1 \forall x,y \quad \|x\| \leq 1, \|y\| \leq 1, \quad \|\lambda x+(1-\lambda)y\| \leq \|\lambda x\| +\|(1-\lambda)y\|=\lambda \|x\| +(1-\lambda)\|y\| \leq \lambda + (1-\lambda)=1 ∀x,y∥x∥≤1,∥y∥≤1,∥λx+(1−λ)y∥≤∥λx∥+∥(1−λ)y∥=λ∥x∥+(1−λ)∥y∥≤λ+(1−λ)=1
  • Affine set:线性方程组是所有的解 A x = b Ax = b Ax=b
  • Halfsapce:不等式所有的解: A x ≤ b Ax \leq b Ax≤b
  • 两个凸集的交集也是凸集

凸集分离定理

 所谓两个凸集分离,直观地看是指两个凸集没有交叉和重合的部分,因此可以用一张超平面将两者隔在两边,如下图所示
凸优化简明笔记

1.4 凸函数 Convex Function

 凸函数是一个定义在某个向量空间凸子集 C C C(区间)上的实值函数 f f f,如果在其定义域 C C C上的任意两点 x , y x, y x,y,以及 t ∈ [ 0 , 1 ] t \in [0,1] t∈[0,1],有 f ( t x + ( 1 − t ) y ) ≤ t f ( x ) + ( 1 − t ) f ( y ) f(tx + (1-t)y) \leq t f(x)+(1-t)f(y) f(tx+(1−t)y)≤tf(x)+(1−t)f(y)也就是说,一个函数是凸的当且仅当上镜图(在函数图像上的点集)为一个凸集
 如果一个函数是凸函数,则其仅有一个全局最优解,没有局部最优解。这个性质在机器学习算法优化中有很重要的应用,因为机器学习模型最后就是在求某个函数的全局最优解,一旦证明该函数(机器学习里面叫损失函数)是凸函数,那相当于我们一定能找到它的全局最优解
凸优化简明笔记 凸函数的例子

  • 线性函数为凸/凹函数
    • f ( x ) = b T x + c ⇒ f(x)=b^Tx+c \Rightarrow f(x)=bTx+c⇒凸函数,证明 ∀ x 1 , x 2 ⇒ f ( x 1 ) = b T x 1 + c , f ( x 2 ) = b T x 2 + c \forall x_1,x_2 \Rightarrow f(x_1)=b^Tx_1+c,\quad f(x_2)=b^Tx_2+c ∀x1​,x2​⇒f(x1​)=bTx1​+c,f(x2​)=bTx2​+c
        b T ( t x 1 + ( 1 − t ) x 2 ) + c ≤ t ( b T x 1 + c ) + ( 1 − t ) ( b T x 2 + c ) b^T(tx_1+(1-t)x_2)+c \leq t(b^Tx_1+c)+(1-t)(b^Tx_2+c) bT(tx1​+(1−t)x2​)+c≤t(bTx1​+c)+(1−t)(bTx2​+c)
        t b T x 1 + ( 1 − t ) b T x 2 + c ≤ t b T x 1 + t c + ( 1 − t ) b T x 2 + ( 1 − t ) c tb^Tx_1 + (1-t)b^Tx_2+c \leq tb^Tx_1+tc +(1-t)b^Tx_2+(1-t)c tbTx1​+(1−t)bTx2​+c≤tbTx1​+tc+(1−t)bTx2​+(1−t)c
         c ≤ c c \leq c c≤c
  • e x e^x ex, − l o g x -logx −logx, x l o n g x xlongx xlongx是凸函数
  • 范数为凸函数
  • x T x t \cfrac {x^Tx}t txTx​为凸函数 ( x > 0 ) (x>0) (x>0)

First order Convexity Condition:假设 f : R n → R f:R^n\rightarrow R f:Rn→R是可导的differentiable,则 f f f为凸函数,当且仅当: f ( y ) ≥ f ( x ) + ∇ ( x ) T ( y − x ) f(y) \geq f(x)+\nabla(x)^{T}(y-x) f(y)≥f(x)+∇(x)T(y−x),对于任意的 x , y ∈ d o m f x,y \in domf x,y∈domf。
凸优化简明笔记Second order Convexity Condition:假设 f : R n → R f:R^n\rightarrow R f:Rn→R是两次可导的twice differentiable,则 f f f为凸函数,当且仅当: ∇ 2 f ( x ) ≥ 0 \nabla^2 f(x) \ge 0 ∇2f(x)≥0,对于任意的 x , y ∈ d o m f x,y \in domf x,y∈domf。

1.5 优化-运输问题

凸优化简明笔记 对于线性规划问题解法,可以参考这个例子解法

1.6 股票/投资 组合优化 portfolio optimization

 有一定金额钱,分别买 1 , 2... m {1,2...m} 1,2...m只不同类型的股票,使收益最大。
思路流程:

  1. 设定决策变量 Decision Variable w 1 , w 2 , . . . , w n w_1,w_2,...,w_n w1​,w2​,...,wn​
    w i w_i wi​表示总金额钱数投放到第 i 只股票的百分占比(权重)

  2. 优化目标函数 Objective最大化收益 + 最小化风险
    假设每只股票的收益服从正态分布, S i S_i Si​表示第 i 只股票的收益,属于随机变量。 S 1 ∼ N ( γ 1 , σ 1 2 ) S_1\sim N(\gamma_1, \sigma_1^2) S1​∼N(γ1​,σ12​),…, S m ∼ N ( γ m , σ m 2 ) S_m\sim N(\gamma_m, \sigma_m^2) Sm​∼N(γm​,σm2​)
    对其中某一只股票,可以看出它过去一年变化波形图,可以假设将其划分成12个部分(月份),分别计算每个小区间的涨幅 γ i 1 , γ i 2 . . . , γ i 12 \gamma_{i1},\gamma_{i2}...,\gamma_{i12} γi1​,γi2​...,γi12​(平均值),则 γ i = γ i 1 + γ i 2 + . . . + γ i 12 12 \gamma_i = \frac{\gamma_{i1}+ \gamma_{i2}+...+ \gamma_{i12}}{12} γi​=12γi1​+γi2​+...+γi12​​。标准差 σ \sigma σ也可以计算出来。这里就可以得出 ∀ γ i , σ 2 \forall \gamma_i, \sigma^2 ∀γi​,σ2已知的条件 ( i = 1 , . . . , m ) (i=1,...,m) (i=1,...,m)
    S 1 w 1 + S 2 w 2 + . . . + S m w m ∼ N ( w 1 γ 1 + w 2 γ 2 + . . . + w m γ m , ∑ j ∑ i ≠ j w i w j σ i j ) S_1w_1+S_2w_2+... +S_mw_m \sim N(w_1\gamma_1+w_2\gamma_2+...+w_m\gamma_m , \quad \sum_j\sum_{i\neq j}w_iw_j\sigma_{ij}) S1​w1​+S2​w2​+...+Sm​wm​∼N(w1​γ1​+w2​γ2​+...+wm​γm​,∑j​∑i​=j​wi​wj​σij​), S i S_i Si​服从正太分布,所以它们的加权平均也服从正太分布。 w 1 γ 1 + w 2 γ 2 + . . . + w m γ m w_1\gamma_1+w_2\gamma_2+...+w_m\gamma_m w1​γ1​+w2​γ2​+...+wm​γm​均值,代表投资组合的收益, ∑ j ∑ i ≠ j w i w j σ i j \sum_j\sum_{i\neq j}w_iw_j\sigma_{ij} ∑j​∑i​=j​wi​wj​σij​方差,代表投资组合的风险
    min − ∑ i = 1 m w i γ i + λ ∑ j ∑ i ≠ j w i w j σ i j -\sum_{i=1}^mw_i\gamma_i+\lambda\sum_j\sum_{i\neq j}w_iw_j\sigma_{ij} −∑i=1m​wi​γi​+λ∑j​∑i​=j​wi​wj​σij​, λ \lambda λ指两个trade-off, λ \lambda λ偏大,指风险偏大, λ \lambda λ偏小,收益就偏大。将目标函数向量化形式简写,见步骤3。

  3. 约束条件 constraint
    min − R T w + λ w T ∑ w -R^Tw+\lambda w^T\sum w −RTw+λwT∑w s.t. ∑ i = 1 m w i = 1 \sum_{i=1}^mw_i=1 ∑i=1m​wi​=1
      R = ( γ 1 γ 2 ⋯ γ m ) R=\left(\begin{array}{c}\gamma_{1} \\ \gamma_{2} \\ \cdots \\ \gamma_{m}\end{array}\right) R=⎝⎜⎜⎛​γ1​γ2​⋯γm​​⎠⎟⎟⎞​, Σ = ( σ 1 2 , σ 1 σ 2 , ⋯ σ 1 σ m ⋯ σ m 2 ) \Sigma=\left(\begin{array}{ccc}\sigma_{1}^{2}, \sigma_{1} \sigma_{2}, & \cdots & \sigma_{1} \sigma_{m} \\ & \cdots & \\ & & \sigma_{m}^{2}\end{array}\right) Σ=⎝⎛​σ12​,σ1​σ2​,​⋯⋯​σ1​σm​σm2​​⎠⎞​

  4. 判断问题类型, convex Quadratic Programming,详细描述可以查看这个链接

  5. 设计、使用solver

实际问题中,还要考虑到

  • 成本
  • 买不进去情况(不确定性)
  • sparse (从3000只股票中如何挑出最好50只),可尝试加 ∥ w ∥ 1 \|w\|_1 ∥w∥1​, w 1 w_1 w1​正则

Set Cover Problem

  假设有个全集U (Universal Set),以及m个子集合 S 1 , S 2 , . . . , S m S_1,S_2,...,S_m S1​,S2​,...,Sm​,目标是寻找最少的集合,使得集合的union等于U。
  例子: U = { 1 , 2 , 3 , 4 , 5 } U=\{1,2,3,4,5\} U={1,2,3,4,5}, S : { S 1 = { 1 , 2 , 3 } , S 2 = { 2 , 4 } , S 3 = { 1 , 3 } , S 4 = { 4 } , S 5 = { 3 , 4 } , S 6 = { 4 , 5 } } S: \{S_1=\{1,2,3\}, S_2=\{2,4\},S_3=\{1,3\},S_4=\{4\},S_5=\{3,4\},S_6=\{4,5\}\} S:{S1​={1,2,3},S2​={2,4},S3​={1,3},S4​={4},S5​={3,4},S6​={4,5}},最少的集合为: { 1 , 2 , 3 } , { 4 , 5 } \{1,2,3\}, \{4,5\} {1,2,3},{4,5},集合个数为2。
数学公式描述:

  1. 设定决策变量 Decision Variable: x i x_i xi​,集合 x i x_i xi​是否被选择, x i ∈ { 0 , 1 } x_i \in \{0,1\} xi​∈{0,1}

  2. 优化目标函数 Objective: ∑ i = 1 m x i \sum_{i=1}^mx_i ∑i=1m​xi​

  3. 约束条件 constraint :
      对每个元素e都必须出现在大集合U中,如e=1时,包含1的集合为{ s 1 , s 3 s_1, s_3 s1​,s3​},则 s 1 , s 3 s_1, s_3 s1​,s3​中必须要包含一个,类推可得 ∑ i : e ∈ S i x i ≥ 1 \sum_{i:e \in S_i}x_i \ge 1 ∑i:e∈Si​​xi​≥1
     minimize  ∑ i = 1 m x i  s.t.  ∑ i : e ∈ s i x i ≥ 1 x i ∈ { 0 , 1 } i = 1 , … , m \begin{array}{l} \text { minimize } \sum_{i=1}^{m} x_{i} \\ \text { s.t. } \sum_{i: e \in s_{i}} x_{i} \geq 1 \\ x_{i} \in\{0,1\} \quad i=1, \ldots, m \end{array}  minimize ∑i=1m​xi​ s.t. ∑i:e∈si​​xi​≥1xi​∈{0,1}i=1,…,m​

  4. 判断问题类型:非凸函数
      x i x_i xi​只能选择0或1,不是一个凸集。

  5. 设计、使用solver Integer Linear Programming (ILP)

对于上述步骤4,可以对 x i ∈ { 0 , 1 } x_i \in \{0,1\} xi​∈{0,1}进行松弛化relaxation,使之为 0 ≤ x i ≤ 1 0 \leq x_i \leq 1 0≤xi​≤1,再进行处理,可设置 x i ≥ 0.5 ⇒ x i = 1 x_i \ge 0.5 \Rightarrow x_i=1 xi​≥0.5⇒xi​=1, x i < 0.5 ⇒ x i = 0 x_i \lt 0.5 \Rightarrow x_i=0 xi​<0.5⇒xi​=0,之后再进一步处理。


参考链接 - 贪心科技

上一篇:博雅大数据机器学习十讲第十讲


下一篇:拉格朗日插值