吴恩达机器学习
- 第一个星期
- 1.欢迎和介绍
- 1.1机器学习的定义和类型
- 1.2监督学习
- 1.3无监督学习
- 2.模型和代价函数
- 2.1模型的表示
- 2.2代价函数
- 2.3代价函数的可视化
- 3.参数学习
- 3.1梯度下降
- 3.2梯度下降的直观解释
- 3.3在线性回归中进行梯度下降
- 3.4线性代数复习
- 参考文献
本文是在学习吴恩达老师机器学习课程的基础上结合老师的ppt文献然后加上自身理解编写出来的,有些地方可能有遗漏或错误,欢迎大家批评指正。希望我们一起学习,一起进步!
第一个星期
1.欢迎和介绍
1.1机器学习的定义和类型
一个计算机程序被称为从经验E中学习关于某类任务T和性能度量P的经验,如果它在T中的任务(用P度量)的性能随着经验E而提高。其中(把它看做闯关游戏):
- E是多次任务副本的经验
- T是过任务副本本身
- P是玩家过任务副本评级
一般来讲,机器学习分为无监督学习和监督学习,虽然现在也有所谓的半监督学习,但都是在这基础上实现的。
1.2监督学习
我感觉所谓监督学习就是在输入和输出之间找一个合适的映射关系,因为监督学习有明确的正确的输入对应的输出。
监督学习又可以分为回归问题和分类问题
- 回归问题大都是基于连续数值的预测
比如房价的预测,给出不同房子的面积和价格数据,通过机器学习回归拟合,发现面积和价格之间的大致关系。 - 分类问题大都是基于二值或多值的离散类别预测
比如肿瘤类别的预测,给出肿瘤大小和肿瘤类别数据,通过机器学习分类,发现大小和类别之间的大致关系。
1.3无监督学习
我感觉所谓无监督学习就是一个种族划分找相同的过程,不需要数据经验,把有相同特征或特质的种群划分到一起。
无监督学习又可以分为聚类和非聚类问题
- 聚类比如收集1000000个不同的基因,然后找到一种方法,将这些基因自动分组到不同变量(如寿命、地域、社会角色等)相似或相关的组中。
- 非聚类又称“鸡尾酒会算法”,允许你在混乱的环境中找到体系。(例如,在鸡尾酒会上,从一系列声音中辨认出个人的声音和音乐)。
2.模型和代价函数
2.1模型的表示
- 数据集
用表示第i个输入,用表示第i个输出,那么就成为一个训练数据对象,我们将会有一组这样的训练集用来训练的映射关系。 - 模型
一般我们都用来表示
2.2代价函数
一般而言,我们定义代价函数如下:
式子本身的意义就是计算预测值和真实值之间的差距。我们现在的目的就是让变得更小。
下面来实战一下,先上图:
这张图片是时的情况(),我们可以看出我们假设的直线恰好穿过了数据集的三个点,此时计算,也就是说,预测和真实一致,没有误差。
然后再来一张图:
同样的,这里,这时,直线落在了散点的下方,也就有了预测值和真实值的误差。代价为
这样,我们可以通过改变多找几组的值,绘制出如下的关于的图像。
通过这里这张图,我们可以明确我们的目标了,就是让值向1进发,代价才会最小化。
2.3代价函数的可视化
代价函数的值是随的值的变化而变化的,而又控制着回归线的位置和形状,也就是说,代价函数和回归线之间依靠而相互连接。一般而言,在只有两个参数时,是一个类似等高图一样的图像。
我们给出一些散点,作为代价可视化来使用,当时,,对应图像和代价函数标值图如下:
当时,,对应图像和代价函数标值图如下:
当时,,对应图像和代价函数标值图如下:
通过这三张图片,我们可以看出,当拟合效果越好时,对应代价函数图像的值越靠近等高线中心。
3.参数学习
3.1梯度下降
- 为什么梯度下降?
梯度下降就是为了去寻找代价函数的最小值,从而达到最优拟合效果。 - 梯度下降的方法。
这里梯度下降的方法主要用偏微分的方法,假设我们的代价函数是,我们只需要一直重复这个式子,直到代价函数满意为止。() - 梯度下降需要注意的一点。
值得注意的是:在进行梯度下降时,要严格按照以下顺序:
就是说,要同时更新,它们在更新时所用的值都是上一轮的未更新的值。
3.2梯度下降的直观解释
接下来,我们来看看梯度下降具体是如何工作的,我们先假设只有一个参数,当我们的处于不同的起始点时,它的下降方向可能是不一样的,如下面两张图:
可以看出,当偏导数为正值时,是减小的,也就是向左移动。当偏导数为负值时,时增大的,也就是向右移动。另外一个问题就是步长(学习率)的取值问题,当取值过大或过小时都会影响梯度下降的正常工作。如下图:
可以看出,当过大,在寻找最优的过程中会出现震荡现象。当过小,又会导致消耗大量的计算,时间过长。另外,梯度下降还有一个特性,就是当接近最小值时,偏微分一般会越来越小,趋近于0,这会导致迭代速率的下降,所以,在梯度下降的过程中,我们一般没有必要减小。
3.3在线性回归中进行梯度下降
note:convex function == bowl shaped function
在线性回归中,在汇集到最优结果之前,我们会一直重复这个过程(还是注意,它们是同步更新的):
在公式中,是训练集的数据量,是给定的训练集的具体值,它们是已知的。
具体的偏微分部分推导过程如下:
- (部分)
- (部分)
这里,我们运用的是批梯度下降法,每一步的迭代都要用训练集中的每一组例子。
我们知道,在线性回归中只有全局最优,不存在所谓的局部最优,而且,代价函数所展示出的是一个convex(碗形,凸面的)的形状。我们可以用一张图来展示代价函数的优化行踪。
3.4线性代数复习
这是大学课堂知识,我就不做笔记了。忘记的同学可以看看MOOC。