Compositional Minimax Optimization学习之路

2023-09-20 14:44:39

 梯度

最优化理论

最优化基础---基本概念:凸优化、梯度、Jacobi矩阵、Hessian矩阵_哔哩哔哩_bilibili

 从图像来看:存在两点连线上的点不在集合内

定义 ax1+(1-a)x2 其实就是两点连线上的点 

可用 与函数围成的面积 和 与坐标轴围成的面积 角度理解凸函数 

 凸优化

在定义域和F(X)都是凸集的问题(凸凸问题),就是凸优化

 jacobi 广义导数  n维映射到m维

梯度的雅可比矩阵就是海森矩阵

动量法(Momentum)是一种常用的梯度下降优化算法,通过引入动量概念来加速收敛速度和提高稳定性。在传统的梯度下降算法中,每次更新参数时都是直接根据当前的梯度进行更新,而动量法则考虑了之前的更新历史,使得参数更新更具有惯性。

动量法的核心思想是在更新参数时,根据当前的梯度和之前累积的速度(动量),计算出新的速度,并利用新的速度来更新参数。其计算方式如下:

v(t) = β * v(t-1) + (1 - β) * ∇J(w)

w(t) = w(t-1) - α * v(t)

其中,v(t)表示当前时刻的速度,w(t)表示当前时刻的参数,∇J(w)表示当前时刻的梯度,α为学习率(步长),β为动量系数,控制了之前速度的权重。

动量法的关键在于动量系数的选择。动量系数越大,之前速度对当前速度的影响就越大,可以增加算法在平坦区域的探索能力,减少震荡;动量系数越小,算法则更加稳定,适合处理局部极小值点。

动量法的优点是可以加速收敛速度、提高稳定性,并且在处理具有大量平坦区域的目标函数时特别有效。它广泛应用于深度学习和神经网络的训练过程中,能够加速模型的收敛,提高训练效率。

牛顿法

牛顿法(Newton's Method),是一种用于求解方程的迭代数值方法。它通过使用函数的一阶和二阶导数信息,以迭代的方式逼近方程的根。

牛顿法的基本原理如下:

  1. 初始化:选择一个初始近似解 x₀。

  2. 迭代过程:

    • 计算当前近似解 xₙ 的函数值 f(xₙ) 和一阶导数值 f'(xₙ)。
    • 如果 f'(xₙ) ≈ 0,则终止迭代,xₙ 可能是方程的驻点。
    • 更新近似解:xₙ₊₁ = xₙ - f(xₙ) / f'(xₙ)。
  3. 判断条件:

    • 若 |xₙ₊₁ - xₙ| < ε,其中 ε 为预先设定的精度要求,迭代收敛,结束迭代过程。
    • 否则,重复步骤 2,直到满足终止条件。

牛顿法利用了函数的局部线性近似来寻找方程根,通过不断迭代更新近似解,使得近似解逐渐接近真实的根。相比于区间消去法,牛顿法在附近具有较好的收敛速度,尤其适用于平坦区域较小的光滑函数。

牛顿法在求解非线性方程、优化问题以及曲线拟合等领域广泛应用。然而,牛顿法也有一些局限性,如对于初始近似解的选择敏感,可能出现迭代发散或跳过根的情况。此外,在某些情况下,牛顿法可能会陷入局部最小值或不稳定的状态。

为了克服牛顿法的局限性,人们发展了许多改进的变体方法,如拟牛顿法(Quasi-Newton Methods)和加权牛顿法(Weighted Newton Methods),以提高算法的稳定性和收敛性。

牛顿法得知道一阶导、二阶导。简直天上掉馅饼,而插值法使用导数的定义代替牛顿法中二阶导。

 

更多推荐

计算机网络(二):TCP篇

文章目录1.TCP头部包含哪些内容?2.为什么需要TCP协议?TCP工作在哪一层?3.什么是TCP?4.什么是TCP连接?5.如何唯一确定一个TCP连接呢?6.UDP头部大小是多少?包含哪些内容?7.TCP与UDP的区别?9.TCP和UDP可以使用同一个端口吗?10.TCP三次握手过程是怎样的?11.如何在Linux系

笔试面试相关记录(5)

(1)给定一个字符串,含有大写、小写字母,空格,数字,需要将其变为满足如下条件:所有的数字需要换成空格,并且字符串的头尾不包含空格,且整个字符串不包含连续的两个空格。(2)给定n,k,L,R,接下拉n个数字,要从中选出某个序列,这个序列满足如下条件:对于整个数组中的任意的k个连续的子数组,所选出的子序列必须包含子数组中

Linux网络编程(TCP状态转换关系)

文章目录前言一、TCP状态转换图二、TCP连接状态转换解析三、TCP断开状态转换解析四、为什么需要有2MLS时长总结前言本篇文章来讲解一下TCP的状态转换关系,学习这个状态转换关系对于我们深入了解网络编程是非常有必要的。一、TCP状态转换图二、TCP连接状态转换解析客户端状态转换:1.CLOSED->SYN-SENT:

【Linux】网络编程套接字(C++)

目录一、预备知识【1.1】理解源IP地址和目的IP地址【1.2】认识端口号【1.3】理解"端口号"和"进程ID"【1.4】理解源端口号和目的端口号【1.5】认识TCP协议【1.6】认识UDP协议二、网络字节序【2.1】socket编程接口【2.1.1】socketAPI【2.1.2】bindAPI【2.1.3】list

单片机论文参考:1、基于单片机的电子琴

摘要随着社会的发展进步,音乐逐渐成为我们生活中很重要的一部分,有人曾说喜欢音乐的人不会向恶。我们都会抽空欣赏世界名曲,作为对精神的洗礼。本论文设计一个基于单片机的简易电子琴。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入

深度学习-偏导数复习

文章目录前言1.偏导数2.偏导数概念1.对x的偏导数2.对y的偏导数3.多元函数偏导数4.如何计算偏导数1.二元函数的偏导数2.复杂函数的偏导数3.分段函数1.分界点的偏导数5.偏导数与连续之间的关系6.偏导数的几何意义7.高阶偏导数1.定义2.高阶偏导数例题(二阶偏导数)3.全微分1.偏增量定义2.全增量定义3计算方

多线程设计模式【多线程上下文设计模式、Guarded Suspension 设计模式、 Latch 设计模式】(二)-全面详解(学习总结---从入门到深化)

目录多线程上下文设计模式Balking设计模式DocumentAutoSaveThreadDocumentEditThreadGuardedSuspension设计模式什么是GuardedSuspension设计模式GuardedSuspension的示例Latch设计模式TwoPhaseTermination设计模式

商城免费搭建之java商城 开源java电子商务Spring Cloud+Spring Boot+mybatis+MQ+VR全景+b2b2c

1.涉及平台平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)2.核心架构SpringCloud、SpringBoot、Mybatis、Redis3.前端框架VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程

Learn Prompt-什么是ChatGPT?

ChatGPT(生成式预训练变换器)是由OpenAI在2022年11月推出的聊天机器人。它建立在OpenAI的GPT-3.5大型语言模型之上,并采用了监督学习和强化学习技术进行了微调。ChatGPT是一种聊天机器人,允许用户与基于计算机的代理进行对话。它通过使用机器学习算法分析文本输入并生成旨在模仿人类对话的响应来工作

.NET 8 Release Candidate 1 (RC1)现已发布,包括许多针对ASP.NET Core的重要改进!

这是我们计划在今年晚些时候发布的最终.NET8版本之前的两个候选版本中的第一个。大部分计划中的功能和变更都包含在这个候选版本中,可以供您尝试使用。您可以在文档中找到完整的ASP.NETCore在.NET8中的新功能列表。一些领域(尤其是Blazor)仍然有一些重大的变更待完成,我们预计将在下一个.NET8候选版本中完成

从零开发短视频电商 使用Spring WebClient发起远程Http调用

文章目录依赖使用创建WebClient实例创建带有超时的WebClient实例示例请求准备获取响应高级过滤器自定义过滤器自定义线程池自定义WebClient连接池开启日志错误处理最佳实践示例异步请求同步请求上传文件重试过滤错误错误处理参考SpringWebClient是SpringWebFlux项目中Spring5中引

热文推荐