关闭

无约束极值、线性分类器和线性回归基础

74人阅读 评论(0) 收藏 举报
分类:

总结无约束极值的基本内容以及线性分类器和回归的基础知识,包含梯度下降

使用梯度法解决无约束极值问题

相比于约束极值问题,无约束极值问题去掉了约束,因此表述方式非常简单:

minf(X),XEn(1)

现假设f(X)有一阶连续偏导,极小值点为XX(k)为第k次接近。在X(k)点沿着方向P(k)做射线,有:

X(k+1)=X(k)+λP(k),(λ0)(2)

对上面式子进行泰勒展开:

f(X(k+1))=f(X(k)+λP(k))=f(X(k))+λf(X(k))TP(k)+o(λ)(3)

limλ0o(λ)λ=0

只要有

f(X(k))TP(k)<0

即可有

f(X(k)+λP(k))<f(X(k))

f(X(k))TP(k)=f(X(k))P(k)cosθ

θ为180°的时候,上式取最小值,这说明负梯度方向函数下降最快。

计算过程大体如下:

X0开始,如果f(X(0))2<ε,退出。
否则X(1)=X(0)λ0f(X(0))

这里会有λ的选择问题。如果λ具有二阶导数,那么可以对f(X(k)λf(X(k))进行泰勒展开:

f(X(k)λf(X(k))f(X(k)f(X(k))Tλf(X(k))+12λf(X(k))TH(X(k))λf(X(k))(4)

λ求导数,并令其为0,可以得到:

λk=f(X(k))Tf(X(k))f(X(k))TH(X(k))f(X(k))(5)

其中:

H(X)=2f(X)x21...2f(X)xnx1.........2f(X)x1xn...2f(X)x2n(6)

线性分类器

对于一个线性分类器,假设数据集均可正确分类,那么我们只需找到一个分类超平面,使得所有的错分点到分类超平面的距离最短即可。

我们假设分类超平面的公式如下:

g(x)=ωTx=0(7)

那么点到直线的距离可以用ωTx来表示。现在我们可以构建一个无约束极值问题,并使用梯度下降法来寻找分类超平面的问题。

代价函数定义为:

J(ω)=xY(δxωTx)(8)

其中Y代表分类错误集,δx定义为:xω1,δx=1;xω2,δx=1ωx>0,xω1

因此代价函数即是保证每项因子为正的情况下最小化各个错分类的点到分类超平面的距离。

这里我们使用梯度下降法来计算最优的ω,即:

ω(t+1)=ω(t)ρtJ(ω)ωω=ω(t)(9)

其中

J(ω)ω=xYδxx(10)

最小二乘法–误差平方和估计

同样考虑上述分类问题,如果类不是线性可分的情况下,那么可以使用最小二乘法来解决问题,使期望值和输出值之间的误差平方和达到最小,从而构建这么一个最优分类器。其中损失函数定义如下:

J(ω)=i=1N(yiωTix)2i=1N(e2i)(11)

J(ω)ω=0,我们可以得到:

i=1Nxi(yixtiω)=0(i=1Nxixti)ω=i=1N(xiyi)(11)

X=x11...xN1.........x1L...xNLY=y1...yN

那么我们可以得到下列公式:

(XTX)ω^=XTYω^=(XTX)1XTY(12)

上述最小二乘内容其实可以通用于分类和回归。也就是Y不同而已。

随机梯度下降

在实际使用中(例如Spark等集群计算中),对于回归等的计算过程仍然使用梯度下降法进行计算,其原因是求(XTX)1的时候很有可能矩阵的逆不存在,而使用伪逆进行运算的话如果矩阵奇异,那么结果十分不可信,会得到错误的结论(ELM极限学习机就是一个非常现实的例子)。但是在Spark中使用了随机梯度下降法,每次并不需要将整个测试集带入来求得ω,而是随机选取一个点进行相应梯度的下降。

通过上述公式9,并将J(ω)替换为最小二乘法中的损失函数,我们可以得到如下内容:

ω(t+1)=ω(t)i=1Nρxi(yixtiω)(13)

也就是说,调整权值使用了所有测试集中的点。

随机梯度下降就是仅仅使用了随机的一个点进行权值的调整。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1394次
    • 积分:98
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    文章分类
    文章存档