【CS229-2】监督学习应用与梯度下降

本讲主要涉及的知识点有:线性回归/梯度下降/正规方程组。

监督学习的流程: Training set -> Learning algorithm -> h

即: 训练集合 -> 学习算法 -> 假设函数(h)

h的作用为: 接收输入,产生输出.

下面开始详细介绍本讲的内容.


一.线性回归(Linear Regression)

例1.房屋的价格与面积

首先观察样本数据,并给出一些符号的定义.

样本数据如下图所示,左侧是居住面积(单位:平方英尺),右侧是房屋价格(单位:1000美元).

在本次及以后的课程中,如无特别说明,则规定部分符号含义如下:

m-训练样本个数.在上图的例子中,m=47(图中未完全列出).

x-输入变量/特征

y-输出变量/目标

(x,y)-训练样本 (x(i),y(i))-第i行的训练样本(这里的(i)是上标)

本例中我们假设房屋的价格和面积是线性相关的,因此得到假设函数h(x)=θ0+θ1x.

当训练样本中有两个特征时,h(x)=θ0+θ1×1+θ2×2,例如我们在上表中加入一列:房屋的卧室个数.

推广至一般情形(n个特征):img

这里的x和θ都代表一个1行n列的矩阵.

目标:求得θ使下图中的表达式达到最小值.(系数1/2是为了简化之后的计算)img

以上即是线性回归的基本思想。

二.梯度下降(Gradient Descent)

设想:在一个三维地形图中,从任意一点起,“你环视四周,然后问自己:「如果只迈出一小步,沿哪个方向下山最快?」”

img

img

由图中结果可以看出:梯度下降的结果有时会依赖参数的初始值。

将以上问题转述为表达式,即

以任意θ作为初始值(不妨设θ=0(向量)),不断改变θ使得J(θ)降低.

对θi而言,假设只有一组训练样本,那么:

img

于是我们得到了上图Update中所述的学习规则.

其中,α决定了「每一步迈的有多大」.若步子太大,则有可能越过最小值;若步子太小,则收敛时间会变长.

下面运用本性质生成一个算法(将一个训练样本推广至m个),表达式如下图所示.

img

我们把这个算法称为批梯度下降算法(Batch Gradient Descent).可以证明的是,由于J(θ)结构的特殊性,这个表达式不会因为初始值的不同而产生不同的收敛结果.

img


课堂Q&A

Q1:为什么接近最小值附近时,「步子」明显变小了?(此现象可观察上图得出)

A:接近局部最小值时,梯度会下降至接近于0,观察表达式可知,每一步会逐渐变小.

Q2:如何判断收敛?

A:根据一些启发式规则,我们可以认为:当迭代前后的两次J(θ)变化极小时,算法就接近结束了.

Q3:这个算法在哪里做到了「环视一周」?

A:事实上,在计算偏导数的时候,我们就获得了梯度下降最快的方向,每一步均是如此.


批梯度下降算法的缺陷:每次都要对所有训练样本求和,当训练的数据集很大时,算法效率会大打折扣.

因此提出了一种改进的算法:随机梯度下降(Constant Gradient Descent)

img

这种算法的好处显而易见:在每次迭代时,只需重新计算一个参数.

三.正规方程组(Normal Equations)

(这一部分基本上是纯数学计算和推导,个人认为方法有些投机,而最关键的几个公式并没有给出推导过程,且我到目前为止也没有弄懂某些定理的推导,所以这部分就当是欣赏一下计算过程吧)

1.引入知识

(1)矩阵求导

设f是作用于m*n阶矩阵A的函数,并将其映射到实数集.则将f的导数定义为:

img

即f关于A的每个元素的偏导数.

(2)迹

n*n阶矩阵A,对角线元素之和即为A的迹,记作trA(Trace of A).

2.一些定理

(1)trAB=trBA ; trABC=trCAB=trBCA;

(2)trA=tr(A’s Transpose);

(3)若a是实数,则 tra=a ;

(4)img

(5)img

3.推导过程

构造矩阵X如下:

img

每行表示一个训练样本.

y为每个训练样本中的结果值,令

img

由前文知θ是一个n维向量,则

img

稍加变形,我们得到了和前文一样的J(θ).

img

为了使J(θ)取得最小,则令∇J(θ)=0.

将∇J(θ)的表达式化简:

说明:

2-3因为括号内的式子运算结果为实数,由定理(3)得变形过程.

3-4因为第二项为实数,所以可直接转置,并与第三项合并,第四项中不含θ,所以直接舍弃.

4-5运用定理(5),设A=θ,B=I(单位向量),C=XTX.

经如上推导,得到正规方程组如下:

解得θ:


课堂Q&A

Q:XTX会存在不可逆的情况吗?

A:若不可逆,则可能是提供了两组相似(相依赖)的学习特征值,一般会避免这种情况.


这章的笔记很长,课程视频看的也很慢,目前留下的问题就是那几个有关矩阵的迹和矩阵求导的公式证明了.

后续课程中有解决的问题会加以补充.

更新了四五次之后终于算是把这一章刷过去了,跟数学相关的知识啃起来真不容易…

End.