01(b)无约束优化(准备知识)
1、解方程转化为优化问题
$n\left\{ \begin{aligned}& {{P}_{1}}(x)=0 \\ & {{P}_{2}}(x)=0 \\ & \text{ }\vdots \\& {{P}_{n}}(x)=0 \\\end{aligned} \right.\text{ }x=\left[ \begin{aligned} & {{x}_{1}} \\& {{x}_{2}} \\& \vdots \\& {{x}_{n}} \\\end{aligned} \right]\text{ (n个自变量}\text{)}$
这个方程组里面的每一个函数${{P}_{i}}(x)$都是光滑 (一般指至少存在一阶和二阶导数)的,其函数可能是线性的,也可能是非线性的。
把上述解方程的问题转化为,优化问题:
$\text{ }x=\left[ \begin{aligned}& {{x}_{1}} \\& {{x}_{2}} \\& \vdots \\& {{x}_{n}} \\\end{aligned} \right]\text{ }\left\{ \begin{aligned}& {{P}_{1}}(x)=0\text{ }\leftrightarrow \\& {{P}_{2}}(x)=0\text{ }\leftrightarrow \text{ } \\& \text{ }\vdots \\& {{P}_{n}}(x)=0\text{}\leftrightarrow \\\end{aligned} \right.\left. \begin{aligned}& {{P}_{1}}^{2}(x)=0 \\& {{P}_{2}}^{2}(x)=0 \\& \vdots \\& {{P}_{n}}^{2}(x)=0 \\\end{aligned} \right\}\text{ }\leftrightarrow \sum\limits_{i=1}^{n}{{{P}_{i}}^{2}(x)=0}$
这解法的好处:
- 即便方程没有解,也可以通过$\operatorname{minimize}\text{ }f(x)=\sum\limits_{i=1}^{n}{{{P}_{i}}^{2}(x)}$求得近似解;
- 在这里不要求方程组里面的函数${{P}_{i}}(x)$是多项式,可以是三角函数、指数函数等;
- 当方程组里面某个方程${{P}_{i}}(x)=0$比较重要时,可以通过加权值${{w}_{i}}$:(局部加权回归)
$\operatorname{minimize}\text{ }f(x)=\sum\limits_{i=1}^{n}{{{w}_{i}}{{P}_{i}}^{2}(x)}\text{ }{{\text{w}}_{i}}>0$
- 可以通过调整权值系数,让误差平分到每个方程上面。
2、在讨论无约束优化(Unconstrained Optimization)之前,先介绍几个基本符号:
- 梯度:gradient (vector)
$\nabla f=\left[ \begin{aligned}& \frac{\partial f}{\partial {{x}_{1}}} \\& \frac{\partial f}{\partial {{x}_{2}}} \\& \vdots \\& \frac{\partial f}{\partial {{x}_{n}}} \\\end{aligned} \right]$
- 海森矩阵: Hessian (matrix)
\[H(x)={{\nabla }^{2}}f(x)=\nabla ({{\nabla }^{T}}f(x))=\left[ \begin{matrix}\frac{{{\partial }^{2}}f}{\partial x_{1}^{2}} & \frac{{{\partial }^{2}}f}{\partial {{x}_{1}}\partial {{x}_{2}}} & \cdots & \frac{{{\partial }^{2}}f}{\partial {{x}_{1}}\partial {{x}_{n}}} \\\frac{{{\partial }^{2}}f}{\partial{{x}_{2}}\partial {{x}_{1}}} & \frac{{{\partial }^{2}}f}{\partial x_{2}^{2}} & \cdots & \frac{{{\partial }^{2}}f}{\partial {{x}_{2}}\partial {{x}_{n}}} \\\vdots & \vdots & \ddots & \vdots \\\frac{{{\partial }^{2}}f}{\partial {{x}_{n}}\partial {{x}_{1}}} & \frac{{{\partial }^{2}}f}{\partial{{x}_{n}}\partial {{x}_{2}}} & \cdots & \frac{{{\partial }^{2}}f}{\partial x_{n}^{2}} \\\end{matrix} \right]\]
对于多元函数的极值问题,按照前面讲的,有如下步骤:
1.找出一阶偏导数等于0的点——驻点(极大值点、极小值点、拐点),即:
$\nabla f=0\text{ }\leftrightarrow \text{ }\left\{ \begin{aligned}& \frac{\partial f}{\partial {{x}_{1}}}=0 \\& \frac{\partial f}{\partial {{x}_{2}}}=0 \\& \vdots \\& \frac{\partial f}{\partial {{x}_{n}}}=0 \\\end{aligned} \right.\text{ }$
2.接着通过二阶偏导数判断其是否为极值点,是极大值还是极小值点;多元函数的二阶偏导数用Hessian matrix表示,将stepa中得到的驻点代入,Hessian matrix中与极值有如下关系:

数学基础知识补充:
- 实对称阵:的所有特征值都是实的;
- 正定阵:所有特征值都大于0的方阵;
- 半正定阵:所有特征值大于或等于0的方阵;
这里差一个证明,为什么Hessian矩阵的特征值大于0,该点为极小值?(下一部分中有说明)
01(b)无约束优化(准备知识)的更多相关文章
- 无约束优化方法(梯度法-牛顿法-BFGS- L-BFGS)
本文讲解的是无约束优化中几个常见的基于梯度的方法,主要有梯度下降与牛顿方法.BFGS 与 L-BFGS 算法. 梯度下降法是基于目标函数梯度的,算法的收敛速度是线性的,并且当问题是病态时或者问题规模较 ...
- MATLAB进行无约束优化
首先先给出三个例子引入fminbnd和fminuc函数求解无约束优化,对这些函数有个初步的了解 求f=2exp(-x)sin(x)在(0,8)上的最大.最小值. 例2 边长3m的正方形铁板,四角减去相 ...
- 02(c)多元无约束优化问题-牛顿法
此部分内容接<02(a)多元无约束优化问题>! 第二类:牛顿法(Newton method) \[f({{\mathbf{x}}_{k}}+\mathbf{\delta })\text{ ...
- 02(b)多元无约束优化问题-最速下降法
此部分内容接02(a)多元无约束优化问题的内容! 第一类:最速下降法(Steepest descent method) \[f({{\mathbf{x}}_{k}}+\mathbf{\delta }) ...
- 02(a)多元无约束优化问题
2.1 基本优化问题 $\operatorname{minimize}\text{ }f(x)\text{ for }x\in {{R}^{n}}$ 解决无约束优化问题的一般步骤 ...
- 02(d)多元无约束优化问题-拟牛顿法
此部分内容接<02(a)多元无约束优化问题-牛顿法>!!! 第三类:拟牛顿法(Quasi-Newton methods) 拟牛顿法的下降方向写为: ${{\mathbf{d}}_{k}}= ...
- 02(e)多元无约束优化问题- 梯度的两种求解方法以及有约束转化为无约束问题
2.1 求解梯度的两种方法 以$f(x,y)={{x}^{2}}+{{y}^{3}}$为例,很容易得到: $\nabla f=\left[ \begin{aligned}& \frac{\pa ...
- 082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法
082 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 01 构造方法-无参构造方法 本文知识点:构造方法-无参构造方法 说明:因为时间紧张, ...
- 01网络编程(基础知识+OSI七层协议+TCP与UDP)
目录 01 网络编程 一.软件开发架构 1.1 CS架构 1.2 BS架构 二.网络理论前戏 2.1 简介 2.2 常见硬件 三.OSI七层协议(五层) 3.1 七层协议 3.2 五层协议 3.3 知 ...
随机推荐
- IDEA 自动化配置
# IDEA maven web项目:http://www.cnblogs.com/Sinte-Beuve/p/5730553.html # IDEA 数据库自动化 ## 功能 ① SQL 代码自动感 ...
- .Net Core中使用NodeJs加解密DES,MD5,AES,REA
鉴于使用.net core我们的加解密也同时迁移到了跨平台上,我使用的是NodeJs加解密的.废话不多说了,还是来干活吧. 1.创建Node项目 2.添加package.json { "n ...
- texbox 禁用copy paster cut
<TextBox CommandManager.PreviewExecuted="textBox_PreviewExecuted" ContextMenu="{x: ...
- Gralde 网络代理
Gralde 网络代理 Gradle在编译项目的时候,需要下载一些依赖.墙外的网络就需要设置代理了. 设置的方法,见文档: Accessing the web through a HTTP proxy ...
- GRPC 1.3.4 发布,Google 高性能 RPC 框架(Java C++ Go)
GRPC 1.3.4 发布了,GRPC 是一个高性能.开源.通用的 RPC 框架,面向移动和 HTTP/2 设计,是由谷歌发布的首款基于 Protocol Buffers 的 RPC 框架. GRPC ...
- VCL的通用属性,方法和事件 good
Action 一些组件标识与组件相连接的活动对象Align 一些组件确定组件在父类组件区内的对齐方式Anchors 大部分组件说明与组件连接的窗体的位置点AutoSize 一些组件说明组件是否可根据内 ...
- CentOS 如何删除/delete/remove 老的 kernel
package-cleanup --oldkernels --count=1
- BSTR使用误区以及隐藏的内存破坏和内存泄漏
BSTR使用误区以及隐藏的内存破坏和内存泄漏 作者:magictong 简介 BSTR的数据结构是什么样子并不是本文讨论的问题,但是却是本文的基础.在解决COM的跨平台编程的问题时,需要定义一种通用的 ...
- 介绍两种Timer定时器的使用
第一种, 直接实例化Timer类,设置时间间隔,到达时间后执行想要执行的事件.代码示例: using System; using System.Collections.Generic; using S ...
- Python装饰器和回调函数
1.装饰器 装饰器用来实现一种切面功能,即一些函数在调用前都必须实现的功能,比如用户是否登录,用户是否有权限这类需求,都很容易由装饰器来实现. import functools def log(fun ...