李宏毅2020机器学习 【学习笔记】 P5Gradient Descent

目录

引_梯度下降法

从坐标系上看

Gradient Descent 的优化

Tip1:小心地调节 (Learning Rate)

 AdaGrad 自适应梯度 (Adaptive Gradient)

“这个分母的意义?”

 Tip2:让训练更快!

Stochastic Gradient Descent 随机梯度下降

 Tip3:Feature Scaling 特征尺度缩放

 是什么?

 为什么?

 怎么做?

 Formal Derivation 正式的推导

泰勒展开

 ​编辑

 多参数泰勒展开 Multvariable

Gradient Descent 的局限性


感谢B站up主搬运的课程:

【李宏毅2020机器学习深度学习(完整版)国语】 https://www.bilibili.com/video/BV1JE411g7XF/?share_source=copy_web&vd_source=262e561fe1b31fc2fea4d09d310b466d


引_梯度下降法

假设使用两个“特征参数”,组成一个向量 \left[ \begin{array}{ccc} \theta_1\\ \theta_2 \end{array} \right ] 。

我们随机地选择参数从 \theta^0\left[ \begin{array}{ccc} \theta_1^0\\ \theta_2^0 \end{array} \right ] 开始,

不断地进行 \theta ^{\quad\\n+1} = \theta ^n -\eta \nabla L(\theta ^n) ,

其中 \nabla L(\theta ^n) 即梯度(对各个参量的导数向量\left[ \begin{array}{c} \frac{\partial L(\theta_1)}{\partial \theta_1} \\ \frac{\partial L(\theta_2)}{\partial \theta_2} \end{array} \right ],

直至求出最终的 argminL,此即Gradient Descent

从坐标系上看

我们选取的点正不断往梯度的反方向更新

Gradient Descent 的优化

Tip1:小心地调节\eta (Learning Rate)

过大的 \eta 会导致Loss难以减小(绿色走向)、甚至不减反增(黄色走向)

过小的 \eta 则使迭代速度过慢。


 

 一种主流又简单的做法——随着迭代次数将 \eta 变小(做得越多越接近结果,须放慢步伐);
同时,不同的参数情况不同,理应具有不同的 \eta 。

 AdaGrad 自适应梯度 (Adaptive Gradient)

对每一个特征参量w

取时变的学习速率 \eta ^t = \frac{\eta}{\sqrt{\\t+1}},梯度 g^t = \frac{\partial L(\theta^t)}{\partial w} (L(\theta^t)指取其它参数在t次迭代时的值)

 并且为 \eta 除上一个参数 \sigma^t :先前算出的所有微分值的RMS(所有参数的\sigma都不同)

代入式中,我们发现式子上下其实可以约简去\sqrt{\frac{1}{t+1}}

 最终的 AdaGrad 式子如上所示,相较于普通的 Gradient Descent 就是多了个分母。

“这个分母的意义?”
  • 直觉上的解释:当某次迭代计算出的 g 骤大/骤小时,该因子足以显现 g^t 与过往梯度的反差
  • 以二次函数模型解释:
    从某一参数值 x_0 走到最佳值 -\frac{b}{2a} (二次函数顶点)的最佳步长为 |x_0+\frac{b}{2a}| 。

    能够发现恰为 |一阶导数 | / 二阶导数。
    那么,我们可以看出AdaGrad新增的因子便是
    使用一阶导数的样本采用平方和开根的方式对二阶导数的一个估计

 Tip2:让训练更快!

Stochastic Gradient Descent 随机梯度下降

普通的梯度下降呢,Loss是对所有的样本求和的(n为第n个样本,i为第n个样本的第i个特征)

Stochastic Gradient Descent 的做法则是每次迭代用的Loss只随机取一个样本(不再对n求和)

 “真的快很多!”

 Tip3:Feature Scaling 特征尺度缩放

 是什么?

让不同的特征拥有相同尺度的操作。

 为什么?

具有相同尺度的 Feature 会让参数更直接地往低 Loss 方向迭代。

 

 上图中特征变量 x_2 的尺度较大, w_2有变动时 Loss 会变化很快,即迭代方向(梯度反方向)会更偏向 w_2 这边,走得会比较绕。

 怎么做?

一种方法:

我们持有样本 x_1x_2、…… x^r ; 每个样本都具有特征 x^r_1、 x^r_2、…… x^r_i;

我们对每一种特征都求他们的均值 m_i 和方差 \sigma_i ,

对每个样本的特征值都减去均值再除以方差,最终该特征成为0均值、1方差的分布。

 Formal Derivation 正式的推导

在参数空间中任选一点,然后我们在他的领域(红色圆圈)里寻找Loss值最低的那个点,再以它为中心重复这个操作,最终会找到最佳参数。

泰勒展开

 

当 x 接近于 x_0 时,高次项的 (x-x_0)^n 会很小,忽略

 多参数泰勒展开 Multvariable

同样的,在接近 x_0y_0 时我们只保留0次1次项,

 所以,我们的领域选得足够小(红色圆圈足够小),Loss 就可以展开为上面的形式。

 令 s=L(a, b), u=\frac{\partial L(a, b)}{\partial \theta _1}, v = \frac{\partial L(a, b)}{\partial \theta_2}

观察后两项,由于梯度是有方向的,那我们也把 (\theta_1-a)、 (\theta_2-b) 视为向量 (\triangle \theta_1, \triangle \theta_2)

------ 那我们如何让向量的 内积/点积/标量积 最小呢?

很显然,让夹角为180^\circ cos(180^\circ) = -1),即将向量 (\triangle \theta_1, \triangle \theta_2) 指向梯度的反方向;

再让 (\triangle \theta_1, \triangle \theta_2) 尽可能伸得更长,即顶到边缘。

 那么我们就得到了一个关系式

 反方向-,尽可能长的因子 \eta(与圆圈大小成正比);

把它拆开,你会发现这不就是梯度下降的式子么?!

  当然,理论上, \eta 要足够小(圆圈足够小),我们最初的一级近似才成立。

Gradient Descent 的局限性

 在局部最小停下来……
 在驻点(导数为零)停下来……
 在导数很小的点步履维艰……

当然我们实际操作时并无法知道我们找的 local min 到底是不是 global min ……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
李宏毅2020机器学习笔记中,有一个关于注意力机制(Attention)的部分。这部分内容主要介绍了生成模型(Generation)、注意力(Attention)、生成的技巧(Tips for Generation)以及指针网络(Pointer Network)。在生成模型中,主要讲述了如何生成一个有结构的对象。接下来介绍了注意力机制,包括一些有趣的技术,比如图片生成句子等。在生成的技巧部分,提到了一些新的技术以及可能遇到的问题和偏差,并给出了相应的解决方案。最后,稍微提到了强化学习。其中还提到了在输出"machine"这个单词时,只需要关注"机器"这个部分,而不必考虑输入中的"学习"这个部分。这样可以得到更好的结果。另外,还提到了关于产生"ei"的方法,其中有研究应用了连续动态模型自注意力(Self-attention)来学习位置编码的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [2020李宏毅机器学习笔记-Condition Generation by RNN&Attention](https://blog.csdn.net/zn961018/article/details/117593813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [李宏毅机器学习学习笔记:Self-attention](https://blog.csdn.net/weixin_44455827/article/details/128094176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值