次梯度算法介绍

系列文章目录

最优化笔记,主要参考资料为《最优化:建模、算法与理论》


文章目录

  • 系列文章目录
  • 一、次梯度
    • 1 定义
    • 2 存在性
  • 二、次梯度的计算
    • 1 按定义计算
    • 2 常用计算规则
  • 三、最优性条件
    • 1 无约束优化问题
    • 2 约束优化问题
  • 四、次梯度算法
    • 1 迭代格式
    • 2 收敛性
  • 参考资料


我们知道梯度下降法的前提为目标函数 f ( x ) f(x) f(x) 是一阶可微的. 在实际应用中经常会遇到不可微的函数,对于这类函数我们无法在每个点处求出梯度,但往往它们的最优值都是在不可微点处取到的. 次梯度算法不用知道每个点的梯度,转而求其次梯度,能处理函数不可微的情形.

一、次梯度

1 定义

我们知道可微凸函数 f f f 的一阶条件:

f ( y ) ≥ f ( x ) + ∇ f ( x ) T ( y − x ) f(y)\geq f(x)+\nabla f(x)^{\mathrm{T}}(y-x) f(y)f(x)+f(x)T(yx)

类比可微凸函数的一阶条件,可以给出函数(不一定可微)次梯度的定义.设 f f f为适当凸函数, x ∈ d o m f x\in\mathbf{dom}f xdomf.若向量 g ∈ R n g\in\mathbb{R}^n gRn 满足

f ( y ) ≥ f ( x ) + g T ( y − x ) , f(y)\geq f(x)+g^{\mathrm{T}}(y-x), f(y)f(x)+gT(yx),
则称g 为函数 f f f 在点 x x x处的一个次梯度.进一步地,称集合
∂ f ( x ) = { g ∣ g ∈ R n , f ( y ) ≥ f ( x ) + g T ( y − x ) , ∀ y ∈ d o m f } \partial f( x) = \{ g\mid g\in \mathbb{R} ^n, f( y) \geq f( x) + g^{\mathrm{T} }( y- x) , \forall y\in \mathbf{dom}f\} f(x)={ggRn,f(y)f(x)+gT(yx),ydomf}
f f f 在点 x x x 处的次微分.

由以上定义可得:

  1. f ( x ) + g T ( y − x ) f(x)+g^{\mathrm{T}}(y-x) f(x)+gT(yx) f ( y ) f(y) f(y)的一个全局下界.
  2. 如果 f f f是可微的,则 ∇ f ( x ) \nabla f(x) f(x) x x x处的次梯度.

可以看到次梯度的定义包含了可微和不可微的情形,通常不可微点处次梯度不止一个,如下面例所示:

截屏2024-01-03 20.12.16

2 存在性

定理(次梯度存在性)

f f f为凸函数,dom f f f为其定义域,如果 x ∈ intdom ⁡ f x\in\operatorname{int dom}f xintdomf, 则 ∂ f ( x ) \partial f(x) f(x)是非空的.其中 intdom ⁡ f \operatorname{int dom}f intdomf的含义是集合dom f f f的所有内点.

  • 也就是说只要是定义域中的内点,次梯度一定存在.

二、次梯度的计算

1 按定义计算

对于绝对值函数,只有在 x = 0 x=0 x=0处不可微,用定义计算其次梯度:
f ( y ) ≥ f ( 0 ) + g ( y − 0 ) , ∀ y ∈ R ⇒ ∣ y ∣ ≥ g ⋅ y ⇒ − 1 ≤ g ≤ 1 f(y)\geq f(0)+g(y-0),\forall y\in R \\ \Rightarrow |y| \geq g\cdot y \\ \Rightarrow -1\leq g \leq 1 f(y)f(0)+g(y0),yRygy1g1
截屏2024-01-03 20.21.30
在这里插入图片描述

2 常用计算规则

截屏2024-01-03 20.22.52

截屏2024-01-03 20.22.13

截屏2024-01-03 20.23.31

也就是,交点处的次微分为两直线斜率的凸组合

三、最优性条件

1 无约束优化问题

截屏2024-01-03 20.26.08

2 约束优化问题

截屏2024-01-03 20.26.44

KKT条件写出来,再加上第4条(当对偶变量固定时,拉格朗日函数去最小值)。

四、次梯度算法

1 迭代格式

截屏2024-01-03 20.36.01

  • 次梯度算法不是下降方法,即无法保证 f ( x k + 1 ) < f ( x k ) f(x^{k+1})<f(x^k) f(xk+1)<f(xk).

2 收敛性

假设条件:

截屏2024-01-03 20.41.18

和梯度法不同,若 f ( x ) f(x) f(x)满足上述条件,只有当 α k \alpha_k αk取消失步长时 f ^ k \hat{f}^k f^k才具有收敛性,一个常用的步长取法 α k = 1 k \alpha_k=\frac1k αk=k1.若 ∥ x 0 − x ∗ ∥ ≤ R \|x^0-x^*\|\leq R x0xR ∥ g i ∥ ≤ G \|g^i\|\leq G giG, 可以得到
∣ f ^ k ( x ) − f ∗ ∣ ≤ G R k . |\hat{f}^k(x)-f^*|\leq \frac{GR}{\sqrt{k}}. f^k(x)fk GR.
也就是说次梯度法收敛性为 O ( 1 k ) O(\frac{1}{\sqrt{k}}) O(k 1)的,相较于梯度法更慢,但是可以处理不可微的函数。

参考资料

  1. 刘浩洋、户将、李勇锋、文再文. 最优化:建模、算法与理论. 高教出版社, 2022.
  2. http://faculty.bicmr.pku.edu.cn/~wenzw/

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据技术架构

1 技术架构矩阵 大数据技术栈虽然比较多,但可以抽象为输入(数据接入)--处理(数据处理、数据分析)--输出(数据应用)。工作角色分工,数据处理以数据仓库开发人员为主,数据分析以数据分析师为主,其他所有组件、系统、技术相关归为数据平台。 2 数据源 大数据的数据来源…

线性规划基本原理与案例分析

线性规划(Linear Programming 简记LP)则是数学规划的一个重要分支。 什么叫做线性规划&#xff1f;一般来讲&#xff0c;目标函数和约束函数均是线性的叫做线性规划问题。线性规划必须满足以下三种基本性质 例1.1 某机床厂生产甲、乙两种机床&#xff0c;每台销售后的利润分别…

关键字:package关键字

在 Java 中&#xff0c;package关键字用于组织和管理类文件。它将类文件分组到不同的包中&#xff0c;以提供更好的代码组织和可读性。 以下是package关键字的用法&#xff1a; 1.package语句&#xff1a;在 Java 源代码的开头使用package关键字来声明当前类所属的包。例如&a…

Python从入门到网络爬虫(异常处理详解)

前言 异常即是一个事件&#xff0c;该事件会在程序执行过程中发生&#xff0c;影响了程序的正常执行。一般情况下&#xff0c;在python无法正常处理程序时就会发生一个异常。异常是python对象&#xff0c;表示一个错误。当python脚本发生异常时我们需要捕获处理它&#xff0c;…

【刷题日记】青少年CTF-Misc(一)

靶场链接 青少年CTF Markdown 题目难度&#xff1a;★ 题目描述&#xff1a;s0ng师傅发现M0x1n师傅特别喜欢用这个写文档&#xff0c;你知道M0x1n这次把FLAG放到哪里了吗&#xff1f;flag格式为&#xff1a;qsnctf{xxx}。 下载附件&#xff0c;打开即可看到flag flag qsnc…

大学物理实验重点——霍尔效应

霍尔系数 霍尔元件灵敏度&#xff0c;愈大愈好 负效应&#xff1a; 1. 不等位电势 V0&#xff1a;两个霍尔电极不可能绝对对 称地焊在霍尔元件两侧&#xff08;图 2&#xff09;、霍尔元件电阻率不均匀、工作电极的端面接触不良都 可能造成 C、D 两极不处在同一等位面上。R0 确…

Video classification with UniFormer基于统一分类器的视频分类

本文主要介绍了UniFormer: Unified Transformer for Efficient Spatial-Temporal Representation Learning 代码&#xff1a;https://github.com/Sense-X/UniFormer/tree/main/video_classification UNIFormer 动机 由于视频具有大量的局部冗余和复杂的全局依赖关系&#xf…

强化学习的数学原理学习笔记 - 时序差分学习(Temporal Difference)

文章目录 概览&#xff1a;RL方法分类时序差分学习&#xff08;Temporal Difference&#xff0c;TD&#xff09;TD for state valuesBasic TD&#x1f7e1;TD vs. MC &#x1f7e6;Sarsa (TD for action values)Basic Sarsa变体1&#xff1a;Expected Sarsa变体2&#xff1a;n-…

HUAWEI WATCH 系列 eSIM 全新开通指南来了

HUAWEI WATCH 系列手表提供了eSIM硬件能力&#xff0c;致力为用户提供更便捷、高效的通信体验。但eSIM 业务是由运营商管理并提供服务的&#xff0c;当前运营商eSIM业务集中全面恢复&#xff0c;电信已经全面恢复&#xff0c;移动大部分省份已经全面放开和多号App开通方式&…

解决Typora笔记上传到CSDN上图片无法显示的问题

解决Typora笔记上传到CSDN上图片无法显示的问题 一、发现问题二、分析问题三、解决问题图床介绍所需工具PicGo软件安装操作下载安装PicGo配置PicGo 设置Typora 四、总结 一、发现问题 当我们使用Typora这款强大的Markdown编辑器记录笔记时&#xff0c;经常会遇到一个让人困扰的…

JVM中虚拟机栈和本地方法栈等

jvm Java虚拟机栈本地方法栈 Java虚拟机栈 Java虚拟机栈&#xff08;VM Stack&#xff09; ​ 虚拟机栈是线程执行Java程序时&#xff0c;处理Java方法中内容的内存区域。虚拟机栈也是线程私有的区域&#xff0c;每个Java方法被调用的时候&#xff0c;都会在虚拟机栈中创建出…

c++学习第八讲---类和对象---继承

继承&#xff1a; 使子类&#xff08;派生类&#xff09;拥有与父类&#xff08;基类&#xff09;相同的成员&#xff0c;以节约代码量。 1.继承的基本语法&#xff1a; class 子类名&#xff1a;继承方式 父类名{} &#xff1b; 例&#xff1a; class father { public:in…