吴恩达机器学习笔记(五)Logistic回归


本文章是笔者根据Coursera上吴恩达教授的机器学习课程来整理的笔记。如果是初学者,建议大家首先观看吴恩达教授的课程视频,然后再来看博文的要点总结。两者一起食用,效果更佳。

一、分类问题(Classification)

首先介绍二分类问题,后续再介绍多分类。

把线性回归用于分类问题,通常不是一个好主意。
如下图,当训练样本只有左侧的8个时,用线性回归来拟合出一条直线,设定阈值threshold=0.5,可以达到很好的分类效果。但是当我们再增加一个tumor size很大很大的点时(最右侧的点),就会导致拟合出来的直线从紫色变到蓝色的位置。此时再用threshold=0.5做阈值,分类效果很差。

通常,对数据集采用线性回归的方法进行拟合,有时候运气好效果好,但是通常效果很差。吴恩达教授建议一般不要使用线性回归方法来处理分类问题。

线性回归还有一种很奇怪的现象:分类的目标是0或1,训练样本的标签也是0或1,但是使用线性回归后的输出可能是远大于1或远小于1的数。

综上,线性回归不适用于分类问题。

因此,我们后面会介绍Logistic回归算法(Logistic Regression),它的输出的在0和1之间的数字,不会大于1,也不会小于0。虽然Logistic回归算法的名字中有“回归”两字,但算法主要是用于解决二分类问题,并不是预测连续值的那种“回归”。之所以名字中有“回归”二字,只是由于历史原因而已。

二、假设陈述(Hypothesis Representation)

我们希望输出是介于0~1之间的数字,因此在线性回归公式的基础上,增加了Sigmoid函数(也叫Logistic函数, “Logistic回归”名称亦源于此)。
h θ ( x ) = g ( θ T x ) h_\theta(x)=g(\theta^Tx) hθ(x)=g(θTx)
g ( z ) = 1 / ( 1 + e − z ) g(z)=1/(1+e^{-z}) g(z)=1/(1+ez)

Logistic回归模型中,输出的含义:在输入x的情况下, y=1的概率。
h θ ( x ) = P ( y = 1 ∣ x ; θ ) h_\theta(x)=P(y=1|x;\theta) hθ(x)=P(y=1x;θ),意思是当参数为 θ \theta θ时,输入 x x x的情况下, y = 1 y=1 y=1的概率。
例如,0表示良性肿瘤,1表示恶性肿瘤。输出为0.1,表明是恶性肿瘤的概率只有0.1,是良性肿瘤的概率是0.9。如下图:

三、决策界限(Decision Boundary)

h θ ( x ) ≥ 0.5 h_\theta(x)\ge0.5 hθ(x)0.5时,认为 y = 1 y=1 y=1,此时 θ T x ≥ 0 \theta^Tx\ge0 θTx0
h θ ( x ) &lt; 0.5 h_\theta(x)&lt;0.5 hθ(x)<0.5时,认为 y = 0 y=0 y=0,此时 θ T x &lt; 0 \theta^Tx&lt;0 θTx<0
如下图所示:

下图的例子中, x 1 + x 2 = 3 x_1+x_2=3 x1+x2=3这条洋葱紫色的线,就是决策界限(Decision Boundary)。线以上的空间,分类结果是 y = 1 y=1 y=1。线以下的空间,分类结果是 y = 0 y=0 y=0
注意:决策界限不是训练集的属性,而是 h θ ( x ) h_\theta(x) hθ(x)函数的一种属性。一旦 θ \theta θ参数确定了,那么决策界限就也确定了。

更复杂的模型可以拟合出形状更复杂的决策界限。如下图:

四、代价函数(Cost Function)

如果依然使用线性回归中的均方误差来作为代价函数,由于 1 / ( 1 + e − x ) 1/(1+e^{-x}) 1/(1+ex)结构复杂,那么会导致Logistic回归的代价函数是非凸函数(Non-convex Function)。如下图中的左侧所示,非凸函数有多个局部最优解,梯度下降法不能很好地工作。

因此,需要为Logistic回归单独设计其他的代价函数,想到引入log函数,单个样本的代价计算如下:

根据数学知识可以证明,这样的代价函数,是一个凸函数,没有局部最优解。

当真实值是1时,如果预测值也是1,单个样本的代价是0;如果预测值是0,单个样本的代价是无穷大。如下图:

当真实值是0时,如果预测值也是0,单个样本的代价是0;如果预测值是1,单个样本的代价是无穷大。如下图:

五、简化代价函数与梯度下降(Simplified Cost Function and Gradient Descent)

上一小节介绍的代价函数是分段的,我们将分段的两个式子合并成一个,如下:

梯度下降法:(与线性回归的偏导数形式类似)

如果 θ \theta θ有多个参数,那么必须同步更新。
验证算法是否收敛的方法,与线性回归中介绍的一致,可以用图象观察法。
特征缩放,也同样适用于Logistic回归。合适的特征缩放,能够加快梯度下降法的收敛。

讲到这里,你可能会有个疑问,Logistic回归与线性回归有什么差别?
差别在于, h θ ( x ) h_\theta(x) hθ(x)的含义发生了变化,Logistic做了sigmoid处理,使输出能够表示当前输入下, y = 1 y=1 y=1 的概率。

Logistic回归是非常强大的,甚至可以说是世界上应用最广泛的分类算法。

六、高级优化(Advanced Optimization)

除了梯度下降法外,还有其他更复杂更高级的算法来最小化代价函数。如下图中所列出的三种:Conjugate gradient、BFGS、L-BFGS。
它们的优点是:
(1)不需要手动选择学习率。它们拥有“智能内循环”,采用线搜索算法,能自动挑选出最合适的学习率,甚至为每次迭代选用不同的学习率。
(2)收敛速度比梯度下降法更快。它们除了自动选择学习率外,还做了很多其他的优化,此处不做详细介绍。
它们的缺点是:
(1)算法比梯度下降法复杂很多。
吴恩达教授不建议大家去亲自实现算法的细节,他本人也是在不懂细节的情况下,通过调用Octave的库来那三种复杂的算法。

因为高级算法的运行速度明显快于梯度下降,所以在大规模的机器学习中,吴恩达教授本人倾向于使用这三种更复杂高高级的算法,而不是提督学习。

七、多元分类:一对多(Multi-class Classification: One vs All)

One-vs-rest方法:如果有n个类别,就构建n个分类器。
第i个分类器的构建:属于第i个类别的样本作为正样本,其余作为负样本。分类器的输出是当前输入属于第i个类别的概率。

分类方法:输入一个数据,通过n个分类器分别得到n个概率,取概率最大的类别,作为预测的分类结果。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值