前言

对人工智能数学课高等数学线性微积分数学教程的学习笔记。主要用于快速回忆已学的数学知识点,不适合基础学习。博客园中同步更新。


笔记目录

  • 前言
  • 7. 最优化
    • - 基本概念
    • - 梯度下降法
    • - 牛顿法
    • - 坐标下降法
    • - 数值优化算法面临的问题
    • - 凸优化问题
      • - 凸集
      • - 凸函数
      • - 凸优化的性质
      • - 凸优化一般的表述形式
    • - 拉格朗日乘数法
    • - 拉格朗日对偶
    • - KKT 条件

7. 最优化

- 基本概念

  • 求 f(x)f(x)f(x) 的极大值或极小值,xxx 是优化变量,就是自变量,f(x)f(x)f(x) 是目标函数,可能带有约束条件,满足约束并在定义域内的集合叫可行域;
    max⁡f(x)⇔min⁡f(x)gi(x)=0,i=1,⋯,mhj(x)≤0j=1,⋯,n\max f(x) \Leftrightarrow\min f(x)\\ g_i(x)=0,\quad i=1,\cdots,m\\ h_j(x)\le 0\quad j=1,\cdots,n maxf(x)⇔minf(x)gi​(x)=0,i=1,⋯,mhj​(x)≤0j=1,⋯,n

  • 局部极小值:任意在 x0x_0x0​ 的领域存在,f(x)≥f(x0),∀x∈δ(x0)f(x)\ge f(x_0), \forall x\in \delta (x_0)f(x)≥f(x0​),∀x∈δ(x0​)

  • 通过大量实践发现在高维度的优化问题中,局部极小值 (local minimum)和全局极小值没有太大的区别,甚至有时候有更好的泛化能力。

  • 为什么要迭代求解?(求导困难,求根困难),(初始值,逼近)

- 梯度下降法

xk+1=xk−γ∇f(xk)\boldsymbol{x}_{k+1}=\boldsymbol{x}_k-\gamma \nabla f(\boldsymbol{x}_k) xk+1​=xk​−γ∇f(xk​)

推导:

  1. 利用多元函数的泰勒展开公式:f(x)−f(x0)≈[∇f(x0)]T(x−x0)f(\boldsymbol{x})-f(\boldsymbol{x}_0)\approx[\nabla f(\boldsymbol{x}_0)]^T(\boldsymbol{x}-\boldsymbol{x}_0)f(x)−f(x0​)≈[∇f(x0​)]T(x−x0​)
  2. XTY=∣X∣⋅∣Y∣⋅cos⁡θX^TY=|X|\cdot|Y|\cdot\cos\thetaXTY=∣X∣⋅∣Y∣⋅cosθ,cos⁡θ=−1\cos\theta=-1cosθ=−1 下降幅度最大
  3. 为了使得下降幅度最大,向量 x−x0\boldsymbol{x}-\boldsymbol{x}_0x−x0​ (不一定是单位向量) 的方向和梯度方向相反:v=−∇f(x0)∥∇f(x0)∥\boldsymbol{v}=-\frac{\nabla f(\boldsymbol{x}_0)}{\left \| \nabla f(\boldsymbol{x}_0) \right \|}v=−∥∇f(x0​)∥∇f(x0​)​
  4. x=x0−η∇f(x0)∥∇f(x0)∥\boldsymbol{x}=\boldsymbol{x}_0-\eta\frac{\nabla f(\boldsymbol{x}_0)}{\left \| \nabla f(\boldsymbol{x}_0) \right \|}x=x0​−η∥∇f(x0​)∥∇f(x0​)​,分母是标量可并入 η\etaη,即 x=x0−η∇f(x0)\boldsymbol{x}=\boldsymbol{x}_0-\eta\nabla f(\boldsymbol{x}_0)x=x0​−η∇f(x0​)

η\etaη 是步长,不能太大,否则不满足约等于条件。

- 牛顿法

xk+1=x−Hk−1gk\boldsymbol{x}_{k+1}=\boldsymbol{x}-\boldsymbol{H}_k^{-1}\boldsymbol{g}_k xk+1​=x−Hk−1​gk​

思想:找梯度为0的点。

推导:

  1. 多元函数的泰勒展开公式展开二次以上的项
    f(x)=f(x0)+[∇f(x0)]T(x−x0)+12(x−x0)TH(x0)(x−x0)+o(x−x0)f(\boldsymbol{x})=f(\boldsymbol{x}_0)+[\nabla f(\boldsymbol{x}_0)]^T(\boldsymbol{x}-\boldsymbol{x}_0)+\frac {1}{2}(\boldsymbol{x}-\boldsymbol{x}_0)^TH(\boldsymbol{x}_0)(\boldsymbol{x}-\boldsymbol{x}_0)+\boldsymbol{o}(\boldsymbol{x}-\boldsymbol{x}_0) f(x)=f(x0​)+[∇f(x0​)]T(x−x0​)+21​(x−x0​)TH(x0​)(x−x0​)+o(x−x0​)
    取近似
    f(x)≈f(x0)+[∇f(x0)]T(x−x0)+12(x−x0)TH(x0)(x−x0)f(\boldsymbol{x})\approx f(\boldsymbol{x}_0)+[\nabla f(\boldsymbol{x}_0)]^T(\boldsymbol{x}-\boldsymbol{x}_0)+\frac {1}{2}(\boldsymbol{x}-\boldsymbol{x}_0)^TH(\boldsymbol{x}_0)(\boldsymbol{x}-\boldsymbol{x}_0) f(x)≈f(x0​)+[∇f(x0​)]T(x−x0​)+21​(x−x0​)TH(x0​)(x−x0​)

  2. 由于 (wTx)′=w(\boldsymbol{w}^T\boldsymbol{x})'=\boldsymbol{w}(wTx)′=w,(xTAx)′=(A+AT)x(\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x})'= (\boldsymbol{A}+\boldsymbol{A}^T)\boldsymbol{x}(xTAx)′=(A+AT)x,故有:
    ∇f(x)≈∇f(x0)+H(x0)(x−x0)=g+H(x−x0)\nabla f(\boldsymbol{x})\approx \nabla f(\boldsymbol{x}_0)+H(\boldsymbol{x}_0)(\boldsymbol{x}-\boldsymbol{x}_0)=\boldsymbol{g}+\boldsymbol{H}(\boldsymbol{x}-\boldsymbol{x}_0) ∇f(x)≈∇f(x0​)+H(x0​)(x−x0​)=g+H(x−x0​)

  3. 令 ∇f(x)=0\nabla f(\boldsymbol{x})=0∇f(x)=0,如果 Hessian 矩阵可逆,则有
    g+H(x−x0)=0⇒x−x0=−H−1g\boldsymbol{g}+\boldsymbol{H}(\boldsymbol{x}-\boldsymbol{x}_0)=0\\ \Rightarrow \boldsymbol{x}-\boldsymbol{x}_0=-\boldsymbol{H}^{-1}\boldsymbol{g} g+H(x−x0​)=0⇒x−x0​=−H−1g

对比:
xk+1=xk−η⋅gkxk+1=xk−η⋅Hk−1⋅gk\boldsymbol{x}_{k+1}=\boldsymbol{x}_k-\eta\cdot\boldsymbol{g}_k\\ \boldsymbol{x}_{k+1}=\boldsymbol{x}_k-\eta\cdot\boldsymbol{H}^{-1}_k\cdot\boldsymbol{g}_k xk+1​=xk​−η⋅gk​xk+1​=xk​−η⋅Hk−1​⋅gk​

  • 牛顿法步长设定不好就有可能不收敛,不是迭代就一定使得函数值下降,一般用 line search 的技术,选择一些值如 10−4,10−610^{-4},10^{-6}10−4,10−6,看哪个步长使得 f(xk+1)f(\boldsymbol{x}_{k+1})f(xk+1​) 更小。

  • 牛顿法收敛更快。

- 坐标下降法

  • 分治 (分而治之) 法的思想:保持其他不动,只优化其中一个,优化完了之后再回来重新优化。
  • 计算量小

- 数值优化算法面临的问题

  • 驻点不一定是极值点
  • 局部极值问题;
  • 鞍点问题,如 x3x^3x3,在这一点 Hessian 矩阵不定,

- 凸优化问题

前面数值优化面临两个问题,对这类问题进行限定:

  1. 优化变量的可行域必须是凸集;
  2. 优化函数必须是个凸函数。

同时满足这两个条件的叫凸优化问题,才能说局部极小值就是全局极小值。

- 凸集

  • 定义:对于一个点的集合 CCC,有属于它的两个点 x,yx,yx,y,它们两点连线中任意一点也属于该集合:θx+(1−θ)y∈C,0≤θ≤1\theta x+(1-\theta)y\in C,0\le\theta\le1θx+(1−θ)y∈C,0≤θ≤1
  • 典型的凸集:
    • 欧式空间 Rn\mathbb{R}^nRn:x,y∈Rn⇒θx+(1−θ)y∈Rn\boldsymbol{x},\boldsymbol{y} \in \mathbb{R}^n\Rightarrow \theta \boldsymbol{x} +(1-\theta)\boldsymbol{y}\in \mathbb{R}^nx,y∈Rn⇒θx+(1−θ)y∈Rn;很多可行域就是欧式空间,即凸集;
    • 仿射子空间:{x∈Rn:Ax=b}\left \{ \boldsymbol{x}\in\mathbb{R}^n:\boldsymbol{A}\boldsymbol{x}=\boldsymbol{b} \right \}{x∈Rn:Ax=b},x\boldsymbol{x}x 是 nnn 维欧式空间的向量,满足线性方程的解;所有等式约束构成的集合是凸集,不会构建非线性等式约束;
    • 多面体:{x∈Rn:Ax≤b}\left \{ \boldsymbol{x}\in\mathbb{R}^n:\boldsymbol{A}\boldsymbol{x}\le\boldsymbol{b} \right \}{x∈Rn:Ax≤b},线性不等式的解;一组线性不等式约束,也是凸集。
  • 凸集的交集也是凸集 ⋂i=1kCi\bigcap\limits_{i=1}^{k}C_ii=1⋂k​Ci​,并集不一定是凸集。

- 凸函数

  • 定义:函数上任意两点它们的连线 (即割线) 上的值比对应的函数上的值要大,f(θx+(1−θ)y)<θf(x)+(1−θ)f(y)f(\theta x+(1-\theta )y)<\theta f(x)+(1-\theta )f(y)f(θx+(1−θ)y)<θf(x)+(1−θ)f(y)
  • 凸函数的证明:
    1. 利用定义
    2. 利用一阶导数:
      • 一元函数:f(y)≥f(x)+f′(x)(y−x)f(y)\ge f(x)+f'(x)(y-x)f(y)≥f(x)+f′(x)(y−x)
      • 多元函数:f(y)≥f(x)+∇f(x)T(y−x)f(\boldsymbol{y})\ge f(\boldsymbol{x})+\nabla f(\boldsymbol{x})^T(\boldsymbol{y}-\boldsymbol{x})f(y)≥f(x)+∇f(x)T(y−x)
    3. 二阶判别法:
      • 一元函数:f′′(x)≥0f''(x)\ge 0f′′(x)≥0
      • 多元函数:Hessian 矩阵半正定,>0>0>0 是严格凸函数
  • 如果每个函数 fi(x)f_i(x)fi​(x) 都是凸函数,那么它们的非负线性组合 f(x)=∑i=1kwifi(x),wi≥0f(x)=\sum\limits_{i=1}^{k}w_if_i(x),w_i\ge 0f(x)=i=1∑k​wi​fi​(x),wi​≥0 也是凸函数。

- 凸优化的性质

目标函数是凸函数,可行域是凸集,则局部最优解一定是全局最优解。

证明:(反证法)

假设有一点 xxx 是局部最小值,但不是全局最小值,则存在另一个点 yyy 是全局最小值,这时 f(y)<f(x)f(y)<f(x)f(y)<f(x)。

证明 xxx 的领域有一个点 zzz 比 xxx 小即可,取 z=θy+(1−θ)x,θ=δ2∥x−y∥2z=\theta y+(1-\theta)x,\theta=\frac{\delta}{2\|x-y\|_2}z=θy+(1−θ)x,θ=2∥x−y∥2​δ​ 即可。

- 凸优化一般的表述形式

min⁡f(x),x∈C\min f(x),x\in C minf(x),x∈C

或者
min⁡f(x)ci(x)≤0,i=1,⋯,mhj(x)=0,j=1,⋯,k\min f(x)\\ c_i(x)\le0,i=1,\cdots,m\\ h_j(x)=0,j=1,\cdots,k minf(x)ci​(x)≤0,i=1,⋯,mhj​(x)=0,j=1,⋯,k

- 拉格朗日乘数法

将一个有n 个变量与k 个约束条件的最优化问题转换为一个有n + k个变量的方程组的极值问题,其变量不受任何约束;

(1) 等式约束条件
min⁡f(x)s.t.hk(x)=0k=1,2,⋯,l\min f(\boldsymbol{x})\\ s.t.\quad h_k(\boldsymbol{x})=0 \quad k=1,2,\cdots,l minf(x)s.t.hk​(x)=0k=1,2,⋯,l
求解步骤:

  1. 定义拉格朗日函数:
    F(x,λ)=f(x)+∑k=1lλkhk(x)F(\boldsymbol{x},\boldsymbol{\lambda})=f(\boldsymbol{x})+\sum\limits_{k=1}^l\lambda_kh_k(\boldsymbol{x}) F(x,λ)=f(x)+k=1∑l​λk​hk​(x)

  2. 解变量的偏导方程:
    ∂F∂xi=0,⋯,∂F∂λk=0,⋯\frac{\partial F}{\partial x_i}=0,\cdots,\frac{\partial F}{\partial \lambda _k}=0,\cdots ∂xi​∂F​=0,⋯,∂λk​∂F​=0,⋯

  3. 或者说是分别对 x\boldsymbol{x}x 和 λ\boldsymbol{\lambda}λ 求梯度,然后解方程组
    ∇xf+∑k=1lλk∇xhk=0hk(x)=0\nabla_xf+\sum\limits_{k=1}^l\lambda_k\nabla_xh_k=0\\ h_k(\boldsymbol{x})=0 ∇x​f+k=1∑l​λk​∇x​hk​=0hk​(x)=0

(2) 带不等式约束条件

可参考KKT条件。

- 拉格朗日对偶

min⁡f(x)gi(x)≤0,i=1,⋯,mhj(x)=0,j=1,⋯,k\min f(x)\\ g_i(x)\le0,i=1,\cdots,m\\ h_j(x)=0,j=1,\cdots,k minf(x)gi​(x)≤0,i=1,⋯,mhj​(x)=0,j=1,⋯,k

构建一个广义 (包括不等式约束) 的拉格朗日函数:
L(x,α,β)=f(x)+∑i=1mαigi(x)+∑j=1kβihj(x),αi≥0L(x,\alpha,\beta)=f(x)+\sum\limits_{i=1}^m\alpha_ig_i(x)+\sum\limits_{j=1}^k\beta_ih_j(x),\alpha_i\ge 0 L(x,α,β)=f(x)+i=1∑m​αi​gi​(x)+j=1∑k​βi​hj​(x),αi​≥0
问题转化为:
p∗=min⁡xmax⁡α,β,αi≥0L(x,α,β)=min⁡xθp(x)p^*=\min_x \max_{\alpha,\beta,\alpha_i\ge 0}L(x,\alpha,\beta)=\min_x\theta_p(x) p∗=xmin​α,β,αi​≥0max​L(x,α,β)=xmin​θp​(x)
理解可参考:【数学】拉格朗日对偶,从0到完全理解

无论如何,p∗p^*p∗ 都不会小于 max⁡α,β,αi≥0L(x,α,β)\max\limits_{\alpha,\beta,\alpha_i\ge 0}L(x,\alpha,\beta)α,β,αi​≥0max​L(x,α,β)。

- KKT 条件

min⁡f(x)gi(x)≤0,i=1,⋯,qhj(x)=0,j=1,⋯,p\min f(x)\\ g_i(x)\le0,i=1,\cdots,q\\ h_j(x)=0,j=1,\cdots,p minf(x)gi​(x)≤0,i=1,⋯,qhj​(x)=0,j=1,⋯,p

L(x,λ,μ)=f(x)+∑j=1pλjhj(x)+∑i=1qμigi(x)L(x,\lambda,\mu)=f(x)+\sum\limits_{j=1}^p\lambda_jh_j(x)+\sum\limits_{i=1}^q\mu_ig_i(x) L(x,λ,μ)=f(x)+j=1∑p​λj​hj​(x)+i=1∑q​μi​gi​(x)

KKT 条件:
∇xL(x∗)=∇f(x∗)+∑j=1pλi∗∇hj(x∗)+∑i=1qμi∗∇gi(x∗)=0μi∗≥0μi∗gi(x∗)=0hj(x∗)=0gi(x∗)≤0\nabla_x L(x^*)=\nabla f(x^*) +\sum\limits_{j=1}^p\lambda_i^*\nabla h_j(x^*)+\sum\limits_{i=1}^q\mu_i^*\nabla g_i(x^*)=0\\ \mu_i^*\ge0\\ \mu_i^*g_i(x^*)=0\\ h_j(x^*)=0\\ g_i(x^*)\le0 ∇x​L(x∗)=∇f(x∗)+j=1∑p​λi∗​∇hj​(x∗)+i=1∑q​μi∗​∇gi​(x∗)=0μi∗​≥0μi∗​gi​(x∗)=0hj​(x∗)=0gi​(x∗)≤0

人工智能数学课高等数学线性微积分数学教程笔记(7. 最优化)相关推荐

  1. 人工智能数学课高等数学线性微积分数学教程笔记(1. 数学内容概述)

    前言 对人工智能数学课高等数学线性微积分数学教程的学习笔记.主要用于快速回忆已学的数学知识点,不适合基础学习.博客园中同步更新. 文章目录 人工智能数学课高等数学线性微积分数学教程笔记(目录) 人工智 ...

  2. 人工智能数学课高等数学线性微积分数学教程笔记(2. 一元函数微分学)

    前言 对人工智能数学课高等数学线性微积分数学教程的学习笔记.主要用于快速回忆已学的数学知识点,不适合基础学习.博客园中同步更新. 文章目录 人工智能数学课高等数学线性微积分数学教程笔记(目录) 人工智 ...

  3. 人工智能数学课高等数学线性微积分数学教程笔记(3. 线性代数基础)

    前言 对人工智能数学课高等数学线性微积分数学教程的学习笔记.主要用于快速回忆已学的数学知识点,不适合基础学习.博客园中同步更新. 文章目录 人工智能数学课高等数学线性微积分数学教程笔记(目录) 人工智 ...

  4. 人工智能数学课高等数学线性微积分数学教程笔记(4. 多元函数的微分学)

    前言 对人工智能数学课高等数学线性微积分数学教程的学习笔记.主要用于快速回忆已学的数学知识点,不适合基础学习.博客园中同步更新. 文章目录 人工智能数学课高等数学线性微积分数学教程笔记(目录) 人工智 ...

  5. 人工智能数学课高等数学线性微积分数学教程笔记(6. 概率论)

    前言 对人工智能数学课高等数学线性微积分数学教程的学习笔记.主要用于快速回忆已学的数学知识点,不适合基础学习.博客园中同步更新. 文章目录 人工智能数学课高等数学线性微积分数学教程笔记(目录) 人工智 ...

  6. 人工智能数学课高等数学线性微积分数学教程笔记(目录)

    前言 本文是对人工智能数学课高等数学线性微积分数学教程的学习笔记.由于之前的文章<人工智能数学课高等数学线性微积分数学教程笔记>篇幅过大,导致打开的时候加载缓慢,也不利于阅读,同时由于CS ...

  7. 人工智能数学课高等数学线性微积分数学教程笔记

    目录 1. 数学内容概述 2. 一元函数微分学 - 导数 - 导数的定义 - 左导数.右导数和右导数 - 几何意义与物理意义 - 求导公式 - 基本函数 - 四则运算法则 - 复合函数求导法则 - 用 ...

  8. 人工智能-高等数学之微积分篇

    高等数学之微积分篇 接着上一篇<人工智能-高等数学之导数篇>,继续学习汇总微积分的知识,微分和导数外形很相似,导致有时候傻傻的分不清楚,在查找无数资料之后我找到了一个能够被理解的说法,导数 ...

  9. AI算法工程师 | 04人工智能基础-高等数学知识强化(一)数学内容概述

    数学内容概述 人工智能学习数学的必要性: 人工智能跟开发 APP 和后台服务器相比,人工智能需要大量的数学知识. 人工智能需要一些必要的数学知识,这对后续理解机器学习.深度学习的算法有帮助,会理解得更 ...

最新文章

  1. 独家 | TensorFlow 2.0将把Eager Execution变为默认执行模式,你该转向动态计算图了...
  2. win10html5无法播放,win10系统中网页中无法播放视频怎么办
  3. 单例模式 之 单例模式——Holder
  4. 灯泡亮度控制单片机_如何延长投影机灯泡使用寿命 延长投影机灯泡使用寿命方法【介绍】...
  5. Android Studio 日志工具
  6. 从零开始学PowerShell(7)编写一个函数体
  7. python生成随机数random操作_Python random生成随机数示例
  8. java Comparable和Comaprator的对比
  9. .NET 正则验证邮箱
  10. Sass基础——Rem与Px的转换
  11. python组合数据类型包括_第六周 python组合数据类型
  12. flex 平铺布局_Flex布局的个人见解~阮一峰的网络日志
  13. 《未来世界的幸存者》摘录
  14. cox回归模型python实现_cox回归模型python实现_生存分析Cox回归模型(比例风险模型)的spss操作实例...
  15. 从小学4年级的数学课开始解释线性回归
  16. linux安装Ice3.7 c++
  17. 卖出平仓是什么意思​?
  18. 僵尸网络“Mykings”
  19. LDA 与 KNN 算法
  20. abc237 D(想了一个小时结果跟模拟双向链表的插入一毛一样,老废物了,思路不清晰,建议remake)

热门文章

  1. 2021年三门中学高考成绩查询,2021长沙市地区高考成绩排名查询,长沙市高考各高中成绩喜报榜单...
  2. 第三十四章 数论——高斯消元解线性方程组
  3. 64位linux安装adobe flash play插件
  4. supermap使用idesktop发布二三维管线地图
  5. 定了,皮皮APP助力电子竞技游戏师职业技能标准发布
  6. 华为MUX VLAN
  7. Flutter Bloc构建轻量级MVVM
  8. drf 安装_drf 生成接口文档
  9. vue源码之解析指令compile
  10. 蓝桥杯三羊生瑞气,暴力破解