机器学习 第一讲:线性回归

来源:互联网 发布:mysql删除数据 编辑:程序博客网 时间:2024/04/29 02:47

Supervised Learning

首先给出一些基本定义,x(i) 表示输入变量或者输入特征,y(i) 表示输出变量或者目标值。(x(i),y(i) 称为一对样本,一组样本 {(x(i),y(i));i=1,2,...,m} 称为训练集,其中X 表示输入变量的值域,Y 表示输出变量的值域,一般来说,我们都只考虑实数域。

The goal of supervised learning can be described as follows: given a training set, to learn a function h:XY so that h(x) can predict the output value as close as the corresponding value of y. The function h is called hypothesis.

基于目标值的形式不同,Supervised Learning 主要分成两大类.

Regression Problem(回归问题): 输出变量是连续值. 
Classification Problem(分类问题): 输出变量是离散值.

线性回归

我们先考虑一个简单的线性回归问题,我们假设输入变量 x 是一个在二维空间R2的向量, 我们有以下的表达式:

hθ(x)=θ0+θ1x1+θ2x2

θi 是 参数 (有时称为权值),这些参数可以将输入域 X 线性映射到输出域 Y. 我们引入截距的概念, 令 x0=1, 上述表达式可以改写成: 
hθ(x)=i=0nθixi=θTx

现在,给出一组有 m 个样本的训练集,我们希望找到合适的参数 θ, 使得预测值 hθ(x) 与目标值尽可能接近。为了估计参数 θ, 我们定义如下的 cost function
J(θ)=12i=1m(hθ(xi)yi)2

这个函数与最小均方误差函数很像,接下来,我们讨论如何求解参数 θ

LMS Algorithm

为了求得最优的参数 θ 使得函数的均方误差最小,我们可以采用梯度下降算法进行求解,参数 θ 的更新可以 
表示成如下: 

θj:=θjαθjJ(θ)

其中,α 称为 Learning rate. 我们先给出函数的偏导数,为了简便起见,先考虑只有一对样本的情况 (x,y)
θjJ(θ)=θj12(hθ(x)y)2=212(hθ(x)y)θj(hθ(x)y)=(hθ(x)y)θj(i=0nθixiy)=(hθ(x)y)xj

进而,我们可以得到只有一对样本时的更新准则: 
θj:=θj+α(yihθ(xi))xij

这就是有名的LMS更新原则,也叫Widrow-Hoff学习准则,参数 θ 更新的幅度取决于误差项的大小。从一对样本的情况,我们推导出参数θ 如何更新使得函数可以收敛。事实上,对于含有多个训练样本的情况,有两个方法可以对参数θ 进行更新,一个是 batch model, 另外一个是 stochastic model

batch model的更新原则是每一次更新要遍历所有的样本,如下所示: 

Repeat until convergence{θj:=θjαi=1m(yihθ(xi))xijfor every j}

stochastic model每遇到一个样本就会进行一次更新,如下所示: 

Loop{for i=1 to m,{θj:=θjα(yihθ(xi))xijfor every j}}

从上面两种方式可以看出,batch model 每做一次更新要遍历所有的样本,这是非常耗时的,特别是在样本数非常多的时候,而stochastic model 是即时更新,每遇到一个样本就更新一次,通常情况下,stochastic model会下降地比batch model 快,不过stochastic model的一个缺陷是有可能无法收敛到全局最小值,而是在最小值附近来回扰动,这大概也是称之为stochastic model的原因,最终收敛的值带有一定的随机性,然而虽然只是收敛到全局最小值附近,很多时候这种近似已经非常靠近全局最小值,而且stochastic model的效率要更高,所以stochastic model一般会作为优先考虑的方法。

更通常的一种做法是结合两种方式,将整个训练集分割成很多个小的batch,然后利用stochastic model进行更新,每遇到一个小的batch,进行一次更新,这样做利用了stochastic model的高效,也在一定程度上减轻了在全局最小值附近的扰动。

0 0
原创粉丝点击