Coursera机器学习课程笔记(一)

Coursera机器学习课程笔记(一)

该课程是斯坦福教授Andrew Ng在coursera上开设的,如果不需要证书的话整个课程是免费的,希望借此机会能够对深度学习有一个系统的认知。
课程地址在这里:https://www.coursera.org/learn/machine-learning
英文授课但有中文字幕。

1.机器学习的分类

关于机器学习的定义以及其实际应用这里不再赘述,有大量现成的资料可供了解。这里讨论的是机器学习的分类,机器学习主要分为监督学习(Supervised Learning)以及无监督学习(Unsupervised Learning)这两类。

1.1监督学习

在监督学习中,计算机会得到一个特定的数据集,这个数据集中所有的数据都有一个对应的“正确的”输出,计算机通过不断学习这个数据集,就能解决不同的问题。
主要存在的是两种问题:回归问题(Regression)以及分类问题(Classification)。

  • 回归问题:即预测连续值的输出。举例来说,就是根据市场上不同大小房屋所对应的单价,来预测某个尺寸房屋(市场上暂时没有)的单价。
  • 分类问题:即预测离散的输出。举例来说,就是根据一张肿瘤的照片来判断它是良性的还是恶性的。经典的手写数字识别问题(MNIST)应该也属于这一类(?not sure)。

1.2无监督学习

在无监督学习中,所给的数据集没有任何“正确”的对应输出,计算机并不需要知道所给的数据应当有“怎样的”结果,但通过无监督学习可以找出数据蕴含的结构。
与监督学习相类似的是,无监督学习也存在两种问题,分别是聚类(Clustering)以及非聚类(Non-clustering)。

  • 聚类:举个例子,就是将1,000,000个不同的基因自动分类至若干个小组,这些小组可以是存活寿命、位置、职能等等等等。
  • 非聚类:鸡尾酒会问题,可以自行了解。

2.线性回归问题

线性回归问题是一个典型的监督学习问题,通过探讨该问题,可以对机器学习有一个初步的认知。

2.1模型

同样以预测房价为例,课程中用x(i)来代表输入(即房屋面积),用y(i)代表输出(即房屋售价),用m代表样本的数量,我们需要根据已有的训练样本——即(x(i),y(i))(其中i=1,2,3…….m)来预测其他面积的房屋对应的售价。
具体模型如下图所示:
这里写图片描述
这里的h函数是经过学习算法所得到的一个预测函数,在线性回归问题里可以将其写成hθ(x)=θ0+θ1*x,其中θ0与θ1都是要训练的参数。

2.2代价函数

我们将代价函数定义成J,其含义是将hθ(x(i))所计算出的预测值(一共m项)与实际值y(i)的差先进行平方再求和,最后平均到m项上,多乘的这个1/2只是为了后续求导方便。
这里写图片描述
显然,代价函数是J关于参数θ0与θ1的函数,而一个优秀的预测函数hθ(x)应当要使代价函数能取到最小值,那么如何做到呢,这就要涉及到下面的梯度下降(Gradient Descent)算法。通过梯度下降算法,可以不断调整参数θ0与θ1的值以找到最合适的预测函数,从而让J取到最小值。

2.3梯度下降算法

我们知道代价函数是J关于参数θ0与θ1的函数,那么梯度下降算法可以用下面这张图来理解:
这里写图片描述
在一个初始的位置,比如说图中的“山顶”,根据周边的环境选择一个下“山”最快的方位,然后前进一小步,如此往复,直至到达最低点,这就是梯度下降算法的原理。值得注意的是,该算法有时只能找到局部最低点,但本节所讨论的线性回归问题只存在全局最低点,所以暂时不用考虑这个问题。
梯度下降算法可以通过不断执行如下的公式直至损失函数达到最小来实现:
这里写图片描述
其中α代表的是学习速率(如果α太小会导致过程太慢;太大可能会导致无法收敛甚至发散),:=是赋值运算符,j要取0和1。可以发现“梯度下降”的核心就在于求出损失函数对于不同的参数的偏导数
需要注意的是当有多个参数时,必须“同步”对这些参数进行更新,如果有先更新一个再更新另一个则是错误的。正确的更新顺序见下图左侧:

这里写图片描述

我们可以根据损失函数的表达式来计算出两个参数的更新公式,具体计算过程不再贴出(主要就是求偏导数的过程),结果如下:
这里写图片描述
不断重复上述循环直至收敛,此时的θ0与θ1即为所求的结果。

3.线性代数相关

课程复习了一些基础的线性代数知识,主要与矩阵有关,这里不再赘述。
唯一需要注意的是两矩阵乘法不满足交换律,但满足结合律,同时也满足分配律

猜你喜欢

转载自blog.csdn.net/qq_32925781/article/details/81227636