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 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> 机器学习笔记 Gradient Dscent--递归下降 -> 正文阅读

[游戏开发]机器学习笔记 Gradient Dscent--递归下降

Gradient Dscent

Review
在这里插入图片描述在第三步,我们得通过调整参数θ去使损失函数达的结果达到最小,既找到评分最高的function的参数θ。
在这里插入图片描述我们通过η学习率(调整的幅度)和偏导(调整的方向)去调整参数θ。
调整的过程就是Gradient Dscent

在θ处的Gradient为:
在这里插入图片描述
【梯度代表上升最快的方向,所以我们要减去梯度,既往下降最快的方向走】
进一步把方程写成:
在这里插入图片描述
Learning Rate的影响
在这里插入图片描述
下图左图,
(1)当Learning Rate设置的很小时,Loss下降的速度会很慢;
(2)当Learning Rate比较大时,第一次Loss下降的比较快,然后就在“山谷”来回震荡,下降速度变缓慢;
(3)当Learning Rate设置的很大时,Loss直接飞了出去,急剧变大。
Conclusion:所以我们应该小心的选择Learning Rate。
在这里插入图片描述
Adaptive Learning Rates调整Learning Rates
比较流行也比较简单的方法是:在每一轮的参数调整后减少学习率。
(1)在刚开始,我们可以选择较大的学习率。因为我们离“山谷”会比较远。
(2)在几轮结束后,我们可以选择减小学习率。因为我们离“山谷”比较近。

例如:
在这里插入图片描述t:第t轮。在每轮之后都去适当的减小学习率。

【但该公式不可能适合所有的参数调整过程,也许我们可以为不同的参数调整设置不同的学习率】

Adagrad自适应梯度算法
对每个参数设置不同的学习率方程

(1)普通的梯度下降:
在这里插入图片描述在这里插入图片描述

(2)Adagrad自适应梯度算法
在这里插入图片描述
σ为历史偏导平方和的平均值再开根号

在这里插入图片描述
将对应式子带入,可以消掉分子

在这里插入图片描述
【个人理解,首先σ是逐渐增大的,保证了学习率会逐渐减小;当偏导很大时,表示下降幅度比较大,“山谷”可能会比较窄,所有学习率减小的应该多一些,所有σ会比较大,从而学习率减少的比较大】

Best Step?每次跨多大步伐是最好的?
取一个二次方程为例子
在这里插入图片描述上图上部分是function的图像,下部分是function一阶导数图像。

可以看出x0点到达局部最优点的Best step为|x0+b/(2a)|。可化简为:
在这里插入图片描述
所以Best step与 2ax0+b 成正比,而2ax0+b正好是该函数的一阶导数,所以Best step和一阶导成正比

但这结论不能跨越参数,既对于每个参数都有自己的Best step距离。
在这里插入图片描述如上图,对于两个不同的参数,他们对于的Loss曲线是不同的,对于的一阶导也存在差异,一个Best step不能同时反应w1和w2距离最佳点的距离。

我们在观察一下上述Best step 的分母,
在这里插入图片描述
可以发现分子其实就是function的二次导数。所以Best step和二次导数成反比
【我的理解:二次导数代表凹凸性,所以当二次导数很大时,代表函数比较尖,或者说山谷比较窄,Best step就应该比较小】
在这里插入图片描述
conclusion:Best step应该正比于一阶导,反比于二阶导

那Adagrad中的分母是二阶导,分子是一阶导吗?
在这里插入图片描述
(1)首先η是学习率,可以看作一个常数。
(2)而gt代表梯度,本身就是一阶导;
(3)分母就是使用一阶导数取估值二阶导数
在这里插入图片描述
根据上图,当二阶导数比较小时,他的一阶导数通常也比较小;当二阶导数比较大时,他的一阶导数通常也比较大。所有可以通过采样一阶导数去估计二阶导数大小。

Stochastic Gradient Descent(随机梯度下降法)
(1)普通梯度下降的损失函数:
Loss Function对每个训练案例都要考虑。
在这里插入图片描述
普通梯度下降的参数update:
update过程中每一个训练案例都会被考虑到
在这里插入图片描述
(2)Stochastic Gradient Descent
损失函数:
只考虑一个example/输出案例。与普通梯度下降Loss function的区别是,去掉了最外层的求和,因为只有一个example。
在这里插入图片描述
随机梯度下降的参数update:
update过程中只考虑一个example,每输入一个example更新一次
在这里插入图片描述

下降过程对比:
在这里插入图片描述
因为随机梯度下降在遇到每一个example都会update一次,所以下降的会相对比较快。

Feature Scaling(特征缩放)

当两个输入的feature分布的范围相差比较大时,可以进行特征缩放,让两个输入feature分布范围范围相差不大。
在这里插入图片描述

为什么呢?
在这里插入图片描述
上图左边是未特征缩放前,输出的结果y会很大程度依赖于x2,Loss 在梯度下降时不会向中心下降,因为w2和w1对于Loss的贡献不同,所以w1和w2下降过程中会走些弯路。
右边是特征值缩放后,在下降过程中w1和w2对于Loss贡献差不多,所以在下降过程中大致朝着中心下降,少走些弯路。

数学角度看梯度下降
在这里插入图片描述
从图上看,其实就只在θ的附近进行探索Loss最低点,一步一步挪向最低点。

泰勒级数,可以将函数写成:
在这里插入图片描述
当x无限接近x0,可以把函数缩写为:
在这里插入图片描述
若有两个参数呢?如下图

在这里插入图片描述
在回到开始的那张图,当红圈足够小,就可以使用泰勒级数来替换Loss Function。
在这里插入图片描述

当(θ1,θ2)无限接近(a,b),将Loss function写成:
在这里插入图片描述在这里插入图片描述

我们要做的是在红圈里面找最低点,所以 1-a)2+(θ2-b)2≤d2

对于L(θ),u,v,s是常数,所以找最小值只看θ1和θ2
1,θ2)什么情况下会使Loss最小呢?
在这里插入图片描述显然,(△θ1,△θ2)与(u,v)反向时,Loss最小。
在这里插入图片描述

在这里插入图片描述
η控制迈出的步子有多大,应该要刚好碰到红圈边缘。

最后提出一个问题:每一次更新参数,获得的参数都会使 L(θ)更小吗?
不会,因为有时候你步子迈大了,方向使朝着最低点去,但是未必能上到最低点,也有迈过“山谷”可能往“山峰”上走了。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章           查看所有文章
加:2022-04-07 23:02:30  更:2022-04-07 23:04:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/16 21:05:06-

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