6.机器学习之逻辑回归(李宏毅)

6.逻辑回归(Logistic Regression)
6.1 分类问题(Classification)
在分类问题中,如果要预测变量是离散的值,我们要学习的就是叫做逻辑回归的算法。逻辑回归算法就是分类算法,有时候可能因为名字中有回归会困惑,但逻辑回归算法实际上是一种分类算法,适用于标签为离散值的情况。
如果我们要用线性回归算法来解决一个分类问题,对于分类, 𝑦 要取值为 0 或者 1,但如果你使用的是线性回归,那么假设函数的输出值可能远大于 1,或者远小于 0,即使所有训练样本的标签 𝑦 都等于 0 或 1。尽管我们知道标签应该取值 0 或者 1,但是如果算法得到的值远大于 1 或者远小于 0 的话,就会感觉很奇怪。所以我们在接下来的要研究的算法就叫做逻辑回归算法,这个算法的性质是:它的输出值永远在 0 到 1 之间。
6.2 假说表示(Hypothesis Representation)
在分类问题中,要用什么样的函数来表示我们的假设?对于分类问题我们需要分类器的输出值在0~1之间,因此,我们希望想出一个假设函数要有这个性质,就是他的预测值要在0-1之间。
根据线性回归模型我们只能预测连续的值,然而对于分类问题,我们需要输出 0 或 1,我们可以预测:当ℎ𝜃(𝑥) >= 0.5时,预测 𝑦 = 1。当ℎ𝜃(𝑥) < 0.5时,预测 𝑦 = 0 。但有时还是不合适。
我们引入一个新的模型,逻辑回归,该模型的输出变量始终在0~1之间。逻辑回归模型的假设是: ℎ𝜃(𝑥) = 𝑔(𝜃𝑇𝑋) 其中: 𝑋 代表特征向量 𝑔 代表逻辑函数( logistic function)是一个常用的逻辑函数为 S 形函数( Sigmoid function),公式为: 𝑔(𝑧) = 1/(1+𝑒(−𝑧))。
这个函数的图像为:在这里插入图片描述
ℎ𝜃(𝑥)的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1 的可能性( estimated probablity)即ℎ𝜃(𝑥) = 𝑃(𝑦 = 1|𝑥; 𝜃)。如果对于给定的x,计算得到ℎ𝜃(𝑥) = 0.7,则表明有70%的几率y为正向类,相应的y为负向类的几率为1-0.7=0.3。
6.3 判定边界(Decision Boundary)
ℎ𝜃(𝑥) = 𝑔(𝜃𝑇𝑋) , 𝑔(𝑧) = 1/(1+𝑒(−𝑧))。
𝜃𝑇𝑥 >= 0 时,预测 𝑦 = 1;𝜃𝑇𝑥 < 0 时,预测 𝑦 = 0。
现在假设我们有一个模型:在这里插入图片描述
并且参数𝜃 是向量[-3 1 1]。 则当−3 + 𝑥1 + 𝑥2 ≥ 0,即𝑥1 + 𝑥2 ≥ 3时,模型将预测 𝑦 =
1。 我们可以绘制直线𝑥1 + 𝑥2 = 3,这条线便是我们模型的分界线,将预测为 1 的区域和预
测为 0 的区域分隔开。
假使我们的数据呈现这样的分布情况,怎样的模型才能适合呢?在这里插入图片描述
因为需要用曲线才能分隔 𝑦 = 0 的区域和 𝑦 = 1 的区域,我们需要二次方特征:
ℎ𝜃(𝑥) = 𝑔(𝜃0 + 𝜃1𝑥1 + 𝜃2𝑥2 + 𝜃3𝑥12 + 𝜃4𝑥22)是[-1 0 0 1 1],则我们得到的判定边界恰好是圆
点在原点且半径为 1 的圆形。
我们可以用非常复杂的模型来适应非常复杂形状的判定边界。
6.4 代价函数(Cost Function)
现在我们就要拟合逻辑回归模型的参数𝜃。具体来说,我要定义用来拟合参数的优化目标或者叫代价函数,这便是监督学习问题中的逻辑回归模型的拟合问题。
对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将ℎ𝜃(𝑥) = 1/1+𝑒(−𝜃𝑇𝑋)带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数( non-convexfunction)。这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。
线性回归的代价函数为:在这里插入图片描述
我们重新定义逻辑回归的代价函数为:在这里插入图片描述
其中:在这里插入图片描述
这样构建的𝐶𝑜𝑠𝑡(ℎ𝜃(𝑥), 𝑦)函数的特点是:当实际的 𝑦 = 1 且ℎ𝜃(𝑥)也为 1 时误差为 0,当 𝑦 = 1 但ℎ𝜃(𝑥)不为 1 时误差随着ℎ𝜃(𝑥)变小而变大;当实际的 𝑦 = 0 且ℎ𝜃(𝑥)也为 0 时代价为 0,当𝑦 = 0 但ℎ𝜃(𝑥)不为 0 时误差随着 ℎ𝜃(𝑥)的变大而变大。
将构建的 𝐶𝑜𝑠𝑡(ℎ𝜃(𝑥), 𝑦)简化如下:𝐶𝑜𝑠𝑡(ℎ𝜃(𝑥), 𝑦) = −𝑦 × 𝑙𝑜𝑔(ℎ𝜃(𝑥)) − (1 − 𝑦) × 𝑙𝑜𝑔(1 − ℎ𝜃(𝑥)),即在这里插入图片描述
在得到这样一个代价函数以后,我们便可以用梯度下降算法来求得能使代价函数最小的
参数了。算法为:在这里插入图片描述
推导过程:在这里插入图片描述
注:虽然得到的梯度下降算法表面上看上去与线性回归的梯度下降算法一样,但是这里的ℎ𝜃(𝑥) = 𝑔(𝜃𝑇𝑋)与线性回归中不同,所以实际上是不一样的。另外,在运行梯度下降算法之前,进行特征缩放依旧是非常必要的。
一些梯度下降算法之外的选择: 除了梯度下降算法以外,还有一些常被用来令代价函数最小的算法,这些算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法要更加快速。这些算法有: 共轭梯度( Conjugate Gradient), 局部优化法(Broyden fletcher goldfarb shann,BFGS)和有限内存局部优化法(LBFGS) 。
6.5 简化的代价函数和梯度下降(Simplified Cost Function and Gradient Descent)
现在,我们将会找出一种稍微简单一点的方法来写代价函数,同时我们还要弄清楚如何运用梯度下降法,来拟合出逻辑回归的参数。因此,听了这节课,你就应该知道如何实现一个完整的逻辑回归算法。
如果我们要最小化这个关于𝜃的函数值,通常用的是梯度下降法,模板为:在这里插入图片描述
如果你把这个更新规则和我们之前用在线性回归上的进行比较的话,你会惊讶地发现,这个式子正是我们用来做线性回归梯度下降的。那么,线性回归和逻辑回归是同一个算法吗?要回答这个问题,我们要观察逻辑回归看看发生了哪些变化。实际上,假设的定义发生了变化。
对于线性回归假设函数:ℎ𝜃(𝑥) = 𝜃𝑇𝑋 = 𝜃0𝑥0 + 𝜃1𝑥1 + 𝜃2𝑥2+. . . +𝜃𝑛𝑥𝑛,而现在逻辑函数假设函数: ℎ𝜃(𝑥) = 1/(1+𝑒−𝜃𝑇𝑋)。因此,即使更新参数的规则看起来基本相同,但由于假设的定义发生了变化,所以逻辑函数的梯度下降,跟线性回归的梯度下降实际上是两个完全不同的东西。
当使用梯度下降法来实现逻辑回归时,我们有这些不同的参数𝜃,就是𝜃0 𝜃1 𝜃2 一直到𝜃𝑛,我们需要用这个表达式来更新这些参数。我们还可以使用 for 循环来更新这些参数值,用 for i=1 to n,或者 for i=1 to n+1。当然,不用 for 循环也是可以的,理想情况下,我们更提倡使用向量化的实现,可以把所有这些 n 个参数同时更新。
最后还有一点,我们之前在谈线性回归时讲到的特征缩放,我们看到了特征缩放是如何提高梯度下降的收敛速度的,这个特征缩放的方法,也适用于逻辑回归。如果你的特征范围差距很大的话,那么应用特征缩放的方法,同样也可以让逻辑回归中,梯度下降收敛更快。
6.6 高级优化(Advanced Optimization)
6.7 多类别分类:一对多(Multiclass Classification_One-vs-all)
接下来,我们就要使用逻辑回归来解决多分类类别问题,具体来说,是一个叫做"一对多" (one-vs-all) 的分类算法。在这里插入图片描述
现在我们有一个训练集,好比上图表示的有 3 个类别,我们用三角形表示 𝑦 = 1,方框表示𝑦 = 2,叉叉表示 𝑦 = 3。我们下面要做的就是使用一个训练集,将其分成 3 个二元分类问题。
我们先从用三角形代表的类别 1 开始,实际上我们可以创建一个,新的"伪"训练集,类型 2 和类型 3 定为负类,类型 1 设定为正类,我们创建一个新的训练集,如上图所示的那样,我们要拟合出一个合适的分类器。这里的三角形是正样本,而圆形代表负样本。可以这样想,设置三角形的值为 1,圆形的值为 0,下面我们来训练一个标准的逻辑回归分类器,这样我们就得到一个正边界。
为了能实现这样的转变,我们将多个类中的一个类标记为正向类( 𝑦 = 1),然后将其他所有类都标记为负向类,这个模型记作ℎ𝜃(1)(𝑥)。接着,类似地第我们选择另一个类标记为正向类( 𝑦 = 2),再将其它类都标记为负向类,将这个模型记作 ℎ𝜃(2)(𝑥),依此类推。最后我们得到一系列的模型简记为:ℎ𝜃(𝑖)(𝑥) = 𝑝(𝑦 = 𝑖|𝑥; 𝜃)其中: 𝑖 = (1,2,3. . . . 𝑘)在这里插入图片描述
最后,在我们需要做预测时,我们将所有的分类机都运行一遍, 然后对每一个输入变量,
都选择最高可能性的输出变量。总之,我们已经把要做的做完了,现在要做的就是训练这个逻辑回归分类器: ℎ𝜃(𝑖)(𝑥),其中 𝑖 对应每一个可能的 𝑦 = 𝑖,最后,为了做出预测,我们给出输入一个新的 𝑥 值,用这个做预测。我们要做的就是在我们三个分类器里面输入 𝑥,然后我们选择一个让 ℎ𝜃(𝑖)(𝑥)最大的𝑖,即max ℎ(𝑖 𝜃)(𝑥)。
知道了基本的挑选分类器的方法,选择出哪一个分类器是可信度最高效果最好的,那么就可认为得到一个正确的分类,无论𝑖值是多少,我们都有最高的概率值,我们预测𝑦就是那个值。这就是多类别分类问题,以及一对多的方法,通过这个小方法,你现在也可以将逻辑回归分类器用在多类分类的问题上。

相关链接:机器学习之正则化(李宏毅)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值