CS229学习笔记之分类问题与逻辑回归

时间:2021-03-13 23:52:41

系列第三篇~

之前我们讨论的是回归问题,即输出是连续值,现在我们来讨论输出是离散值的分类问题。首先,我们专注于二元分类问题,即输出 y 只能取 0 1 两个值。

逻辑回归

如果将线性回归模型直接应用于分类问题,会产生取值不在 0 和 1 之间的问题,所以我们引入逻辑回归模型

hθ(x)=g(θTx)=11+eθTx

其中
g(z)=11+ez

被称为 逻辑函数S 型函数,其图像如下:

![Alt text|center|300*0](./屏幕快照 2017-05-14 下午9.34.26.png)

可以看到,当 z+ g(z) 趋向于 1 , 当 z g(z) 趋向于 0 ,即 g(z) 的值域为 (0,1) ,至于为什么要选择这个函数,在之后会作出解释。

首先给出一个关于 S 型函数求导的有用性质:

g(z)=ddz11+ez=1(1+ez)2(ez)=11+ez(111+ez)=g(z)(1g(z))

确定了模型之后,我们需要找到合适的 θ 的值。这里采用之前使用的 最大似然法来选择参数。(假设函数可以直接看作概率分布)

首先,二元分类符合伯努利分布,我们假设:

P(y=1x;θ)P(y=0x;θ)=hθ(x)=1hθ(x)

将上面的公式合二为一,得到:
P(yx;θ)=(hθ(x))y(1hθ(x))1y

假定 m 个样本之间相互独立,我们可以得到 θ 的似然函数如下:
L(θ)=p(y⃗ X;θ)=i=1mp(y(i)x(i);θ)=i=1m(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)

与之前类似,为了计算方便,我们使用对数似然函数来进行最大化分析:
(θ)=logL(θ)=i=1my(i)logh(x(i))+(1y(i))log(1h(x(i)))

下面要做的是找到 θ 使得 (θ) 最大,由于这里是找最大值而非最小值,所以使用 梯度上升(gradient ascent),更新规则是 θ:=θ+αθ(θ) ,对于随机梯度上升(每次只考虑一个样本),求导过程如下:
θj(θ)=(y1g(θTx)(1y)11g(θTx))θjg(θTx)=(y1g(θTx)(1y)11g(θTx))g(θTx)(1g(θTx))θjθTx=(y(1g(θTx))(1y)g(θTx))xj=(yhθ(x))xj

在计算过程中使用到了 S 型函数的求导性质。综上所述,我们得到随机梯度上升的更新规则是:

θj:=θj+α(y(i)hθ(x(i)))x(i)j

这个公式和线性回归中梯度下降的公式表面上看是一样的,但实际上两者的 hθ(x) 有所不同。关于更加深层次的讨论,请参看之后的 GLM 模型章节。

感知器学习算法

这里谈感知器,好像有些离题,但感知机的函数定义如下:

g(z)={1ifz00ifz<0

可以看到它是逻辑回归的s型函数的简化形式,逻辑函数是连续的在 [0,1] 区间上,而感知器直接非0则1。如果我们令 hθ(x)=g(θTx) ,得到如下的更新规则:
θj:=θj+α(y(i)hθ(x(i)))x(i)j

感知器学习算法

19世纪60年代,感知器被看作是大脑工作中独立神经元的粗糙的模型,由于简单,会用作后面介绍的学习理论的起点。虽然直观看上去,感知器和之前看到的逻辑回归或线性回归很像,但是其实是非常不一样的算法。 因为,对于感知器,很难赋予一种有意义的概率解释,或使用最大似然估计算法来进行推导。

牛顿方法

下面我们介绍另外一种算法来求解 (θ) 的最大值,称为牛顿方法

我们通过如下的几张图来理解牛顿方法:

CS229学习笔记之分类问题与逻辑回归

对于梯度下降,每次只是在梯度方向上下降一小步(取决于学习速率),而牛顿方法是一直下降到导数(切线)和 θ 轴交界的那个 θ 。因此牛顿方法的更新规则是:

θ:=θf(θ)f(θ)

下面我们将牛顿方法应用于逻辑回归,我们需要找到 (θ) 的最大值,即 (θ)=0 ,因此令 f(θ)=(θ) ,我们可以得到逻辑回归的牛顿方法更新公式:
θ:=θ(θ)(θ)

而对于 θ 为向量的情况,牛顿方法的多维形式如下(又被称为 牛顿-拉夫逊方法):
θ:=θH1θ(θ)

其中  θ(θ) (θ) 对于每个 θi 的偏导数构成的向量, H 是一个 (n+1)×(n+1) 的矩阵(包括截距项),称为 海森矩阵,其中的每一项定义为:
Hij=2(θ)θiθj

和(批量)梯度下降相比,牛顿方法会带来更快的收敛速度和更少的迭代次数。虽然每次迭代由于要计算 H1 ,导致计算量较大,但对于参数数量不是特别大的情况,总的来说它还是更快的。将牛顿方法用于求解逻辑回归的对数似然函数最大值,也被称为 费雪评分