吴恩达机器学习笔记

初学者,记录目的在于加深个人理解

第一周

1: 简单介绍机器学习

  1. 什么是机器学习
  2. 监督学习
  3. 无监督学习

2:单变量线性回归

  1. 模型表示
  2. 代价函数
  3. 代价函数的直观理解
  4. 梯度下降
  5. 梯度下降的直观理解
  6. 梯度下降的线性回归

3:线代简单回顾

1.1什么是机器学习

目前,机器学习没有准确的定义,用Tom Mitchell 提出机器学习定义:一个程序被认为能从经验E中学习,解决任务T,达到性能度量值P,当且仅当,有了经验E后,经过P判断,程序在处理T是时的性能有所提升。

通俗理解机器学习:机器从数据中学习,进而得到一个更加符合现实规律的模型,通过对模型的使用使得机器比以往表现的更好。
目的:让计算机具备像人一样的学习能力的高端技术,进而从堆积如山的数据中找出有用的知识

人类的学习是一个人根据过往的经验,对一类问题形成某种或总结出一定的规律,然后利用这些知识来对新的问题下判断的过程,然而人的能力有限,帮助人类突破这个瓶颈的就是计算机,说白了就是机器总结出经验和规律去对事情进行预测和评估

1.2监督学习

监督学习指的就是我们给学习算法一个数据集。这个数据集由“正确答案” 组成。

对于机器学习来说,监督学习就是训练数据既有特征(feature)又有标签(label),通过训练,让机器可以自己找到特征和标签之间的联系,训练好后,在面对只有特征没有标签的数据时,可以判断出“标签”
所以在监督学习中最重要的就让训练数据有特征和标签

书本例子:

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习


我们在预测房价的时候,根据房子的尺寸等相关的特征进行预测,有数据标签所以这类的属于监督学习

分类:

1. 回归(Regression)
字面意思,回归类似相关结果或者预测结果等在某个范围内,根据特征呈现某种趋势,简单的讲就是相当于初等函数图像,数据就分布在这些图像的周围,然后可以用函数表示,就可以用回归表示

比如预测房价,根据不同的尺寸大小等因素可以有不同的价格,这些数据就可以用回归线表示

1. L分类(Classification)

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_02

这个数据集中,横轴表示肿瘤的大小,纵轴上,我标出 1 和 0 表示是或者不是恶性肿瘤。我们之前见过的肿瘤,如果是恶性则记为 1,不是恶性,或者说 良性记为 0。因为预测的值,1表示会是,0表示不会不是 。因为只有少数的离散值,所以把他称为分类问题。

1.3无监督学习

无监督学习中没有任何的标签或者是有相同的标签或者就是没标签。所以我们已知数据集, 却不知如何处理,也未告知每个数据点是什么。别的都不知道,就是一个数据集

针对数据集,无监督学习就能判断出数据有两个不同的聚集簇。这是 一个,那是另一个,二者不同。是的,无监督学习算法可能会把这些数据分成两个不同的簇。 所以叫做聚类算法。事实证明,它能被用在很多地方

谷歌新闻按照内容结构的不同分成军事、娱乐、体育等不同的标签,这就是一种聚类,还可以用于基因学,天文学等

相对于监督学习,无监督学习显然难度要更大,在只有特征没有标签的训练数据集中,通过数据之间的内在联系和相似性将他们分成若干类。

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_最小值_03


吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_04


比如经典的问题,鸡尾酒宴会问题,从宴会中分离出不同的声音

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_05

再比如细分市场的例子,你可以当作无监督学习问题,因为我只是 拿到算法数据,再让算法去自动地发现细分市场。

区别:

有监督学习在训练的时候有标签;
无监督学习在训练的时候无标签

2.1模型表示

单变量线性回归是第一个机器学习的算法

对于回归问题,一般流程为:


吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习_06


其中,h代表拟合的曲线(Hypothesis function),也称为学习算法的解决方案或函数或假设。 单变量的线性回归是回归问题的一种,它的表达式为:

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_最小值_07

由于它只有一个特征/输入变量x,同时它拟合的曲线是一条直线,所以该问题叫做单变量线性回归问题。(后面还会学到多变量)

例如:房价预测

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习_08


吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习专项课程 文稿_09


吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_10


吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_11


目的就是要找到最合适的Q1和Q2,这样才能最大程度的拟合数据,进行预测

2.2代价函数(cost function)

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_12


以房屋价格为例,我们要选择合适的参数Θ1和 Θ0,在房价问题上,这个问题就是选择直线中合适的斜率和截距。

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_13


我们的目的就是找到建模误差的平方和最小的参数,即代价函数最小代价函数(cost function):

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习_14


目标:

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习_15


选择的参数直接决定了模型相对于训练集之间的准确程度。在模型预测得到的数据与真实值之间的距离(差距),就是建模误差(modeling error)

代价函数也被称作平方误差函数,有时也被称为平方误差代价函数。我们之所以要求出 误差的平方和,是因为误差平方代价函数,对于大多数问题,特别是回归问题,都是一个合 理的选择。还有其他的代价函数也能很好地发挥作用,但是平方误差代价函数可能是解决回 归问题最常用的手段了

2.3代价函数的直观理解

举个简单的例子

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习_16


那么 吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_17就是过原点的直线。对于不同的参数吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_18,得到不同斜率的直线,这些直线总有一条直线的代价函数值吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习_19最小。那么不同参数得到不同的直线,不同直线得到代价函数的值,代价函数的曲线如下图所示,是一个二次函数,这下,要求出代价函数的最小值(即曲线最低点),即为最佳值。由图可知,当吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_最小值_20时,误差最小。

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习_21


上面的参数只有一个,是吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_22吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_18的变化曲线。那么参数吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习专项课程 文稿_24都变化,吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_25如下图所示:

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习专项课程 文稿_26


同样的方法找到最低点,即为最佳值。但是,这需要编程将这些点绘制出来,然后人工找出最低点,这样比较复杂,只适合在低维数据的情况下,在高维数据情况下,上面的方法不可行,于是可以用梯度下降法来实现。

2.4梯度下降算法

梯度下降是一个用来求函数最小值的算法,我们将使用梯度下降算法来求出代价函数吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_27 的最小值。 梯度下降背后的思想是:开始时我们随机选择一个参数的组合吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_28,计算代价 函数,然后我们寻找下一个能让代价函数值下降最多的参数组合。我们持续这么做直到到到 一个局部最小值(local minimum),因为我们并没有尝试完所有的参数组合,所以不能确 定我们得到的局部最小值是否便是全局最小值(global minimum),选择不同的初始参数组 合,可能会找到不同的局部最小值。

梯度下降法的定义:

repeat until convergence{

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_29

}

其中,吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_30代表学习率(learning rate),它决定了沿着能让代价函数下降程度最大方向的步长。

值得注意的是吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_31同时更新,当人们谈到梯度下降时,他们的意思就是同步更新,也就是说:

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习专项课程 文稿_32


如上图左图所示,为正确的更新过程,二者不同的地方在于,上图右图中在求吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_18的更新时,代价函数中的吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_22是已经更新过的了,而左图中的为将吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_22,吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_18都求过偏导之后再进行更新,代价函数中的吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_22,吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_18}都是上一代中的值,与本次迭代更新无关。下面举例说明梯度下降的过程:

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_39


例如上图代表两座山,你现在所处的位置为最上面的那一点,你想以最快的速度达到山下,你环顾360度寻找能快速下山的方向,这个过程对应于求偏导的过程,你每次移动一步,移动的步长对应于α,当你走完这一步,然后接着环顾360度,寻求最快下山的方法,然后在走出一步,重复这个过程,直到走到山下,走到山下对应于找到了局部最小值当然,参数不同,其有多种方法,找到不同的局部最小值。

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习专项课程 文稿_40


看图很明显知道这个三维函数图像是通过吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_最小值_41一起搭建的函数,找到函数J是代价函数所以找到他的最小值

2.5梯度下降算法的直观理解

梯度降算法如下 :
吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_29
描述:对ߠ赋值,使得 吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习_43按梯度下降最快方向进行,一直迭代下去,最终得到局部最 小值。其中 ܽ吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_30是学习率(learning rate),它决定了我们沿着能让代价函数下降程度最大的 方向向下迈出的步子有多大。
(1)步长α(学习率)对梯度下降法的影响:

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_最小值_45

  1. 吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_46太小时,每次走的步子很小,导致到达最小值的速度就会很慢,也就是收敛速度慢,但是能保证收敛到最小值,步子慢进过的点就多
  2. 吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_最小值_47

  3. 吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_机器学习_46太大时,梯度下降可能会越过最小值点,甚至可能无效
  4. 吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_最小值_49

  5. (2)梯度对梯度下降算法的影响:
  6. 吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_最小值_50


  7. 吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_吴恩达 机器学习_51

  8. 粉红色的点为初始点,在此点求出导数,然后乘以学习率,更新参数,到达第二个点,然后再在第二个点求导数,从斜率上明显可以看出,第二个点的斜率明显比第一个点的斜率低,也就是说虽然学习率固定,但是这一次更新的步长比上一次要小,以此类推,我们能够得出一个结论,当接近局部最低时,导数值会自动变得越来越小,所以梯度下降法会自动采用较小的幅度,这就是梯度下降的做法。所以实际上没有必要再另外减小α

2.6梯度下降的线性回归

梯度下降是很常用的算法,它不仅被用在线性回归上和线性回归模型、平方误差代价函数。将梯度下降和代价函数结合,并将其应用于具体的拟合直线的线性回归算法

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_最小值_52


我们想用梯度下降算法来最小化代价函数,关键问题在于求导,即:

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_53

所以梯度下降算法修改为:

吴恩达 机器学习专项课程 文稿 吴恩达机器学课程笔记_代价函数_54

**

参考资料

[4] Andrew Ng Coursera 机器学习 第一周 PPT