机器学习之梯度下降法数学推导--回归

时间:2023-02-26 16:06:21

前言

    本来对数学没什么感觉的,但是停摆了一年复习考研,于是开始对数学有些感觉了,之前看到《机器学习实战》中第五章中梯度上升法,使用了一个它所谓的十分简单的推导,一直好奇怎么个简单法,于是重新学习机器学习的相关算法,这次将主推数学推导。

有监督回归算法

    在机器学习中,多元线性回归模型是经常使用的模型,比如在吴恩达《斯坦福机器学习》中的例子,我们需要根据已有的房价信息预测当前房子的房价,于是我们收集到一些房价数据。

机器学习之梯度下降法数学推导--回归

    再将它们画在二维坐标上,它们就以离散的点分布在平面上,如下所示
机器学习之梯度下降法数学推导--回归

    我们希望能根据这些已知的点来预测我们想知道的房子的房价,因此我们需要找到一条规律,也就是一条大致经过这些点的线性模型,在数学上我们通常称之为拟合,而这个拟合的过程,我们称之为回归。

机器学习之梯度下降法数学推导--回归

    假设我们建立的模型是一元一次的,将得到这样的拟合结果,于是我们可以x轴上的房屋面积,找到对应的房屋价格。

    有监督的学习算法,可以理解成我们训练模型的时候每一个输入都是有标准答案的,我们通过预测值跟标准答案的比对,不断修改模型的参数才能最终实现较好地的拟合结果。

最小二乘法

    最小二乘法是我们经常使用的拟合算法,它通过最小化误差的平方和寻找数据的最佳函数匹配。

    以我们《机器学习实战》第五章作例子,我们假设的模型为z,于是函数即可设为
z=w0+w1x1+w2x2+w3x3+....+wnxn=w0x0+w1x1+w2x2+w3x3+....+wnxn(x0=1)(1)
    这种写法也可以表示为向量的写法:
z=wTx=[w0w1...wn]x0x1...xn(2)
    同样的道理,我们也可以这样子表示
z=xTw=[x0x1...xn]w0w1...wn(3)

    刚才我们也提到了,最小二乘法拟合的原理是最小化误差的平方和,我们将这个平方和称为损失函数,跟我们平时常用的方差类似,当这个损失函数越小,我们的模型就越能跟离散的点匹配起来:
f(w)=12i=1m(zw(xi)yj)2(4)
其中的y表示我们给出的标准的特征 y0y1...ym

    因为梯度上升算法是用来计算函数的最大值的,而梯度下降算法则是计算函数最小值的。而我们的损失函数自然是越小越好,我们需要求得一个系数来使得f(w)最小,可是使用梯度上升法是用于求最大值的,因此为了用上梯度上升算法,我们最终应该在f(w)前加上负号。假设:
J(w)=f(w)(5)
接下来我们开始利用矩阵来推算我们的数学公式,因为原始的公式用来做迭代计算会很不方便,因此我们需要一个等价的公式来让我们的算法更加高效,就例如《机器学习实战》chapter5中的那样。假设我们的输入为X,我们有m组训练数据,每个数据有n个特征。则:
X=x11x21...xm1x12x22...xm2............x1nx2n...xmn=xT1xT2...xm(6)
于是通过(3)可以推出
Xw=xT1xT2...xTmw=xT1wxT2w...xTmw=zw(x1)zw(x2)...zw(xm)(7)
Xwy=xT1wxT2w...xTmwy1y2...ym=zw(x1)y1zw(x2)y2...zw(xm)ym(8)
由矩阵内积可得
zTz=inz2i
12(Xwy)T(Xwy)=12i=1n(zw(xi)yi)2=f(w)
则梯度为
wf(w)=w12(Xwy)T(Xwy)=12w(wTXTXwwTXTyyTXw+yTy)=12wtr(wTXTXwwTXTyyTXw+yTy)=12w(trwTXTXw2tryTXw)=12(XTXw+XTXw2XTy)=XTXwXTy=XT(Xwy)=>J(w)=f(w)=XT(yXw)
说明:
第二步:类似于括号展开
第三步:实数的迹等于它本身
第四步:因为 yTy 不含w,因此它对w求导为0.并且利用了公式 trA=trAT 进行简化。
第五步:利用公式 ATtrABATC=BTATCT+BATC ,令 AT=w,B=BT=XTX,C=I ,利用公式转化即可得到。

最后再回到《机器学习实战》中,P78,代码清单5-1②的部分。
dataMatrix=X;
weights=w;
labelMat=y;
把等号右边的用左边的变量代入,不过很遗憾,还是有些区别的,在《机器学习实战》一书中,还有sigmoid这一函数,查阅了一些资料,发现其实还是有些区别的,将于下一篇博文中阐明。

参考

吴恩达《机器学习》notes1
周志华《机器学习》chapter3 线性模型

来源

http://csuncle.com/2017/06/13/《机器学习实战》-chapter5梯度上升算法-数学推导/