专栏首页专知春节充电系列:李宏毅2017机器学习课程学习笔记03之梯度下降

春节充电系列:李宏毅2017机器学习课程学习笔记03之梯度下降

【导读】我们在上一节的内容中已经为大家介绍了台大李宏毅老师的机器学习课程的regression问题,其中简要提及了梯度下降(gradient descent),这一节将主要针对梯度下降问题展开分析。本文内容涉及机器学习中梯度下降的若干主要问题:调整学习率、随机梯度下降、feature scaling、以及如何直观的理解梯度下降。话不多说,让我们一起学习这些内容吧。

春节充电系列:李宏毅2017机器学习课程学习笔记01之简介

春节充电系列:李宏毅2017机器学习课程学习笔记02之Regression

课件网址:

http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html

视频网址:

https://www.bilibili.com/video/av15889450/index_1.html

李宏毅机器学习笔记—Gradient descent

在上一次的笔记中,在regression我们已经略微讲述了gradient descent(梯度下降),现在回顾一下

现在我们具体讲述一下gradient descent里面的问题

▌1. tuning your learning rates



在gradient descent过程中,learning rate需要我们自己设置,当其太小时,training过程太慢了,太大时,可能在最低点左右跳跃,当设置的恰恰好时,训练才会正常进行。去下图所示

在最开始的时候,我们离最低点远,采用较大的学习速率比较好,当离最低点越来越接近时,采用较小的学习速率可能比较好。所以固定的learning rate可能不太好,我们可以采用自适应的学习速率。

下面介绍一个称为adagrad的方法

从上图可以看出,随着训练次数的增加,训练速率越来越慢,且学习速率和以前的微分有关。

我们可以对这个方法一个直观的解释:这个方法可以强调训练速率的反差有多大

再来看看实际的解释,在一元函数中,一阶微分大小和离最低点距离成正比

但在多元函数中不是这样的,比如a和c

实际上继续观察下图,到最低点的距离不仅和一阶微分有关,还和二阶微分有关,C虽然一阶微分大,但二阶微分也大

所以adagrad中分母项相当于用来估计二次微分,直接算二次微分增大计算量,于是用一次微分来估计,采样许多一次微分点,二次微分大的地方在相同位置自然比二次微分小的地方平方大。

▌2. 随机梯度下降(stochastic gradient descent)



之前是算所有data的loss ,现在随机采样一个点,算这个采样点的loss,然后梯度下降

用这种方法速度更快,但以前的方法更平稳

▌3. Feature scaling



X的不同特征可能scale不一样,feature scaling的方法是让不同的feature用同样的scale

下图左边虽然也是梯度下降,但没指向最低点

Feature scaling的方法很简单,如下图所示

▌4. 从另一个角度来看待梯度下降方法



给定一个点,我们很容易找到其周围的最小点

先对在此点附近进行泰勒级数展开

然后h函数在此点周围可以近似表示如下形式

当u,v看做向量时,让loss最小时,如下图所示,要求反向即可

进而我们可以得到梯度下降的表达式

后台回复“LHY2017” 就可以获取 2017年李宏毅中文机器学习课程下载链接~

-END-

本文分享自微信公众号 - 专知(Quan_Zhuanzhi),作者:专知内容组(编)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-02-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【思考】为什么我们需要一个比反向传播更好的学习算法?

    【导读】如今,反向传播算法(Backpropagation)可以说是神经网络模型的标配学习方法,可以在网络的学习过程中计算损失函数的偏导数,从而进一步用随机梯度...

    WZEARW
  • 春节充电系列:李宏毅2017机器学习课程学习笔记01之简介

    【导读】春节将近,在亲友相聚之余也不忘给自己充充电。为此,专知内容组给大家带来了台大李宏毅老师的2017年机器学习课程系列学习笔记。今天我们先来看一下该系列课程...

    WZEARW
  • 剑桥大学计算机系博士孙琳:自然语言处理(NLP)的发展以及在教育领域的应用情况(附报告pdf下载)

    ? ? 大家好!我是孙琳,很高兴参加TAB教育科技论坛,今天分享的题目是“教育应用中的自然语言处理”。首先我先做一下自我介绍,我是剑桥大学计算机系的博士,博士...

    WZEARW
  • 对比Vector、 ArrayList、 LinkedList有何区别

    这三者都是实现集合框架中的List,也就是所谓的有序集合,因此具体功能也比较近似,比如都提供按照位置进行定位、添加或者删除的操作,都提倛迭代器以遍历其內容等。但...

    王小明_HIT
  • 我的小 Web 服务器树莓派在搭建 WordPress 时遇到的问题

    宝宝只想用树莓派搭建个人博客玩玩啊,特么为啥如此麻烦?虽然遇到的问题,百度,Google,最后还是解决了?~现将问题收集如下,希望对看到的人有用。我用树莓派搭建...

    莲花海
  • 1.24 VR扫描:HTC宣布高端VR一体机VIVE FOCUS全国发货

    VRPinea
  • 001.Amoeba读写分离部署

    Amoeba(变形虫)项目,该开源框架于2008年 开始发布一款 Amoeba forMysql软件。这个软件致力于MySQL的分布式数据库前端代理层,它主要在...

    木二
  • 类方法load和initialize的区别

    Objective-C作为一门面向对象语言,有类和对象的概念。编译后,类相关的数据结构会保留在目标文件中,在运行时得到解析和使用。在应用程序运行起来的时候,类的...

    用户3539187
  • android报错 Expected BEGIN_OBJECT but was STRING at line 1 column 39 path $

          我在使用retrofit和Gson配合时,出现了这个问题,疑惑中乱七八糟瞎搞了一个下午没有解决。期间怀疑Gson解析不能使用泛型(因为我的解析使用了...

    xiangzhihong
  • django rest_framework 用户登录认证

    kirin

扫码关注云+社区

领取腾讯云代金券