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

news2025/2/25 19:17:14

课件非常好!

数值计算梯度

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

应该用求导方法解决。

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/520943.html

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

相关文章

18 KVM管理虚拟机-虚拟机生命周期总体介绍

文章目录 18 KVM管理虚拟机-虚拟机生命周期总体介绍18.1 概述18.2 虚拟机状态18.3 状态转换18.4 虚拟机标识 18 KVM管理虚拟机-虚拟机生命周期总体介绍 18.1 概述 为了更好地利用硬件资源,降低成本,用户需要合理地管理虚拟机。本节介绍虚拟机生命周期过…

零基础学网络安全

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多 google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决. 一…

spring的事物

这是我第三次接触事物了,mysql一次,以前的也看过一次。 事物的四大特点: 原子性:多条sql保证同时成功,同时失败。 一致性:在事物的开启和结束,数据库的完整性不被破坏。 隔离性:多线…

centos7 配置密钥登录

目录 1.xshell生成公钥 1.工具->新建用户密钥生成导向 2.选择4096下一步​编辑 3.输入用户密钥密码,也可以不输入 4.保存为文件 5.导出私钥文件 2.服务器配置 1.将公钥文件上传至服务器上 3.链接服务器 1.新建连接配置ip 2.设置用户身份验证 3.选择1.5上…

大疆无人机空三建模干货分享(大疆智图集群建模超详细教程)

Part 01 大疆无人机空三建模干货分享(大疆智图集群建模超详细教程) 大疆智图集群简介 大疆在今年5月推出的智图3.0.0及以上版本中加入了集群功能,有集群版许可的用户可以使用此功能。智图集群是由一台主节点分配任务控制多台同局域网内子节点设备进行空三和建模。集…

【Java零基础入门篇】第 ④ 期 - 继承(三)

【Java零基础入门篇】第 ④ 期 - 继承(三) 博主:命运之光专栏:Java零基础入门 学习目标 1.掌握继承性的主要作用、实现、使用限制; 2.掌握this和super的含义及其用法; 3.掌握方法覆写的操作; 4.…

内网渗透(七十)之域权限维持之重置DSRM密码

重置DSRM密码 目录服务还原模式(DSRM)是Windows域环境中域控的安全模式启动选项。每个域控都有一个本地管理员administrator账户,也就是(DSRM账户)。DSRM的用途是允许管理员在域环境出现故障或崩溃时还原、修复、重建活动目录数据库,使域环境的运行恢复正常。也就是说,DS…

关于安卓毛玻璃实现(三)recyclerview静态毛玻璃

背景 毛玻璃,开发中又爱又恨的一个话题,玩法层出不穷,有动态的,也有静态的。有的是实时模糊,有些只需要模糊一次,本文的毛玻璃实现,就是静态毛玻璃。 开发环境 win 10 as 4 jdk 1.8 代码 &…

在中国,年收入20W是什么水平?答案扎心了(文末附最新招聘)

最近关于“年薪20万算什么水平?”冲上了热搜。对此,许多网友纷纷表示自己的看法,有的认为这个收入属于中高收入人群了。 因为按照最近某招聘网站发布的《中国企业招聘薪酬报告》来看,今年一季度38城企业平均招聘薪酬为10101元&…

用 ChatGPT 读 Vue3 源码,会怎么样?

前言 ChatGPT 最近十分火爆,今天我也来让 ChatGPT 帮我阅读一下 Vue3 的源代码。 都知道 Vue3 组件有一个 setup函数。那么它内部做了什么呢,今天跟随 ChatGPT 来一探究竟。 实战 setup 函数在什么位置呢,我们不知道他的实现函数名称&…

Ebean 字段别名配置引发语法问题

前言 Ebean 没听过?这里简单给你介绍下:Ebean 是一个 Java ORM(Object-Relational Mapping)框架,具有以下优势: 简单易用:Ebean 的 API 设计简单易用,可以快速上手,无需…

OpenGL高级-GLSL

引言 我们会讨论一些内建变量(Built-in Variable)、组织着色器输入和输出的新方式以及一个叫做uniform缓冲对象(Uniform Buffer Object)的非常有用的工具。 GLSL的内建变量 着色器是很小的,如果我们需要从当前着色器以外的别的资源里的数据,那么我们就不…

ChatGPT系列学习(1)transformer基本原理讲解

文章目录 1. 简介1.1. 发展史 2. Transformer 整体结构3. 名词解释3.1. token 4. transformer输入4.1. 单词 Embedding4.2. 位置Embedding4.3. Transformer Embedding层实现 5. Attention结构5.1. 简介5.2. Self Attention(自注意力机制)5.2.1. 简介5.2.…

Python 密码破解指南:20~24

协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【OpenDocCN 饱和式翻译计划】,采用译后编辑(MTPE)流程来尽可能提升效率。 收割 SB 的人会被 SB 们封神,试图唤醒 SB 的人是 SB 眼中的 SB。——SB 第三定律 二十、…

HashMap源码和原理

HashMap源码分析 重要变量: Node<K,V>[] table 存放单链表头结点的数组size 存储结点数量threshold 阈值,通过size和threshold比较来做扩容loadFactor 加载因子 重要方法: put(K key, V value) 添加结点get(Object key) 查询结点 单链表Node结点中的一些变量: hash …

《程序员面试金典(第6版)》面试题 16.20. T9键盘(哈希映射,C++)

题目描述 在老式手机上&#xff0c;用户通过数字键盘输入&#xff0c;手机将提供与这些数字相匹配的单词列表。每个数字映射到0至4个字母。给定一个数字序列&#xff0c;实现一个算法来返回匹配单词的列表。你会得到一张含有有效单词的列表。&#xff08;原题链接&#xff09; …

程序的灵魂-数据结构

1、数据结构 程序 数据结构 算法 1.1、何为数据结构? 数据结构是计算机底层存储、组织数据的方式。是指数据相互之间是以什么方式排列在一起的 数据结构是为了更加方便的管理和使用数据&#xff0c;需要结合具体的业务场景来进行选择 通常情况下&#xff0c;精心选择的数…

爆肝一周,我开源了ChatGPT 中文版接口,官方1:1镜像支持全部 官方接口

这里实现我之前文章承诺承接上文 人人实现ChatGPT自由&#xff0c;手把手教你零撸部署自己聊天私服 现在ChatGPT 提供了api接口 可以让我自己对接去实现我们自己想要gpt应用&#xff0c;但是由于一些原因&#xff0c;国内也不开放接口&#xff0c;所以我就1:1 自己对接了官方…

计算机毕业论文内容参考|基于java的研发部署管理平台的设计与实现

文章目录 导文文章重点摘要前言绪论课题背景国内外现状与趋势课题内容应用程序生命周期管理。相关技术与方法介绍系统分析系统设计系统实现系统测试总结和展望本文总结后续工作展望导文 基于java的研发部署管理平台的设计与实现 文章重点 摘要 本文介绍了基于Java的研发部署管…

UNIAPP实战项目笔记71 订单到支付和生成订单号的前后端交互

UNIAPP实战项目笔记71 订单到支付和生成订单号的前后端交互 思路 购物车页面点击结算 发送请求: 传递商品数据 前端就拿到了订单号进行存储 并且跳转到确认订单页面 后端 生成一个订单,并且返回给前端一个订单号 确认订单页面 点击提交订单 前端 判断是否选择了收货地址 …