zoukankan      html  css  js  c++  java
  • 李宏毅机器学习课程---4、Gradient Descent (如何优化 )

    李宏毅机器学习课程---4、Gradient Descent (如何优化)

    一、总结

    一句话总结:

    调整learning rates:Tuning your learning rates
    随机Gradient Descent:Stochastic Gradient Descent
    特征缩放:Feature Scaling

    stochastic
    英 [stə'kæstɪk]  美 [sto'kæstɪk]
    adj. [数] 随机的;猜测的

    1、如何调整 Learning Rates?

    比如先大后小:Popular & Simple Idea: Reduce the learning rate by some factor every few epochs.
    单一适应:Learning rate cannot be one-size-fits-all

    2、在求Learning Rates的时候,如何粗略反应现在点和最低点的距离?

    |First derivative| / Second derivative

    derivative
    英 [dɪ'rɪvətɪv]  美 [də'rɪvətɪv]
    n. [化学] 衍生物,派生物;导数
    adj. 派生的;引出的

    3、Stochastic Gradient Descent 和 一般Gradient Descent的区别是什么?

    Gradient Descent:Update after seeing all examples
    Stochastic Gradient Descent:【Update for each examples】,If there are 20 examples, 20 times faster.

    stochastic
    英 [stə'kæstɪk]  美 [sto'kæstɪk]
    adj. [数] 随机的;猜测的

    4、Gradient Descent中的Feature Scaling(特征缩放)的好处是什么?

    易找最低点:特征缩放之后变成圆,比较容易找到最低点,任意方向都会向着圆心走:Make different features have the same scaling

    5、Taylor Series 是什么?

    泰勒展开式

    6、梯度下降算法的限制?

    局部最优解:梯度下降算法求得的解可能是局部最优解
    不是最优解:梯度下降算法可能收敛在驻点,求得的解不是最优解
    停止于偏微分很小的点:由于梯度下降算法的收敛条件是参数变化小于一个给定的误差,因此算法可能停止于一个偏微分很小的点

    梯度下降属于线性回归的一个重要的部分。但是这种方法具有局限性,在一般的情况下,并不能保证找到的局部最小就是全局最小。所以这种方法适用于目标函数是凸函数的情况(local minimum == global minimum)。即使是在凸函数中也不能保证最后找到的点就是最小值,这取决于算法的中止条件(即变化率小于一个定值)和所取的参数λ。所以算法很可能在找到一个相对平滑而并非最小值的地方以后就终止。 

    7、自动调整学习速率 算法的核心思想是什么?

    先大后小:每个参数设置不同学习速率,学习速率随着参数调整次数的增大而减少,因为通常初始点距离最优点远,步伐可以设置大一点,随着参数的调整逐渐逼近最优点,此时步伐应该调小,避免跨过最优点。


    如果学习速率适合,那么优化Loss function的路径应该如红色线段;如果学习速率过大,那么优化Loss function的路径将如绿色、黄色线段;如果学习速率过小,那么优化Loss function的路径将如蓝色线段。由此,衍生出自动选择学习速率的方法(Adaptive Learning Rates),核心思想:每个参数设置不同学习速率,学习速率随着参数调整次数的增大而减少,因为通常初始点距离最优点远,步伐可以设置大一点,随着参数的调整逐渐逼近最优点,此时步伐应该调小,避免跨过最优点。

    8、梯度下降和随机梯度下降 算法的区别是什么?

    Update after seeing all examples:梯度下降的算法遍历所有样本之后才更新参数,走的方向比较稳定;
    Update for each examples:随机梯度下降的算法不稳定,但是相同的时间内速度大大增加。

    9、Adagrad是什么?

    自动调整学习速率:一种常见的自动调整学习速率算法

    最终可以得到Adagrad算法的参数更新:wt+1←wt−η∑ti=0(gi)2gt,Adagrad算法考虑gt的反差效应,gt表示一阶导数,∑ti=0(gi)2 反映二阶导数。

    10、为什么在梯度下降中,λ的选择尤为重要?

    λ偏大易陷入死循环:λ偏大的话,算法会一直徘徊在最小值左右的两个点而陷入死循环;
    λ偏小速率偏慢:λ偏小的话,会导致梯度下降的速率偏慢。
    λ要变化,先快后慢:基于这种情况,我们不再将λ设置成为一个定值,而是随着算法不断变化。一般来说,我们选择先快后慢,即初始的λ较大,而第k次更迭的λ与k-1次的λ成正比,与1+k的开方成反比。

    二、内容在总结中

     
  • 相关阅读:
    使用URLEncoder、URLDecoder进行URL参数的转码与解码
    js中的连等==和全等===
    sass用法
    sass/scss 和 less的区别
    JSON与localStorage的爱恨情仇
    ionic2
    雪碧图
    JavaScript交换两个变量值的七种解决方案
    JavaScript中的[]和{}
    为什么 ++[[]][+[]]+[+[]] = 10?
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10965584.html
Copyright © 2011-2022 走看看