• 我与西瓜书2外传----More about LinearRegression


    之前讲过了一种求解LR(LinearRegression)的方法——范数方程(Normal Equation)。这个是西瓜书上讲的方法,其中在andrew Ng的公开课中还讲了很多其实还有另外一种求解参数方法:梯度下降(Gradient Descent),其中内容包括批梯度下降(Batch gradient descent)和随机梯度下降(Stochastic gradient descent)。

    另外,公开课中还讲解了cost function的概率解释,局部加权回归(LMR)。这一篇博客,我就详细讲讲这三个内容

    注:这里使用的是公开课中的符号θ对应的应该是西瓜书的w 。

    1、梯度下降

      接着上次内容,我们假设我们已经得到了cost function ,他是一个凸的二次的函数(conrex quadratic function)。

        J(θ)=1/2 ∑(hθ(x(i)) - y (i)2  (把J(θ)由函数形式写成向量形式就可以进行范数方程求解)

    1.1、梯度下降(Gradient Descent)

      为了使得cost function最小,需要一个搜索算法:gradient descent algorithm:

        θj- α * [J(θ)] '  其中α 是 学习速率(learning rate)

      将J(θ)代入得:

         θj- α *(hθ(x(i)) - y (i))xj(i)

        注:1、x(i):表示输入的第i个样本,(x(i),y(i)):表示训练集的一个样本;  θ:表示第j个参数(或权重weights);xj(i) :表示第i个样本的第j个变量

           2、上述为LMS(least mean square 最小均方误差)更新规则。其更新大小与误差 hθ(x(i)) - y (i) 成比例。

    1.2、批梯度下降(batch gradient descent)

        什么是批梯度下降?

        上面的梯度下降只是对第 i 这一个样本进行梯度下降,我们当然应该求得整个训练集样本的权重的加权平均值。即:

          Repeat until convergence{

          θj- (α/m) *∑(hθ(x(i)) - y (i))xj(i)    (for every j )

          }

          很显然。我们要对整个训练集(所有的样本)进行一次一次的递归,递归中还有一个for循环求θj。显然当样本数m很大时,这种方法十分不合适。(下次补具体时间复杂度计算)

    1.3、随机梯度下降(Stochastic gradient descent)

        为了应对计算量过大,另一种方法是随机梯度下降:从样本中随机抽出一组,训练后按梯度更新一次,然后再抽取一组,再更新一次,在样本量及其大的情况下,可能不用训练完所有的样本就可以获得一个损失值在可接受范围之内的模型了。

          Repeat until convergence{

          θj- α *(hθ(x(i)) - y (i))xj(i)    (for every j )

          }    

    1.4、局部加权回归(Locally weighted regression)

        只要是拟合fit,如果效果不好,不是欠拟合就是过拟合。为了使得拟合效果不错,我们可以使用局部加权回归(LWR)。

        基本目标依然是最小化:

          J(θ)=1/2 ∑(hθ(x(i)) - y (i)

        假设继续使用上述的Normal Equation,Batch gradient descent ,Stochastic gradient descent的方法得到的结果拟合效果不好,我们则需要添加一个加权因子

          加权因子w(i) = exp( (-1/2) * (x(i) - x))  

          重新构造J(θ)=1/2 ∑w(i)(hθ(x(i)) - y (i)

        Exp是以e为底的指数,这个时候可以知道如果x距离样本很远的时候w(i)=0,否则为1,当我们预测一个值的时候就需要我们重新来计算当前的参数θ的值,然后构造回归方程,计算当前的预测值。

    2、cost function J(θ)的概率解释

       为什么LR尤其是为什么最小二乘的cost function J 成为了我们的选择,理由到底是什么?概率解释将会解答这个。

      首先假设对于训练集某个样本(x(i),y(i))有

         y(i) = θTx(i)(i)  

        误差项ε(i)既包括了模型未涉及到(考虑)的相关因素 或 随机噪声。

      我们再假设是 误差项ε(i)一个独立同分布(i.i.d.)且服从正态分布的随机变量:

        ε(i)~N(0,δ2)

        (y(i) | x(i) ;θ)  ~ N( θTx(i)):在给定输入变量x(i)和参数θ的情况下输出变量y(i)服从正态分布

        注:为什么这里y(i)和ε(i)分布都使用高斯分布?  因为易数学处理, 因为符合中心极限定律的似然性

        我们由极大使然估计来求得参数θ的值:

        L(θ)=P(y(i) | x(i) ;θ)  -------> l(θ)= log (L(θ))= - mlog [(2πδ)1/2] - 1/(δ2 ) * 1/2 ∑(hθ(x(i)) - y (i)2

        因为训练集确定,则训练样本总量m,训练集的极限均值和方差均确定,进而l(θ)的第一项( - mlog [(2πδ)1/2])也确定,则为了使得l(θ)最大,应该使得第二项最小,即:

          J(θ)=1/2 ∑(hθ(x(i)) - y (i)2  求最小值可求得参数θ

        注:1、中心极限定理:随机变量若为独立同分布,则极限的随机变量之和分布服从正态分布

          2、极大释然估计:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

  • 相关阅读:
    SVM(支持向量机)(一)
    Locally weighted linear regression(局部加权线性回归)
    Linear Regression(线性回归)(三)—代价函数J(θ)选择的概率解释
    Linear Regression(线性回归)(二)—正规方程(normal equations)
    Linear Regression(线性回归)(一)—LMS algorithm
    串的模式匹配算法(一)—朴素的模式匹配算法
    C++学习之路—运算符重载(二)运算符重载作为类的成员函数和友元函数
    依次将10个数输入并将其最大值输出
    C语言学习<输入输出函数,函数的调用>
    Linux学习笔记02
  • 原文地址:https://www.cnblogs.com/SsoZhNO-1/p/9737803.html
Copyright © 2020-2023  润新知