前言

跳过了编程教学,这里直接开始离散变量的机器学习的新一章节。本课程是笔记是笔者自学吴恩达教授的机器学习课程课程的感想和对重要知识点的归纳。前几章已经深入学习了连续性变量的一个机器学习算法(梯度下降算法),接下来的部分将开始离散性变量算法的学习。

分类问题

image-20210112144114559

以肿瘤分类问题为例,我们也可以在图像中拟合出一个函数,然后设定一个阈值(threshold),当超过阈值时结果(离散量)为一个值,当未超过阈值时结果为另一个值。

image-20210112145451447

但显然当自变量在较大值处有点的话,线性回归会非常影响结果,如上图所示。为了得到一致假设而使假设变得过度严格情况,被称为过拟合。

接下来将介绍一种分类算法——对数(Logistic)回归算法

Logistic回归算法

叙述与定义

我们首先定义一个Sigmoid函数:(图片来自:WikiPedia)其也被称为Logistic函数。

image-20210112150952219

我们定义其中的x为θTx,则函数hθ(x)可以表示为:

image-20210112151521421

其图像可以绘制在坐标轴上,得到下图:

image-20210112151609245

我们可以从图中清晰地看到,g(z)的值域为[0,1],则hθ(x)值域同样为[0,1]。实际上,hθ(x)可以理解为当输入为x时,得到y=hθ(x)的概率的大小。

决策边界

从上图中我们可以看到,当z≥0时,g(z)≥0.5,也即当θTx≥0,g(θTx)≥0.5,当z<0时同理。这也就是说,我们将以前范围较大的x的值放缩到了0到1之间,且尽可能的保证了原分类的准确度。一般这么假设:

image-20210112155930304

假设我们已经对一个分类问题的参数进行了拟合,并得到了相关参数,那么我们就可以得到一个不等式(及其图像)用来预测结果。例如:

image-20210112160515011

上图中,预测”y=1”时,则有θTx≥0,即θ01x12x2≥0。又我们已知θ的参数,那么经过代入和移项可以得到:x1+x2≥3。在图中我们可以看到这条线(θ01x12x2=0)很好地将待分类的两个区域隔开了,其中该线以上部分被视作y=1区域,该线以下区域被视作y=0区域。这个方程(图中的直线)就被称为决策边界。

通过数据集内容的训练,我们可以得到一个较为准确的θ0、θ1、θ2的参数,有了这些参数我们就能够精准地得到决策边界。

下面讨论一个更复杂的情形。我们在之前学习线性回归时曾提到,遇到复杂问题时,线性回归可以通过增加高次项来用多项式回归更好地解决问题。在Logistic回归问题上也可以采取类似的办法,例如:

image-20210112161951261

算法核心与线性Logistic回归相差无几,无非是把线性函数hθ(x)转化为多项式的高次形式(升阶)。显然,无论是线性或者非线性的;Logistic回归,θ决定了决策边界。

如何拟合Logistic回归

我们讨论的问题是:在给定训练集后,我们要通过什么方法来获得被拟合假设函数的参数。

image-20210112163228731

同前面学过的线性回归的求参过程类似,我们首先要设一个误差函数J(θ)。需要注意的是,如果我们使用线性回归的误差函数:

image-20210109162544635

那么此时误差函数J(θ)将不一定能有全局最小值,这是因为hθ(x)是非线性的了。这就要求我们要为logistic算法另找一个代价函数:

image-20210112164249321

注意:因为hθ(x)的取值范围为(0,1],所以-log(hθ(x))的取值范围为[0,+∞),且为单调减。如下图:

image-20210112170155621

同理,hθ(x)的取值范围为(0,1],所以1-log(hθ(x))的取值范围为[0,+∞),且为单调增。如下图:

image-20210112170832926

利用代价函数我们就可以使用梯度下降求参了,进而得到最终形态的Logistic回归算法。总结一下,Logistic回归的代价函数应该为:

image-20210112171110686

我们也可以把y=0和y=1两种情况合二为一,用一个函数表示:(指正:左中括号位置应该在求和符号之后)

image-20210112171420778

利用梯度下降求参

当得到J(θ)后,我们接下来的工作是求一个能使误差函数J(θ)取最小值的θ。同样的,我们利用梯度下降法来求参:

image-20210112172117559

惊奇地发现,尽管hθ(x)的定义发生了变化,但我们得到的θj递推式与线性回归方程得到的θj递推式完全一致。

多类别分类问题

image-20210112174247060

与先前讨论的问题不同,现在我们的分类问题拓展到了两类以上。为了解决这个问题,我们其实可以将多类问题分割为多个两类问题。以三类问题为例,我们可以将其分为三个独立的二类问题。即多次设立伪类,来分别区分不同的真类,如下图所示:

image-20210112174716058

总结起来,我们得到了一个逻辑回归分类器,可以预测i类别y=i的概率。

总结

本节课程,又学习了一种新的机器学习算法——Logistic回归算法。它是专门用来解决分类问题的一种机器学习算法。本次课程的难度陡然上升,需要不断复习,加强巩固。快到了重头戏神经元与神经网络算法的部分了,继续加油!