【算法相关|B站(李宏毅2020机器学习笔记 3 —— 梯度下降Gradient Descent)】总览学习目录篇 链接地址:https://blog.csdn.net/xczjy200888/article/details/124057616
B站:李宏毅2020机器学习笔记 3 —— 梯度下降Gradient Descent
-
-
- 一、回顾:梯度下降
- 二、学习率 learning rate
-
- 1. 学习率大小的影响
- 2. 调整学习率
- 三、梯度下降算法
-
- 1. 自适应梯度算法 adagrad
-
- 1.1 自适应梯度算法提出
- 1.2σ t σ^t σt参数解释
- 1.3 最终式子
- 1.4 矛盾点
- 2. 随机梯度下降算法 stochastic gradient descent
- 3. 特征缩放 feature scaling
-
- 3.1 怎么做特征缩放?
- 四、梯度下降理论基础
-
- 1. 泰勒级数 Taylor series
- 2. 两个参数的梯度下降
- 3. 梯度下降算法限制
-
一、回顾:梯度下降
1、在回归篇的第四步已经提到,利用梯度下降算法解决函数参数优化问题
文章图片
θ 1 θ^1 θ1表示在 θ 0 θ^0 θ0基础上调整后的,下一状态的参数
2、下图中 C ( θ ) C(θ) C(θ)表示的是损失函数 L ( θ ) L(θ) L(θ),下一次的参数优化方向,根据损失函数梯度下降的方向(损失函数递减,因为目的是最小化损失函数)
文章图片
二、学习率 learning rate
1. 学习率大小的影响
- 当学习率小的时候,损失函数优化速度慢,如蓝色线条
- 当学习率大的时候,损失函数优化速度快,但容易卡主,来回震荡,无法到达最优,如绿色线条
- 当学习率很大的时候,损失函数无法优化,如蓝色线条
- 当学习率刚刚好的时候,损失函数可以得到很好的优化,如红色线条
文章图片
要确定损失函数值在稳定的下降,才能真正的训练,建议设置learning rate的时候,可以画一下上图右图。
- 起初:学习率设置较大,快速接近最优值
- 后期:在接近最优值时,降低学习率,避免来回震荡
文章图片
1. 自适应梯度算法 adagrad 1.1 自适应梯度算法提出
- 批处理梯度下降: w t + 1 = w t ? η t g t w^{t+1} = w^t-η^tg^t wt+1=wt?ηtgt
- 自适应梯度下降: w t + 1 = w t ? η t σ t g t w^{t+1} = w^t- \frac{η^t}{σ^t}g^t wt+1=wt?σtηt?gt
文章图片
σ t σ^t σt表示 w w w之前求导的均方根
文章图片
1.3 最终式子 自适应梯度下降: w t + 1 = w t ? η ∑ i = 0 t ( g i ) 2 g t w^{t+1} = w^t- \frac{η}{\sqrt{\sum_{i=0}^t{(g^i)^2}}}g^t wt+1=wt?∑i=0t?(gi)2 ?η?gt
文章图片
1.4 矛盾点
- 梯度越大,优化step越大,但是在自适应梯度算法中,分母矛盾?
文章图片
- 解释:
文章图片
- 如果step的大小和微分的大小成正比,可能是最好的step。只在考虑一个参数时,才成立
- 从 x 0 x_0 x0?开始做梯度下降,最好的step是 ∣ x 0 + b 2 a ∣ |x_0+\frac{b}{2a}| ∣x0?+2ab?∣,这样就一步到最优了,整理后为 ∣ 2 a x 0 + b ∣ 2 a \frac{|2ax_0+b|}{2a} 2a∣2ax0?+b∣?,分子刚好等于微分。
文章图片
- 从 x 0 x_0 x0?开始做梯度下降,最好的step是 ∣ x 0 + b 2 a ∣ |x_0+\frac{b}{2a}| ∣x0?+2ab?∣,这样就一步到最优了,整理后为 ∣ 2 a x 0 + b ∣ 2 a \frac{|2ax_0+b|}{2a} 2a∣2ax0?+b∣?,分子刚好等于微分。
- 最好的step,和一次微分成正比,和二次微分成反比。
文章图片
- 想办法证明: ∑ i = 0 t ( g i ) 2 \sqrt{\sum_{i=0}^t{(g^i)^2}} ∑i=0t?(gi)2 ?和二次微分有关系?
- 二次微分和 一 次 微 分 2 \sqrt{一次微分^2} 一次微分2 ?值比较接近
文章图片
- 二次微分和 一 次 微 分 2 \sqrt{一次微分^2} 一次微分2 ?值比较接近
- 随机梯度下降算法:随机选择一个样本计算梯度
文章图片
- 特征缩放的目标就是数据规范化,使得特征的范围具有可比性
文章图片
- 调节比例
x ′ = x ? m i n ( x ) m a x ( x ) ? m i n ( x ) x' = \frac{x-min(x)}{max(x)- min(x)} x′=max(x)?min(x)x?min(x)? - 平均值规范化
x ′ = x ? m e a n ( x ) m a x ( x ) ? m i n ( x ) x' = \frac{x-mean(x)}{max(x)- min(x)} x′=max(x)?min(x)x?mean(x)? - 常用:标准化的特征缩放
x ′ = x ? m e a n ( x ) s t d ( x ) x' = \frac{x-mean(x)}{std(x)} x′=std(x)x?mean(x)?
文章图片
1. 泰勒级数 Taylor series
- 一个参数的泰勒展开式
文章图片
- 多参数的泰勒展开式
文章图片
- 两个参数: s s s和 θ θ θ无关,所以想要 L ( θ ) L(θ) L(θ)值最小化,就是寻求在原点为(a,b)基础上,向量 ( u , v ) (u,v) (u,v)和向量 ( θ 1 ? a , θ 2 ? b ) (θ_1-a,θ_2-b) (θ1??a,θ2??b)乘积的最小值,就是他们反方向的时候。
文章图片
- u u u相当于损失函数对 θ 1 θ_1 θ1?的一阶导数(根据泰勒展开式至第一阶导数,根据极限,要 x x x和 y y y越接近 x 0 x_0 x0?, y 0 y_0 y0?,展开式的后面几项才可忽略;越接近,相当于红色圆圈半径越小)
- v v v相当于损失函数对 θ 2 θ_2 θ2?的一阶导数
文章图片
- 在高原点,导数值接近0,以为已经到达最优点,优化就停下来了
- 在鞍点,导数值接近0,陷入局部最优点
文章图片
推荐阅读
- 算法相关|B站(李宏毅2020机器学习笔记 4 —— 深度学习优化 Optimization for Deep Learning)
- 机器学习|反卷积通俗详细解析与nn.ConvTranspose2d重要参数解释
- 机器学习|Google Colab装载Google Drive(Google Colab中使用Google Drive)
- 机器学习|TensorBoard快速入门(Pytorch使用TensorBoard)
- 机器学习|【学习笔记-李宏毅】GAN(生成对抗网络)全系列(一)
- 机器学习|Pytorch中DataLoader和Dataset的基本用法
- 机器视觉|低速自动驾驶技术(APA)
- python|(2022.4)Win10最新Anaconda安装Pytorch GPU环境(CUDA)教程(极其适合初学者)
- OAK常见报错|报错ImportError: numpy.core.multiarray failed to import