Andrew机器学习课程笔记(1)——梯度下降、逻辑回归

来源:互联网 发布:91视频解析网站源码 编辑:程序博客网 时间:2024/04/30 10:41

前言

之前用到相关算法的时候,或多或少在其他博客上看到Andrew的算法解析。

这次决心利用空闲时间完整的看看Andrew的课程视频,果真是获益匪浅!大神讲课思路非常清晰,算法的来龙去脉理的很透彻,在很多地方给了我一种茅塞顿开的感觉。因此在这里开一个系列专门记录下我听课的笔记,以后也好温故而知新~


梯度下降(GD)的技巧

1. 特征缩放

特征归一化是机器学习中经常用到的一种技巧,我以前也经常用,但一直没理解为什么要这么做。

假定现在有两个特征(X1、X2),情况1是两个特征的范围几乎一致(图左),情况2是X1的范围远大于X2(图右):

如果特征的范围相当,那么求得的梯度方向会更趋向极值方向;反之寻优路线就会复杂很多。因此特征的缩放可以使得GD更快的收敛。

特征缩放并不一定要求他们范围一致(相当即可),一般缩放的方法是:

2. 迭代次数

一般是通过 限定误差下限指定最大迭代次数 来实现

Andrew表示,比较靠谱的方法还是 实时画出每次迭代的误差曲线,这样可以很直观的看到目前算法的趋势


  3. 学习率alpha

没什么办法,大神也是从 0.001, 0.003, 0.006, ... , 1 一个一个试

  4. 适用场合

     通过对数据分布的先验知识,选择合适的多项式模型,而不是只用线性模型

对于线性模型,如果特征数很大(超过1W),一般还是用GD;如果比较小,也可以选择直接用 标准方程 求得使代价函数取极小值的各个参数

中x是样本特征矩阵,y是样本类别矩阵,sita是每个特征前的参数矩阵

注:1. 这种方法就不需要特征缩放了,因为不存在迭代寻优的过程

2. 当特征维数 > 样本数各特征不够独立时 可能存在矩阵不可逆的情况(正则化可以解决这个问题)


逻辑回归(LR)

LR的代价函数一般为:

                                                                

为什么不跟线性回归一样,取

因为LR的

其局部图形是一段弧线,如果代入线性回归的代价函数,会导致优化函数表现为(黑色曲线):

                      

寻优函数很容易就陷入局部最小,因此代价函数的选取目标是,在反映目标值与当前值差异的情况下,尽可能的光滑

巧合的是,采用这种代价函数的LR回归,其GD迭代式与线性回归在形式上是一样的(当然模型h(x)展开是不同的)


过拟合

方式1:减少特征数目 ------- 一般用模型选择算法

但可能会丢失一些有用的特征

方式2:正则化

保持特征数目不变,但降低某些特征的权重

对多特征的情况有不错的效果

红框内就是正则惩罚项,随着lambda变大,效果向着欠拟合方向发展

1)用于GD的正则化

                                              

可以看出,正则化就是首先将原始值缩小,然后基于梯度方向更新


2)用于标准方程的正则化

                                                

可以证明,只要lambda>0,矩阵是可逆的

0 0