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
基于目标值的形式不同,Supervised Learning 主要分成两大类.
Regression Problem(回归问题): 输出变量是连续值.
Classification Problem(分类问题): 输出变量是离散值.
线性回归
我们先考虑一个简单的线性回归问题,我们假设输入变量
x
是一个在二维空间
R2
的向量, 我们有以下的表达式:
θi 是 参数 (有时称为 权值),这些参数可以将输入域 X 线性映射到输出域 Y . 我们引入 截距的概念, 令 x0=1 , 上述表达式可以改写成:
现在,给出一组有 m 个样本的训练集,我们希望找到合适的参数
这个函数与最小均方误差函数很像,接下来,我们讨论如何求解参数 θ 。
LMS Algorithm
为了求得最优的参数
θ
使得函数的均方误差最小,我们可以采用梯度下降算法进行求解,参数
θ
的更新可以
表示成如下:
其中, α 称为 Learning rate. 我们先给出函数的偏导数,为了简便起见,先考虑只有一对样本的情况 (x,y) .
进而,我们可以得到只有一对样本时的更新准则:
这就是有名的 LMS更新原则,也叫 Widrow-Hoff学习准则,参数 θ 更新的幅度取决于误差项的大小。从一对样本的情况,我们推导出参数 θ 如何更新使得函数可以收敛。事实上,对于含有多个训练样本的情况,有两个方法可以对参数 θ 进行更新,一个是 batch model, 另外一个是 stochastic model。
batch model的更新原则是每一次更新要遍历所有的样本,如下所示:
而stochastic model每遇到一个样本就会进行一次更新,如下所示:
从上面两种方式可以看出,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.