zoukankan      html  css  js  c++  java
  • 【机器学习具体解释】线性回归、梯度下降、最小二乘的几何和概率解释

    线性回归

    即线性拟合,给定N个样本数据x1,y1,(x2,y2)....(xN,yN)当中xi为输入向量,yi表示目标值,即想要预測的值。採用曲线拟合方式,找到最佳的函数曲线来逼近原始数据。通过使得代价函数最小来决定函数參数值。
    採用斯坦福大学公开课的样例:假如一套房子的价格仅仅考虑由房屋面积(Living area)与卧室数目(bedrooms)两个因素决定,如今拿到手有m个样本,例如以下图所看到的。

    此例中。输入x=(x1,x2)为2维向量。分别相应房屋面积和卧室数目,y相应价格。如今想依据上述样本数据,预測新的输入x(k)相应的y(k)
    这里写图片描写叙述
    我们採用x的线性函数hθ(x)=θ0+θ1x1+θ2x2来近似y值,当中θ0为偏移量。

    x0=1,简写为hθ(x)=θTx

    如今的问题是怎样选择θ的值,来使得hθ(x(i))最大程度接近y(i)值。

    最小二乘代价函数

    採用最小二乘法定义代价函数J(θ)=12mi=1(hθ(x(i))y(i))2,表示每一个样本的预測值与真实值得差值平方的累加和。
    如今问题转化为代价函数J(θ)最小相应的θ值。当中因子12是为了后面的计算方便。

    梯度下降:

    梯度下降的思想是沿着函数负梯度方向,不断更新θ值,每次更新一次。函数值下降一次。算法例如以下:

    1.初始化θ值;
    2.更新θ值,使得J(θ)值更小 :θ:=θαθJ(θ)
    3.假设J(θ)值能够继续降低,返回第2步;

    当中α称为学习率,决定着每一次迭代跨越的步长。θT=(θ0,θ1,θ2)为一个三维向量,梯度偏导数计算方法:
    这里写图片描写叙述
    对于单个样本数据,则更新方法为θj:=θjα(hθ(x)y)xj

    关于梯度下降与梯度上升
    注意到,我们上述求偏导数得到(hθ(x)y)xj,此方向为梯度上升方法,因为我们要求J(θ)的最小值,所以应沿着负梯度方向,即θj:=θjα(hθ(x)y)xj,若提取负号,就变为θj:=θj+α(yhθ(x))xj,尽管变为正号,仍然是沿着负梯度方向,仅仅是公式形式变了。在《机器学习实战》中。就採用的后一种形式θj:=θj+α(yhθ(x))xj,在那本书里被称为梯度上升,实际上仍然为负梯度方向。

    1.批梯度下降(batch gradient descent)
    这里写图片描写叙述
    上述为批梯度下降θ值得更新算法,每一次更新θ值,都须要计算整个样本集数据。即综合全局梯度方向算出下一步最优梯度方向。

    在学习率α比較小的情况下。上述算法必定收敛。同一时候因为J(θ)为凸二次函数,局部最优值,即全局最优值。
    可是对于样本集非常大的情况下,此种算法必定导致效率非常低,因为每一次对θ的更新,都需计算每一个样本的预測值与真实值的差。

    2.随机梯度下降(stochastic gradient descent)
    这里写图片描写叙述
    算法的长处是,遍历整个数据集。每一次更新θ的值仅仅计算单个样本数据的梯度方向。可是此种算法不一定收敛到最小值。可能会在最小值附近震荡。在数据量非常大的情况下。仍建议採用随机梯度下降算法。


    3.mini-batch梯度下降
    把批梯度下降与随机梯度下降算法折中。即每次採用若干样本的梯度综合,更新θ的值,被称为mini-batch梯度下降。
    θj=θj+αn(y(i)hθ(x(i)))(for every j)

    解析式求解

    改写J(θ)成矩阵的形式:
    J(θ)=12mi=1(hθ(x(i))y(i))2=12(XθY)T(XθY)。当中X为m×n,θ为n×1,Y=(y(1),y(2)...y(m))T
    θJ(θ)=θ12(θTXTXθθTXTYYTXθ+YTY)=12(2XTXθ2XTY)=XTXθXTY=0
    解得θ=(XTX)1XTY;
    XTX为神秘矩阵时。通常选择在原始函数中加入正则项,确保矩阵非神秘。


    一种简单的正则化项为:E(θ)=12θTθ, 原始目表函数变为J(θ)+λE(θ)=12mi=1(hθ(x(i))y(i))2+λ2θTθ,当中λ为调和因子,对目标函数求导并令为0,解得θ=(XTX+λI)1XTY

    最小二乘法的概率解释与几何解释

    1.概率解释

    假定原始拟合函数为:y(i)=θTx(i)+ϵ(i)。即每一个样本受到一个噪声ϵ(i)因子的影响,同一时候噪声分别服从正态高斯分布,即均值为0,方差为σ2


    ϵ(i)~N(0,σ2)
    P(ϵ(i))=12πσexp((ϵ(i))22σ2)
    P(y(i)|x(i);θ)=12πσexp((y(i)θTx(i))22σ2)
    写法P(y(i)|x(i);θ)表示在參数θ的情况下,给定x(i)y(i)服从的分布。


    因为假定噪声因子之间ϵ(i)为独立同分布,写出其似然函数为。如今的目的是採用最大释然预计得方法计算出最优的參数θ
    这里写图片描写叙述
    改成对数释然函数为:
    这里写图片描写叙述
    我们目的要最大化释然函数。即要求最小化第二项 12mi=1(hθ(x(i))y(i))2。此即我们的最小二乘的方法。
    採用最小二乘的方法作为优化目标即潜在的使用了最大释然预计的方法。

    2.几何解释

    以下从几何角度解释最小二乘法的原理:为了结合以下的图形解释,须要改变一下数据的表示方法。

    假定样本量的数目为N,样本i记为(xi,ti),且样本特征xi的维数为M,M<N
    1.全部样本目标真实值ti。构成一个N维列向量t=(t1,t2...tN)T;
    2.全部样本的特征数据x构成一个N×M的矩阵X;矩阵X的第j个列向量记维φj。即X=(φ0,φ1,...,φM1)
    3.假定真实最优參数为θ=(θ0,θ1,...θM1)T,则有t=Xθ=(φ0,φ1,...,φM1)θ
    这里写图片描写叙述
    我们的目的是寻找最好的拟合參数θ,使得拟合出的预測值y=Xθ=(φ0,φ1,...,φM1)θ离真实值向量t近期。注意到X是样本数据,是固定值,每一列的φi即相当于M维空间的一个基向量。(φ0,φ1,...,φM1),即构成了M维子空间的一组基向量。记做子空间S

    子空间S中不论什么向量都能够通过基向量的线性组合表示。最小二乘法在几何上解释,即寻找一个向量y与向量t之间欧式距离最小。如今的目的即是在S中寻找一个向量y,使得y离向量t的距离近期。最由图中能够看出,离t近期的向量y即是向量t向子空间S的正交投影。

    局部加权回归(LWR)

    LWR算法是非參数模型的一种。因为每一次预測新的数据,都须要採用原始样本计算一次,必定降低了效率。线性回归算法属于參数模型的一种,当得到最优參数θ,预測新的数据时,就不须要原始数据样本了。


    最小二乘法的目标(代价)函数是J(θ)=12mi=1(hθ(x(i))y(i))2。它採用了整体样本数据的性质,来预測新的数据,即所以样本的权重同样,不考虑局部性质。它的缺点是若原始数据分布由多个模型函数共同产生,採用最小二乘法的原则并不能最佳地逼近原始数据形态。

    而局部加权回归通过增大预測的数据x(i)附近的样本点的权重。较小相对较远的样本数据的权重,来预測输出值h(x(i))
    局部加权回归算法:
    这里写图片描写叙述
    当中ω(i)为第i个样本的权重
    一种经常使用的权重分布函数为。相似高斯分布曲线:
    这里写图片描写叙述
    參数τ控制偏离预測点距离权重的下降幅度。


    这里写图片描写叙述

    參考:机器学习公开课—Andrew Ng

  • 相关阅读:
    eclipse maven POM 第一行提示异常Could not initialize class org.apache.maven.plugin.war.util.WebappStructureSerializer
    Tomcat搭建HTTP文件下载服务器
    Hui datetimepicker 插件不显示左右箭头问题
    【Python】拷贝&列表
    【Python】Python赋值引用、浅拷贝、深拷贝
    【Python】列表的复制
    【Python】电脑安装了多个版本Python,如何切换;
    【Python】定义类、创建类实例
    【Python】白名单方式净化
    c++ 对外提供头文件的模式
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/7066760.html
Copyright © 2011-2022 走看看