[优化算法]梯度下降法-凸函数的收敛性

文章目录

  • 1. 三个条件
  • 2. 二次上界引理
  • 3. 证明

1. 三个条件

  • f f f 有下界,可微,凸函数
  • ∇ f \nabla f fLipschitz连续
  • 步长 α ∈ ( 0 , 1 L ] \alpha \in (0,\frac{1}{L}] α(0,L1]
    { f ( x k ) } \{ f(x_k) \} {f(xk)} O ( 1 k ) \mathcal{O}(\frac{1}{k}) O(k1) 收敛于 f ∗ f^{*} f

2. 二次上界引理

f f f 可微, ∇ f \nabla f fLipschitz连续,则 f f f有二次上界,即
∀ x , y ∈ R n → f ( y ) ≤ f ( x ) + ∇ f ( x ) T ( y − x ) + L 2 ∣ ∣ y − x ∣ ∣ 2 \begin{equation} \forall x,y \in \mathbb{R}^n\rightarrow f(y)\le f(x)+\nabla f(x)^T(y-x)+\frac{L}{2}||y-x||^2 \end{equation} x,yRnf(y)f(x)+f(x)T(yx)+2L∣∣yx2

3. 证明

  • 我们前提是梯度下降法: x i = x i − 1 − ∇ f T ( x i − 1 ) α x_i=x_{i-1}-\nabla f^T(x_{i-1} ) \alpha xi=xi1fT(xi1)α

  • 不妨设 y = x i , x = x i − 1 y=x_i,x=x_{i-1} y=xi,x=xi1,则可得: y − x = x i − x i − 1 = − ∇ f T ( x i − 1 ) α y-x=x_i-x_{i-1}=-\nabla f^T(x_{i-1} ) \alpha yx=xixi1=fT(xi1)α

  • 代入到二次上界引理可得:
    f ( x i ) ≤ f ( x i − 1 ) + ∇ f ( x i − 1 ) T [ − ∇ f T ( x i − 1 ) α ] + L 2 [ − ∇ f T ( x i − 1 ) α ] 2 \begin{equation} f(x_i)\le f(x_{i-1})+\nabla f(x_{i-1})^T[-\nabla f^T(x_{i-1} ) \alpha]+\frac{L}{2}[-\nabla f^T(x_{i-1} ) \alpha]^2 \end{equation} f(xi)f(xi1)+f(xi1)T[fT(xi1)α]+2L[fT(xi1)α]2

  • 右边整理可得:
    = f ( x i − 1 ) − [ ∇ f T ( x i − 1 ) ] 2 α + L α 2 2 [ ∇ f T ( x i − 1 ) ] 2 \begin{equation} = f(x_{i-1})-[\nabla f^T(x_{i-1} )]^2 \alpha+\frac{L\alpha^2}{2}[\nabla f^T(x_{i-1})]^2 \end{equation} =f(xi1)[fT(xi1)]2α+2Lα2[fT(xi1)]2

  • 因为 α ≤ 1 L \alpha \le \frac{1}{L} αL1,则可得: L ≤ 1 α → L α 2 2 ≤ α 2 2 1 α → L α 2 2 ≤ α 2 L\le \frac{1}{\alpha}\rightarrow \frac{L\alpha^2}{2}\le \frac{\alpha^2}{2}\frac{1}{\alpha}\rightarrow \frac{L\alpha^2}{2}\le \frac{\alpha}{2} Lα12Lα22α2α12Lα22α

  • 右边放缩可得:
    ≤ f ( x i − 1 ) − [ ∇ f T ( x i − 1 ) ] 2 α + α 2 [ ∇ f T ( x i − 1 ) ] 2 = f ( x i − 1 ) − α 2 [ ∇ f T ( x i − 1 ) ] 2 \begin{equation} \le f(x_{i-1})-[\nabla f^T(x_{i-1} )]^2 \alpha+\frac{\alpha}{2}[\nabla f^T(x_{i-1})]^2= f(x_{i-1})-\frac{\alpha}{2}[\nabla f^T(x_{i-1} )]^2 \end{equation} f(xi1)[fT(xi1)]2α+2α[fT(xi1)]2=f(xi1)2α[fT(xi1)]2

  • 综上所述可得:
    f ( x i ) ≤ f ( x i − 1 ) − α 2 [ ∇ f T ( x i − 1 ) ] 2 \begin{equation} f(x_i)\le f(x_{i-1})-\frac{\alpha}{2}[\nabla f^T(x_{i-1} )]^2 \end{equation} f(xi)f(xi1)2α[fT(xi1)]2
    在这里插入图片描述
    在这里插入图片描述

  • 如图所示,极值点 f ∗ ≥ y A f^*\ge y_A fyA,
    f ( x i − 1 ) − y A x i − 1 − x ∗ = ∇ f T ( x i − 1 ) \begin{equation} \frac{f(x_{i-1})-y_A}{x_{i-1}-x^*}=\nabla f^T(x_{i-1}) \end{equation} xi1xf(xi1)yA=fT(xi1)

  • 整理上式可得:
    y A = f ( x i − 1 ) − ∇ f T ( x i − 1 ) [ x i − 1 − x ∗ ] \begin{equation} y_A=f(x_{i-1})-\nabla f^T(x_{i-1})[x_{i-1}-x^*] \end{equation} yA=f(xi1)fT(xi1)[xi1x]
    f ∗ ≥ f ( x i − 1 ) − ∇ f T ( x i − 1 ) [ x i − 1 − x ∗ ] \begin{equation} f^*\ge f(x_{i-1})-\nabla f^T(x_{i-1})[x_{i-1}-x^*] \end{equation} ff(xi1)fT(xi1)[xi1x]

  • 整理上式可得:
    f ( x i − 1 ) ≤ f ∗ + ∇ f T ( x i − 1 ) [ x i − 1 − x ∗ ] \begin{equation} f(x_{i-1})\le f^*+\nabla f^T(x_{i-1})[x_{i-1}-x^*] \end{equation} f(xi1)f+fT(xi1)[xi1x]

  • 将上面得到的公式如下:
    f ( x i ) ≤ f ( x i − 1 ) − α 2 [ ∇ f T ( x i − 1 ) ] 2 \begin{equation} f(x_i)\le f(x_{i-1})-\frac{\alpha}{2}[\nabla f^T(x_{i-1} )]^2 \end{equation} f(xi)f(xi1)2α[fT(xi1)]2

  • 放大右边可得:
    f ( x i ) ≤ f ∗ + ∇ f T ( x i − 1 ) [ x i − 1 − x ∗ ] − α 2 [ ∇ f T ( x i − 1 ) ] 2 \begin{equation} f(x_i)\le f^*+\nabla f^T(x_{i-1})[x_{i-1}-x^*]-\frac{\alpha}{2}[\nabla f^T(x_{i-1} )]^2 \end{equation} f(xi)f+fT(xi1)[xi1x]2α[fT(xi1)]2

  • 配方右边等式可得:
    = f ∗ − 1 2 α [ ( α 2 ( ∇ f T ( x i − 1 ) ) 2 − 2 α ∇ f T ( x i − 1 ) ( x i − 1 − x ∗ ) ] \begin{equation} =f^*-\frac{1}{2\alpha}[(\alpha^2 (\nabla f^T(x_{i-1} ))^2-2\alpha \nabla f^T(x_{i-1} )(x_{i-1}-x^*)] \end{equation} =f2α1[(α2(fT(xi1))22αfT(xi1)(xi1x)]
    = f ∗ − 1 2 α [ ( α 2 ( ∇ f T ( x i − 1 ) ) 2 − 2 α ∇ f T ( x i − 1 ) ( x i − 1 − x ∗ ) + ( x i − 1 − x ∗ ) 2 − ( x i − 1 − x ∗ ) 2 ] \begin{equation} =f^*-\frac{1}{2\alpha}[(\alpha^2 (\nabla f^T(x_{i-1} ))^2-2\alpha \nabla f^T(x_{i-1} )(x_{i-1}-x^*)+(x_{i-1}-x^*)^2-(x_{i-1}-x^*)^2] \end{equation} =f2α1[(α2(fT(xi1))22αfT(xi1)(xi1x)+(xi1x)2(xi1x)2]
    = f ∗ − 1 2 α [ ( α ∇ f T ( x i − 1 ) − x i − 1 + x ∗ ) 2 − ( x i − 1 − x ∗ ) 2 ] \begin{equation} =f^*-\frac{1}{2\alpha}[(\alpha \nabla f^T(x_{i-1} )-x_{i-1}+x^*)^2-(x_{i-1}-x^*)^2] \end{equation} =f2α1[(αfT(xi1)xi1+x)2(xi1x)2]

  • ( α ∇ f T ( x i − 1 ) − x i − 1 + x ∗ ) 2 = ( x i − 1 − α ∇ f T ( x i − 1 ) − x ∗ ) 2 (\alpha \nabla f^T(x_{i-1} )-x_{i-1}+x^*)^2=(x_{i-1} -\alpha \nabla f^T(x_{i-1} )-x^*)^2 (αfT(xi1)xi1+x)2=(xi1αfT(xi1)x)2,根据梯度公式可得:
    x i = x i − 1 − ∇ f T ( x i − 1 ) α → ( α ∇ f T ( x i − 1 ) − x i − 1 + x ∗ ) 2 = ( x i − x ∗ ) 2 \begin{equation} x_i=x_{i-1}-\nabla f^T(x_{i-1} ) \alpha \rightarrow (\alpha \nabla f^T(x_{i-1} )-x_{i-1}+x^*)^2=(x_i-x^*)^2 \end{equation} xi=xi1fT(xi1)α(αfT(xi1)xi1+x)2=(xix)2

  • 综合整理上式可得:
    f ( x i ) ≤ f ∗ − 1 2 α [ ( x i − x ∗ ) 2 − ( x i − 1 − x ∗ ) 2 ] \begin{equation} f(x_i)\le f^*-\frac{1}{2\alpha}[(x_i-x^*)^2-(x_{i-1}-x^*)^2] \end{equation} f(xi)f2α1[(xix)2(xi1x)2]

  • 改成范数形式可得:
    f ( x i ) ≤ f ∗ + 1 2 α [ ∣ ∣ x i − 1 − x ∗ ∣ ∣ 2 − ∣ ∣ x i − x ∗ ∣ ∣ 2 ] \begin{equation} f(x_i)\le f^*+\frac{1}{2\alpha}[||x_{i-1}-x^*||^2-||x_{i}-x^*||^2] \end{equation} f(xi)f+2α1[∣∣xi1x2∣∣xix2]

  • 不断代入可得:
    f ( x i ) − f ∗ ≤ 1 2 α [ ∣ ∣ x 0 − x ∗ ∣ ∣ 2 − ∣ ∣ x 1 − x ∗ ∣ ∣ 2 ] \begin{equation} f(x_i) -f^*\le\frac{1}{2\alpha}[||x_{0}-x^*||^2-||x_{1}-x^*||^2] \end{equation} f(xi)f2α1[∣∣x0x2∣∣x1x2]
    f ( x i ) − f ∗ ≤ 1 2 α [ ∣ ∣ x 1 − x ∗ ∣ ∣ 2 − ∣ ∣ x 2 − x ∗ ∣ ∣ 2 ] \begin{equation} f(x_i) -f^*\le\frac{1}{2\alpha}[||x_{1}-x^*||^2-||x_{2}-x^*||^2] \end{equation} f(xi)f2α1[∣∣x1x2∣∣x2x2]
    f ( x k ) − f ∗ ≤ 1 2 α [ ∣ ∣ x k − 1 − x ∗ ∣ ∣ 2 − ∣ ∣ x k − x ∗ ∣ ∣ 2 ] \begin{equation} f(x_k) -f^*\le\frac{1}{2\alpha}[||x_{k-1}-x^*||^2-||x_{k}-x^*||^2] \end{equation} f(xk)f2α1[∣∣xk1x2∣∣xkx2]

  • 左右相加可得:
    ∑ i = 1 k [ f ( x i ) − f ∗ ] ≤ 1 2 α [ ∣ ∣ x 0 − x ∗ ∣ ∣ 2 − ∣ ∣ x k − x ∗ ∣ ∣ 2 ] ≤ 1 2 α ∣ ∣ x 0 − x ∗ ∣ ∣ 2 \begin{equation} \sum_{i=1}^k[f(x_i) -f^*]\le\frac{1}{2\alpha}[||x_{0}-x^*||^2-||x_{k}-x^*||^2]\le\frac{1}{2\alpha}||x_{0}-x^*||^2 \end{equation} i=1k[f(xi)f]2α1[∣∣x0x2∣∣xkx2]2α1∣∣x0x2

  • 因为:
    ∑ i = 1 k ( f ( x k ) − f ∗ ) = k [ f ( x k ) − f ∗ ] → f ( x k ) − f ∗ = 1 k ∑ i = 1 k ( f ( x k ) − f ∗ ) \begin{equation} \sum_{i=1}^k(f(x_k)-f^*)=k[f(x_k)-f^*]\rightarrow f(x_k)-f^*=\frac{1}{k}\sum_{i=1}^k(f(x_k)-f^*) \end{equation} i=1k(f(xk)f)=k[f(xk)f]f(xk)f=k1i=1k(f(xk)f)

  • 由于 f ( x i ) f(x_i) f(xi)我们定义单调递减,所以可得: f ( x i ) ≥ f ( x k ) f(x_i)\ge f(x_k) f(xi)f(xk)
    f ( x k ) − f ∗ = 1 k ∑ i = 1 k ( f ( x k ) − f ∗ ) ≤ 1 k ∑ i = 1 k ( f ( x i ) − f ∗ ) \begin{equation} f(x_k)-f^*=\frac{1}{k}\sum_{i=1}^k(f(x_k)-f^*)\le \frac{1}{k}\sum_{i=1}^k(f(x_i)-f^*) \end{equation} f(xk)f=k1i=1k(f(xk)f)k1i=1k(f(xi)f)

  • 整理可得:
    f ( x k ) − f ∗ = 1 k ∑ i = 1 k ( f ( x i ) − f ∗ ) ≤ 1 k ⋅ 1 2 α ∣ ∣ x 0 − x ∗ ∣ ∣ 2 = O ( 1 k ) \begin{equation} f(x_k)-f^*=\frac{1}{k}\sum_{i=1}^k(f(x_i)-f^*)\le \frac{1}{k}\cdot \frac{1}{2\alpha}||x_0-x^*||^2=\mathcal{O}(\frac{1}{k}) \end{equation} f(xk)f=k1i=1k(f(xi)f)k12α1∣∣x0x2=O(k1)

  • 综上所述:
    f ( x k ) − f ∗ = O ( 1 k ) \begin{equation} f(x_k)-f^*=\mathcal{O}(\frac{1}{k}) \end{equation} f(xk)f=O(k1)
    { f ( x k ) } \{ f(x_k) \} {f(xk)} O ( 1 k ) \mathcal{O}(\frac{1}{k}) O(k1) 收敛于 f ∗ f^{*} f

视频来源于B站大佬,以上为视频学习笔记

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

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

相关文章

53-1 内网代理3 - Netsh端口转发(推荐)

靶场还是用上一篇文章搭建的靶场 :52-5 内网代理2 - LCX端口转发(不推荐使用LCX)-CSDN博客 一、Netsh 实现端口转发 Netsh是Windows自带的命令行脚本工具,可用于配置端口转发。在一个典型的场景中,如果我们位于公网无法直接访问内网的Web服务器,可以利用中间的跳板机通过…

人工智能写作对话系统源码 自然语言的处理能力 前后端分离 带完整的安装代码包以及搭建教程

系统概述 随着互联网信息爆炸式增长,用户对于高质量、个性化内容的需求日益增长,而传统的内容生成方式已难以满足这一需求。另一方面,深度学习和自然语言处理技术的突破性进展,为人机交互提供了新的可能。本项目正是在此背景下应…

使用OpenCV与PySide(PyQt)的视觉检测小项目练习

OpenCV 提供了丰富的图像处理和计算机视觉功能,可以实现各种复杂的图像处理任务,如目标检测、人脸识别、图像分割等。 PyQt(或PySide)是一个创建GUI应用程序的工具包,它是Python编程语言和Qt库的成功融合。Qt库是最强大的GUI库之一。Qt的快速…

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【明文导入密钥(C/C++)】

明文导入密钥(C/C) 以明文导入ECC密钥为例。具体的场景介绍及支持的算法规格 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 指定密钥别名keyAlias。 密钥别名的最大长度为64字节。 封装密钥属性集和密钥材料。通过[OH_Huks_I…

linux RTC时钟时间出现了明显的偏移

RTC时钟时间出现了明显的偏移 1、开发环境2、问题阐述3、验证问题3.1、首先去排查了硬件电路和芯片电压不稳定的问题。3.2、晶振的问题。3.3、芯片本身3.4、芯片寄存器 4、代码修改 1、开发环境 平台:imx6ul kernel版本:linux4.1.5 RTC芯片:…

18_特征金字塔网络FPN结构详解

1.1 简介 在深度学习领域,尤其是计算机视觉和目标检测任务中,Feature Pyramid Networks (FPN) 是一种革命性的架构设计,它解决了多尺度特征检测和融合的关键问题。FPN最初由何凯明等人在2017年的论文《Feature Pyramid Networks for Object …

【MySQL】4.MySQL 的数据类型

MySQL 的数据类型 一.数据类型分类在这里插入图片描述二.注意点1.char VS varchar2.datetime VS timestamp3.enum 和 set 的使用方法 一.数据类型分类 二.注意点 1.char VS varchar char 的意义是直接开辟固定大小的空间,浪费磁盘空间,但是效率高varcha…

通过串口烧录keil程序到GD32F103C

插好GD32F103C单片机电源线,将单片机和电脑用串口连接起来 ,串口芯片是CH340,打开设备管理器,出现感叹号 这是由于没有安装CH340串口驱动 CH340系列USB转串口驱动 win7/win10 64位 打开属性,显示:由于 W…

SHAP(SHapley Additive exPlanations)基于XGBoost模型的可解释机器学习

模型可解释性 这是一个关于错误解释机器学习模型的危险以及正确解释它的价值的故事。如果您发现诸如梯度提升机或随机森林之类的集成树模型的鲁棒准确性很有吸引力,但也需要解释它们,那么我希望您发现这些信息有用且有帮助。 试想一下,我们…

【项目管理】常见的敏捷实践:Scrum框架

【项目管理】常见的敏捷实践:Scrum框架 精益、敏捷与Scrum框架Scrum框架实践Sprint(冲刺)Scrum角色Scrum工件Scrum会议 精益、敏捷与Scrum框架 敏捷与精益思想、看板、Scrum等概念的关系如下图所示: Lean 精益 Kanban 看板 Ag…

永磁同步电机控制算法--扇区细分的直接转矩控制(十八扇区)

优化转矩磁链调节器和开关表可降低转矩脉动,改善直接转矩控制性能。有研究仔细分析了传统永磁同步电机六扇区 DTC 方案中空间电压矢量对磁链与转矩轨迹的作用过程发现,随着定子磁链在扇区内位置的变化,电压矢量对磁链与转矩的作用是不均衡的&…

centos7|操作系统|低版本的OpenSSH升级到最新版本OpenSSH-9.8.p1

前言: 1、 OpenSSH是什么 OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都…

实现antd designable平台的组件拖拽功能

平台:designable设计器 github:designable 目录 1 背景2 技术栈3 组件拖拽和放置3.1 类型定义3.2 拖拽3.3 放置 1 背景 由于业务需求,我们需要实现designable平台的一个简易版的组件拖拽功能。 #mermaid-svg-QrxSDGe9YyGG3LbQ {font-family:…

远心镜头简介

一、远心镜头 大家都有这种印象,一个物体在人眼看来,会有近大远小的现象。这是因为物体近的时候,在视网膜上投影大,小的时候,投影小。镜头也是一样,因为近大远小的原因,会产生误差。特别是在做尺…

测试图片上传功能,使用postman提供的url

是不是有时候想要测试图片上传功能,但是没有后台url进行测试,这时候就可以使用postman提供的url: https://postman-echo.com/post接下来,我将教你在postman中,用该url测试图片上传功能。 1.发送图片上传请求 第一步…

学习笔记——动态路由——OSPF聚合(汇总)

十一、OSPF聚合(汇总) 1、路由聚合(汇总) 路由汇总是一种重要的思想,在大型的项目中是必须考虑的一个重点事项。随着网络的规模越来越大,网络中的设备所需维护的路由表项也就会越来越多,路由表的规模也就会逐渐变大,而路由表是需…

Linux系统(Centos)下MySQL数据库中文乱码问题解决

问题描述:在进行数据库使用过程中,数据库里的数据中文都显示乱码。操作数据库的时候,会出现中文乱码问题。 解决方法如下: 第一步:打开虚拟机进入系统,启动MySQL。 第二步:连接登录MySQL输入…

0301STM32GPIO外设输出

STM32GPIO外设输出 STM32内部的GPIO外设GPIO简介基本结构GPIO位结构输入部分:输出部分: GPIO八种工作模式浮空/上拉/下拉输入模拟输入开漏/推挽输出复用开漏/推挽输出 手册寄存器描述GPIO功能描述外设的GPIO配置GPIO寄存器描述端口输入数据寄存器端口输出…

【驱动篇】龙芯LS2K0300之ADC驱动

实验目的 由于LS2K0300久久派开发板4.19内核还没有现成可用的ADC驱动,但是龙芯官方的5.10内核已经提供了ADC驱动,想要在4.19内核使用ADC就要参考5.10内核移植驱动,本次实验主要是关于ADC驱动的移植和使用 驱动移植 主要的驱动代码主要有3个…

【ROS2】初级:客户端-创建自定义 msg 和 srv 文件

目标:定义自定义接口文件( .msg 和 .srv )并将它们与 Python 和 C节点一起使用。 教程级别:初学者 时间:20 分钟 目录 背景 先决条件 任务 1. 创建一个新包2. 创建自定义定义3 CMakeLists.txt4 package.xml5. 构建 tut…