系列第三篇~
之前我们讨论的是回归问题,即输出是连续值,现在我们来讨论输出是离散值的分类问题。首先,我们专注于二元分类问题,即输出
y
只能取
0
和
1
两个值。
逻辑回归
如果将线性回归模型直接应用于分类问题,会产生取值不在 0 和 1 之间的问题,所以我们引入逻辑回归模型:
hθ(x)=g(θTx)=11+e−θTx
其中
g(z)=11+e−z
被称为
逻辑函数或
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+e−z=1(1+e−z)2(e−z)=11+e−z⋅(1−11+e−z)=g(z)(1−g(z))
确定了模型之后,我们需要找到合适的
θ
的值。这里采用之前使用的
最大似然法来选择参数。(假设函数可以直接看作概率分布)
首先,二元分类符合伯努利分布,我们假设:
P(y=1∣x;θ)P(y=0∣x;θ)=hθ(x)=1−hθ(x)
将上面的公式合二为一,得到:
P(y∣x;θ)=(hθ(x))y(1−hθ(x))1−y
假定
m
个样本之间相互独立,我们可以得到
θ
的似然函数如下:
L(θ)=p(y⃗ ∣X;θ)=∏i=1mp(y(i)∣x(i);θ)=∏i=1m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
与之前类似,为了计算方便,我们使用对数似然函数来进行最大化分析:
ℓ(θ)=logL(θ)=∑i=1my(i)logh(x(i))+(1−y(i))log(1−h(x(i)))
下面要做的是找到
θ
使得
ℓ(θ)
最大,由于这里是找最大值而非最小值,所以使用
梯度上升(gradient ascent),更新规则是
θ:=θ+α∇θℓ(θ)
,对于随机梯度上升(每次只考虑一个样本),求导过程如下:
∂∂θjℓ(θ)=(y1g(θTx)−(1−y)11−g(θTx))∂∂θjg(θTx)=(y1g(θTx)−(1−y)11−g(θTx))g(θTx)(1−g(θTx))∂∂θjθTx=(y(1−g(θTx))−(1−y)g(θTx))xj=(y−hθ(x))xj
在计算过程中使用到了 S 型函数的求导性质。综上所述,我们得到随机梯度上升的更新规则是:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
这个公式和线性回归中梯度下降的公式表面上看是一样的,但实际上两者的
hθ(x)
有所不同。关于更加深层次的讨论,请参看之后的 GLM 模型章节。
感知器学习算法
这里谈感知器,好像有些离题,但感知机的函数定义如下:
g(z)={1ifz≥00ifz<0
可以看到它是逻辑回归的s型函数的简化形式,逻辑函数是连续的在 [0,1] 区间上,而感知器直接非0则1。如果我们令
hθ(x)=g(θTx)
,得到如下的更新规则:
θj:=θj+α(y(i)−hθ(x(i)))x(i)j
即
感知器学习算法。
19世纪60年代,感知器被看作是大脑工作中独立神经元的粗糙的模型,由于简单,会用作后面介绍的学习理论的起点。虽然直观看上去,感知器和之前看到的逻辑回归或线性回归很像,但是其实是非常不一样的算法。 因为,对于感知器,很难赋予一种有意义的概率解释,或使用最大似然估计算法来进行推导。
牛顿方法
下面我们介绍另外一种算法来求解
ℓ(θ)
的最大值,称为牛顿方法。
我们通过如下的几张图来理解牛顿方法:
对于梯度下降,每次只是在梯度方向上下降一小步(取决于学习速率),而牛顿方法是一直下降到导数(切线)和
θ
轴交界的那个
θ
。因此牛顿方法的更新规则是:
θ:=θ−f(θ)f′(θ)
下面我们将牛顿方法应用于逻辑回归,我们需要找到
ℓ(θ)
的最大值,即
ℓ′(θ)=0
,因此令
f(θ)=ℓ′(θ)
,我们可以得到逻辑回归的牛顿方法更新公式:
θ:=θ−ℓ′(θ)ℓ′′(θ)
而对于
θ
为向量的情况,牛顿方法的多维形式如下(又被称为
牛顿-拉夫逊方法):
θ:=θ−H−1∇θℓ(θ)
其中
∇θℓ(θ)
是
ℓ(θ)
对于每个
θi
的偏导数构成的向量,
H
是一个
(n+1)×(n+1)
的矩阵(包括截距项),称为
海森矩阵,其中的每一项定义为:
Hij=∂2ℓ(θ)∂θi∂θj
和(批量)梯度下降相比,牛顿方法会带来更快的收敛速度和更少的迭代次数。虽然每次迭代由于要计算
H−1
,导致计算量较大,但对于参数数量不是特别大的情况,总的来说它还是更快的。将牛顿方法用于求解逻辑回归的对数似然函数最大值,也被称为
费雪评分。