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:X→Y 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(θ)=12∑i=1m(hθ(xi)?yi)2
这个函数与最小均方误差函数很像,接下来,我们讨论如何求解参数 θ。
LMS Algorithm
为了求得最优的参数 θ 使得函数的均方误差最小,我们可以采用梯度下降算法进行求解,参数 θ 的更新可以
表示成如下:
θj:=θj?α??θjJ(θ)
其中,α 称为 Learning rate. 我们先给出函数的偏导数,为了简便起见,先考虑只有一对样本的情况 (x,y).
??θjJ(θ)=??θj12(hθ(x)?y)2=2?12?(hθ(x)?y)???θj(hθ(x)?y)=(hθ(x)?y)???θj(∑i=0nθixi?y)=(hθ(x)?y)xj
进而,我们可以得到只有一对样本时的更新准则:
θj:=θj+α(yi?hθ(xi))xij
这就是有名的LMS更新原则,也叫Widrow-Hoff学习准则,参数 θ 更新的幅度取决于误差项的大小。从一对样本的情况,我们推导出参数θ 如何更新使得函数可以收敛。事实上,对于含有多个训练样本的情况,有两个方法可以对参数θ 进行更新,一个是 batch model, 另外一个是 stochastic model。
batch model的更新原则是每一次更新要遍历所有的样本,如下所示:
Repeat until convergence{θj:=θj?α∑i=1m(yi?hθ(xi))xijfor every j}
而stochastic model每遇到一个样本就会进行一次更新,如下所示:
Loop{for i=1 to m,{θj:=θj?α(yi?hθ(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的高效,也在一定程度上减轻了在全局最小值附近的扰动。
参考文献
Andrew Ng, “Machine Learning”, Stanford University.