专栏首页专知【重温经典】吴恩达机器学习课程学习笔记五:多元梯度下降

【重温经典】吴恩达机器学习课程学习笔记五:多元梯度下降

【导读】前一段时间,专知内容组推出了春节充电系列:李宏毅2017机器学习课程学习笔记,反响热烈,由此可见,大家对人工智能、机器学习的系列课程非常感兴趣,近期,专知内容组推出吴恩达老师的机器学习课程笔记系列,重温机器学习经典课程,希望大家会喜欢。

【重温经典】吴恩达机器学习课程学习笔记一:监督学习

【重温经典】吴恩达机器学习课程学习笔记二:无监督学习(unsupervised learning)

【重温经典】吴恩达机器学习课程学习笔记三:监督学习模型以及代价函数的介绍

【重温经典】吴恩达机器学习课程学习笔记四:梯度下降

吴恩达机器学习课程系列视频链接

http://study.163.com/course/courseMain.htm?courseId=1004570029

春节充电系列:李宏毅2017机器学习课程学习全部笔记

吴恩达课程学习笔记五:多元梯度下降

1、多种特征



在前面的总结中介绍了根据房子size去预测price的例子,其中特征只有size。下面将这个例子复杂化,即现在有四个特征可能会影响最终的price。

如下图所示,一些参数的解释是:

n为特征的种类数目

为第i个训练样本的特征集合

为第i个训练样本中的第j个特征

此时预测函数表示如下(当然按照上述的例子,这里n取4):

注意:在这里,为了表示方便,设置

,即对任意i,有

,利用行列式同样可以简化表示。

2、多元梯度下降算法



根据上文所总结可知,预测函数,参数以及代价函数如下:

这里用

(它是一个n+1维向量)来表示参数

则代价函数表示为

,这里参数也要求同时更新。

下图右下部分给出了前三个参数的更新过程(其它参数也是类似):

3、多元梯度下降法演练之特征缩放



特征缩放的原因:如下图所示,假设有两种特征,一种是房子的size,范围在0-2000,另一种是卧室的数目,范围在1-5。

如果忽略

,则绘出

的等高线图如下(非常的“瘦高”),在进行梯度下降时,会反复来回振荡,下降地非常缓慢。但是按照下图右半部分进行处理后,会相对较快地下降到最低点。

特征缩放的默认规则:尽量使得每个特征的取值范围变为-1—1之间,但并不是一定要特别精确,在-3—到3,以及-1/3—1/3都算比较合理。

即只要特征缩放后的取值范围近似就可以,不需要太精确,特征缩放的目的是为了让梯度下降地更加快一点。

4、多元梯度下降法演练之学习率



如何知道梯度下降算法收敛:

如下图所示,绘制出了J(θ)的值随着迭代次数变化的图像(横轴代表迭代次数),图中所示,在迭代了300—400次后J(θ)的值几乎不变,可以认为已经收敛。

也可以下图右半部分描述的自动检测收敛的方法:即下一次迭代后的J(θ)值与前一次差值在小于

(图中给出的是

)时就认为已经收敛。但在实际情况下,选择合适的

值并不容易。

如何选择学习率使得梯度下降算法正常运行:

如图所示,对于左上部分,可能由于学习率设置的过大,使得J(θ)一直无法收敛。左下图显示的是J(θ)上下振动,这两种情况都可以通过减小学习率α来使得下降算法最终收敛。

两点说明:

对于线性回归来说,已经被证明,小的学习率一定会使得在每次的迭代过程中都使得J(θ)减小。

如果学习率过小,则收敛的速度会很慢。

如上图,为了选择合适的学习率,可以每隔十倍取一个α值,观察J(θ)的收敛情况,从而选取较为合适的α值。

下一次的总结笔记中将与你一同学习特征与多项式回归的相关内容。

参考链接:

http://study.163.com/course/courseMain.htm?courseId=1004570029

请关注专知公众号

  • 后台回复“NGML2018” 就可以获取 吴恩达机器学习课程下载链接

本文分享自微信公众号 - 专知(Quan_Zhuanzhi)

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

原始发表时间:2018-04-10

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Machine learning -- CART

    1.算法介绍 分类回归树算法:CART(Classification And Regression Tree)算法采用一种二分递归分割的技术,将当前的样...

    昱良
  • Neural Networks for Machine Learning-1

    Neural Networks for Machine Learning是深度学习的开衫鼻祖Geoffrey Hinton讲授的从神经网络到深度学习的一门庞大的...

    昱良
  • 训练集是题库,测试集就是高考!| 不能更简单通俗的机器学习名词解释

    1. train? valid? or test? 机器学习最明显的一个特点是需要大量的数据。特别对监督学习来说,就是需要大量的带标签数据(labeled da...

    数说君
  • 机器学习/深度学习代码速查:6大工具库 &27种神经网络图览

    Kailash Ahirwar,Mate Lab 联合创始人,Github的一位资深作者,也是一位活雷锋,近日在其Github个人主页上发表了一个机器学习/深度...

    数说君
  • Neural Networks for Machine Learning-2

    本文为Neural Networks for Machine Learning的第二次课程(回复关键字"NNML2"下载第二讲的视频与PDF课件) 神经网络使用...

    昱良
  • Machine Learning -- Bayesian network

    链接地址:http://www.dataguru.cn/thread-508373-1-1.html 0 引言 事实上,介绍贝叶斯定理、贝叶斯方法、贝叶斯推断的...

    昱良
  • Machine learning -- C4.5算法详解及Python实现

    程序实现部分转自 Wsine的博客小站 地址:http://www.cnblogs.com/wsine/p/5180315.html C4.5是一系列用在机器...

    昱良
  • Python &R 代码 对照速查表

    推荐一篇文章,文中将常用机器学习算法的Python和R代码对照整理成一个表,方便查找和对比学习,原文还有PDF的下载。 (版权归原作者所有,点击文末阅读原文查看...

    数说君
  • 原创:scikit-learn 在Ubuntu上环境的搭建详解

    之前一直想在Ubuntu下搭建一个机器学习的框架,由于忙于各种事情一直拖到先在。终于在上周成功的在Ubuntu下搭建了scikit-learn的学习矿机。 首先...

    昱良
  • Machine Learning -- Boosting

    本来想写随机森林的但是由于其中用到了太多提升的思想,所以就先整理整理提升的相关概念。 Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造...

    昱良

扫码关注云+社区

领取腾讯云代金券