机器学习6.1-6.7:Logistic回归

这篇博客介绍了逻辑回归在分类问题中的应用,特别是在二元分类中的决策边界和模型假设。内容涵盖模型训练、代价函数、梯度下降以及优化算法。此外,还讨论了一对多分类策略,将多分类问题转化为多个二分类问题的解决方法。
摘要由CSDN通过智能技术生成

6.1 分类

当预测的值为离散型变量时,我们将这类问题归于监督学习的分类问题。举例来说,垃圾邮件的判断,肿瘤良性恶性的判别等即属此类。
预测的值仅为0或1时,0被称为负类(negative class),1被称为正类(positive class)。 但同时,我们也存在多分类的问题,比如优良中差等级评定等问题。如图所示:
在这里插入图片描述

6.2 模型假设

我们在这里引入一个新的模型——逻辑回归(Logistic regression)。 同时,我们还要补充一个函数知识:
逻辑函数 (logistic function) ,它保证了输出一定位于0-1之间。
g ( x ) = 1 1 + e − z g(x) = \frac{1}{1+e^{-z}} g(x)=1+ez1
其函数图像如图所示:
在这里插入图片描述
逻辑回归模型认为,或者说,有这样的假设:
h θ ( x ) = g ( θ T x ) h_\theta(x) = g(\theta^Tx) hθ(x)=g(θTx)
即:
h θ ( x ) = 1 1 + e − θ T x h_\theta(x) = \frac{1}{1+e^{-\theta^{T}x}} hθ(x)=1+eθTx1
在这里, h θ ( x ) h_\theta(x) hθ(x)代表概率,即根据输入值得出输出为1的概率。举例来说,这里有一个输入:
在这里插入图片描述
x 0 x_0 x0仍然和线性回归时一样为1, x 1 x_1 x1为肿瘤大小。我们根据给定的x值得出 h θ ( x ) = 0.7 h_\theta(x) = 0.7 hθ(x)=0.7,说明输出值为1的概率为0.7,即恶性肿瘤的概率为0.7。 用数学表达式来阐述的话就是:
h θ ( x ) = P ( y = 1 ∣ x ; θ ) h_\theta(x) = P(y=1|x;\theta) hθ(x)=P(y=1∣x;θ)即在给定条件x的情况下,y=1的概率。这个概率的参数为 θ \theta θ.

6.3 决策边界

仍以上一节例子继续阐述。
在这里插入图片描述
在这里,我们以0.5为分界线。
h θ ( x ) ≥ 0.5 时,预测 y = 1 h_\theta(x) \geq 0.5时,预测y=1 hθ(x)0.5时,预测y=1
h θ ( x ) < 0.5 时,预测 y = 0 h_\theta(x) < 0.5时,预测y=0 hθ(x)<0.5时,预测y=0
我们之前说过的逻辑函数有一个很好的性质,如上图所示,当函数值大于0.5时,自变量大于0;当函数值小于0.5时,自变量小于0。所以可以得出以下结论:
θ T x ≥ 0 时,预测 y = 1 \theta^Tx \geq0时,预测y = 1 θTx0时,预测y=1
θ T x < 0 时,预测 y = 0 \theta^Tx <0时,预测y=0 θTx<0时,预测y=0
接下来我们进入模型训练,假设我们已经拟定好了模型的参数:
θ = [ − 3 1 1 ] \theta = \begin{bmatrix} -3 \\ 1 \\1 \end{bmatrix} θ= 311
现在要对以下的数据集进行预测:
在这里插入图片描述
根据我们上文提到的公式,要预测"y=1",则需要 − 3 + x 1 + x 2 ≥ 0 -3+x_1+x_2 \geq 0 3+x1+x20;要预测"y =0",则需要 − 3 + x 1 + x 2 < 0 -3+x_1+x_2<0 3+x1+x2<0(反之依然成立)。
在上图中作出 − 3 + x 1 + x 2 = 0 -3 + x_1+x_2=0 3+x1+x2=0的图像,如图所示:
在这里插入图片描述
因此,我们认定为恶性肿瘤的区域即为直线的上方区域,认定为良性肿瘤的区域为直线的下方区域,这条直线即被称为决策边界(decision boundary)
我们还给出一个较为复杂的例子,如图所示:
在这里插入图片描述
这里我们不加证明的使用 h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 ) h_\theta(x) = g(\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1^2+\theta_4x_2^2) hθ(x)=g(θ0+θ1x1+θ2x2+θ3x12+θ4x22)作为我们的假设函数,同时令:
θ 0 = − 1 , θ 1 = 0 , θ 2 = 0 , θ 3 = 1 , θ 4 = 1 \theta_0 = -1,\theta_1 = 0,\theta_2=0,\theta_3=1,\theta_4=1 θ0=1,θ1=0,θ2=0,θ3=1,θ4=1
即 θ = [ − 1 0 0 1 1 ] 即\theta = \begin{bmatrix} -1\\0\\0\\1\\1 \end{bmatrix} θ= 10011
因此,当 − 1 + x 1 2 + x 2 2 ≥ 0 时, y = 1 ; − 1 + x 1 2 + x 2 2 < 0 时 , y = 0 。 -1+x_1^2+x_2^2 \ge0时,y=1;-1+x_1^2+x_2^2 <0时,y=0。 1+x12+x220时,y=1;1+x12+x22<0,y=0
作出决策边界如下:
在这里插入图片描述
在这里我们得出了一个更为复杂的决策边界。实际上,通过改变参数 θ \theta θ的值,我们可以创造非常多样化的决策边界。

6.4 代价函数

一个典型的Logistic回归问题所具有的条件是这样的:

训练集:{( x ( 1 ) x^{(1)} x(1), y ( 1 ) y^{(1)} y(1)),( x ( 2 ) x^{(2)} x(2), y ( 2 ) y^{(2)} y(2))…( x ( m ) x^{(m)} x(m), y ( m ) y^{(m)} y(m))};一共有m个样本。
变量:任一x均为向量形式的变量“合集”,即: x ( i ) = { x 0 x 1 . . . x n } x^{(i)}= \begin{Bmatrix} x_0 \\ x_1 \\... \\x_n \end{Bmatrix} x(i)= x0x1...xn ,其中 x 0 = 1 x_0 = 1 x0=1 y ∈ [ 0 , 1 ] y\in[0,1] y[0,1]
函数 h θ ( x ) = 1 1 + e − θ T x h_{\theta}(x) = \frac{1}{1+e^{-\theta^T}x} hθ(x)=1+eθTx1

另外,我们将原来线性回归里的损失函数形式:
J ( θ ) = 1 m ∑ i = 1 m 1 2 ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta)= \frac{1}{m} \sum_{i=1}^m\frac{1}{2}(h_{\theta}(x^{(i)})-y^{(i)})^2 J(θ)=m1i=1m21(hθ(x(i))y(i))2
改写为以下形式:
定义函数:
C o s t ( h θ ( x ( i ) ) , y ( i ) ) = 1 2 ( h θ ( x ( i ) ) − y ( i ) ) 2 Cost(h_{\theta}(x^{(i)}),y^{(i)})=\frac{1}{2}(h_{\theta}(x^{(i)})-y^{(i)})^2 Cost(hθ(x(i)),y(i))=21(hθ(x(i))y(i))2
或者进一步地,去掉这些上标,即考虑整个样本内的情况:
C o s t ( h θ ( x ) , y ) = 1 2 ( h θ ( x ) − y ) 2 Cost(h_{\theta}(x),y)=\frac{1}{2}(h_{\theta}(x)-y)^2 Cost(hθ(x),y)=21(hθ(x)y)2
但是,实践表明,在 h θ ( x ) = 1 1 + e − θ T x h_{\theta}(x) = \frac{1}{1+e^{-\theta^T}x} hθ(x)=1+eθTx1的情况下,该损失函数的图像是一个非凸函数(non-convex function) 而不是一个凸函数(convex_function)。其原因在于 h θ ( x ) h_{\theta}(x) hθ(x)并不与线性回归的预测函数一致,是一个线性函数。


若对非凸函数使用梯度下降法,则它很难收敛到全局最小值 若对非凸函数使用梯度下降法,则它很难收敛到全局最小值 若对非凸函数使用梯度下降法,则它很难收敛到全局最小值
因此,我们考虑引入一种新的损失函数,该损失函数需要满足以下特点:

  • y = 1 , h θ ( x ) = 0 y=1, h_{\theta}(x)=0 y=1,hθ(x)=0时,损失函数应该有最大值。
  • y = 0 , h θ ( x ) = 1 y=0, h_{\theta}(x)=1 y=0,hθ(x)=1时,损失函数应该有最大值。
  • 有全局最小值,最好没有局部最小值

考虑到此时的预测函数特点,我们定义损失函数如下:
C o s t ( h θ ( x ) , y ) = { − l o g ( h θ ( x ) ) , y = 1 时 − l o g ( 1 − h θ ( x ) ) , y = 0 时 Cost(h_{\theta}(x),y) =\begin{cases} -log(h_{\theta}(x))&,y=1时 \\-log(1-h_{\theta}(x))&,y=0时 \end{cases} Cost(hθ(x),y)={log(hθ(x))log(1hθ(x)),y=1,y=0

在这里插入图片描述在这里插入图片描述
如上图所示

6.5 简化后的损失函数以及梯度下降

根据之前所说的,分类问题下的损失函数可以表示为:
C o s t ( h θ ( x ) , y ) = { − l o g ( h θ ( x ) ) , y = 1 时 − l o g ( 1 − h θ ( x ) ) , y = 0 时 Cost(h_{\theta}(x),y) =\begin{cases} -log(h_{\theta}(x))&,y=1时 \\-log(1-h_{\theta}(x))&,y=0时 \end{cases} Cost(hθ(x),y)={log(hθ(x))log(1hθ(x)),y=1,y=0
由于分类问题下,数据集中的样本Y值要么为0要么为1。基于此,我们考虑将上面的损失函数合并成一个函数以简化使用。
C o s t ( h θ ( x ) , y ) = − y log ⁡ ( h θ ( x ) ) − ( 1 − y ) log ⁡ ( 1 − h θ ( x ) ) Cost(h_{\theta}(x),y) = -y\log(h_{\theta}(x))-(1-y)\log(1-h_{\theta}(x)) Cost(hθ(x),y)=ylog(hθ(x))(1y)log(1hθ(x))
考虑“上标”问题(更为严谨的写法):
J ( θ ) = 1 m ∑ i = 1 m C o s t ( h θ ( x i ) , y ( i ) ) J(\theta)= \frac{1}{m}\sum_{i=1}^mCost(h_{\theta}(x^{i}),y^{(i)}) J(θ)=m1i=1mCost(hθ(xi),y(i))
= − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] = - \frac{1}{m}\sum_{i=1}^{m} [y^{(i)}\log(h_{\theta}(x^{(i)}))+(1-y^{(i)})\log(1-h_{\theta}(x^{(i)}))] =m1i=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]
然后,类比我们之前在线性回归中使用的梯度下降法:
θ j : = θ j − α ∂ J ( θ 0 , θ 1 . . . θ n ) ∂ θ j \theta_j := \theta_j - \alpha \frac{\partial J(\theta_0,\theta_1...\theta_n)}{\partial \theta_j} θj:=θjαθjJ(θ0,θ1...θn)
带入 J ( θ ) J(\theta) J(θ):
= θ j − α ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) =\theta_j - \alpha \sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)} =θjαi=1m(hθ(x(i))y(i))xj(i)
上式中, 1 m \frac{1}{m} m1被归到了学习率 α \alpha α中。
实际上,对比之前在线性回归中的梯度下降法,我们会惊讶地发现两者惊人的一致。
线性回归中的梯度下降:
θ 1 : = θ 1 − α 1 m ∑ i = 1 m ( ( θ 0 + θ 1 x i ) − y i ) ∗ x i \theta_1 := \theta_1 - \alpha\frac{1}{m}\sum_ {i=1}^m((\theta_0 + \theta_1x_i) - y_i)*x_i θ1:=θ1αm1i=1m((θ0+θ1xi)yi)xi
= θ 1 − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ) x 1 ( i ) =\theta_1-\alpha\frac{1}{m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y)x_1^{(i)} =θ1αm1i=1m(hθ(x(i))y)x1(i)

6.6 高级优化

我们现在设计机器学习算法的目的是找到最优的模型参数 θ \theta θ。为此,我们需要计算两个量:

  • 损失函数 J ( θ ) J(\theta) J(θ)
  • 偏导数 ∂ ∂ θ J ( θ ) \frac{\partial}{\partial\theta}J(\theta) θJ(θ)

相对应的,我们目前有这些优化算法:

  • 梯度下降
  • 共轭梯度法
  • BFGS
  • L-BFGS

后面加粗的这些算法相较梯度下降来说更有优势,它们收敛的更快,可以智能选择学习率,同时也更为复杂。

6.7 一对多(one-vs-all)的分类问题

除开上文所述的二元(binary)分类问题以外,我们通常还会遇到以下一些问题:

天气有晴,雨,多云,雪等类别
病人的癌症有肝癌,肺癌,胃癌等类别

如果以图像的形式来看的话就如下图所示:
在这里插入图片描述
上图同时也描述了在现有框架下的一种解决方法。如图所示,将问题转变为三个二分类问题依次构造分类器。同时也起到了交叉验证的效果。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值