Andrew Ng机器学习(ML)入门学习笔记(三)

原创 2015年11月17日 16:34:05

一.分类问题和逻辑回归

1.逻辑回归的提出

前面举例较多的房价问题属于监督学习中的线性回归问题,因为需要预测的变量是连续的。对于另一类问题,需要预测的变量是离散的,称为分类问题。

根据分类种类的多少,又有两类分类问题和多类分类问题之分。

例如现在有一些肿瘤大小和相应性质(0代表良性,1代表恶性)的训练数据,如下图紫色叉点。若仍以线性回归进行学习,则可以学习出如下橘色的假设函数hθ(x),对于新的输入x,可按下列阈值分类器预测y:

hθ(x)0.5,y=1
hθ(x)0.5,y=0
此后的x若在竖直橘色虚线的右侧则可预测y为恶性。

但此时如果多出了一个训练数据如图中红色叉点,仍用线性回归就可能训练出如图中绿色的hθ(x),假设函数改变了,用于分类的肿瘤大小的边界改变了,对于分类问题来说并不是我们希望看到的。由此可以看出线性回归不太适合分类问题,相反逻辑回归就能派上用场。

这里写图片描述

2.逻辑回归hθ(x)的定义

对于两类分类问题,y=01,但之前线性回归中hθ(x)=θTx的定义可能使hθ(x)大于1或者小于0。
逻辑回归中,0hθ(x))1,怎样才能让hθ(x)满足上述要求呢。定义

hθ(x)=g(θTx)
其中g(z)=11+ez称为S型函数(sigmoid/logistic function)。故逻辑回归的假设函数表达式如下:
hθ(x)=11+eθTx
因为S型函数的图像在负无穷大渐进于0而在正无穷大渐进于1,如下图,故其刚好满足了逻辑回归对hθ(x)的取值范围要求.

这里写图片描述

3.假设函数hθ(x)的意义

逻辑回归中hθ(x)代表的含义是对于给定的输入x,在参数θ确定的情况下,预测y=1的概率,即

hθ(x)=P(y=1|x;θ)
那么逻辑回归对于一个新的x又如何利用假设函数进行预测y呢?

4.决策边界

hθ(x)0.5(y=10.5)y=1
hθ(x)<0.5(y=10.5)y=0

结合假设函数的意义,感觉这是相当合理的预测。再根据S型函数z0g(z)0.5的关系,得到
θTx0hθ(x)0.5y=1
θTx<0hθ(x)<0.5y=0
举例说明:对于有两个特征变量的两类分类问题,hθ(x)=g(θTx)=g(θ0+θ1x1+θ2x2),假设经过拟合已经得到了
θ=θ0θ1θ2=311
则可以根据θTx来对新的(x1,x2)预测y的取值:
3+x1+x20y=1
3+x1+x2<0y=0
更直观的表达就是(x1,x2)位于直线x1+x2=3的上方区域(包括直线上)时预测y=1,(x1,x2)位于直线x1+x2=3的下方区域时预测y=0。如下图所示, x1+x2=3这条直线就是这里的决策边界

这里写图片描述

上面的决策边界x1+x2=3属于线性决策边界,再看一个非线性决策边界的例子。假设训练数据的分布如下图所示,则可用高阶多项式进行拟合。

这里写图片描述

例如hθ(x)=g(θTx)=g(θ0+θ1x1+θ2x2+θ3x21+θ4x22),并且假设经过拟合已经得到了

θ=θ0θ1θ2θ3θ4=10011
则可以根据θTx来对新的(x1,x2)预测y的取值:
1+x21+x220y=1
1+x21+x22<0y=0
更直观的表达就是(x1,x2)位于圆x21+x22=1外部(包括圆上)时预测y=1,(x1,x2)位于圆x21+x22=1内部时时预测y=0

实际上通过增加一些复杂的多项式特征变量可以得到更复杂的决策边界,而不仅仅是一条直线分开的两个区域。

注意:决策边界不是训练集的属性,而是假设函数和其参数θ的属性。这意味着即使训练数据变了,但假设函数hθ(x)和拟合出的参数θ没变,则用于预测y的决策边界会保持不变。

二.逻辑回归的求解

1.逻辑回归的代价函数

前面提到决策边界由假设函数和参数θ决定,那么参数θ如何求解呢。

依旧给出一些基本的符号定义:
m组训练数据(x(1),y(1)),(x(2),y(2)),,(x(m),y(m))
n个特征

x(i)=x(i)0x(i)1x(i)nRn+1
对于两类分类问题,y{0,1}
hθ(x)=11+eθTx

线性回归中代价函数:

J(θ)=12mi=1m(hθ(x(i))y(i))2=1mi=1m12(hθ(x(i))y(i))2
讨论逻辑回归时,我们定义单个样本的代价
Cost(hθ(x(i)),y(i))=12(hθ(x(i))y(i))2
为了简化表达,可略去上标,即
Cost(hθ(x),y)=12(hθ(x)y)2
如果仍然像线性回归那样定义逻辑回归的代价函数J(θ),则由于hθ(x)=11+eθTx,导致J(θ)变成非凸函数,如下图,这就可能有很多局部最小值,用梯度下降法很难保证其收敛到全局最小值。

这里写图片描述

故在逻辑回归中,需要另寻一个代价函数,使其是凸函数(单弓形),如下图,这样就可以使用梯度下降法找到全局最小值。

这里写图片描述

定义单个样本的代价

Cost(hθ(x),y)={log(hθ(x)),log(1hθ(x)),y=1y=0
y=1时,Cost(hθ(x),y)关于hθ(x)的图像如下图:

这里写图片描述

对于每个训练数据,若y=1hθ(x)=1,则假设函数预测结果与事实一致,Cost=0;但若hθ(x)=0,则P(y=1|x;θ)=0,对此训练数据预测y=1的概率为0,而事实上y确实等于1,则通过一个很大的代价Cost来惩罚学习算法。这看上去与我们想要的效果相同。

y=0时,Cost(hθ(x),y)关于hθ(x)的图像如下图:

这里写图片描述

同理,若y=0,hθ(x)=1,将通过一个很大的代价Cost来惩罚学习算法。

因为y总是为01,为了方便进行梯度下降的推导,可以将Cost(hθ(x),y)写成一行的形式

Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))
由单个样本的代价函数,最终我们得到逻辑回归总的代价函数
J(θ)=1mi=1mCost(hθ(x(i)),y(i))=1m[i=1my(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

2.梯度下降法求解参数θ

与前面线性回归相同的是,这里我们的目标仍然是minθJ(θ)。利用代价函数的数学表达式及θj:=θjαJ(θ)θj得到逻辑回归梯度下降的数学表达
重复直到收敛{

θj:=θjα1mi=1m(hθ(x(i))y(i))x(i)j
}
j=0,1,2,,n同时更新。

视频中这一块的公式里缺少了1m,看到这里很可能会有疑问,为什么明明J(θ)的定义都与线性回归时不同了,但梯度下降更新规则的数学表达却还是一样的?视频中并未对此作出解释,也没有给出求导过程,有幸的是有人给出了具体推导过程,跟着步骤自己推导一遍,结果确实是一样的。

需要注意的是,这只是形式上的一致,由于线性回归和逻辑回归对hθ(x(i))的定义不同,故两者的梯度下降还是不同的。

具体用代码实现时,可用for循环求解θj,但更推荐向量化的方法,可一次性求出所有的θj

3.向量化方法实现梯度下降

对于θj的向量化求解,主要在于找出θj=mi=1(hθ(x(i))y(i))x(i)j的向量化方法,只看这一部分的话,对每一个i(hθ(x(i))y(i))是一个具体的值,定义它为ci,则

θ0=c1x(1)0+c2x(2)0++cmx(m)0
θ1=c1x(1)1+c2x(2)1++cmx(m)1
θn=c1x(1)n+c2x(2)n++cmx(m)n
x(i)=x(i)0x(i)1x(i)nθ=θ0θ1θnθ=θ0θ1θn
θ=θα1mθ=θα1mi=1m(hθ(x(i))y(i))x(i)

4.逻辑回归高级优化

逻辑回归找出最优的算法除了梯度下降外,还有其他一些高级优化算法例如共轭梯度,变尺度法(BFGS),限制变尺度法(L-BFGS)等,这些高级优化算法不需人为选择学习率α,拥有比梯度下降更快的速度,但同时也更加复杂。

三.多类分类问题

前面所举的例子都是两类分类问题,对于待识别的种类大于两种的情况,采用一种一对多的分类方法(one-vs-all classification)。例如有下图的训练数据

这里写图片描述

待识别的种类有三种时,可以转化为3个分离的两类分类问题。在每一个两类分类问题中,把待识别的类别当作正类别,其余合为一类作为负类别。如下图

这里写图片描述
这里写图片描述
这里写图片描述

每一个类别拥有一个假设函数,故这里一共有3个假设函数

h(i)θ(x)=P(y=i|x;θ)
其中i=1,2,3。相当于给每个类别单独训练一个逻辑回归分类器,用h(i)θ(x)去预测y=i的概率。

那么多类分类当给定了新的输入数据,如何预测输出类别呢?答案是用每一个类别的h(i)θ(x)求出类别i出现的概率,选择其中概率最大的类别作为预测结果,即

y=maxih(i)θ(x)

四.过拟合(Overfitting)

在利用训练数据拟合假设函数时,可能会有以下三种情况:

①欠拟合(underfitting),也叫高偏差(high bias)

即,拟合出的假设函数在训练数据集上不能很好地反映输出和输入的关系,hθ(x)y的偏差比较大,如下图(上为线性回归欠拟合,下为逻辑回归欠拟合)

这里写图片描述

这里写图片描述

②适度拟合

即,拟合出的假设函数在训练数据集上能较好的反映输出和输入的关系,hθ(x)y的偏差不大,如下图(上为线性回归适度拟合,下为逻辑回归适度拟合)

这里写图片描述

这里写图片描述

③过拟合,也叫高方差(high variance)

即,由于特征变量太多,导致学习到的假设函数太过适合于训练数据集,甚至J(θ)0,如下图(上为线性回归过拟合,下为逻辑回归过拟合)

这里写图片描述

这里写图片描述

这对于训练数据集来说当然是好的,但我们的最终目的不是让假设函数完美适配训练数据,而是让它去预测新的问题。过拟合带来的问题是假设函数很精准地适配了训练数据,但是却无法泛化到新的例子,对新的输入无法很好地预测其输出。

泛化(generalize)是指一个假设模型能够应用到新样本的能力。

那么如何来避免出现过拟合呢?
前面通过画图可以大致看出是否出现过拟合,但当特征变量变得很多时,画图本身就变得很难。这里给出两种规避过拟合的方法:

减少特征变量的数量
我们可以人工选择要保留的特征变量;也可以使用模型选择算法让它自动舍弃一些特征变量,保留一些特征变量。

正则化(regularization)
即保留所有特征变量,但要减小θj的数量级或值。

例如在前面过拟合的图示中假设函数hθ(x)=θ0+θ1x+θ2x2+θ3x3+θ4x4,这时会出现过拟合;若在代价函数后添加惩罚项如下

J(θ)=12mi=1m(hθ(x(i))y(i))2+1000θ23+1000θ24
则在minθJ(θ)时会使θ3,θ4非常小,假设函数虽然是四次的形式,但实际上却很接近二次函数,拟合曲线如下图桃红色曲线(上为线性回归,下为逻辑回归),既没有过拟合,又比普通的二次函数有更好的拟合效果。

这里写图片描述
这里写图片描述

五.正则化

我们使用正则化有两个目标:

①更好的拟合训练数据,使假设函数很好的适应训练集

②保持θ参数值较小,避免过拟合

当有很多特征时,我们并不知道哪些项是关联度较小的项,无法像上面挑出θ3,θ4那样提前挑出对应的θ参数以缩小它们。故在线性回归代价函数的表达式后添加正则化项以收缩参数θ,让它们更小。

J(θ)=12m[i=1m(hθ(x(i))y(i))2+λj=1nθ2j]
注意j1,不惩罚θ0θ0仍然可能是较大的。

λ称为正则化参数,它控制着上述正则化两个目标间的平衡。
λ如果太小,则相当于正则化项没起到作用,无法控制过拟合;
λ如果太大,则除了θ0,其余的θ都会0,相当于去掉了那些项,使hθ(x)=θ0,毫无疑问这会得不偿失地导致欠拟合。

1.正则化在线性回归中的使用

带有正则化的代价函数的定义

J(θ)=12m[i=1m(hθ(x(i))y(i))2+λj=1nθ2j

带有正则化的梯度下降

重复直到收敛{

θ0:=θ0α1mi=1m(hθ(x(i))y(i))x(i)0
θj:=θjα1m[i=1m(hθ(x(i))y(i))x(i)j+λθj]

j=1,2,,n }

除了θ0之外,θj的表达式等价于

θj:=θj(1αλm)α1mi=1m(hθ(x(i))y(i))x(i)j
其中(1αλm)<1,当α很小,m很大时,相当于把θj压缩了一点点;后面一项α1mmi=1(hθ(x(i))y(i))x(i)j与无正则化的线性回归梯度下降表达式中相应的项一致。

带正则化的正规方程法

X=(x(1))T(x(2))T(x(m))TRm(n+1)y=y(1)y(2)y(m)Rm
θ=(XTX+λ00001000001)1XTy
其中00001000001是一个对角线为0,1,1,1,,1,其余全为0(n+1)(n+1)维矩阵。

事实上,带有正则化的正规方程法加上λ00001000001后,还可解决之前XTX不可逆的问题。

2.正则化在逻辑回归中的使用

带有正则化的代价函数的定义

J(θ)=1m[i=1my(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]+λ2mj=1nθ2j

带有正则化的梯度下降

重复直到收敛{

θ0:=θ0α1mi=1m(hθ(x(i))y(i))x(i)0
θj:=θjα1m[i=1m(hθ(x(i))y(i))x(i)j+λθj]

j=1,2,,n }

同理,与带有正则化的线性回归的梯度下降更新规则看上去形式一致,但实际会因为hθ(x(i))的定义不同而不一样。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Andrew NG机器学习课程笔记系列之——机器学习之逻辑回归(Logistic Regression)

1. Classification 这篇文章我们来讨论分类问题(classification problems),也就是说你想预测的变量 y 是一个离散的值。我们会使用逻辑回归算法来解决分类问题。 之...

机器学习实战k-近邻算法(kNN)应用之改进婚恋网站配对效果代码解

一.背景简要说明 问题背景不再详细赘述了,《机器学习实战》中有详细介绍,利用KNN想做的就是训练出一个分类器,能根据对方的一些特征判断他(她)对你的吸引程度,是不喜欢,还是一般喜欢,还是很喜欢。以此改...

Andrew Ng机器学习(ML)入门学习笔记(二)

一.多变量线性回归(Multivariate linear regression)前面讨论的房屋价格问题我们认为房屋价格只与其大小有关,故定义了hθ(x)=θ0+θ1xh_\theta(x)=\the...

Andrew Ng机器学习(ML)入门学习笔记(一)

一.机器学习的定义(Definition)定义:是一门在不需要很明显很复杂的计算机编程的情况下让计算机具有学习能力的学科。更现代化的定义:给计算机程序提供一个任务T和一种性能测量方法P,在经验E的影响...

Coursera机器学习(Andrew Ng)笔记:ML算法指导与系统设计

机器学习算法指导与系统设计

Andrew Ng机器学习入门学习笔记(四)之神经网络(一)

一.神经网络的优势对于复杂的非线性分类问题,当特征变量个数nn很大时,用逻辑回归时S型函数g(θTx)中的θTxS型函数g(\theta^Tx)中的\theta^Tx如果用二次多项式表示,则二次项数目...

Andrew Ng机器学习入门学习笔记(六)之支持向量机(SVM)

一.支持向量机的引入支持向量机(SVM)是一种极受欢迎的监督学习算法,为了引入支持向量机,我们首先从另一个角度看逻辑回归。1.从单个样本代价考虑假设函数hθ(x)=11+e−θTxh_\theta(x...

Andrew Ng机器学习入门学习笔记(五)之调试学习算法

一.机器学习诊断在设计机器学习系统或者进行改进时如果遇到问题,下一步应该怎么办呢?除了掌握一些学习算法之外,我们还需要知道如何调试一个算法。例如我们已经实现了一个正则化线性回归来预测房价,J(θ)=1...

Andrew Ng 机器学习笔记(三)

欠拟合与过拟合的概念 如果我们以一个房价的训练集来做出一个线性的预测,如果我们做一个一次函数,那房价的预测线条应该是一个向上攀升的直线;如果做一个二次函数,可能有些部分会陡一点有些部分会平缓一点,...

Andrew Ng机器学习笔记+Weka相关算法实现(三)神经网络和参数含义

神经网络的概念和基本推导,Weka中实现神经网络和参数的基本含义
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Andrew Ng机器学习(ML)入门学习笔记(三)
举报原因:
原因补充:

(最多只允许输入30个字)