计算机视觉的深度学习 Lecture4:Optimization 笔记 EECS 498.008

news2024/12/23 22:30:57

数值计算梯度

问题是慢,每个都要注意做步长,求除法。

应该用求导方法解决。

SGD通过每次抽取一部分(mini-batch)来计算梯度,而不是遍历整个数据集来求梯度,大大增大了求梯度速度,并且性能不怎么受影响。
在GPU内存范围内,应尽可能扩大mini-batch大小。

概率视角:通过随机抽样mini-batch求出的梯度,在期望上等于用全部样本计算的梯度。

todo:
Multiclass SVM optimization demo (stanford.edu) 看明白这里面其中一步的计算:

下面这个图从上到下正视图、等高线图,也就是垂直方向梯度变化大,水平方向梯度变换缓

二维梯度计算代价大,实际上不怎么用(二维海参矩阵是 n ∗ n n*n nn的,并且求逆(invert) O ( n 3 ) O(n^3) O(n3)

可能不太精准、形象的理解:
动量下降让下降不那么摇摆,但是容易冲过头然后回来;
Nesterov看下一步的走向,动量下降看当前走向,区别不大;
AdaGrad在梯度大时步子变小,梯度小时步子变大。问题是一直训练除的系数grad_squared变得很大,走到一半就停了;
RMSProp是加权的AdaGrad,限制了grad_squared的大小;
Adam结合了上述方法,并抑制了一开始的巨大变化。

提示:

Adam with beta1 = 0.9,
beta2 = 0.999, and learning_rate = 1e-3, 5e-4, 1e-4
is a great starting point for many models!

证明下图两个式子相等:


我们首先考虑第一个更新式子(取负梯度):

  1. v t + 1 = ρ v t − α g t v_{t+1} = \rho v_t - \alpha g_t vt+1=ρvtαgt
  2. x t + 1 = x t + v t + 1 x_{t+1} = x_t + v_{t+1} xt+1=xt+vt+1

我们需要递归地展开 v t + 1 v_{t+1} vt+1 项。为了方便表示,我们将梯度项 g t g_t gt 表示为 g 1 , g 2 , … , g t g_1, g_2, \dots, g_t g1,g2,,gt。现在我们来展开 v t + 1 v_{t+1} vt+1

v 2 = − α g 1 v_2 = -\alpha g_1 v2=αg1
v 3 = ρ ( − α g 1 ) − α g 2 = − α ( ρ g 1 + g 2 ) v_3 = \rho (-\alpha g_1) - \alpha g_2 = -\alpha (\rho g_1 + g_2) v3=ρ(αg1)αg2=α(ρg1+g2)
v 4 = ρ ( − α ( ρ g 1 + g 2 ) ) − α g 3 = − α ( ρ 2 g 1 + ρ g 2 + g 3 ) v_4 = \rho(-\alpha (\rho g_1 + g_2)) - \alpha g_3 = -\alpha (\rho^2 g_1 + \rho g_2 + g_3) v4=ρ(α(ρg1+g2))αg3=α(ρ2g1+ρg2+g3)

以此类推,我们可以得到:

v t + 1 = − α ( ρ t − 1 g 1 + ρ t − 2 g 2 + ⋯ + ρ g t − 1 + g t ) v_{t+1} = -\alpha (\rho^{t-1} g_1 + \rho^{t-2} g_2 + \dots + \rho g_{t-1} + g_t) vt+1=α(ρt1g1+ρt2g2++ρgt1+gt)

接下来,我们将 v t + 1 v_{t+1} vt+1 代入第二个更新式子:

x t + 1 = x t + v t + 1 = x t − α ( ρ t − 1 g 1 + ρ t − 2 g 2 + ⋯ + ρ g t − 1 + g t ) x_{t+1} = x_t + v_{t+1} = x_t - \alpha (\rho^{t-1} g_1 + \rho^{t-2} g_2 + \dots + \rho g_{t-1} + g_t) xt+1=xt+vt+1=xtα(ρt1g1+ρt2g2++ρgt1+gt)

现在我们考虑第二个更新式子(取正梯度):

  1. v t + 1 = ρ v t + g t v_{t+1} = \rho v_t + g_t vt+1=ρvt+gt
  2. x t + 1 = x t − α v t + 1 x_{t+1} = x_t - \alpha v_{t+1} xt+1=xtαvt+1

我们同样需要递归地展开 v t + 1 v_{t+1} vt+1 项:

v 2 = g 1 v_2 = g_1 v2=g1
v 3 = ρ g 1 + g 2 v_3 = \rho g_1 + g_2 v3=ρg1+g2
v 4 = ρ ( ρ g 1 + g 2 ) + g 3 = ρ 2 g 1 + ρ g 2 + g 3 v_4 = \rho (\rho g_1 + g_2) + g_3 = \rho^2 g_1 + \rho g_2 + g_3 v4=ρ(ρg1+g2)+g3=ρ2g1+ρg2+g3

以此类推,我们可以得到:

v t + 1 = ρ t − 1 g 1 + ρ t − 2 g 2 + ⋯ + ρ g t − 1 + g t v_{t+1} = \rho^{t-1} g_1 + \rho^{t-2} g_2 + \dots + \rho g_{t-1} + g_t vt+1=ρt1g1+ρt2g2++ρgt1+gt

接下来,我们将 v t + 1 v_{t+1} vt+1 代入第二个更新式子:

x t + 1 = x t − α v t + 1 = x t − α ( ρ t − 1 g 1 + ρ t − 2 g 2 + ⋯ + ρ g t − 1 + g t ) x_{t+1} = x_t - \alpha v_{t+1} = x_t - \alpha (\rho^{t-1} g_1 + \rho^{t-2} g_2 + \dots + \rho g_{t-1} + g_t) xt+1=xtαvt+1=xtα(ρt1g1+ρt2g2++ρgt1+gt)

现在我们可以看到,两个更新式子在数学上是等价的。

注意这个等价是全过程等价,如果只挑选其中一步是不同的。例如不能直接把这两个式子代换得到相同结果。

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

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

相关文章

TCP 协议特性详解

TCP 协议特性总结 TCP协议特点TCP协议段格式TCP原理确认应答(安全机制)超时重传(安全机制)连接管理(安全机制)(面试高频题)三次握手四次挥手 滑动窗口(效率机制)流量控制&#xff08…

【LeetCode】数据结构题解(8)[链表中的入口节点]

链表中的入口节点 1.题目来源2.题目描述3.解题思路4.代码展示 1.题目来源 链表中的入口节点 2.题目描述 给定一个链表,返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next 指针进入环的第一个节点为环的入口节点。如果链表无环,则返回 null…

08-HTML-样式和语意标签

1、<style> 标签用于为 HTML 文档定义样式信息。type 属性是必需的&#xff0c;定义 style 元素的内容。唯一可能的值是 "text/css"。style 元素位于 head 部分中。 2、<div> 可定义文档中的分区或节&#xff08;division/section&#xff09;。<div&…

Unity Audio -- (4)为声音添加特殊效果

本节我们使用声音混响区域&#xff08;audio reverb zone&#xff09;实现一些特殊效果。 什么是混响区域&#xff08;audio reverb zone&#xff09; 不同障碍物对声波的反射和吸收能力不同&#xff0c;坚硬平整表面反射声波能力强&#xff0c;松软多孔的表面吸收声波能力强。…

yolov5环境搭建(Anaconda-py3.9、PyTorch-CPU、yolov5-4.0、PyCharm)

1.环境准备 Windows 10Anaconda&#xff08;基于Python3.9&#xff09;&#xff0c;已配置好环境变量yolov5相关的代码、权重文件等&#xff0c;已经打包整理好&#xff0c;可以通过百度网盘绿色下载。链接: https://pan.baidu.com/s/1okVkfpqjI5wD6PigK-AH0w?pwdyscw 提取码…

RabbitMQ发布/订阅(交换机)

目录 RabbitMQ发布/订阅(交换机)介绍Fanout&#xff08;广播&#xff09;声明队列和交换机publisher 消息发送consumer消息接收 Direct&#xff08;定向&#xff09;consumer消息接收,基于注解声明队列和交换机publisher 消息发送总结 Topic&#xff08;通配符&#xff09;publ…

【腾讯云Finops Crane集训营】利用云原生成本优化项目实现降本增效泰酷辣~

Crane 是一个基于 FinOps 的云资源分析与成本优化平台。在保证客户应用运行质量的前提下实现极致的降本。 文章目录 一、 前言&#x1f350;二、 Crane开源项目简介&#x1f34e;2.1. Crane整体框架&#x1f352;2.2. Crane主要功能&#x1f345; 三、Crane实验前期准备&#x…

Cesium入门之二:引用Cesium并创建第一个三维地球

这一节我们来引入Cesium并创建第一个三维地图程序 Cesium的引入 1、新建一个文件夹&#xff0c;命名为first_cesium,在该文件夹下新建一个Build文件夹&#xff0c;将上一节我们下载的Cesium文件夹下Build文件夹---->Cesium文件夹下的文件全部拷贝到first_cesium---->Bu…

关于阿里云的图像搜索的创建和使用

大家好哇&#xff0c;我又来了&#xff0c;这次我们来聊下关于阿里云的图像搜索功能的创建和使用。 https://free.aliyun.com/?crowdpersonal 1、我们可以通过上面的链接进入到阿里云云产品免费试用页面&#xff0c;这里主要是阿里云为新手用户提供的免费体验的权益&#xff…

Cesium入门之一:Cesium本地运行

Cesium简介 Cesium是一个开源的、面向三维地球和地图的JavaScript库&#xff0c;它是基于Apache2.0许可的开源程序&#xff0c;可以免费的用于商业用途&#xff1b; Cesium下载 Cesium的官网地址是&#xff1a;https://cesium.com/platform/cesiumjs/&#xff0c;由于Cesium…

ChatGPT 提示语——AI提示词玩家,提示词就是和AI沟通语言的桥梁!

前言&#xff1a; 众所周知&#xff0c;在AI的世界里&#xff0c;提示词就是和AI沟通语言的桥梁&#xff0c;提示关键词常用于AI对话及AI绘画等相关场景&#xff0c;通过准确的使用关键词&#xff0c;你就能更好的让AI辅助自己的工作&#xff0c;其中的成分重要性不言而喻&…

MySQL---基本操作DQL(上)(基本查询语法,算术运算符,比较运算符,逻辑运算符,位运算符)

1. 基本查询语法 select [all|distinct] <目标列的表达式1> [别名], <目标列的表达式2> [别名]... from <表名或视图名> [别名],<表名或视图名> [别名]... [where<条件表达式>] [group by <列名> [having <条件表达式>]] [o…

JAVA学习日记 (放假了,哈哈)

每日一题 1016. 子串能表示从 1 到 N 数字的二进制串 难度中等122收藏分享切换为英文接收动态反馈 给定一个二进制字符串 s 和一个正整数 n&#xff0c;如果对于 [1, n] 范围内的每个整数&#xff0c;其二进制表示都是 s 的 子字符串 &#xff0c;就返回 true&#xff0c;否…

时间轮的golang实践浅析

引言 下列代码模仿一段RPC请求的执行过程&#xff0c;执行后会有哪些问题&#xff1a; RPC代码示例答案&#xff1a;因为超时控制后未阻断后续请求&#xff0c;导致并发读写产生Panic思考&#xff1a;客户端发起 HTTP 请求后&#xff0c;如果在指定时间内没有收到服务器的响应…

软件开发安全

软件开发安全 软件安全开发生命周期软件生命周期模型软件生命周期模型-瀑布模型软件生命周期模型-迭代模型软件生命周期模型-增量模型软件生命周期模型-快速原型模型软件生命周期模型-螺旋模型软件生命周期模型-净室模型软件安全重要性–软件危机 软件安全问题产生-内因软件安全…

51单片机(十一)DS1302实时时钟

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

2023年软考系统架构师新版专栏导读

目录 新的改变软考是不是内卷?老版教材删减章节建议学习计划专栏更文列表新的改变 软考今年改版啦 高级系统架构师考试在2022年12月底出了第二版教材,比第二版多出来140页,虽然看起来好像更难了,但是我认为改版是件好事,摒弃了一些过时的淘汰的技术,更新了一些新知识点,…

二叉树OJ

文章目录 二叉树OJ根据二叉树创建字符串思路示例代码 二叉树的层序遍历思路示例代码 二叉树的层序遍历 II思路示例代码 二叉树的最近公共祖先思路1示例代码1思路2示例代码2 二叉搜索树与双向链表思路1示例代码1思路2示例代码2 迭代实现二叉树的三种遍历前序遍历思路示例代码 中…

从零开始:如何成为一名优秀的品牌策划师

作为一个十年老策划&#xff0c;告诉你我们公司&#xff08;一个比较牛的品牌策划公司&#xff09;当年是怎么培养新人的吧。 1、看书 你必须要看六本书&#xff0c;他们是&#xff1a;特劳特的《定位理论》、《营销4.0》、《品牌王道》、《商战》、《竞争优势》&#xff0c;…

一图看懂 multidict 模块:类似于字典的键值对集合,键可以多次出现,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 multidict 模块&#xff1a;类似于字典的键值对集合&#xff0c;键可以多次出现&#xff0c;资料整理笔记&#xff08;大全&#xff09; &#x1f9ca;摘要&#x1f9ca;模…