zoukankan      html  css  js  c++  java
  • 机器学习 线性回归

    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的高效,也在一定程度上减轻了在全局最小值附近的扰动。

    参考文献

    Andrew Ng, “Machine Learning”, Stanford University.

  • 相关阅读:
    口语详解|为什么“how to say”是错的?
    9 tips to improve spoken english
    splash 安装
    ubuntu 安装NVIDIA驱动过程
    【Python数据分析】时间模块datetime
    【Python数据分析】Pandas模块下的Series与DataFrame
    【Python】文件
    博客园Markdown样式美化
    【Python】异常处理
    【Python】eval函数
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9412627.html
Copyright © 2011-2022 走看看