【最优化理论】03-无约束优化

news2025/1/15 23:31:01

无约束优化

  • 无约束优化问题
  • 无约束优化问题的应用
  • 无约束优化问题的最优性条件
    • 无约束-凸函数-最优性条件(充要)
    • 无约束-一般函数-最优性条件
      • 必要条件
        • 一阶必要条件:梯度为0
        • 二阶必要条件:hessian矩阵半正定
      • 充分条件
        • 二阶充分条件:梯度为0 + hessian矩阵正定 = 严格最优
  • 无约束优化问题解法:迭代下降算法
    • 迭代下降算法基本思想
    • 迭代下降算法步骤
  • 迭代下降算法中-如何从当前点迭代到下一个点?
    • 1 何时终止?(终止条件/收敛准则)
    • 2 如何确定下降方向?
      • 梯度反方向
      • Zoutendijk定理(为保证全局收敛下降方向应该遵循的准则)
    • 3 如何确定步长?
      • 线搜索中确定步长 - 一维线搜索(一维问题)
      • 一维线搜索闭性
      • 一维线搜索方法
        • 精确线搜索
          • 精确线搜索方法基本框架
          • 精确线搜索特点
          • 精确线搜索方法
            • 梯度为0(简单函数 - 一元二次函数)
          • 试探法 - 基于搜索区间的直接搜索法(一般函数)
            • 常用直接搜索法
            • 均匀搜索法
            • 黄金区间法(0.618法)
          • 基于导数信息的二分法
        • 非精确线搜索 Inexact Linear Search
          • Armijo 条件 & Goldstein 法则
    • 4 {x^k}收敛性与收敛速度(如何判断算法优劣?)
      • 收敛性
      • 收敛速度
        • Q-收敛速率
        • R-收敛速率
      • 收敛速度比较基准:算法在严格凸(正定)二次函数上的收敛速度(二次终止性)
        • 二次终止性
  • 常用迭代下降算法
    • 一维线搜索(Linear Search)
      • step1 确定下降方向
      • step2 确定步长(一维问题)
    • 信赖域方法(Trust Region)
      • step1 确定步长(n维问题)
      • step2 确定下降方向
    • 朴素算法:坐标轴交替下降法
      • 基本思想
      • 基本框架
      • 优缺点
      • 改进方法
        • n次坐标轴交替后插入一次线搜索
    • 最速下降法(梯度下降法)
      • 最速下降法框架
      • 基本思想
      • 优缺点
      • 缺点原因
    • 牛顿法(Steepest Descent Method)
      • 牛顿法算法框架
      • 基本思想
      • 问题:牛顿方向一定是下降方向吗?(hessian矩阵不正定时,特征值含0或负数)
      • 优缺点
        • 牛顿法缺点
        • 牛顿法优点
      • 严格二次凸函数使用牛顿法一次迭代可达到最优解
      • 牛顿法改进策略
    • 阻尼牛顿法
    • 修正牛顿法
        • 修正迭代步长:线搜索
        • 修正迭代方向:针对hessian矩阵含0特征值或负特征值的情况
          • 方法一:特征值加一个正数
          • 方法二:0特征值或负特征值替换为正特征值
      • 牛顿-最速下降法
    • 牛顿法 Vs 最速下降法
    • 共轭梯度法
      • 背景知识
      • 提出问题
      • 共轭方向
        • 共轭方向性质
      • 共轭方向法
        • 共轭方向法性质
          • 特征1 : 当前点处梯度与之前每个迭代方向内积都为0
            • 当前点处梯度与产生该点的迭代方向内积为0
            • 当前点处梯度与之前的迭代方向内积都为0
          • 特征2:对于一元二次严格凸函数使用共轭方向法n步可找到最优解 x^n
        • 共轭梯度法(边迭代边产生迭代方向)
        • 线性共轭梯度法
          • 研究动机
          • β如何求出来的?
          • 为什么公式中只有βk而没有β0~βk-1?
          • 公式化简
          • 为什么要进行公式化简?
          • 线性共轭梯度法的收敛性
          • 线性共轭梯度法性质
          • 严格二次凸函数共轭梯度法
          • 一般函数的共轭梯度法
        • 非线性共轭梯度法(解决一般函数)
          • FR共轭梯度法基本步骤
            • 迭代延续的方法
            • 一般情形下的FR共轭梯度法
          • 一些说明
            • 实际使用中n步重启策略的原因
  • 无约束优化算法总结

无约束优化问题

m i n x ∈ R n f ( x ) \underset{x\in R^n}{min} f(x) xRnminf(x)

无约束优化问题的应用

约束优化问题转换为无约束优化问题求解

无约束优化问题的最优性条件

无约束-凸函数-最优性条件(充要)

在这里插入图片描述

无约束-一般函数-最优性条件

必要条件

一阶必要条件:梯度为0

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二阶必要条件:hessian矩阵半正定

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

充分条件

二阶充分条件:梯度为0 + hessian矩阵正定 = 严格最优


在这里插入图片描述

无约束优化问题解法:迭代下降算法

迭代下降算法基本思想

在这里插入图片描述

迭代下降算法步骤

在这里插入图片描述

选取搜索方向是最关键的一步,各种算法的区别主要在于确定搜索方向的方法不同。

迭代下降算法中-如何从当前点迭代到下一个点?

1 何时终止?(终止条件/收敛准则)

判断梯度是否接近0, ε \varepsilon ε 是一个非常小接近于0的数。
在这里插入图片描述
在这里插入图片描述

2 如何确定下降方向?

待补充

梯度反方向

Zoutendijk定理(为保证全局收敛下降方向应该遵循的准则)

在这里插入图片描述

∣ ∣ Δ f ( x k ) ∣ ∣ → 0 ||\Delta f(x^k)||\rightarrow 0 Δf(xk)0 表示全局收敛

在这里插入图片描述

有界即 ∣ ∣ Δ f ( x k ) ∣ ∣ → 0 ||\Delta f(x^k)||\rightarrow 0 Δf(xk)0 表示全局收敛

3 如何确定步长?

线搜索中确定步长 - 一维线搜索(一维问题)

在这里插入图片描述

在这里插入图片描述

一维线搜索闭性

一维线搜索方法

精确线搜索

在这里插入图片描述
在这里插入图片描述

精确线搜索方法基本框架

在这里插入图片描述

精确线搜索特点

在这里插入图片描述

精确线搜索方法
梯度为0(简单函数 - 一元二次函数)

在这里插入图片描述

试探法 - 基于搜索区间的直接搜索法(一般函数)

在这里插入图片描述

常用直接搜索法
均匀搜索法

在这里插入图片描述

黄金区间法(0.618法)

优点:每次只计算一个点的函数值。
在这里插入图片描述

基于导数信息的二分法

在这里插入图片描述

非精确线搜索 Inexact Linear Search

在这里插入图片描述

Armijo 条件 & Goldstein 法则

如果步进太小,函数值变化也小,为了避免Armijo条件步进小的问题,提出G法则。
在这里插入图片描述

4 {x^k}收敛性与收敛速度(如何判断算法优劣?)

收敛性

在这里插入图片描述

收敛速度

在这里插入图片描述

Q-收敛速率

在这里插入图片描述

在这里插入图片描述

R-收敛速率

在这里插入图片描述
在这里插入图片描述

收敛速度比较基准:算法在严格凸(正定)二次函数上的收敛速度(二次终止性)

二次终止性

若某个算法对于任意的正定二次函数 f ( x ) = 1 2 x T P x + Q T x + δ f(x)=\frac {1}{2} x^TPx+Q^Tx+\delta f(x)=21xTPx+QTx+δ,其中P是n阶正定对称矩阵,从任意的起始点出发,都能经有限步迭代到其极小点,则称该算法具有二次终止性。

在这里插入图片描述

常用迭代下降算法

一维线搜索(Linear Search)

先确定下降方向,再确定步长。

因为线搜索先确定了方向,所以确定步长是一维问题。

在这里插入图片描述

step1 确定下降方向

step2 确定步长(一维问题)

信赖域方法(Trust Region)

先确定步长(确定一个以步长为半径的范围),再确定下降方向。

因为信赖域方确定步长前没有确定方向,所以确定步长是n维问题。

在这里插入图片描述

信赖域实际求解的时候,一般为了方便求解,约束不变,找到一个 f ( x k + d ) f(x^k+d) f(xk+d) 的近似函数进行最小化。

step1 确定步长(n维问题)

step2 确定下降方向

朴素算法:坐标轴交替下降法

基本思想

选择迭代方向需要很大的计算量,为了避免选择迭代方向,直接选择坐标轴正反方向进行搜索,因为是沿坐标轴搜索,所以该过程中都是一元问题。

基本框架

在这里插入图片描述

优缺点

在这里插入图片描述

改进方法

n次坐标轴交替后插入一次线搜索

在这里插入图片描述

最速下降法(梯度下降法)

在这里插入图片描述

最速下降法框架

在这里插入图片描述

基本思想

负梯度方向也叫最速下降方向。
在这里插入图片描述
如何判断d^k是负梯度方向?
d k ⋅ ∇ f ( x k ) ≤ 0 d^k \cdot \nabla f(x^k) \le 0 dkf(xk)0

优缺点

在这里插入图片描述

最速下降法,对于严格凸二次函数,不能在有限步找到最优解,即不具备二次终止性。

在这里插入图片描述

缺点原因

在这里插入图片描述

在这里插入图片描述

经过上述推导得出:若使用精确线搜索,且迭代方向选择负梯度方向,则k处梯度与k+1处梯度内积为0,即相邻两个迭代点处梯度方向垂直。

在这里插入图片描述

牛顿法(Steepest Descent Method)

在这里插入图片描述

牛顿法算法框架

在这里插入图片描述

基本思想

在这里插入图片描述

使用二阶taylor展开式逼近当前函数,求出二阶taylor展开式的导数,并使导数为0,可以得到以下式子。

在这里插入图片描述

假设hessian矩阵正定

在这里插入图片描述

x k + 1 = x k + α k d k x^{k+1}=x^k+\alpha_k d^k xk+1=xk+αkdk 对比,又有 d k = − [ ∇ 2 f ( x k ) − 1 ∇ f ( x k ) ] d^k=-[\nabla^2f(x^k)^{-1}\nabla f(x^k)] dk=[2f(xk)1f(xk)],所以步长 α k \alpha_k αk 为1。

在这里插入图片描述

问题:牛顿方向一定是下降方向吗?(hessian矩阵不正定时,特征值含0或负数)

判断是否下降方向的方法: ∇ f ( x k ) T d k ≤ 0 \nabla f(x^k)^Td^k \le 0 f(xk)Tdk0
在这里插入图片描述

优缺点

在这里插入图片描述

牛顿法缺点

缺点:不但要计算梯度,还要计算hessian矩阵。

在这里插入图片描述

牛顿法优点

在这里插入图片描述

严格二次凸函数使用牛顿法一次迭代可达到最优解

对于严格凸二次规划,牛顿法只需一步迭代即可得到最优解

严格二次凸函数近似逼近函数就是其本身,一次求导使得导数为0,即可求出最优解。

在这里插入图片描述

牛顿法改进策略

在这里插入图片描述

阻尼牛顿法

在这里插入图片描述

修正牛顿法

修正迭代步长:线搜索

在这里插入图片描述

修正迭代方向:针对hessian矩阵含0特征值或负特征值的情况

在这里插入图片描述

方法一:特征值加一个正数

正数不能选太大,如果选太大,hessian矩阵的作用就会被淹没,二阶信息体现不出来。
在这里插入图片描述

方法二:0特征值或负特征值替换为正特征值

在这里插入图片描述

牛顿-最速下降法

在这里插入图片描述

牛顿法 Vs 最速下降法

在这里插入图片描述

共轭梯度法

背景知识

在这里插入图片描述

提出问题

在这里插入图片描述

若Q为对角阵,则等值线为椭圆,且长短轴平行于xy坐标轴,根据坐标交替法,两步即可找到最优解。
若Q为非对角阵,则等值线不是椭圆,长短轴不平行于xy坐标轴,不能使用坐标交替法,需要先对Q进行相似对角化(即 Q = P T D P Q=P^TDP Q=PTDP,也可以理解为找到x的可逆线性变换 x ^ = P x \hat x = Px x^=Px),之后按照D为对角矩阵,则等值线为椭圆,且长短轴平行于xy坐标轴,根据坐标交替法,两步即可找到 x ^ \hat x x^ 最优解,再通过 x = P − 1 x ^ = P T x ^ x=P^{-1}\hat x=P^T\hat x x=P1x^=PTx^,求出x。

但是计算P需要解线性方程组,又回到了原始求解线性方程组困难的问题,所以需要找到一组向量组成矩阵S ( d 0 , d 1 , d 2 , . . . , d n − 1 ) = S (d^0,d^1,d^2,...,d^{n-1})=S (d0,d1,d2,...,dn1)=S,使得S跟P一样,可以对Q进行对角化。向量 d 0 , d 1 , d 2 , . . . , d n − 1 d^0,d^1,d^2,...,d^{n-1} d0,d1,d2,...,dn1间需要满足的关系就是关于矩阵Q共轭。
在这里插入图片描述

共轭方向

在这里插入图片描述

d 0 , d 1 , d 2 , . . . , d n − 1 d^0,d^1,d^2,...,d^{n-1} d0,d1,d2,...,dn1 就是n个共轭方向。

共轭方向性质

在这里插入图片描述
在这里插入图片描述

共轭方向法

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

共轭方向法性质

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

特征1 : 当前点处梯度与之前每个迭代方向内积都为0
当前点处梯度与产生该点的迭代方向内积为0

原因:使用的是精确搜索步长。
在这里插入图片描述

当前点处梯度与之前的迭代方向内积都为0

在这里插入图片描述

特征2:对于一元二次严格凸函数使用共轭方向法n步可找到最优解 x^n

在这里插入图片描述

共轭梯度法(边迭代边产生迭代方向)

共轭方向法是一类方法的总称,共轭梯度法是其中一种。

边迭代边产生迭代方向,并且新产生的迭代方向要与之前的每个迭代方向共轭。

在这里插入图片描述
在这里插入图片描述

线性共轭梯度法

研究动机

解决维度较大的线性方程组求解问题。
在这里插入图片描述

β如何求出来的?

在这里插入图片描述

为什么公式中只有βk而没有β0~βk-1?

在这里插入图片描述

公式化简

在这里插入图片描述
在这里插入图片描述

为什么要进行公式化简?

因为要将共轭梯度法求解线性方程组(如一元二次函数梯度=0的超多维线性方程组)扩展到非线性方程组求解。最后的公式中,βk只包含函数梯度。
在这里插入图片描述

线性共轭梯度法的收敛性

在这里插入图片描述

线性共轭梯度法性质

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

严格二次凸函数共轭梯度法

在这里插入图片描述
在这里插入图片描述

一般函数的共轭梯度法

在这里插入图片描述

非线性共轭梯度法(解决一般函数)

在这里插入图片描述
在这里插入图片描述

FR共轭梯度法基本步骤

在这里插入图片描述

迭代延续的方法

在这里插入图片描述

一般情形下的FR共轭梯度法

在这里插入图片描述

一些说明

在这里插入图片描述

n步重启策略:把n步作为一轮,每搜索一轮之后,取一次最速下降方向,开始下一轮。

实际使用中n步重启策略的原因

1 迭代n次后,d0对于dn 没有太大作用,将这部分信息清洗掉。
2 在一轮中某次迭代,可能落到类似于一元二次函数的区域,重启可以使用线性共轭梯度法的优点。

无约束优化算法总结

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/10444.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

元宇宙-漫游世界后与Cocos一起看湖南卫视直播

使用参考资源 CocosCreator v3.6.2 cocomat 腾讯开源公共组件框架 Cocos Creator 3D特制 Video MeshRender 播放器(Cocos商店购买) TcPlayer 腾讯开源 Web 播放器 视频流 hls 库 正文 场景漫游引发的思考 元宇宙,虚拟世界。OK,…

【UI编程】将Java awt/swing应用移植到JavaFX纪实

1. 背景 最近想做一个实用的小工具,能屏幕截图,录屏和录制课件,简单的图像处理,和制作gif表情包。翻出了很久以前用Java awt/swing写的一个屏幕截图小程序,能运行,但是屏幕截图到剪贴板后,发现…

深入理解JavaScript-this关键字

先说结论:谁调用它,this 就指向谁 前言 在讲 Function、作用域 时,我们都讲到了 this,因为 JavaScript 中的作用域是词法作用域,在哪里定义,就在哪里形成作用域。而与词法作用域相对应的还有一个作用域叫…

MP157-0-遇见的问题及解决办法

MP157-0-遇见的问题及解决办法1.Win11运行VMware15虚拟机崩溃死机,蓝屏。1.Win11运行VMware15虚拟机崩溃死机,蓝屏。 时间:2022.11.15 解决办法: Hyper-V方案。 打开控制面板-程序-启用或关闭Windows功能,可能你的电…

【JavaScript高级】03-JavaScript内存管理和闭包

JavaScript内存管理和闭包JavaScript内存管理垃圾回收机制算法常见的GC算法-标记清除闭包闭包的概念理解闭包的形成过程闭包的内存泄露JavaScript内存管理 JavaScript会在定义数据时为我们分配内存: JS对于原始数据类型内存的分配会在执行时,直接在栈空…

Sentinel使用教程

文章目录一、Sentinel简介1.sentinel介绍2.sentinel应用场景3.sentinel与hystrix4.sentinel组件介绍二、Sentinel使用说明1.控制台Dashboard2.Sentinel 流量控制和熔断降级3.常见报错解决一、Sentinel简介 1.sentinel介绍 Sentinel 是由阿里巴巴中间件团队开发的开源项目&…

Java三大特性篇之——继承篇(超详解的好吧!)

😍😍😍欢迎欢迎欢迎欢迎,我的朋友,答应我,看完好吗?🥴 文章目录前言:何为继承?不谈钱的继承实现!嘘:偷偷访问父类的私密成员&#xff…

OkHttp相关知识(二)

okhttp中一次网络请求的大致过程: Call对象对请求的封装 dispatcher对请求的分发 getResponseWithInterceptors()方法 一、OkHttp同步方法总结: 创建OkHttpClient和构建了携带请求信息的Request对象将Request封装成Call对象调用Call的execute()发送…

【11.16】Codeforces 刷题

DP\text{DP}DP :(今天做的这两道都没啥 DP 相关来着 D. Match & Catch 题意: 给定两个字符串 1≤∣s1∣,∣s2∣≤50001\leq |s_1|,|s_2|\leq 50001≤∣s1​∣,∣s2​∣≤5000 ,求最短的满足各只出现一次的连续公共字串。 思…

实验27:红外遥控三级控速风扇实验

今天介绍一个稍微复杂点的实验,复杂在设计和代码 ——OK,受了抖音西湖大学教授刺激,任何人都可以做研究 ——实验:红外遥控三级风速小电扇 ——每按一下CH-,风速从1-2-3-1-2-3-1循环 ——按下CH+,风扇停止 ——没有背景音乐目的是听风扇声音大小判断风速 OK实验介绍完了…

五个可以永远相信的神仙网站推荐

早八的我们是不是偶尔会处在焦虑中呢?一方面年轻人工作压力大,另一方面我们偶尔会感慨我们的碌碌无为,不知道怎样提升自己。今天为大家推荐五个焦虑时可以随手打开看,不知不觉悄悄提升自己的软件。 1.全历史 全历史是一个把历史以…

《元宇宙2086》亮相金鸡奖中国首部元宇宙概念院线电影启动

2022年中国金鸡百花电影节暨第35届中国电影金鸡奖于11月10日至12日在福建厦门举办,中国动漫集团控股子公司北京中文发文化发展有限公司与《元宇宙2086》作者高泽龙在金鸡奖创投论坛正式签约,宣布将共同启动筹拍中国首部元宇宙概念的院线电影。 当日下午&…

如何在Docker中安装MySQL数据库

1、Docker环境 视频教程:https://www.bilibili.com/video/BV1xv4y1S7kA 2、搜索镜像 https://hub.docker.com/网站搜索MySQL,确定其安装版本,这里安装8.0.31版; 3、拉取镜像 [rootlocalhost ~]# docker pull mysql:8.0.31 8.…

市级专精特新的申报条件

一、基本条件:(各市政策不同具体情况也不同,下面为济南市企业的申报条件) 1、连续经营3年以上,上年度企业营业收入在800万元以上; 2、近两年营业收入复合增长率不低于8%(2021年参照国 家级调…

Nginx 反向代理

title: Nginx 反向代理 date: 2022-11-16 10:24 tags: [Nginx,反向代理,正向代理,代理] 文章目录〇、问题一、前言二、正向代理&反向代理2.1 正向代理2.2 反向代理三、Nginx配置反向代理参考更新〇、问题 什么是正向代理?什么是反向代理?Nginx如何配…

Mysql之视图、索引【第五篇】

大纲: 一、视图 1、什么是视图? 1) MySQL 视图(View)是一种虚拟的表,是从数据库中一个或多个表中导出来的表。视图由列和行构成,行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。 …

【蓝桥杯物联网赛项学习日志】Day3 关于IIC

经过昨天的学习,已经了解和初步学会配置CubeMax进行初始化配置。今天就开始下一章节的学习,关于IIC。 关键词:I2C OLED SSD1306 理论基础 串行通信接口通讯方式分,可以分为两种,分别是同步和异步。按照数据的传输方…

组成目标货币的最少张数

1、题目 arr 是货币数组,其中的值都是正数。再给定一个正数 aim。 每个值都认为是一张货币,返回组成 aim 的最少张数。 注意:因为是求张数,所以每张货币认为是相同或不同就不重要了。 2、思路 假设 arr [3,1&…

GD32F450的时钟笔记

GD32F450 标称 200MHz,但是在手册中又说 它是 240MHz。本文以 手册中的 240MHz 进行举例,我保险起见,产品中使用还是在 200MHz 下使用。 时钟树 手册上的时钟树图如下 GD32F450的 外部时钟源 有2个 LXTAL 外部低速时钟源 32.768 kHzHXTAL …

微信小程序登录获取不到头像和昵称解决办法!

微信小程序登录获取不到头像和昵称主要原因是:小程序wx.getUserProfile接口被收回! 大家可以按照文档操作↓ PS: 针对小程序wx.getUserProfile接口将被收回后做出的授权调整 小程序文档中提出的调整说明 对于此次变化,现将小…