台湾大学林轩田机器学习基石课程学习笔记10 -- Logistic Regression

红色石头的个人网站:redstonewill.com

上一节课,我们介绍了Linear Regression线性回归,以及用平方错误来寻找最佳的权重向量w,获得最好的线性预测。本节课将介绍Logistic Regression逻辑回归问题。

一、Logistic Regression Problem

一个心脏病预测的问题:根据患者的年龄、血压、体重等信息,来预测患者是否会有心脏病。很明显这是一个二分类问题,其输出y只有{-1,1}两种情况。

二元分类,一般情况下,理想的目标函数f(x)>0.5,则判断为正类1;若f(x)<0.5,则判断为负类-1。

这里写图片描述

但是,如果我们想知道的不是患者有没有心脏病,而是到底患者有多大的几率是心脏病。这表示,我们更关心的是目标函数的值(分布在0,1之间),表示是正类的概率(正类表示是心脏病)。这跟我们原来讨论的二分类问题不太一样,我们把这个问题称为软性二分类问题(’soft’ binary classification)。这个值越接近1,表示正类的可能性越大;越接近0,表示负类的可能性越大。

这里写图片描述

对于软性二分类问题,理想的数据是分布在[0,1]之间的具体值,但是实际中的数据只可能是0或者1,我们可以把实际中的数据看成是理想数据加上了噪声的影响。

这里写图片描述

如果目标函数是 f(x)=P(+1|x)[0,1] f ( x ) = P ( + 1 | x ) ∈ [ 0 , 1 ] 的话,我们如何找到一个好的Hypothesis跟这个目标函数很接近呢?

首先,根据我们之前的做法,对所有的特征值进行加权处理。计算的结果s,我们称之为’risk score’:

这里写图片描述

但是特征加权和 s(,+) s ∈ ( − ∞ , + ∞ ) ,如何将s值限定在[0,1]之间呢?一个方法是使用sigmoid Function,记为 θ(s) θ ( s ) 。那么我们的目标就是找到一个hypothesis: h(x)=θ(wTx) h ( x ) = θ ( w T x )

这里写图片描述

Sigmoid Function函数记为 θ(s)=11+es θ ( s ) = 1 1 + e − s ,满足 θ()=0 θ ( − ∞ ) = 0 θ(0)=12 θ ( 0 ) = 1 2 θ(+)=1 θ ( + ∞ ) = 1 。这个函数是平滑的、单调的S型函数。则对于逻辑回归问题,hypothesis就是这样的形式:

h(x)=11+ewTx h ( x ) = 1 1 + e − w T x

那我们的目标就是求出这个预测函数h(x),使它接近目标函数f(x)。

二、Logistic Regression Error

现在我们将Logistic Regression与之前讲的Linear Classification、Linear Regression做个比较:

这里写图片描述

这三个线性模型都会用到线性scoring function s=wTx s = w T x 。linear classification的误差使用的是0/1 err;linear regression的误差使用的是squared err。那么logistic regression的误差该如何定义呢?

先介绍一下“似然性”的概念。目标函数 f(x)=P(+1|x) f ( x ) = P ( + 1 | x ) ,如果我们找到了hypothesis很接近target function。也就是说,在所有的Hypothesis集合中找到一个hypothesis与target function最接近,能产生同样的数据集D,包含y输出label,则称这个hypothesis是最大似然likelihood。

这里写图片描述

logistic function: h(x)=θ(wTx) h ( x ) = θ ( w T x ) 满足一个性质: 1h(x)=h(x) 1 − h ( x ) = h ( − x ) 。那么,似然性h:

likelihood(h)=P(x1)h(+x1)×P(x2)h(x2)×P(xN)h(xN) l i k e l i h o o d ( h ) = P ( x 1 ) h ( + x 1 ) × P ( x 2 ) h ( − x 2 ) × ⋯ P ( x N ) h ( − x N )

因为 P(xn) P ( x n ) 对所有的h来说,都是一样的,所以我们可以忽略它。那么我们可以得到logistic h正比于所有的 h(ynx) h ( y n x ) 乘积。我们的目标就是让乘积值最大化。

这里写图片描述

如果将w代入的话:

这里写图片描述

为了把连乘问题简化计算,我们可以引入ln操作,让连乘转化为连加:

这里写图片描述

接着,我们将maximize问题转化为minimize问题,添加一个负号就行,并引入平均数操作 1N 1 N

这里写图片描述

将logistic function的表达式带入,那么minimize问题就会转化为如下形式:

这里写图片描述

至此,我们得到了logistic regression的err function,称之为cross-entropy error交叉熵误差:

这里写图片描述

三、Gradient of Logistic Regression Error

我们已经推导了 Ein E i n 的表达式,那接下来的问题就是如何找到合适的向量w,让 Ein E i n 最小。

这里写图片描述

Logistic Regression的 Ein E i n 是连续、可微、二次可微的凸曲线(开口向上),根据之前Linear Regression的思路,我们只要计算 Ein E i n 的梯度为零时的w,即为最优解。

这里写图片描述

Ein E i n 计算梯度,学过微积分的都应该很容易计算出来:

这里写图片描述

最终得到的梯度表达式为:

这里写图片描述

为了计算 Ein E i n 最小值,我们就要找到让 Ein(w) ∇ E i n ( w ) 等于0的位置。

这里写图片描述

上式可以看成 θ(ynwTxn) θ ( − y n w T x n ) ynxn − y n x n 的线性加权。要求 θ(ynwTxn) θ ( − y n w T x n ) ynxn − y n x n 的线性加权和为0,那么一种情况是线性可分,如果所有的权重 θ(ynwTxn) θ ( − y n w T x n ) 为0,那就能保证 Ein(w) ∇ E i n ( w ) 为0。 θ(ynwTxn) θ ( − y n w T x n ) 是sigmoid function,根据其特性,只要让 ynwTxn0 − y n w T x n ≪ 0 ,即 ynwTxn0 y n w T x n ≫ 0 ynwTxn0 y n w T x n ≫ 0 表示对于所有的点, yn y n wTxn w T x n 都是同号的,这表示数据集D必须是全部线性可分的才能成立。

然而,保证所有的权重 θ(ynwTxn) θ ( − y n w T x n ) 为0是不太现实的,总有不等于0的时候,那么另一种常见的情况是非线性可分,只能通过使加权和为零,来求解w。这种情况没有closed-form解,与Linear Regression不同,只能用迭代方法求解。

这里写图片描述

之前所说的Linear Regression有closed-form解,可以说是“一步登天”的;但是PLA算法是一步一步修正迭代进行的,每次对错误点进行修正,不断更新w值。PLA的迭代优化过程表示如下:

这里写图片描述

w每次更新包含两个内容:一个是每次更新的方向 ynxn y n x n ,用 v v 表示,另一个是每次更新的步长η。参数 (v,η) ( v , η ) 和终止条件决定了我们的迭代优化算法。

这里写图片描述

四、Gradient Descent

根据上一小节PLA的思想,迭代优化让每次w都有更新:

这里写图片描述

我们把 Ein(w) E i n ( w ) 曲线看做是一个山谷的话,要求 Ein(w) E i n ( w ) 最小,即可比作下山的过程。整个下山过程由两个因素影响:一个是下山的单位方向 v v ;另外一个是下山的步长η

这里写图片描述

利用微分思想和线性近似,假设每次下山我们只前进一小步,即 η η 很小,那么根据泰勒Taylor一阶展开,可以得到:

Ein(wt+ηv)Ein(wt)+ηvTEin(wt) E i n ( w t + η v ) ≈ E i n ( w t ) + η v T ∇ E i n ( w t )

关于Taylor展开的介绍,可参考我另一篇博客:
多元函数的泰勒(Taylor)展开式

迭代的目的是让 Ein E i n 越来越小,即让 Ein(wt+ηv)<Ein(wt) E i n ( w t + η v ) < E i n ( w t ) η η 是标量,因为如果两个向量方向相反的话,那么他们的内积最小(为负),也就是说如果方向 v v 与梯度Ein(wt)反向的话,那么就能保证每次迭代 Ein(wt+ηv)<Ein(wt) E i n ( w t + η v ) < E i n ( w t ) 都成立。则,我们令下降方向 v v 为:

v=Ein(wt)||Ein(wt)||

v v 是单位向量,v每次都是沿着梯度的反方向走,这种方法称为梯度下降(gradient descent)算法。那么每次迭代公式就可以写成:

wt+1wtηEin(wt)||Ein(wt)|| w t + 1 ← w t − η ∇ E i n ( w t ) | | ∇ E i n ( w t ) | |

下面讨论一下 η η 的大小对迭代优化的影响: η η 如果太小的话,那么下降的速度就会很慢; η η 如果太大的话,那么之前利用Taylor展开的方法就不准了,造成下降很不稳定,甚至会上升。因此, η η 应该选择合适的值,一种方法是在梯度较小的时候,选择小的 η η ,梯度较大的时候,选择大的 η η ,即 η η 正比于 ||Ein(wt)|| | | ∇ E i n ( w t ) | | 。这样保证了能够快速、稳定地得到最小值 Ein(w) E i n ( w )

这里写图片描述

对学习速率 η η 做个更修正,梯度下降算法的迭代公式可以写成:

wt+1wtηEin(wt) w t + 1 ← w t − η ′ ∇ E i n ( w t )

其中:
η=η||Ein(wt)|| η ′ = η | | ∇ E i n ( w t ) | |

总结一下基于梯度下降的Logistic Regression算法步骤如下:

  • 初始化 w0 w 0
  • 计算梯度 Ein(wt)=1NNn=1θ(ynwTtxn)(ynxn) ∇ E i n ( w t ) = 1 N ∑ n = 1 N θ ( − y n w t T x n ) ( − y n x n )
  • 迭代跟新 wt+1wtηEin(wt) w t + 1 ← w t − η ∇ E i n ( w t )
  • 满足 Ein(wt+1)0 ∇ E i n ( w t + 1 ) ≈ 0 或者达到迭代次数,迭代结束

五、总结

我们今天介绍了Logistic Regression。首先,从逻辑回归的问题出发,将 P(+1|x) P ( + 1 | x ) 作为目标函数,将 θ(wTx) θ ( w T x ) 作为hypothesis。接着,我们定义了logistic regression的err function,称之为cross-entropy error交叉熵误差。然后,我们计算logistic regression error的梯度,最后,通过梯度下降算法,计算 Ein(wt)0 ∇ E i n ( w t ) ≈ 0 时对应的 wt w t 值。

注明:

文章中所有的图片均来自台湾大学林轩田《机器学习基石》课程

关注公众号并输入关键字“jspdf”获得该笔记的pdf文件哦~

更多AI资源请关注公众号:红色石头的机器学习之路(ID:redstonewill)
这里写图片描述

  • 14
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: 机器学习中的逻辑回归Logistic Regression)是一种用于分类问题的监督学习算法。它被广泛应用于各种领域,如金融、医疗、社交网络等。 逻辑回归的基本原理是利用一个线性模型,将输入特征与输出结果之间的关系进行建模。然后通过在线性模型的基础上引入一个逻辑函数(sigmoid函数),将输出结果映射到一个概率值。 具体来说,逻辑回归算法通过对训练数据进行学习,估计出模型的参数,使得模型能够对新的输入样本进行分类预测。在训练过程中,逻辑回归通过最大化似然函数的方法来估计模型的参数。常用的优化算法有梯度下降法、牛顿法等。 逻辑回归的一个重要应用是二分类问题,其中输出结果只有两个类别。通过设置一个阈值,将模型输出的概率值映射为两个类别中的一个。 逻辑回归的优点包括简单、可解释性强、计算效率高。同时,逻辑回归对于处理大规模数据集和高维数据也具有较好的适应性。然而,逻辑回归也有一些不足之处,例如无法处理非线性关系以及对异常值比较敏感。 总之,逻辑回归是一种经典的机器学习算法,既简单又有效。它在各种分类问题中得到了广泛应用,并且在实际应用中表现良好。 ### 回答2: 机器学习中的逻辑回归Logistic Regression)是一种常用的分类算法。它通过建立一个逻辑回归模型,将输入的特征与相应的类别进行关联。 逻辑回归可以处理二分类问题,也可以通过修改为多类别问题进行处理。它的核心思想是使用逻辑函数(也称为Sigmoid函数)将线性回归模型的输出映射到[0,1]之间,从而得到样本属于某个类别的概率。 逻辑回归的训练过程主要包括两个步骤:参数初始化和优化。参数初始化就是设置模型的初始权重和偏置,然后通过最优化算法(如梯度下降法)来迭代地更新参数,使得模型的损失函数最小化。 逻辑回归的优势在于它计算速度快、实现简单,且对大规模数据集的处理效果较好。它能够处理线性可分问题,并且可以通过引入正则化技术来防止过拟合。 然而,逻辑回归也有一些限制。由于它是基于线性模型的,对于非线性关系的分类问题,逻辑回归可能无法很好地适应。此外,逻辑回归对特征的选择和预处理较为敏感,需要进行适当的特征工程。 总的来说,逻辑回归是一种简单且有效的分类算法,特别适用于二分类问题。尽管有其局限性,但在实际应用中,逻辑回归仍然被广泛使用,并且可以作为其他更复杂模型的基础。 ### 回答3: 机器学习中的逻辑回归logistic regression)是一种用于分类问题的机器学习算法。逻辑回归被广泛应用于各个领域,如医学诊断、金融风险评估、文本分类等。 逻辑回归的基本思想是通过对输入变量和输出变量之间的关系进行建模来进行分类。它用到了一个逻辑函数(logistic function),将输入变量的线性组合映射到0和1之间的概率值。逻辑函数通常是sigmoid函数,常用的形式是1 / (1 + exp(-z)),其中z是输入变量的线性组合。 训练逻辑回归模型的过程是通过最大似然估计来拟合模型参数。最大似然估计的目标是找到能最大化观测到的样本的条件概率的参数。为了实现这一点,通常使用梯度下降法来最小化损失函数。损失函数可以是似然函数的负对数,即对数损失函数。 逻辑回归有一些优点。首先,它是一种简单而直观的模型,易于理解和实现。其次,逻辑回归模型的参数可以通过梯度下降等优化算法进行有效求解。此外,逻辑回归模型具有较好的解释性,可以通过参数的符号和大小了解自变量与因变量的关系。 然而,逻辑回归也有一些限制。首先,它通常只适用于处理线性可分的问题。其次,逻辑回归模型对于特征之间的相关性比较敏感,如果特征之间具有高度相关性,可能导致模型出现过拟合现象。此外,逻辑回归模型的输出是概率值,对于某些任务可能不够精确。 总之,逻辑回归是一种常用的机器学习算法,用于解决分类问题。其简单而直观的思想和容易求解的特点使其在实际应用中非常有用。但需要注意逻辑回归的局限性,并结合具体问题选择合适的模型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

红色石头Will

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值