ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

凸优化简明笔记

2021-02-09 17:01:45  阅读:266  来源: 互联网

标签:凸函数 sigma sum 简明 笔记 leq 优化 gamma lambda


文章目录

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-meansmin ∑ 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,之后再进一步处理。


参考链接 - 贪心科技

标签:凸函数,sigma,sum,简明,笔记,leq,优化,gamma,lambda
来源: https://blog.csdn.net/weixin_31948131/article/details/113742597

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有