首页 > 其他分享 >Datawhale X 李宏毅苹果书AI夏令营深度学习进阶(二)

Datawhale X 李宏毅苹果书AI夏令营深度学习进阶(二)

时间:2024-08-30 08:54:46浏览次数:12  
标签:进阶 训练 AI 李宏毅 临界点 学习 参数 Adam 梯度

一.动量法
在上一个博客中,我们提到了动量法,现在继续补充

如图所示,红色表示负梯度方向,蓝色虚线表示前一步的方向,蓝色实线表示真实的移动量。一开始没有前一次更新的方向,完全按照梯度给指示往右移动参数。负梯度方向跟前一步移动的方向加起来,得到往右走的方向。一般梯度下降走到一个局部最小值或鞍点时,就被困住了。但有动量还是有办法继续走下去,因为动量不是只看梯度,还看前一步的方向。即使梯度方向往左走,但如果前一步的影响力比梯度要大,球还是有可能继续往右走,甚至翻过一个小丘,也许可以走到更好的局部最小值,这就是动量有可能带来的好处 。

二.自适应学习率
临界点其实不一定是在训练一个网络的时候会遇到的最大的障碍。一般在训练一个网络的时候,损失原来很大,随着参数不断的更新,损失会越来越小,最后就卡住了,损失不再下降。当我们走到临界点的时候,意味着梯度非常小,但损失不再下降的时候,梯度并没有真的变得很小。随着迭代次数增多,虽然损失不再下降,但是梯度的范数并没有真的变得很小。梯度在山谷的两个谷壁间,不断地来回“震荡”,这个时候损失不会再下降,它不是真的卡到了临界点,卡到了鞍点或局部最小值。但它的梯度仍然很大,只是损失不一定再减小了。所以训练一个网络,训练到后来发现损失不再下降的时候,有时候不是卡在局部最小值或鞍点,只是单纯的损失无法再下降。
假如训练一个网络,训练到现在参数在临界点附近,再根据特征值的正负号判断该临界点是鞍点还是局部最小值。实际上在训练的时候,要走到鞍点或局部最小值,是一件困难的事情。一般的梯度下降,其实是做不到的。用一般的梯度下降训练,往往会在梯度还很大的时候,损失就已经降了下去,这个是需要特别方法训练的。要走到一个临界点其实是比较困难的,多数时候训练在还没有走到临界点的时候就已经停止了。
最原始的梯度下降连简单的误差表面都做不好,因此需要更好的梯度下降的版本。在梯度下降里面,所有的参数都是设同样的学习率,这显然是不够的,应该要为每一个参数定制化学习率,即引入自适应学习率(adaptive learning rate)的方法,给每一个参数不同的学习率。
接下来介绍几个简单的相关概念:
AdaGrad
AdaGrad(Adaptive Gradient)是典型的自适应学习率方法,其能够根据梯度大小自动调整学习率。AdaGrad 可以做到梯度比较大的时候,学习率就减小,梯度比较小的时候,学习率就放大。
RMSProp
同一个参数需要的学习率,也会随着时间而改变。在某种误差表面中,如果考虑横轴方向,绿色箭头处坡度比较陡峭,需要较小的学习率,但是走到红色箭头处,坡度变得平坦了起来,需要较大的学习率。因此同一个参数的同个方向,学习率也是需要动态调整的,于是就有了一个新的方法———RMSprop(Root Mean Squared propagation)。
Adam
最常用的优化的策略或者优化器(optimizer)是Adam(Adaptive moment estimation)[7]。Adam 可以看作 RMSprop 加上动量,其使用动量作为参数更新方向,并且能够自适应调整学习率。PyTorch 里面已经写好了 Adam 优化器,这个优化器里面有一些超参数需要人为决定,但是往往用 PyTorch 预设的参数就足够好了。

三.学习率调度
之前的学习率调整方法中 η 是一个固定的值,而在学习率调度中 η 跟时间有关。学习率调度中最常见的策略是学习率衰减(learning rate decay),也称为学习率退火(learning rateannealing)。随着参数的不断更新,让 η 越来越小。除了学习率下降以外,还有另外一个经典的学习率调度的方式———预热。预热的方法是让学习率先变大后变小,至于变到多大、变大的速度、变小的速度是超参数。残差网络里面是有预热的,在残差网络里面,学习率先设置成 0.01,再设置成 0.1,特别的,一开始用 0.1 反而训练不好。除了残差网络,BERT 和 Transformer 的训练也都使用了预热,使用预热的原因是当我们使用 Adam、RMSprop 或 AdaGrad 时,需要计算 σ。而 σ 是一个统计的结果。从 σ 可知某一个方向的陡峭程度。统计的结果需要足够多的数据才精准,一开始统计结果 σ 是不精准的。一开始学习率比较小是用来探索收集一些有关误差表面的情报,先收集有关 σ 的统计数据,等 σ 统计得比较精准以后,再让学习率慢慢爬升。如果读者想要学更多有关预热的东西可参考 Adam 的进阶版———RAdam。

四.分类
(一)分类与回归的关系
回归是输入一个向量 x,输出 yˆ,我们希望 yˆ 跟某一个标签 y 越接近越好,y 是要学习的目标。而分类可当作回归来看,输入 x 后,输出仍然是一个标量 yˆ,要让它跟正确答案的那个类越接近越好。yˆ 是一个数字,我们可以把类也变成数字。如果有三个类,标签 y 就是一个三维的向量,如果目标 y 是一个向量,比如 y 是有三个元素的向量,网络也要输出三个数字才行。

标签:进阶,训练,AI,李宏毅,临界点,学习,参数,Adam,梯度
From: https://www.cnblogs.com/CuckooAI/p/18387902

相关文章

  • 【C/C++进阶】——文件操作之文本文件与二进制文件指针读写
    【文件】——操作文件目录一:文件的定义二:文件名三:文件类型3.1:二进制文件3.2:文本文件四:文件的打开与关闭4.1:文件指针4.2:文件的打开与关闭五:文件的顺序读写5.1:读写字符5.2:读写字符串5.3:读写格式化数据六:文件的随机读写6.1:fseek6.2:ftell6.3:rewind七:文件读取结......
  • 【愚公系列】《AIGC辅助软件开发》002-AI智能化编程助手:GitHub Copilot
    ......
  • 【愚公系列】《AIGC辅助软件开发》002-AI智能化编程助手:GitHub Copilot
    ......
  • Datawhale X 李宏毅苹果书(入门) AI夏令营 task02笔记
    官方学习文档:https://linklearner.com/activity/16/14/55往期task01链接:https://mp.csdn.net/mp_blog/creation/editor/141535616李宏毅老师对应视频课程可供食用:https://www.bilibili.com/video/BV1JA411c7VT/?p=3机器学习基础线性模型        w跟b的值上期ta......
  • Datawhale X 李宏毅苹果书(入门) AI夏令营 task01笔记
    官方学习链接:https://linklearner.com/activity/16/14/42机器学习基础导读        通俗来讲,机器学习就是让机器具备找一个函数的能力。这里指的“找一个函数”,指的是找一个能够描述一个场景数学规律的函数模型,具体方法大致是:让机器运行算法,通过输入的数据,确定合适的......
  • 【Datawhale AI 夏令营2024--CV】Task2 阅读小结与尝试
    一、阅读小结        yolo不仅要识别物体的种类还要识别物体的位置1.1、物体检测介绍:1.输入:照片可以利用opencv来提取照片的每一帧,在循环下对视频中每一帧的照片进行处理cap=cv2.VideoCapture(video_path)whileTrue:ret,frame=cap.read()......
  • AI大模型上线必备清单:备案所需资料全解析
    大模型上线备案所需资料(1)大模型上线备案表,包含以下具体内容:基本情况:模型名称、主要功能、适用人群、服务范围等。模型研制:模型备案情况、训练算力资源(自研模型)、训练语料和标注语料来源与规模、语料合法性、算法模型的架构和训练框架等。服务与安全防范:推理算力资源、服务方......
  • Datawhale AI 夏令营 第五期 CV方向 02进阶
    上次的baseline方案,训练的模型,获得分数并不高,DataWhale提供了两个上分的思路增加训练数据集切换不同模型预训练权重增加训练集的大小通常可以提高模型的泛化能力,因为更多的数据可以帮助模型学习到更多的特征和模式。但是,越大的数据集,就意味着需要更多的计算资源和时间来训......
  • 插件开发:生成AI虚拟主播直播带货!
    随着人工智能技术的飞速发展,AI虚拟主播在电商直播领域逐渐成为新宠,它们不仅具备无档期风险、人设稳定可控、24小时不间断直播等优势,还能通过智能交互显著提升用户体验和购买转化率。本文将深入探讨如何开发一个AI虚拟主播直播带货插件,并通过解析六段关键源代码,帮助读者理解这一复杂......
  • 最高等级,首批通过!文心快码通过中国信通院可信AI智能编码工具评估
    在当下这个快节奏的开发时代,每一个程序员都在追求更高效、更准确的编码方式。而在这个追求中,百度文心快码(BaiduComate)不负众望,从众多AI智能编码工具中脱颖而出,成为中国信通院首批“可信AI智能编码工具”评估中的佼佼者,荣获最高评级。想象一下,你正在为一段复杂的代码逻辑而苦恼,文心......