近似点梯度法

最优化笔记——Proximal Gradient Method

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


文章目录

  • 最优化笔记——Proximal Gradient Method
  • 一、邻近算子
    • (1)定义
  • 二、近似点梯度法
    • (1)迭代格式
    • (2)迭代格式的理解
    • (3)收敛性分析
  • 三、FISTA算法
    • (1)迭代格式
    • (2)收敛性分析
  • 参考资料


一、邻近算子

(1)定义

定义 (邻近算子)

对于一个凸函数 h h h, 定义它的邻近算子(proximal operator)为
prox ⁡ h ( x ) = arg ⁡ min ⁡ u ∈ d o m h { h ( u ) + 1 2 ∥ u − x ∥ 2 } . \operatorname{prox}_h(x)=\arg\min_{u\in\mathbf{dom}h}\left\{h(u)+\frac12\|u-x\|^2\right\}. proxh(x)=argudomhmin{h(u)+21ux2}.

可以看到,邻近算子的目的是求解一个距 x x x 不算太远的点,并使函数值 h ( x ) h(x) h(x) 也相对较小.

截屏2024-01-09 20.33.21

上图图描述了proximal算子的作用:

  • 细黑线是凸函数 h ( x ) h(x) h(x)的等高线;较粗的黑线表示定义域的边界.
  • 设蓝点为 x x x,计算 μ = prox ⁡ h ( x ) \mu=\operatorname{prox}_h(x) μ=proxh(x),红点则是 μ \mu μ.
  • 定义域内的三个点其对应的 μ \mu μ停留在定义域内,并向 h ( x ) h(x) h(x)最小值移动.
  • 而另外两个定义域外的点,其对应的 μ \mu μ移动到定义域的边界,并尽可能使 h ( u ) h(u) h(u)很小.

一个很自然的问题是,上面给出的邻近算子的定义是不是有意义的,即定义中的优化问题的解是不是存在唯一的. 若答案是肯定的,我们就可使用邻近算子去构建迭代格式. 下面的定理将给出定义中优化问题解的存在唯一性.

定理 (邻近算子是良定义的)

如果 h h h 是适当的闭凸函数,则对任意的 x ∈ R n , p r o x h ( x ) x\in\mathbb{R}^n,\quad\mathrm{prox}_h(x) xRn,proxh(x) 的值存在且唯一.

二、近似点梯度法

(1)迭代格式

考虑如下复合优化问题:

min ⁡ ψ ( x ) = f ( x ) + h ( x ) , \min\quad\psi(x)=f(x)+h(x), minψ(x)=f(x)+h(x),

其中函数 f f f可微函数,其定义域 d o m f = R n \mathbf{dom}f=\mathbb{R}^n domf=Rn, 函数 h h h凸函数,可以是非光滑的,并且一般计算此项的邻近算子并不复杂. 比如 LASSO 问题,两项分别为 f ( x ) = 1 2 ∥ A x − b ∥ 2 , h ( x ) = μ ∥ x ∥ 1 . f(x)=\frac12\|Ax-b\|^2,\quad h(x)=\mu\|x\|_1. f(x)=21Axb2,h(x)=μx1. 近似点梯度法的思想非常简单:注意到 ψ ( x ) \psi(x) ψ(x) 有两部分,对于光滑部分 f f f 做梯度下降,对于非光滑部分 h h h 使用邻近算子,则近似点梯度法的迭代公式为

x k + 1 = p r o x t k h ( x k − t k ∇ f ( x k ) ) , ( 1 ) x^{k+1}=\mathrm{prox}_{t_kh}(x^k-t_k\nabla f(x^k)), \quad (1) xk+1=proxtkh(xktkf(xk)),(1)

其中 t k > 0 t_k>0 tk>0 为每次迭代的步长,它可以是一个常数或者由线搜索得出. 近似点梯度法跟众多算法都有很强的联系,在一些特定条件下,近似点梯度法还可以转化为其他算法:当 h ( x ) = 0 h(x)=0 h(x)=0 时,迭代公式变为梯度下降法

x k + 1 = x k − t k ∇ f ( x k ) ; x^{k+1}=x^k-t_k\nabla f(x^k); xk+1=xktkf(xk);

h ( x ) = I C ( x ) h(x)=I_C(x) h(x)=IC(x) 时,迭代公式变为投影梯度法

x k + 1 = P C ( x k − t k ∇ f ( x k ) ) . x^{k+1}=\mathcal{P}_C(x^k-t_k\nabla f(x^k)). xk+1=PC(xktkf(xk)).

(2)迭代格式的理解

f ( x ) f(x) f(x) x k x^k xk处做泰勒展线性展开并加上二次项,非光滑部分不做改变:
min ⁡ x f ( x ) + h ( x )    ⟺    min ⁡ x f ( x k ) + ∇ f ( x k ) T ( x − x k ) + 1 2 t k ∥ x − x k ∥ 2 + h ( x ) ( 2 )    ⟺    min ⁡ x 1 2 t k ∥ x − x k + t k ∇ f ( x k ) ∥ 2 + h ( x ) ( 3 )    ⟺    min ⁡ x 1 2 t k ∥ x − ( x k − t k ∇ f ( x k ) ) ∥ 2 + h ( x ) ( 4 ) \begin{aligned} &\min_x f(x)+h(x) \\ \iff &\min_x f(x^k)+\nabla f(x^k)^\mathrm{T}(x-x^k)+\frac1{2t_k}\|x-x^k\|^2+h(x) \quad(2) \\ \iff &\min_x \frac1{2t_k}\|x-x^k+t_k\nabla f(x^k)\|^2+h(x)\quad (3) \\ \iff &\min_x \frac1{2t_k}\|x-(x^k-t_k\nabla f(x^k))\|^2+h(x) \quad(4) \end{aligned} xminf(x)+h(x)xminf(xk)+f(xk)T(xxk)+2tk1xxk2+h(x)(2)xmin2tk1xxk+tkf(xk)2+h(x)(3)xmin2tk1x(xktkf(xk))2+h(x)(4)
可以看到(4)式即为邻近算子的定义
x k + 1 = prox ⁡ t k h ( x k − t k ∇ f ( x k ) ) x^{k+1}=\operatorname{prox}_{t_{k}h}(x^k-t_k\nabla f(x^k)) xk+1=proxtkh(xktkf(xk))
相当于是对 f ( x ) f(x) f(x)先做一步梯度下降 x ^ k + 1 = x k − t k ∇ f ( x k ) \hat{x}^{k+1}=x^k-t_k\nabla f(x^k) x^k+1=xktkf(xk),然后再寻找一个点 x k + 1 x^{k+1} xk+1,使得 x k + 1 x^{k+1} xk+1 x ^ k + 1 \hat{x}^{k+1} x^k+1 不算太远,并使函数值 h ( x ^ k + 1 ) h(\hat{x}^{k+1}) h(x^k+1) 也相对较小.

(3)收敛性分析

截屏2024-01-09 21.17.58

截屏2024-01-09 21.21.31

也就是说近似点梯度法收敛速度是 O ( 1 k ) O(\frac1k) O(k1)的,比次梯度算法快!

三、FISTA算法

(1)迭代格式

注意每个Section公式重新从(1)开始编号

仍然考虑复合优化问题
min ⁡ ψ ( x ) = f ( x ) + h ( x ) . ( 1 ) \min\quad\psi(x)=f(x)+h(x)\quad. (1) minψ(x)=f(x)+h(x).(1)
上面介绍的近似点梯度法收敛速度是 O ( 1 k ) O(\frac1k) O(k1)的,下面介绍一个在此基础上改进的算法——FISTA,收敛速度可以达到 O ( 1 k 2 ) O(\frac1k^2) O(k12)!

截屏2024-01-09 21.48.21

截屏2024-01-09 21.53.57

截屏2024-01-09 21.36.52

(2)收敛性分析

截屏2024-01-09 21.56.00

参考资料

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

4.4 媒资管理模块 - 分布式任务处理介绍、视频处理技术方案

媒资管理模块 - 视频处理 文章目录 媒资管理模块 - 视频处理一、视频转码1.1 视频转码介绍1.2 FFmpeg 基本使用1.2.1 下载安装配置1.2.2 转码测试 1.3 工具类1.3.1 VideoUtil1.3.2 Mp4VideoUtil1.3.3 测试工具类 二、分布式任务处理2.1 分布式任务调度2.2 XXL-JOB 配置执行器 中…

Java诊断利器Arthas

https://arthas.aliyun.com/doc/https://arthas.aliyun.com/doc/ 原理 利用java.lang.instrument(容器类) 做动态 Instrumentation(执行容器) 是 JDK5 的新特性。使用 Instrumentation,开发者可以构建一个独立于应用程序的代理程序(Agent)&…

three.js实现电子围栏效果(纹理贴图)

three.js实现电子围栏效果&#xff08;纹理贴图&#xff09; 实现步骤 围栏的坐标坐标转换为几何体顶点&#xff0c;uv顶点坐标加载贴图&#xff0c;移动 图例 代码 <template><div class"app"><div ref"canvesRef" class"canvas-…

自带恒压恒流环路的降压型单片车充专用芯片

一、基本概述 XL2009是一款高效降压型DC-DC转换器&#xff0c;固定180KHz开关频率&#xff0c;可以提供最高2.5A输出电流能力&#xff0c;具有低纹波&#xff0c;出色的线性调整率与负载调整率特点。XL2009内置固定频率振荡器与频率补偿电路&#xff0c;简化了电路设计。 PWM …

基于图像合成和注意力的深度神经网络从计算机断层扫描灌注图像中自动分割缺血性脑卒中病变

Automatic ischemic stroke lesion segmentation from computed tomography perfusion images by image synthesis and attention-based deep neural networks 基于图像合成和注意力的深度神经网络从计算机断层扫描灌注图像中自动分割缺血性脑卒中病变背景贡献实验Comparison o…

EMQX5设置客户端连接认证

文章目录 说明配置客户端连接认证配置1、访问控制-客户端认证-创建2、选择“密码”方式-下一步3、选择“内置数据库”-下一步4、账号类型选择“username”5、密码加密方式选择“plain”6、加盐方式“disable”-创建7、添加客户端连接的账密客户端连接验证 心得 说明 号外&…

旋变检测AD2s1205手册学习笔记

旋变故障检测故障表 信号丢失检测 检测原理&#xff1a;任一旋变输入(正弦或余弦)降至指定的LOS正弦/余弦阈值 以下时&#xff0c;器件会检测到信号丢失(LOS)。AD2S1205通过将 监视信号与固定最小值进行比较检测此点 丢失的效果表现&#xff1a;LOS由DOS和LOT引脚均闩锁为逻辑…

从文本(.txt)文件中读取数据时出现中文乱码

前言 当需要从记事本中读取数据时&#xff0c;发现读取的数据会出现中文乱码&#xff0c;我尝试了C和C读取文件&#xff0c;发现都是这样。 乱码原因 文本文件的保存默认使用UTF-8编码方式&#xff0c;而VS编译器的编码方式是GBK&#xff0c;所以不同的编码方式导致了乱码。…

OCP NVME SSD规范解读-5.命令超时限制-2

Sanitize清除的数据很彻底&#xff0c;对FTL映射表、User Data(包括已经写入NAND和仍在cache里的)、Meta Data、安全密匙、CMB中SQ/CQ相关信息、可能含有用户数据的log等等会全部清除。不过&#xff0c;sanitize操作不会改变RPMB、boot分区、不包含用户数据的cache等内容。 RP…

关于burpsuite对app(移动端)进行抓包的配置

可以使用手机模拟器&#xff0c;我这里以自己手机&#xff08;物理机&#xff09;演示配置过程 如果是使用的模拟器那么肯定和电脑是在同一局域网 如果使用物理机&#xff0c;那么可以通过连接同一WiFi确保在同一局域网环境下 查看电脑内网ip&#xff1a;192.168.1.105 &am…

Android 正圆

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"wrap_content"android:layout_height"wrap_content"android:padding&…

SPL-cmcRVFL+

吐槽 作者未提供代码&#xff0c;还有图1敢再糊点吗&#xff1f;

个性化Python GUI计算器搭建

大家好&#xff0c;本文将介绍在Python中使用Tkinter几分钟内制作自己的全功能GUI计算器。 要完成所提到的功能&#xff0c;除了通常随Python标准库一起安装的Tkinter之外&#xff0c;不需要任何额外的库。 如果使用的是Linux系统&#xff0c;可能需要安装&#xff1a; $ pi…

springboot学生综合测评系统源码和论文

随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;学生综合测评系统也不例外&#xff0c;但目前国内仍都使用人工管理&#xff0c;学校规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0c;而…

linux 内存管理

地址类型 一个虚拟内存系统, 意味着用户程序见到的地址不直接对应于硬件使用 的物理地址. 虚拟内存引入了一个间接层, 它允许了许多好事情. 有了虚拟内存, 系统重 运行的程序可以分配远多于物理上可用的内存; 确实, 即便一个单个进程可拥有一个虚拟 地址空间大于系统的物理内存…

【大厂算法面试冲刺班】day0:数据范围反推时间复杂度

常见算法的时间复杂度 规定n是数组的长度/树或图的节点数 二分查找&#xff1a;O(logn) 双指针/滑动窗口&#xff1a;O(n) DFS/BFS&#xff1a;O(n) 构建前缀和&#xff1a;O(n) 查找前缀和&#xff1a;O(1) 一维动态规划&#xff1a;O(n) 二维动态规划&#xff1a;O(n^2) 回溯…

第7章-第9节-Java中的Stream流(链式调用)

1、什么是Stream流 Lambda表达式&#xff0c;基于Lambda所带来的函数式编程&#xff0c;又引入了一个全新的Stream概念&#xff0c;用于解决集合类库既有的鼻端。 2、案例 假设现在有一个需求&#xff0c; 将list集合中姓张的元素过滤到一个新的集合中&#xff1b;然后将过滤…

做科技类的展台3d模型用什么材质比较好---模大狮模型网

对于科技类展台3D模型&#xff0c;以下是几种常用的材质选择&#xff1a; 金属材质&#xff1a;金属材质常用于科技展台的现代感设计&#xff0c;如不锈钢、铝合金或镀铬材质。金属材质可以赋予展台一个科技感和高档感&#xff0c;同时还可以反射光线&#xff0c;增加模型的真实…

Verilog 高级教程笔记——持续更新中

Verilog advanced tutorial 转换函数 调用系统任务任务描述int_val $rtoi( real_val ) ;实数 real_val 转换为整数 int_val 例如 3.14 -> 3real_val $itor( int_val ) ;整数 int_vla 转换为实数 real_val 例如 3 -> 3.0vec_val $realtobits( real_val ) ;实数转换为…

jquery 合并table表格行或列

合并行 $("#tableId").find("tr").each(function(rowIndex) {var cells $(this).find("td");cells.each(function(cellIndex) {var cell $(this);var prevRowCell table.find("tr:eq(" (rowIndex - 1) ")").find(&quo…