Machine Learning 学习笔记 (1) —— 线性回归与逻辑回归

【总目录】http://www.cnblogs.com/tbcaaa8/p/4415055.html

 

1. 梯度下降法

梯度下降法是一种用来寻找函数最小值的算法。算法的思想非常简单:每次沿与当前梯度方向相反的方向走一小步,并不断重复这一过程。举例如下:

[例]使用梯度下降法,求技术分享的最小值。

第一步:求解迭代格式。根据“每次沿与当前梯度方向相反的方向走一小步”的思想,可知技术分享

第二步:选择迭代的初始值。初始值一般可以随意选择,但恰当的初始值有助于提升收敛速度。本例中选择技术分享

第三步:根据迭代格式和初始值进行迭代求解。迭代过程如下:

k x(k) y(k) z(x(k),y(k))
0 1.00 1.00 2.7000
1 0.40 0.20 2.0640
2 0.16 0.04 2.0083
3 0.06 0.01 2.0013
4 0.03 0.00 2.0002
5 0.01 0.00 2.0000
6 0.00 0.00 2.0000

结论:可以发现,第6次迭代后,算法收敛。所求最小值为2。

梯度下降算法如何进行收敛判定呢?一个通用的方法是判断相邻两次迭代中,目标值变化量的绝对值是否足够小。具体到上述例题,就是判断技术分享是否成立。技术分享是一个足够小的正实数,可以根据所需要的精度进行选取,本例中技术分享

需要注意的是,梯度下降法有可能陷入局部最优解。可以通过多次随机选取初始值以及增加冲量项等方法加以改善,本系列后续文章中可能涉及。

 

2. 线性回归

线性回归是对自变量和因变量之间关系进行建模的回归分析,回归函数满足如下形式:

技术分享  

我们使用技术分享表示数据组数,使用技术分享表示数据的维数;使用技术分享技术分享表示第技术分享组数据的自变量和因变量,使用技术分享表示第技术分享组数据自变量的第技术分享个分量。推导过程基于如下假设:

技术分享

即每一组数据的误差项相互独立,且均服从均值为0,方差为技术分享的正态分布。进而,我们可以得到似然函数:

技术分享

对数似然函数:

技术分享

化简,可得:

技术分享

定义损失函数:

技术分享

要使似然函数最大,只需使损失函数最小。我们使用损失函数的极小值代替最小值,只需对每一个技术分享求偏导数:

技术分享

最后,使用梯度下降法迭代求解:

技术分享

其中,技术分享为学习率,是一个大于0的常数。学习率应当慎重选择,过大会导致算法不收敛,过小会导致收敛速度缓慢。在实际应用中,可以根据具体情况对学习率进行调节。有资料表明,当技术分享  技术分享 时,上述算法收敛。由于技术分享难以高效计算,因此往往使用技术分享来代替。

 

3. 逻辑回归

当因变量只能在{0,1}中取值时,线性回归模型不再适合,因为极端数据的存在会使阀值的选择变得困难。我们可以使用逻辑回归对数据进行建模。回归函数满足如下形式:

技术分享

其中:

技术分享

sigmoid函数具有如下性质:

技术分享

推导过程基于如下假设:

技术分享

 技术分享

 技术分享

考虑到技术分享取值的特殊性,上述假设等价于以下形式:

技术分享

进而得到似然函数:

技术分享

对数似然函数:

技术分享

化简,得:

技术分享

定义损失函数:

技术分享

要使似然函数最大,只需使损失函数最小。我们使用损失函数的极小值代替最小值,只需对每一个技术分享求偏导数:

技术分享

化简,得:

技术分享

最后,使用梯度下降法迭代求解:

技术分享

技术分享含义同上。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。