IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习学习笔记(二)之梯度下降 -> 正文阅读

[人工智能]机器学习学习笔记(二)之梯度下降

梯度(向量)计算:

  1. Learning rate太小的话,训练速度会很慢,太大可能会的不到正确的结果;(可以作参数参数迭代次数—Loss的函数);

  1. 自动调节的learning rate的方法:

  1. https://blog.csdn.net/u013385018/article/details/92377371(几种方法比较)

????????????????

    1. Vanilla(一般的方法):

    1. Adagrad(除以了过去所有的梯度值的平方之和平均值的根)

其中算式,注意可以简化为:(分母项用于反映反差的大小,约束变化)

具体步骤:

解释:参数迭代过程中最优的步伐大小应该是一次微分的绝对值除以二次微分的大小;

??????但是微分求取的速度较慢,于是用平方和的根值代替二次微分;

  1. Stochastic Gradient Desent(SGD)(训练速度更快)随机梯度下降

首先只考虑一个example,调节参数后,再调用一个example调节参数,直到所有的example全部考虑并更新参数,最后调节的参数就是所求的;

对比:

  1. SGD with Momentum(SGDM):该方法和过去的移动是相关的,采用指数加权平均的方法

不会在loss函数微分为零的时候就停止,如图,在第二处位置并未停下, 而是继续往前移动;

并且在真正的极小值处来回移动,直到符合条件。

  1. RMSProp (改进后的Adagrad,Adagrad规定移动大小项的分母会无限地增大,相应的movement就会很小): RMSProp解决了这一问题

?

仍然无法解决会卡在一个不是极小值但grad为零的位置。

https://blog.csdn.net/willduan1/article/details/78070086

  1. Adam:结合了RMSProp和Adagrad方法,更加有效解决问题

ε是为了防止分母为零,adam说明中的mt,vt,β1和β2是SGDM和RMSProp的对应式子和符号。

由于移动指数平均在迭代开始的初期会导致和开始的值有较大的差异,所以我们需要对上面求得的几个值做偏差修正,即

随着t的增大,adam中的β值逐渐减小为零,对前期影响大而后期影响小,达到纠正前期误差较大的作用。

问题:在后期时,即使gradient突然变得很大,也只会引起较小的变化,因为前面的gradient的和已经远远大于该gradient,对movement的影响就会很小。反而会被更多的但是gradient更小的所影响,再者对该Θ函数求极限会有一个最大值,移动距离会受限制。

试图优化adam算法:

  1. SWATS:比较adam和SGDM,adam训练的更快,但更不稳定;SGDM 训练更慢但是更加稳定。将二者结合就是SWATS的方法。即初始用adam,最 后收尾用SGDM。

  1. AMSGrad:利用取最大值的方法,只解决了learning rate的大小问题

  1. AdaBound:界定了learning rate的上下限,比较粗暴的方式,是not adaptive的。

https://blog.csdn.net/qq_33547191/article/details/88034806

试图优化SGDM算法:

  1. LR range test: 选择一个较好的learning rate

  1. Cyclical LR: 周期性变化的learning rate,鼓励更多的动态探索

  1. SGDR:

  1. One-cycle LR:先增后减的learning rate

(14)

(15)

(16)

(17)

目前其它的优化器

??在AMSGrad后,有很多其它的优化器出现,包括AdamW,修复adam的权重下降问题;QHAdam,用基于动量的随机梯度下降平均标准的随机梯度下降;AggMo,结合多个动量项;等其他优化器。

一些其他知识:

1.(warm-up adam)因为开始的估计不会非常准确,会使得movement非常震荡不稳定

如何warm-up?

用rt来估计方差的值,当方差较大的时候,就走对应小步一点,方差val小的时候就走大步一点

RAdam就是开始的时候用SGDM,后来用Adam;它解决的是一开始learning rate不准确的问题;

而SWATS是开始的时候用Adam,后来用SGDM;为了使accuracy收敛的更好,更加稳定和准确;

  1. 优化,每循环走几步后,将最初的直接更新到目前的gradient方向,能够避免explore到一个很深的陷阱里边。

?

  1. Adam & SGD的优化之有差别于之前的正则化的用法:将惩罚项不放在Loss函数里,即不在mt或者vt中,而是放在θ函数中,如图:

  1. 其他可能对我们有帮助的方法:

(1)增加model的随机性 ??

  1. 对learning rate的一系列方法:

开始用简单的数据去训练,后面再用比较复杂困难的数据训练。

用别人训练好的model,节省时间和资源。

  1. 避免极端的训练情况,使一般化:

Feature scaling:(特征归一化)

归一化后加快了梯度下降求最优解的速度和有可能提高精度

常用方法:有多个example时,每一个example对应一组feature,即x1,x2....,xR,然后标准化各个参数feature。

参考:https://blog.csdn.net/u010315668/article/details/80374711

梯度下降的理论支撑:

在一个圆形邻域中寻找最小值(可以通过泰勒展开简化loss方程,然后求最小值),并更新中心点,(半径大小与learning rate有关,需足够小才成立)直到找到最小点。

梯度下降的限制:

  1. 局部最优
  2. 在拐点卡住,如三次函数y=x^3在x=0这一点时,微分也为零(加上momentum就可以解决,如SGDM,每次移动都与前一次的移动相关,不会在loss函数微分为零的时候就停止)

总结:

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 10:51:52  更:2021-07-14 10:55:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/28 13:55:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码