1-2 动手学深度学习v2-基础优化方法-笔记

最常见的算法——梯度下降

当一个模型没有显示解的时候,该怎么办呢?

  1. 首先挑选一个参数的随机初始值,可以随便在什么地方都没关系,然后记为 w 0 \pmb{w_{0}} w0
  2. 在接下来的时刻里面,我们不断的去更新 w 0 \pmb{w_{0}} w0,使得它接近我们的最优解

具体来说:

  • 挑选一个初始值 w 0 \pmb{w_{0}} w0
  • 重复迭代参数 t = 1 , 2 , 3 t = 1,2,3 t=123 w t = w t − 1 − η ∂ ℓ ∂ w t − 1 \pmb{w}_{t}=\pmb{w}_{t-1}-\eta \frac{\partial \ell}{\partial \pmb{w}_{t-1}} wt=wt1ηwt1 η \eta η是一个标量(学习率,步长的超参数), ∂ ℓ ∂ w t − 1 \frac{\partial \ell}{\partial \pmb{w}_{t-1}} wt1是损失函数关于 w t − 1 \pmb{w_{t-1}} wt1处的梯度。
    梯度是使得函数的值增加最快的方向,那么负梯度就是使得这个函数的值减少最快的方向
    学习率是指每次我沿着这个负梯度的方向走多远
    请添加图片描述
    直观的从图上来看,这个类似一个地理中的等高线,在同一条等高线上的函数值是相同的。 − η ∂ ℓ ∂ w t − 1 -\eta \frac{\partial \ell}{\partial \pmb{w}_{t-1}} ηwt1表示的是由 w 0 \pmb{w_{0}} w0 w 1 \pmb{w_{1}} w1的这条向量(或者是由 w 1 \pmb{w_{1}} w1 w 2 \pmb{w_{2}} w2的这条向量)。把 w 0 \pmb{w_{0}} w0和这个向量一加,就会到 w 1 \pmb{w_{1}} w1的位置。

学习率是指的步长,是我们人为选定的超参数。不能选的太小,也不能选的太大。
请添加图片描述

  • 选的太小:每一次走的步长很有限,我们到达一个点需要走很多步,这不是一个很好的事情。计算梯度是一件很贵的事情,是整个模型训练中最贵的部分,所以我们要尽可能的少去计算梯度。
  • 选的太大:一下子步子迈得太大,会使得我们一直在震荡,并没有在严格下降。

更常见的算法——小批量随机梯度下降

  • 在整个训练集上算梯度太贵了
    一个深度神经网络模型可能需要数分钟至数小时

  • 我们可以随机采样 b b b个样本 i 1 , i 2 , . . . , i b i_{1},i_{2},...,i_{b} i1,i2,...,ib来近似损失(用 b b b个样本的平均损失来近似所有 n n n个样本的平均损失
    1 b ∑ i ∈ I b ℓ ( x i , y i , w ) \frac{1}{b}\sum_{i\in I_{b}}\ell(\pmb{x}_{i},y_{i},\pmb{w}) b1iIb(xi,yi,w)
    b b b是批量大小,另一个重要的超参数。
    b b b很大的时候,近似很精确,当 b b b很小的时候,近似不那么精确,但是计算它的梯度很容易,梯度计算的复杂度与样本的个数线性相关。

  • 批量不能太小:每次计算量太小,不适合并行来最大化利用计算资源(深度学习模型会用GPU来计算,但批量太小不能有效利用GPU并行计算)

  • 批量不能太大:内存消耗增加,浪费计算,例如如果所有的样本都是相同的


总结

  1. 梯度下降通过不断沿着反梯度方向更新参数求解
  2. 小批量随机梯度下降是深度学习默认的求解算法
  3. 两个重要的超参数是批量大小和学习率

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

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

相关文章

asp.net core 依赖注入 实例化对象实例

在面向对象编程中,推荐使用面向接口编程,这样我们的代码就依赖于服务接口,而不是依赖于实现类,可以实现代码解耦。 名称解释: 我们把负责提供对象的注册和 获取功能的框架叫作“容器”, 注册到容器中的对象…

Android BitmapShader setLocalMatrix缩放Bitmap高度重新onMeasure,Kotlin

Android BitmapShader setLocalMatrix缩放Bitmap高度重新onMeasure&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://sc…

macbook死机了按什么键重启?CleanMyMac怎么清理MacBook

当您的macbook出现死机情况&#xff0c;您可以尝试以下几种方法来重启&#xff1a; 强制重启&#xff1a; 如果只是某个应用程序卡住&#xff0c;可以使用Command Option Esc组合键强制退出该应用。对于持续性的卡顿或死机&#xff0c;可以通过点击菜单栏上的苹果图标&#…

2024清洁能源、环境与智慧城市国际研讨会(ISCEESC2024)

2024清洁能源、环境与智慧城市国际研讨会(ISCEESC2024) 会议简介 2024年清洁能源、环境与智慧城市国际研讨会&#xff08;ISCEESC2024&#xff09;将在中国丽江举行。本次会议主要围绕清洁能源、环境和智慧城市等研究领域&#xff0c;旨在为该研究领域的专家学者提供一个国际…

【SpringBoot】RBAC权限控制

&#x1f4dd;个页人主&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;SpringBoot⛺️稳重求进&#xff0c;晒太阳 权限系统与RBAC模型 权限 为了解决用户和资源的操作关系&#xff0c; 让指定的用户&#xff0c;只能操作指定的资源。 权限功能 菜单权限&a…

蓝桥杯Web应用开发-CSS 基础语法3(文本属性)

CSS 基础语法-文本属性 专栏持续更新中 文本属性 文本属性用于定义文本的样式&#xff0c;通过文本属性&#xff0c;可以改变文本的颜色、字间距、对齐方式、文本修饰和文本缩进等。常用文本属性如下表所示&#xff1a; 属 性可取值描述line-heightnormal、number、length、…

数字孪生网络攻防模拟与城市安全演练

在数字化浪潮的推动下&#xff0c;网络攻防模拟和城市安全演练成为维护社会稳定的不可或缺的环节。基于数字孪生技术我们能够在虚拟环境中进行高度真实的网络攻防模拟&#xff0c;为安全专业人员提供实战经验&#xff0c;从而提升应对网络威胁的能力。同时&#xff0c;在城市安…

Python基础学习-08 列表

Python 编程语言中有四种集合数据类型&#xff1a; 列表&#xff08;List&#xff09;是一种有序和可更改的集合。允许重复的成员。 选择集合类型时&#xff0c;了解该类型的属性很有用。 为特定数据集选择正确的类型可能意味着保留含义&#xff0c;并且可能意味着提高效率或…

ES6-对象的解构赋值

一、区别一下数组的解构赋值 - 对象的解构与数组有一个重要的不同。数组的元素是按次序排列的&#xff0c;变量的取值由它的位置决定&#xff1b;而对象的属性没有次序&#xff0c;变量必须与属性同名&#xff0c;才能取到正确的值二、说明 - 对象的解构赋值的内部机制&#…

STM32学习笔记三——深度讲解GPIO及其应用

目录 STM32GPIO端口位基本结构图&#xff1a; 结构图I/O引脚&#xff1a; GPIO输入输出总结 1.GPIO引脚的四种输入方式及其特点&#xff1a; 1)上拉输入(GPIO_Mode_IPU) 2)下拉输入(GPIO_Mode_IPD) 3)模拟输入(GPIO_Mode_AIN) 4)浮空输入(GPIO_Mode_IN_FLOATING…

信创ARM架构QT应用开发环境搭建

信创ARM架构QT应用开发环境搭建 前言交叉工具链Ubuntu上安装 32 位 ARM 交叉工具链Ubuntu上安装 64 位 ARM 交叉工具链 交叉编译 QT 库下载 QT 源码交叉编译 QT 源码 Qt Creator交叉编译配置配置 Qt Creator Kits创建一个测试项目 前言 有没有碰到过这种情况&#xff1f;开发出…

幻兽帕鲁服务器怎么搭建?Palworld多人联机教程

玩转幻兽帕鲁服务器&#xff0c;阿里云推出新手0基础一键部署幻兽帕鲁服务器教程&#xff0c;傻瓜式一键部署&#xff0c;3分钟即可成功创建一台Palworld专属服务器&#xff0c;成本仅需26元&#xff0c;阿里云服务器网aliyunfuwuqi.com分享2024年新版基于阿里云搭建幻兽帕鲁服…

Awesome Chrome Form UI - 界面设计与实现

上苍不会让所有幸福集中到某个人身上,得到了爱情未必拥有金钱;拥有金钱未必得到快乐;得到快乐未必拥有健康;拥有健康未必一切都会如愿以偿。知足常乐的心态才是淬炼心智、净化心灵的最佳途径。一切快乐的享受都属于精神,这种快乐把忍受变为享受,是精神对于物质的胜利。这…

C语言实现memcpy、memmove库函数

目录 引言一、库函数介绍二、库函数详解三、源码实现1.memcpy源码实现2.memmove源码实现 四、测试1.memcpy函数2.memmove函数 五、源码1.memcpy源码2.memmove源码 六、参考文献 引言 关于memcpy和memmove这两个函数&#xff0c;不论是算法竞赛还是找工作面试笔试&#xff0c;对…

STM32单片机的基本原理与应用(六)

串口测试实验 基本原理 在串口实验中&#xff0c;是通过mini_USB线搭建终端与电脑端&#xff08;也可称终端&#xff0c;为做区分称电脑端&#xff09;的“桥梁”&#xff0c;电脑端的串口调试助手通过mini_USB线向终端发送信息&#xff0c;由CH340芯片将USB接口进行转换&…

DelayQueue的使用

具体思路&#xff1a; 在容器初始化的时候就创建出一个 延迟队列 然后项目启动后随即启动一个线程一直监听这个队列 手动调用接口往队列中添加任务 依赖 一个最简单的web的应用即可项目文件结构 第一步&#xff1a;在项目启动的时候就创建出一个延迟队列 Configuration publ…

数据结构 - 线段树

1. 预制值&#xff1a; 构建的数组为&#xff0c;nums&#xff1a;【2&#xff0c; 5&#xff0c; 1&#xff0c; 4&#xff0c; 3】区间和问题&#xff0c;假设求区间 [1&#xff0c;3] 的和 2. 建树 2.1 构建线段树数组 int[] segT new int[4*n]&#xff08;为什么数组大…

理解进程的一些知识准备

1. 认识冯诺依曼体系结构 计算机有很多的体系结构&#xff0c;但到如今&#xff0c;冯诺依曼体系结构变成了主流。 输入设备&#xff1a;话筒、键盘、摄像头、鼠标、磁盘、网卡… 输出设备&#xff1a;声卡、显示器、打印机、显卡、网卡、磁盘… 有的设备既能作为输入设备又能…

机器学习的整个流程

机器学习的整个流程定义了数据科学团队执行以创建和交付机器学习模型的工作流。此外&#xff0c;机器学习流程还定义了团队如何协作合作&#xff0c;以创建最有用的预测模型。 机器学习high level的流程 机器学习流程的关键步骤包括问题探索&#xff08;Problem Exploration&a…

力扣题目训练(7)

2024年1月31日力扣题目训练 2024年1月31日力扣题目训练387. 字符串中的第一个唯一字符389. 找不同401. 二进制手表109. 有序链表转换二叉搜索树114. 二叉树展开为链表52. N 皇后 II 2024年1月31日力扣题目训练 2024年1月31日第七天编程训练&#xff0c;今天主要是进行一些题训…