【自学深度学习梳理2】深度学习基础

news2024/9/17 9:11:46

一、优化方法

上一篇说到,使用梯度下降进行优化模型参数,可能会卡在局部最小值,或优化方法不合适永远找不到具有最优参数的函数。

1、局部最小值

梯度下降如何工作?
梯度下降是一种优化算法,用于最小化损失函数,即寻找一组模型参数,使得损失函数的值最小(局部最小值)。
具体做法:梯度下降通过迭代地更新参数来实现,每次更新都沿着损失函数关于参数的梯度的反方向进行,因为梯度的反方向是函数值下降最快的方向。
反向传播用于计算损失函数关于每个参数的梯度。

从经验上看,局部最小值并不常见,大多数时候,训练网络到一个梯度很小的地方,参数不再更新,往往只是遇到了 鞍点(梯度为0,且不是极值点)。
在这里插入图片描述

逃离鞍点:在低维空间中没有路可以走,在更高维度其实有路可走。
解决方法:批量(BGD/SGD)、动量。

2、批量与动量——对抗鞍点/局部最小值

反向传播计算损失L梯度时,将所有数据分成一批一批(批量batch)来。
数据分批时,往往会进行随机打乱(shuffle)。
一个回合(epoch)的过程是遍历完所有批次。

2.1 批量的分类

批量梯度下降法BGD:使用全批量(full batch)的数据来更新参数的方法。模型必须把所有数据看完后,才能计算损失和梯度,参数才能更新一次。在数据集较小、需要全局最优解的情况下,BGD可能是更好的选择。

随机梯度下降法SGD(增量梯度下降法):批量大小等于1,每次随机取出1笔数据(一个样本)即可计算损失函数的梯度,更新一次参数。
随机梯度下降SGD的梯度上引入了随机噪声(noisy),因此在 非凸优化问题(目标函数不是凸函数,或者约束条件定义的区域不是凸集的情况,可能存在多个局部最优解或鞍点)中,其相比批量梯度下降BGD更容易逃离局部最小值
为什么会引入噪声?
SGD每个批次结束更新参数,导致下个批次的损失函数L不同。

存在一种折中的方法,即小批量梯度下降法MBGD(Mini-Batch Gradient Descent),它结合了BGD和SGD的优点,每次挑一个批量计算损失进行梯度更新,以平衡计算效率和收敛稳定性

2.2 动量法

动量(momentum)法是另一个可以对抗鞍点或局部最小值的方法。

假设误差表面是真正的斜坡,参数是一个球,把球从斜坡上滚下来,如果使用梯度下降,球走到局部最小值或鞍点就停住了。但是在物理世界里,一个球如果从高处滚下来,如果球的动量足够大,就算滚到鞍点或局部最小值,因为惯性的原因,它还是会继续往前走,并不一定会被鞍点或局部最小值卡住。将其应用在梯度下降中,这就是动量。
在这里插入图片描述
引入动量后,每次在移动参数的时候,不是只往梯度的反方向来移动参数,而是根据梯度的反方向加上前一步移动的方向决定移动方向。

可以从两个角度来理解动量法,一个角度是动量是 梯度的负反方向( − ∂ L ∂ w -\frac{\partial L}{\partial w} wL) 加上前一次移动的方向;另一个角度是当加上动量的时候不是只考虑现在的梯度,而是考虑过去所有梯度的总和。

在这里插入图片描述

在这里插入图片描述

一般梯度下降走到一个局部最小值或鞍点时,就被困住了。但有动量还是有办法继续走下去,因为动量不是只看梯度,还看前一步的方向。即使梯度方向往左走,但如果前一步的影响力比梯度要大,球还是有可能继续往右走,甚至翻过一个小丘,也许可以走到更好的局部最小值,这就是动量有可能带来的好处 。

在这里插入图片描述

3、自适应学习率——优化器

学习率不是始终固定一个值。同一个参数不同时间不同的学习率,给每个参数不同的学习率。梯度大,学习率调小;梯度小,学习率调大。

3.1 AdaGrad

根据梯度大小自动调整学习率。可以做到梯度比较大的时候,学习率就减小,梯度比较小的时候,学习率就放大。

梯度下降更新某个参数 θ t i \theta^i_t θti的过程为:
θ t + 1 i ← θ t i − η g t i \theta^i_{t+1}←\theta^i_t-\eta g_t^i θt+1iθtiηgti
梯度计算:
g t i = ∂ L ∂ θ i ∣ θ = θ t g_t^i=\frac{\partial L}{\partial \theta^i}|_{\theta=\theta_t} gti=θiLθ=θt
把学习率 η \eta η变成 η σ t i \frac{\eta}{\sigma_t^i} σtiη σ t i \sigma_t^i σti上标为 i i i,代表参数 σ \sigma σ i i i相关,不同的参数的 σ \sigma σ不同;下标为 t t t,代表参数 σ \sigma σ与迭代相关,不同的迭代会有不同的 σ \sigma σ。学习率变得参数相关:
θ t + 1 i ← θ t i − η σ t i g t i \theta^i_{t+1}←\theta^i_t-\frac{\eta}{\sigma_t^i} g_t^i θt+1i

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

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

相关文章

【Python体验】第五天:目录搜索、数据爬虫(评论区里写作业)

文章目录 目录搜索 os、shutil库数据爬虫 request、re作业:爬取案例的top250电影的关键信息(名称、类型、日期),并保存在表格中 目录搜索 os、shutil库 os 模块提供了非常丰富的方法用来处理文件和目录。 os.listdir(path)&#x…

STM32的外部中断实现按键控制led灯亮灭(HAL库)

一:stm32外部中断概述 1:stm32的外部中断线 STM32的每个IO都可以作为外部中断输入。 STM32的中断控制器支持19个外部中断/事件请求: 线0~15:对应外部IO口的输入中断。 线16:连接到PVD输出。 线17:连接到R…

后端采用SpringBoot框架开发的:ADR药物不良反应智能监测系统源码,用于监测和收集药品在使用过程中发生的不良反应的系统

ADR药物不良反应智能监测系统是一套用于监测和收集药品在使用过程中发生的不良反应(Adverse Drug Reaction, ADR)的系统。该系统基于医院临床数据中心,运用信息技术实现药品不良反应的智能监测、报告管理、知识库查询、统计分析等功能&#x…

【Python学习手册(第四版)】学习笔记11.2-表达式语句(print函数)及打印操作(重定向等)详解

个人总结难免疏漏,请多包涵。更多内容请查看原文。本文以及学习笔记系列仅用于个人学习、研究交流。 主要介绍表达式语句(print函数)及打印操作(重定向等)。视需要选择目录阅读。 目录 表达式语句 错误示例&#xf…

实验3-7 统计学生成绩

//实验3-7 统计学生成绩 /* 本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。 百分制成绩到五分制成绩的转换规则:大于等于90分为A;小于90且大于等于80为B;小于80且大于等于70为C;小于70且大于等于60为…

相机标定(Camera Calibration)

什么是 相机标定(Camera Calibration)? 相机标定(CameraCalibration)是确定相机内部参数(如焦距、光学中心、畸变系数等)和外部参数(如相机在世界坐标系中的位置和姿态)的…

黑马头条vue2.0项目实战(三)——个人中心功能的实现

1. Tabbar 处理 通过分析页面,可以看到,首页、问答、视频、我的 都使用的是同一个底部标签栏,我们没必要在每个页面中都写一个,所以为了通用方便,我们可以使用 Vue Router 的嵌套路由来处理。 父路由:一个…

激发潜能,Vatee万腾平台驱动企业持续发展

在当今这个日新月异的商业环境中,企业要想保持竞争力并实现持续发展,就必须不断挖掘自身潜能,探索新的增长点。而Vatee万腾平台,正是这样一位能够激发企业潜能、驱动其持续发展的强大伙伴。 一、智能化赋能,解锁企业潜…

了解ISO 22301:业务连续性管理的关键

在当今全球化和复杂化的商业环境中,企业面临着各种潜在的风险和灾难,这些可能对其运营和声誉造成严重影响。为了有效地应对这些挑战并保障持续经营,国际标准化组织(ISO)引入了ISO 22301标准,这是一项专注于…

智能制造与工业物联网CC2530——定时器查询和中断

一、项目目的: 熟悉 ZigBee 模块相关硬件接口。使用 IAR 开发环境设计程序,学习 CC2530 定时器的使用,利用 CC2530 的定时器 T1 查询方式控制 LED 周期性闪烁。 二、项目原理: LED及按键原理图,如下图所示&#xff…

使用“阿里云人工智能平台 PAI”制作数字人

体验 阿里云人工智能平台 PAI PAI-DSW免费试用 https://free.aliyun.com/?spm5176.14066474.J_5834642020.5.7b34754cmRbYhg&productCodelearn https://help.aliyun.com/document_detail/2261126.html 体验PAI-DSW https://help.aliyun.com/document_detail/2261126.…

一文详解香港机房服务器干什么用的

香港机房服务器干什么用的?香港机房服务器是用于数据存储和备份、网络服务、数据处理与分析、云计算服务、游戏托管服务、其他服务等。香港机房服务器在现代互联网业务中扮演着至关重要的角色,其主要用途可以归纳为以下几个方面: 1、数据存储…

卡拉OK歌唱比赛活动策划方案

一、活动详细策划 (一)、前期工作准备 1、制定详细的策划方案、比赛流程,通知稿。 2、收集各参赛选手详细资料在选手上台前展示出,让各评委及嘉宾对选手有个初步认识。 3、各工作组准备好相关道具(音响、无线话筒、低…

数据大脑智慧工厂数据平台建设方案(可编辑60页PPT)

引言:随着工业4.0时代的到来,智能制造已成为推动产业升级的核心引擎。为了进一步提升生产效率、优化资源配置、实现精准决策与个性化定制,构建一套高效、智能的数据大脑智慧工厂数据平台显得尤为重要。 方案介绍: 在数字化转型的…

05.FreeRTOS任务挂起与恢复

05. FreeRTOS任务挂起与任务恢复 1. FreeRTOS 挂起和恢复任务相关 API 函数 函数描述vTaskSuspend()挂起任务vTaskResume()恢复被挂起的任务xTaskResumeFromISR()在中断中恢复被挂起的任务 函数vTaskSuspend() 此函数用于挂起任务,若使用此函数,需要在…

【Docker】Namespace 空间隔离实战

一、实战目的 了解隔离能力并不是 Docker 提供的,而是操作系统内核提供基本能力。 二、基础知识 1、dd 命令详解 Linux dd 命令用于读取、转换并输出数据。 dd 可从标准输入或文件中读取数据,根据指定的格式来转换数据,再输出到文件、…

直流电表常见的应用有哪些

直流电表作为电力系统中不可或缺的计量工具,其应用广泛且多样化。以下是对直流电表常见应用的详细归纳: 一、新能源发电系统 1. 太阳能光伏发电 应用背景:太阳能光伏发电系统通过太阳能电池板将光能转化为直流电能。直流电表在这一系统中扮…

浪潮NF5280M4虚拟磁盘OFFLINE和磁盘状态为“Frn-Bad”与“UB”故障处理

客户托管设备的机房异常断电,导致6台浪潮NF5280M4的系统无法访问,系统所在的RAID组中的2块磁盘全部亮故障灯。 通过设备管理界面检查,发现逻辑磁盘处于Offline状态: 物理磁盘也处于Offline状态: 进入BIOS RAID配置…

介绍几种 iutils.dll丢失的解决办法,iutils.dll文件详细介绍

电脑中经常会出现 iutils.dll文件丢失的情况,所以如果电脑中缺失 iutils.dll文件会让大家很苦恼,那么 iutils.dll丢失有什么解决办法呢?今天就给大家介绍几种 iutils.dll丢失的解决办法。 1. iutils.dll 文件的来源 iutils.dll 是一个动态链…

npm 修改 淘宝源

aliyun ECS npm 源也不顺畅了,哎 😑 npm config get registrynpm config set registry https://registry.npmmirror.com喜欢或对你有帮助,点个赞吧,自己先点个嘿嘿。 有错误或者疑问还请评论指出。 我的个人网站 点击访问 hongw…