Andrew Ng Machine Learning (3) Logistic Regression & Regularization

此文是斯坦福大学 Andrew Ng 所开设的 Coursera 课程:Machine Learning 的课程笔记。
课程网址:
https://www.coursera.org/learn/machine-learning/home/welcome


1. Logistic Regression

对于分类问题而言,很容易想到利用线性回归方法,拟合之后的hθ(x)>0.5则为True,其余为False.

但是线性回归有一个问题,拟合出的值都是离散的,范围不确定。

为了方便分析,我们希望将拟合出的值限制在0~1之间。因此,出现了逻辑回归

逻辑回归的模型是一个非线性模型sigmoid函数,又称逻辑回归函数。但它本质上又是一个线性回归模型,因为除去sigmoid映射函数关系,其他的步骤,算法都是线性回归的。

sigmoid函数(或,逻辑回归函数):

其函数图像为:

这个函数的特征非常明显

1
2
函数值一直在0~1范围内;
经过(0,0.5)点。这个很容易作为区分0,1类的分界线。

逻辑回归中,对于原本线性回归中拟合而成的hypothesis函数,需要经过sigmoid函数的修饰:

此时,hθ(x)的含义发生了变化,

。成为
‘’the probability that y=1, given x, parameterized by θ’’

因此有

Decision Boundary。表示的是 hypothesis 函数确定之后,划分数据分类的界限,并不一定可以百分百区分数据集,只是函数的属性之一。下图蓝色曲线即为某个 Desicision Boundary。

2. Cost Function

回忆线性回归的 cost function,我们在其中插入 cost 函数的概念:

完全照搬线性回归的 cost function 到逻辑回归中,因为sigmoid函数的非线性,会造成J(θ)取值的不断震荡,导致其是一个非凸形函数(non-convex)。表示在“J(θ)—θ”二维图中如下:

我们需要构造一种新的 cost 函数。出发点为:

1
2
当y=1时,若hypothesis函数拟合结果为0,即为“重大失误”,cost 趋于无穷大;
当y=0时,若hypothesis函数拟合结果为1,即为“重大失误”,cost 趋于无穷大;

构造的新 cost 函数:

如果进一步合并,可以得到最终逻辑回归的cost函数。并且值得指出的是,代入这个cost函数通过梯度下降法得到的 θ 更新函数依然成立:

3. 梯度下降法的优化

对于梯度下降法的优化有很多,但是都需要J(θ)与∂J(θ)/∂θj的代码。

以此为基础的对于梯度下降法的优化(视频中都没有具体介绍,有兴趣的同学可以点击链接)有:
共轭梯度法
BFGS
L-BFGS

这些优化方法的特点也很一致:

1
2
不需要人为选择 α,自适应性
更复杂,更慢

这里提到了两个MATLAB的非线性优化函数:
optimset:创建或编辑一个最优化参数选项。具体调用在MATLAB中 help optimset 命令查看;
fminunc:最小值优化。具体调用在MATLAB中 help fminunc命令查看;

建议:Ng在优化这一部分讲的过于简略,基本等于什么都没说……还是要根据这几个方法名称在使用时搜索更多。

4.one vs. all (one vs. rest)

如果需要进行多类的分类,需要一种精妙的修改,使得两类的分类问题得以适用于多类的分类。

  1. 现已知有n类样本需要区分开(1,2,3,……);

  2. 以原1类为新1类,剩余的原2,3,……作为新2类。原本的多类问题变成了二类问题:

  3. 以原2类为新1类,剩余的原1,3,……作为新2类。再分类:
  4. 对于任意一个 x 而言,如何分辨是哪一类呢?于是,求出所有的值最大对应的i(表示y=i的概率最大)即为x的所属分类

5. Regularization(正则化)

拟合会产生三种情况:

  1. underfitting(欠拟合)=high bias,大部分训练样本无法拟合

  2. overfitting(过拟合)=high variance,为了拟合几乎每一个训练样本。导致拟合函数极为复杂,易产生波动,泛化(generalize)能力差,虽然训练样本几乎百分百拟合,但是测试样本很可能因为极大波动而极少拟合成功

  3. just right,对于训练样本,拟合得不多不少刚刚好,并且泛化到测试样本拟合效果同样较好

欠拟合,比较好解决,创造并引入更多的特征即可。例如:对于x,y而言,可以引入x2,y2,xy等等新的特征

过拟合,则比较复杂。可用的方法有两个:

  1. Reduce number of features, 减少特征量

  2. Regularization,正则化。保持所有的特征数量不变,而去改变特征前的度量单位 θj(若 θj 趋于0,则此特征可视为无影响)

解决过拟合的正则化方法,因此需要引入全新的优化目标到 cost function 中。原先的 cost function 只是希望适合拟合更为接近,现在还需要使得特征前的度量单位 θj 的最小。因此有:

正则化方法处理之后,∂J(θ)/∂θj发生对应变化,因此我们有:

若λ非常大(例如10^10),则正则化方法会导致结果 underfitting。这也很好理解,因为优化目标中有使得 尽可能小,这样会导致 θ 全部趋于 0。

一般来说,α,λ,m>0,所以(1−αλ/m)<1,常见使其取值0.99 左右

6. Regularization for Normal Equation

课程视频中缺少证明,因此我们仅需掌握结论使用即可
对于 Week 2 中的Normal Equation方法,原本需要求解的方程

做一个小小的改动:

若样本拥有n个特征,则表示的是(n+1) * (n+1)维的对角矩阵,除了(0, 0)取值为 0,其余对角位置取 1。

non-invertibility:非不可逆性……好拗口,意思就是对于原本的(xTx)矩阵可能会出现不可逆的情况。但是,对于正则化之后的矩阵一定是可逆的(未提供证明)。