您的位置:首页 > 其它

机器学习的基本模型

2015-11-01 15:20 246 查看
机器学习的各种算法在于如何使用特定函数与已知的数据集相匹配,从而达到训练和测试的目的。本篇文章对一些近似的模型做一些相应的介绍。

线性模型

一维输入变量

假设学习对象f函数的输入是一组实数,那么对该函数进行近似的时候,最简单的方案就是fθ(x)=θ⋅x。在这里,θ是这个函数的斜率,也就是这个函数fθ(x)的参数。机器学习就是通过对这个参数的学习,完成函数的近似计算。这个模型对于θ而言是一个线性函数,操作起来十分方便,但是对于实际的情况来说,该模型过于简单,没有太大的使用价值。

由于上面这个模型过于简单,那么在实际应用中,会对上述的模型进行必要的扩展,使得函数fθ(x)变成参数的线性模型,这样这个模型就可以用来表示非线性的输入和输出了。可以把θ⋅x扩展成如下形式:

fθ(x)=∑bj=1θj⋅ϕj(x)。

在这个式子中,ϕj(x)是基函数向量ϕ(x)=(ϕ1(x),⋅⋅⋅,ϕb(x))T的第j个分量,θj是θ=(θ1,⋅⋅⋅,θb)T的第j个分量,b是基函数ϕ(x)的维数。根据上面fθ(x)的定义,可以得到该函数是参数向量θ的线性函数。也就是说对于b维参数θ,θ′和α∈R,满足fθ+θ′(x)=fθ(x)+fθ′(x)和fαθ(x)=αfθ(x)。那么这个时候如何选择基函数ϕ(x)就成为了一个关键所在。数学分析里面有一个经典定理叫做Weierstrass定理,陈述如下:

Weierstrass第一逼近定理:假设f(x)是闭区间[a,b]上的连续函数,对于任意的ϵ>0,则存在多项式P(x)使得对于所有的x∈[a,b],有|f(x)−P(x)|<ϵ。

根据Weierstrass第一逼近定理,对于任何一个闭区间上面的连续函数,都可以用多项式去逼近。所以联系到机器学习,就可以把基函数ϕ(x)的分量设置为多项式,换句话说ϕj(x)=xj−1和ϕ(x)=(1,x,x2,⋅⋅⋅,xb−1)T。那么上述的θ的线性函数却是关于自变量x的非线性函数,而且fθ(x)=∑bj=1θj⋅xj−1可以逼近关于x的闭区间上任何一个连续函数。

与Weierstrass逼近定理类似,用Fourier级数也可以逼近Lipchitz连续函数。所以也可以选择基函数ϕ0=1,ϕ2j−1(x)=sin(jx),ϕ2j(x)=cos(jx),这里j≥1。简单来说就是令b=2m+1,

ϕ(x)=(1,sinx,cosx,⋅⋅⋅,sin(mx),cos(mx))T。根据这些模型,fθ(x)就可以表示复杂的非线性模型了。

高维输入变量

对于高维的变量x=(x(1),⋅⋅⋅,x(d)),函数依旧可以扩展成如下模式:

fθ(x)=∑bj=1θjϕj(x)=θTϕ(x)。对于多维的输入向量x,可以用一维的基函数来构造多维基函数的乘法模型加法模型

乘法模型指的是把一维的基函数作为因子,通过使其相乘而获得多维基函数的方法。表达式如下:

fθ(x)=∑b′j1=1⋅⋅⋅∑b′jd=1θj1,⋅⋅⋅,jdϕj1(x(1))⋅⋅⋅ϕjd(x(d))。

在上面的式子中,b′是各个维数的参数个数。对于这个模型而言,它的表现力十分丰富,但是不足之处在于所有的参数个数是(b′)d,是一个非常巨大的数字,导致的维数灾难,所以在实际运用中,不主张用这个模型。

加法模型指的是把一维的基函数作为因子,通过相加而活得高维基函数的方法。表达式如下:

fθ(x)=∑dk=1∑b′j=1θk,jϕj(x(k))。

加法模型中所有参数的个数是b′d,是一个关于维数d的线性函数,复杂度没有乘法模型大,但是表现力和乘法模型比起来则差很多。

核模型

在线性模型中,多项式或三角函数等基函数的选择都是与训练样本无关的,核模型则与之相反,会在进行基函数构造的时候使用输入样本{xi}ni=1。

在核模型中,会使用核函数K(x,c)=exp(−||x−c||22/(2h2)),其中||⋅||2指的是欧几里德2-范数,h表示核函数的带宽,c指的是核函数的均值

从核函数的定义可以可以延伸出模型

fθ(x)=∑nj=1θj⋅K(x,xj)。

在这个模型中,关于θ而言仍然满足线性关系。换句话说,对于θ,θ′∈Rn, α∈R,有fθ+θ′(x)=fθ(x)+fθ′(x)和fαθ(x)=αfθ(x)。对于核函数来说,无论输入的是一维变量还是高维变量,核函数都可以容易的进行扩展。

层级模型

对参数来说是非线性的模型,都称为非线性模型。下面要介绍的就是非线性模型中的层级模型,它在很多领域都有应用。假设模型是

fθ(x)=∑bj=1αj⋅ϕ(x;βj)。

上式中,ϕ(x;β)是关于参数向量β的基函数,层级模型是基于参数向量α=(α1,⋅⋅⋅,αb)T的线性形式。同时也包含参数向量{βj}bj=1,所以层级模型是基于参数向量θ=(αT,βT1,⋅⋅⋅,βTb)T的非线性形式。

基函数通常采用S型函数

ϕ(x;β)=1/(1+exp(−xTω−γ)),其中β=(ωT,γ)T

或者高斯函数

ϕ(x;β)=exp(−||x−c||22/(2h2)),其中β=(cT,h)T。

其中S函数模仿的是人类脑细胞的输入输出函数,因此使用S函数的层级模型也被称为人工神经网络模型

针对像人工神经网络这样的层级模型,采用贝叶斯学习的方法是不错的选择。人工神经网络也以学习过程艰难异常而著称。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: