Andrew Ng机器学习笔记(一)
来源:互联网 发布:网络设计方案ppt 编辑:程序博客网 时间:2024/06/07 00:58
第一篇博客,很有纪念意义,献给让人激动人心的ML,也感谢吴恩达老师的精彩讲解。
我觉得,真正理解一个东西,要能够用通俗易懂的方式将它讲述出来。吴恩达老师的课是这方面的典型代表。
1.机器学习的定义
假设用P来评估计算机程序在某任务类T上的性能,若一个程序通过利用经验E在T中任务上获得了性能改善,则我们就说关于T和P,,改程序对E进行了学习。 —— [ Mitchell,1997 ]
2.机器学习算法分类
- supervised learning :我们教计算机如何做事情
- unsupervised learning:计算机自己学习
- reinforcement learning
- recommender systems
监督学习:对于训练的数据集,标示明确的实际结果(如标明样本的房价,肿瘤的良性与恶性)。可分为:
非监督学习:在非监督式学习中,数据并不被特别标识,学习模型是为了推断出数据的一些内在结构。非监督学习中,数据将会被分为不同的cluster(簇),称为cluster algorithm。如新闻网页的专题分类。
3.单变量线性回归
算法的工作原理如下图。用训练集“喂养”我们的学习算法,形成假设函数
代价函数:用来选择最合适的曲线。在假设函数
那么该如何选择呢?我们的想法是,选择某个
在线性回归中,我们要解决的是一个最小化问题。其中的
我们记
这样我们就得到了代价函数(cost function)。此处也称为平方误差函数,当然也有其他的代价函数。但是对于大多数问题,尤其是回归问题,平方误差函数都是一个合理的选择,“其可能是解决回归问题最常用的手段了”。
如此,我们的目标就是要让代价函数最小:
代价函数如何工作:
为了更方便地探究
参数
通过观察
代价函数的进一步理解:
现在研究代价函数
此时,不再假设
为了方便讨论,一般将其表示为“等高线图”,以二维的形式予以展现。对于不同的
梯度下降算法:
梯度下降算法是一种优化算法, 它可以帮助我们找到一个函数的局部极小值点。
首先要知道方向导数、偏导数与梯度的概念。它们均涉及到函数的变化率,也就是增长的问题。对于高维函数,偏导数只是函数在坐标轴方向的变化率,但是很明显,函数可以有无数个方向(在xy平面内考虑)的变化,也就是方向导数。梯度,则是这所有中函数值增长最快的方向,考虑山丘地形,意味着最陡峭的地方。那么,我们的代价函数目标则是求最小值,只要沿着梯度相反方向,就可以最快到达目的地了。
算法描述:
迭代设计如下。在理解梯度概念的基础上,可以很方便推导出来。 其中
下图介绍梯度下降法是如何工作的。十分像水的流动。
梯度下降算法中学习率和偏导数的理解:
首先看偏导数的影响,为了研究问题的方便,仍然令
无论初始点选择在哪里,偏导数都能指出正确的下降方向。如下图所示:
而对于学习速率来说,取太小则迭代过程会很慢,取过大可能会发散最后。
可以这样说,偏导数决定迭代的方向,学习率则控制着迭代迈开的步子。在学习率取值适当的情况下,梯度下降有“自刹车”的功效。也就是说,越接近最低点时候,由于梯度越来越小,即使学习率保持不变,仍然能保证步子越来越小。这样,我们在迭代过程中,保持学习率为常数值即可。
最终的迭代公式:
将之前的代价函数和我们的梯度下降算法结合起来
那么可以得到如下完整的迭代算法:
给定初始值,按照此步骤即可找到对应最小代价函数时候的
- Andrew Ng 机器学习笔记(一)
- Andrew Ng机器学习笔记(一)
- Andrew Ng机器学习(ML)入门学习笔记(一)
- Andrew Ng机器学习笔记(一):梯度下降法
- Andrew NG 机器学习课程笔记(一)
- Andrew Ng机器学习课程笔记(一)
- Andrew Ng 机器学习笔记(二)
- Andrew Ng 机器学习笔记(三)
- Andrew Ng 机器学习笔记(四)
- Andrew Ng 机器学习笔记(五)
- Andrew Ng 机器学习笔记(六)
- Andrew Ng 机器学习笔记(七)
- Andrew Ng 机器学习笔记(八)
- Andrew Ng机器学习笔记(二)
- Andrew Ng机器学习笔记(三)
- andrew ng机器学习笔记
- COURSERA 机器学习课笔记(by Prof. Andrew Ng)学习笔记(一)
- Andrew Ng机器学习入门学习笔记(四)之神经网络(一)
- 通过反射快速实现DataGridView数据的添加,获取及序列化
- 关于java 截取特定字符串的探索
- 内网映射,外网ip访问内网内容
- 自定义博客园Markdown样式.超简单!
- POJ3204-Ikki's Story I
- Andrew Ng机器学习笔记(一)
- SpringMVC 拦截器实现原理和登录实现
- 深度学习——数学与机器学习基础
- 20170902 -- 个人规划
- 数据库SqliteDateBaseOpenHelper
- ribbon 2.2.0 学习笔记
- 并发
- POJ1316 ZOJ1180 UVA640
- 解析xml文件,遍历输出xml文件中的所有节点, 最终模仿实现struts2框架