码迷,mamicode.com
首页 > 其他好文 > 详细

最优化理论与技术(一)

时间:2019-09-22 15:04:49      阅读:97      评论:0      收藏:0      [点我收藏+]

标签:扩展   算法   顺序   matrix   最优化问题   定义   多目标   blog   变量   

课程内容

  1. 预备知识
  2. 线性规划
  3. 一维搜索方法
  4. 无约束最优化方法
  5. 约束最优化方法
  6. 工程应用优化

预备知识

  1. 最优化问题
  2. 多元函数的Taylor公式
  3. 多元函数极值问题
  4. 凸集、凸函数和凸优化
  5. 算法相关概念
  6. 算法概述

最优化问题

数学表示

\[minf(x)\\s.t \quad c(x)\ge 0\]

  • \(x=(x_1,x_2,...,x_n)\)是一个包含多变量的向量:决策变量
  • \(c(x)\)是对各个变量约束的等式和不等式:约束条件
    • 可行域:约束条件在空间围成的区域
    • 可行解:可行域中每个点都是原问题的可行点
  • \(f(x)\):目标函数
    • 最优解:能使目标函数达到最大或最小的可行解

分类

按约束

  • 无约束
  • 有约束
    • 等式约束
    • 不等式约束

按目标函数

  • 线性规划
  • 非线性规划

按函数变量

  • 整数规划
  • 非整数规划

按目标函数个数

  • 单目标优化
  • 多目标优化

多元函数的Taylor公式

多元函数的梯度

偏导:多元函数降维时的变化,比如二元函数固定\(y\),只让\(x\)单独变化,从而看成关于\(x\)的一元函数的变化

\[f_x(x,y)=lim_{\Delta x \to 0}\frac{f(x+\Delta x,y)-f(x,y)}{\Delta x}\]

记作\(\frac{\partial f(x,y)}{\partial x}\)

梯度:多元函数在\(A\)点无数个变化方向中变化最快的那个方向;每一个变量都沿着关于这个变量的偏导所指定的方向来变化,函数的整体变化就能达到最大 (变化的绝对值最大) 。

\[gradA=(f_x(A),f_y(A),f_z(A))\]

多元函数的极值与Hessian矩阵

参考Hessian矩阵与多元函数极值

一元函数极值问题\(f(x)=x^2\),先求一阶导数\(f'(x)=2x\),根据费马定理极值点处的一阶导数一定等于0。

  • 费马定理给出的是必要条件,由一阶导数=0可推出该店为极值,但不能由极值推出一阶导数=0
  • 对该二次函数,一阶导数=0求得极值,但对\(f(x)=x^3\),只检查一阶导数是不足以推出结果的
  • \(f(x)=x^3\),再求二阶导数,如果\(f''<0\),说明函数在该点取得局部极大值;如果\(f''>0\),说明函数在该点取得局部极小值;如果\(f''=0\),说明结果任然不确定,需要其他方式确定函数极值

多元函数极值问题\(f=f(x,y,z)\),首先对每一个变量分别求偏导数,求得函数的可能极值点

\[\frac{\partial f}{\partial x}=0\\\frac{\partial f}{\partial y}=0\\\frac{\partial f}{\partial z}=0\]

接下来,继续求二阶导数,包含混合偏导共9个偏导函数,用矩阵表示得到

\[H=\begin{matrix}\frac{\partial ^2f}{\partial x \partial x} & \frac{\partial ^2 f}{\partial x \partial y } & \frac{\partial ^2 f}{\partial x \partial z } \\ \frac{\partial ^2f}{\partial y \partial x} & \frac{\partial ^2 f}{\partial y \partial y } & \frac{\partial ^2 f}{\partial y \partial z } \\ \frac{\partial ^2f}{\partial z \partial x} & \frac{\partial ^2 f}{\partial z \partial y } & \frac{\partial ^2 f}{\partial z \partial z}\end{matrix}\]

矩阵\(H\)就是一个三阶Hessian矩阵。扩展到一般情况,对一个在定义域内二阶连续可导的实质多元函数\(f(x_1,x_2,...,x_n)\)定义其Hessian矩阵\(H\)如下

\[H=\begin{matrix}\frac{\partial ^2f}{\partial x_1 \partial x_1} & \frac{\partial ^2 f}{\partial x_1 \partial x_2 } & \dots &\frac{\partial ^2 f}{\partial x_1 \partial x_n } \\ \frac{\partial ^2f}{\partial x_2 \partial x_1} & \frac{\partial ^2 f}{\partial x_2 \partial x_2 } & \dots & \frac{\partial ^2 f}{\partial x_2 \partial x_n } \\ \vdots & \vdots & \ddots & \vdots \\\frac{\partial ^2f}{\partial x_n \partial x_1} & \frac{\partial ^2 f}{\partial x_n \partial x_2 } & \dots & \frac{\partial ^2 f}{\partial x_n \partial x_n}\end{matrix}\]

当一元函数的二阶导数=0,不能确定函数在该点的极值性。类似地,当Hessian矩阵行列式=0,也不能断定多元函数极值性的情况。甚至可能得到一个鞍点,也就是一个既非极大值也非极小值的点。

基于Hessian矩阵,可判断多元函数极值情况如下:

  1. 如果Hessian矩阵是正定矩阵,则临界点处是一个局部极小值
  2. 如果Hessian矩阵是负定矩阵,则临界点处是一个局部极大值
  3. 如果Hessian矩阵是不定矩阵,则临界点处不是极值

判断矩阵是否正定:

  1. 顺序主子式;实对称矩阵为正定矩阵的充要条件是的各顺序主子式都大于零
  2. 特征值;实二次型矩阵为正定二次型的充要条件是的矩阵的特征值全大于零;负定二次型的充要条件是的矩阵的特征值全小于零;否则是不定的

泰勒展开式

一元函数的泰勒公式:设一元函数\(f(x)\)在包含点\(x_0\)的开区间\((a,b)\)内具有\(n+1\)阶导数,则当\(x \in (a,b)\)时,\(f(x)\)\(n\)阶泰勒公式为:

\[f(x)=f(x_0)+f'(x_0)(x-x_0)+\frac{f''(x_0)}{2!}(x-x_0)^2+...+\frac{f^{(n)}(x_0)}{n!}(x-x_0)^n+R_n(x)\]

其中,\(R_n(x)\)的拉格朗日余项表达形式

\[R_n(x)=\frac{f^{(n+1)}(\xi)}{(n+1)!}(x-x_0)^{n+1}\quad \xi \in (x,x_0)\]

\(R_n(x)\)的皮亚诺余项表达形式

\[R_n(x)=o[(x-x_0)^n]\]

二元函数的泰勒公式:设二元函数\(z=f(x,y)\)在点\((x_0,y_0)\)的某一领域内连续且有直到\(n+1\)阶的连续偏导数,则有

\[f(x,y)=f(x_0,y_0)+[(x-x_0)\frac{\partial}{\partial x}+(y-y_0)\frac{\partial}{\partial y}]f(x_0,y_0)+\\ \frac{1}{2!}[(x-x_0)\frac{\partial}{\partial x}+(y-y_0)\frac{\partial}{\partial y}]^2f(x_0,y_0)+...\\ +\frac{1}{n!}[(x-x_0)\frac{\partial}{\partial x}+(y-y_0)\frac{\partial}{\partial y}]^nf(x_0,y_0)\\+R_n(x,y)\]

其中,记号

\[(x-x_0)\frac{\partial}{\partial x}+(y-y_0)\frac{\partial}{\partial y}]f(x_0,y_0)\]

表示

\[(x-x_0)f_x(x_0,y_0)+(y-y_0)f_y(x_0,y_0)\]

记号

\[[(x-x_0)\frac{\partial}{\partial x}+(y-y_0)\frac{\partial}{\partial y}]^2f(x_0,y_0)\]

表示

\[(x-x_0)^2f_{xx}(x_0,y_0)+2(x-x_0)(y-y_0)f_{xy}(x_0,y_0)+(y-y_0)^2f_{yy}(x_0,y_0)\]

一般地,记号

\[[(x-x_0)\frac{\partial}{\partial x}+(y-y_0)\frac{\partial}{\partial y}]^mf(x_0,y_0)\]

表示

\[\sum_{p=0}^m C_m^p(x-x_0)^p(y-y_0)^{(m-p)} \frac{\partial^m f}{\partial x^p\partial y^{(m-p)}}|_{(x_0,y_0)}\]

用一般化表达式重写上面的式子

\[f(x,y)=\sum_{k=0}^n\frac{1}{k!}[(x-x_0)\frac{\partial}{\partial x}+(y-y_0)\frac{\partial}{\partial y}]^kf(x_0,y_0)\\ +R_n(x,y)\]

拉格朗日余项为:

\[R_n(x,y)=\frac{1}{(n+1)!}[(x-x_0)\frac{\partial}{\partial x}+(y-y_0)\frac{\partial}{\partial y}]^{(n+1)}f(x_0+\theta(x-x_0),y_0+\theta(y-y_0))\\\theta \in (0,1)\]

皮亚诺余项为:

\[R_n(x,y)=o(\rho^n)\]

Hessian矩阵与泰勒展开的关系:对于一个多维向量\(X\),多元函数\(f(X)\)在点\(X_0\)的领域内有连续二阶偏导数,可写出\(f(X)\)在点\(X_0\)处的二阶泰勒展开式

\[f(\mathbf{X})=f(\mathbf{X}_0)+(\mathbf{X}-\mathbf{X}_0)^T\nabla f(\mathbf{X}_0)+\frac{1}{2!}(\mathbf{X}-\mathbf{X}_0)^T\nabla^2 f(\mathbf{X}_0)(\mathbf{X}-\mathbf{X}_0)+o(\|\mathbf{X}-\mathbf{X}_0\|^2)\]

\(\nabla^2 f(\mathbf{X}_0)\)显然是一个Hessian矩阵,所以可写成:

\[f(\mathbf{X})=f(\mathbf{X}_0)+(\mathbf{X}-\mathbf{X}_0)^T\nabla f(\mathbf{X}_0)+\frac{1}{2}(\mathbf{X}-\mathbf{X}_0)^T\mathbf{H}(\mathbf{X}_0)(\mathbf{X}-\mathbf{X}_0)+o(\|\mathbf{X}-\mathbf{X}_0\|^2)\]

  1. 多元函数取得极值的必要条件:\(u=f(x_1,x_2,...,x_n)\)在点\(M\)处有极值,则有

    \[\nabla f(M)=\left \{\frac{\partial f}{\partial x_1},\frac{\partial f}{\partial x_2},\cdots, \frac{\partial f}{\partial x_n}\right\}_M=0\]

  2. 多元函数取得极值的充分条件:其二阶偏导组成的Hessian矩阵为正定(局部极小值)or负定(局部极大值)

凸集、凸函数和凸优化问题

凸集

集合\(C\)内任意两点间的线段也在集合\(C\)内,则称集合\(C\)为凸集:

\[\lambda x +(1-\lambda)y \in C\quad for \quad \forall \lambda \in (0,1),\quad \forall(x,y)\in C\]

凸函数

定义在凸集\(C\)上的凸函数:

\[f(\lambda x_1+(1-\lambda)x_2)\le \lambda f(x_1)+(1-\lambda)f(x_2) \\x_1,x_2 \in C;\quad \lambda \in (0,1)\]

凸优化

机器学习主要做的就是优化问题,先初始化一下权重参数,然后利用优化方法来优化权重,直到准确率不再上升,迭代停止。在优化问题中,应用最广泛的是凸优化问题:

  • 若可行域是凸集
  • 且目标函数是一个凸函数

则这样的优化问题是凸优化问题

最优化理论与技术(一)

标签:扩展   算法   顺序   matrix   最优化问题   定义   多目标   blog   变量   

原文地址:https://www.cnblogs.com/ColleenHe/p/11567362.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!