Andrew Ng机器学习(ML)入门学习笔记(一)

来源:互联网 发布:马东为什么离婚知乎 编辑:程序博客网 时间:2024/05/17 07:57

一.机器学习的定义(Definition)

定义:是一门在不需要很明显很复杂的计算机编程的情况下让计算机具有学习能力的学科。

更现代化的定义:给计算机程序提供一个任务T和一种性能测量方法P,在经验E的影响下测量方法P对任务T的测量结果得到了改进。(该程序从E中学习)

二.机器学习的种类(Type)

(1)监督学习:用于训练的数据提供了一组“标准答案”。

监督学习又可细分为①回归问题(regression)②分类问题(classification)

①回归问题:需要预测的变量是连续的(consecutive)

例:采集一组房屋面积和对应价格的数据,预测要买一套指定面积的房屋需要多少钱。这里的标准答案指的是给出了采集的那组数据中房屋面积对应的价格,要预测的变量即房屋的价格是连续的,故属于监督学习中的回归问题。

②分类问题:需要预测的变量是离散的(discrete)

例:给定一组肿瘤大小和对应性质(良性/恶性)的数据,预测一特性大小的肿瘤是良性还是恶性。标准答案指的是训练数据给出了肿瘤大小对应的性质,要预测的变量即肿瘤的性质要不为良性,否则就为恶性(只有0/1这种二值选择),是离散变量,股属于监督学习中的分类问题。

(2)无监督学习:与监督学习相反,没有提供“标准答案”,预测结果无反馈,也称为聚类问题(clustering)。

例:网页将每天发生的各类新闻分类,相似的新闻会归到一类;多话者同时说话的情况下,将语音按照不同的说话人分开提取。另:associative memory也是一种非监督学习。如医生根据以往相似病人联想出现在的病人可能患有的疾病。

三.单变量线性回归(Univariate linear regression)

以房价预测问题为例,首先给出一些符号说明:

m → 训练数据的数目

x → 输入变量(features)

y → 输出变量(target)

(x,y) → 一个训练数据

(x(i),y(i)) → 第i个训练数据

①假设函数(hypothesis function)

房屋面积(x)h 预计房价y

假设函数是变量xy,学习算法主要是根据训练数据集求出合理的假设函数。

对于单变量的线性回归,假设函数为hθ(x)=θ0+θ1xhθ(x)h(x)

②代价函数(cost function)

有了假设函数,接下来的问题就是如何选择θ0θ1hθ(x)在训练数据集上尽可能地接近y

以一种均方差的形式去评估这种接近程度,即minimizeθ0,θ11mi=1m(hθ(x(i))y(i))2,为了后期求导时的方便,在前面乘上一个与θ0,θ1无关的系数12,这并不会影响到上式的结果,即

minimizeθ0,θ112mi=1m(hθ(x(i))y(i))2

定义代价函数J(θ0,θ1),
J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2

其中hθ(x)=θ0+θ1x,因为代价函数类似于均方差的形式,故也称为方差函数。

即,我们的目标就是minimizeθ0,θ1J(θ0,θ1)。找到使代价函数最小的θ0θ1,也就是找到了在训练数据集上最接近y的假想函数hθ(x)

一种简化的形式是假设θ0=0,此时hθ(x)=θ1xJ(θ0,θ1)=12mmi=1(θ1xy(i))2

例如,给定的三组训练数据,我们可以在(x,y)θ1hθ(x),如下θ110.50,红色叉点为训练数据。

$不同\theta_1对应的h_\theta(x)的图像$

分别计算代价函数J(θ1),J(1)=123(02+02+02)=0,J(0.5)0.58,J(0)2.3,可大致画出J(θ1)θ1

这里写图片描述

可以很明显地看出θ1=1J(θ1)

四.梯度下降(Gradient descent)

梯度下降可用来最小化代价函数,除了最小化单变量线性回归的代价函数,还可用于最小化更一般的代价函数,即minimizeθ0,θ1,...θnJ(θ0,θ1,...θn)

仍以单变量线性回归为例,该过程主要有以下两点:
①给θ0,θ10
②不断更新θ0,θ1J(θ0,θ1)

更数学化的表达,即,重复直到收敛:

θj=θjαθj(J(θ0,θ1))

其中j01α可以理解为更新θj的步距。

需要注意的是,这里是同时更新θ0θ1,也就是课程中一直强调的simultaneously update。

假设分别以temp0temp1θ0,θ1,同时更新意味着按下列①的顺序操作,而不是②的顺序操作(注意,:=是赋值运算符,不是等于号),

temp0:=θ0αθ0(J(θ0,θ1))
temp1:=θ1αθ1(J(θ0,θ1))
θ0:=temp0
θ1:=temp1


temp0:=θ0αθ0(J(θ0,θ1))
θ0:=temp0
temp1:=θ1αθ1(J(θ0,θ1))
θ1:=temp1

简而言之,就是不能将此次已经更新过的θ0θ1

那梯度下降为什么能够实现最小化代价函数呢?为了简化分析,仍假设θ0=0,则

θ1:=θ1αddθ1J(θ1)

ddθ1J(θ1)(θ1,J(θ1))线根据θ1
1.θ1

这里写图片描述

由于该点线=ddθ1J(θ1)>=0,αθ1,确实是朝着正确的方向更新,即,向代价函数J(θ1)

2.θ1

这里写图片描述

由于该点线=ddθ1J(θ1)<=0,αθ1,也会朝着正确的方向更新,即,向代价函数J(θ1)

3.θ1线=ddθ1J(θ1)=0,θ1使θ1使

再来看学习率α,如果α太小,则因为每次更新θj的幅度太小导致梯度下降收敛很慢,如图①

①

但如果α太大,则梯度下降可能会跨过最小值不能收敛,甚至离收敛点越来越远,如图②

②

有趣的是,我们并不需要改变α,即使α值固定,梯度下降也能收敛到一个局部最小值。原因是代价函数在接近局部最小值的过程中,切线的斜率越来越小,即ddθ1J(θ1)越来越小,即使α固定,梯度下降的步距也会越来越小,最终也能收敛到局部最小值。

将梯度下降用于最小化方差代价函数,因为代价函数

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2

由梯度下降的数学表达
θj=θjαθj(J(θ0,θ1))

j01,可得单变量线性回归的梯度下降算法,如下:

重复直到收敛{

θ0:=θ0α1mi=1m(hθ(x(i))y(i))

θ1:=θ1α1mi=1m((hθ(x(i))y(i))x(i))

}
同理这里也务必是同时更新,其中hθ(x)=θ0+θ1x,这也是造成对θ1求偏导多出了x(i)这一项的原因。

前面为了简化表达,让θ00,实际上单变量线性回归中代价函数Jθ0θ1两个自变量的函数,J(θ0,θ1)关于θ0,θ1的图像应该是在三维坐标系中表达,如下图

这里写图片描述

同理,这些点构成的曲面也有局部最小点和全局最小点之分,梯度下降的意义就是从曲面上任意一点一步步走到局部最小或全剧最小。

代价函数J(θ0,θ1)的一种特殊形式是凸面函数(convex function),更形象地说是一种碗形曲面(如下图),这时没有局部最小,只有全局最小,将梯度下降用于这种线性回归,总会收敛到全局最优。

这里写图片描述

以上数据多可在二维或三维空间中表示出来,当所需学习的特性越来越多时,扩展到多维甚至无限维,该如何表示?支持向量机(SVM)可解决此类问题,SVM可以把数据映射到无限维。

0 0
原创粉丝点击