阅读本文需要的背景知识点:线性回归、最大似然估计、一丢丢编程知识
一、引言
前面几节我们学习了标准线性回归,然后介绍了三种正则化的方法 - 岭回归、Lasso回归、弹性网络回归,这些线性模型解决的都是回归的问题。最开始还介绍了两种简单的算法-PLA与口袋算法,他们解决的是分类问题。
那么我们能使用回归的方式来解决分类问题么,答案是肯定的,这就是下面要介绍的模型 - 对数几率回归算法1(Logistic Regression Algorithm),也有被直译为逻辑回归。
二、模型介绍
对数几率回归的模型函数
既然要通过回归的方式来解决分类的问题,可以通过先进行回归分析,然后通过一个函数将连续的结果映射成离散的分类结果,例如下面的函数表达式:
y = { 0 ( f ( w T x ) ≤ C ) 1 ( f ( w T x ) > C ) y=\left\{\begin{array}{ll} 0 & \left(f\left(w^{T} x\right) \leq C\right) \\ 1 & \left(f\left(w^{T} x\right)>C\right) \end{array}\right. y={
01(f(wTx)≤C)(f(wTx)>C)
在介绍对数几率回归模型之前,先来看看一类被称为 S 函数2(Sigmoid function)的函数,这类函数的图像成 S 型,其中最常见的一种函数为逻辑函数3(Logistic function),函数图像如下图所示:

通过图像可以看到,这个函数当自变量越大时,函数值越趋近于 1,当自变量最小时,函数值越趋近于 0,当自变量为 0 时,函数值为 0.5。当上面表达式中的 C 等于 0.5 时,可以看作将连续的结果映射成离散的结果。
逻辑函数的函数表达式为:
f ( z ) = 1 1 + e − z f(z)=\frac{1}{1+e^{-z}} f(z)=1+e−z1
将线性方程带入逻辑函数中,就得到了对数几率回归的函数方程:
f ( x ) = 1 1 + e − w T x f(x)=\frac{1}{1+e^{-w^Tx}} f(x)=1+e−wTx1
对数几率回归的代价函数
我们需要一个代价函数来表示数据拟合的情况,这时很容易想到的是使用与线性回归一样的均方差4(mean-square error / MSE)的方法来做为代价函数
Cost ( w ) = ∑ i = 1 N ( y − y ^ ) 2 \operatorname{Cost}(w)=\sum_{i=1}^{N}(y-\hat{y})^{2} Cost(w)=i=1∑N(y−y^)2
但对数几率回归是使用似然函数5(likelihood function)的对数形式来作为其代价函数,后面会说明为什么使用这种方式比MSE更合适。
最大似然估计:
考虑一个抛硬币的例子。假设这个硬币正面跟反面轻重不同。我们把这个硬币抛80次(正面记为H,反面记为T)。并把抛出一个正面的概率记为 p,抛出一个反面的概率记为 1 - p。假设我们抛出了49个正面,31个反面,即49次H,31次T。假设这个硬币是我们从一个装了三个硬币的盒子里头取出的。这三个硬币抛出正面的概率分别为 1/3、1/2、2/3 。这些硬币没有标记,所以我们无法知道哪个是哪个。使用最大似然估计,基于二项分布中的概率质量函数公式,通过这些试验数据(即采样数据),我们可以计算出哪个硬币的可能性最大。我们可以看到当 p = 2/3 时,似然函数取得值最大。
L ( p = 1 3 ∣ H = 49 , T = 31 ) = C 80 49 ( 1 3 ) 49 ( 1 − 1 3 ) 31 ≈ 0.000 L ( p = 1 2 ∣ H = 49 , T = 31 ) = C 80 49 ( 1 2 ) 49 ( 1 − 1 2 ) 31 ≈ 0.012 L ( p = 2 3 ∣ H = 49 , T = 31 ) = C 80 49 ( 2 3 ) 49 ( 1 − 2 3 ) 31 ≈ 0.054 \begin{array}{l} L\left(p=\frac{1}{3} \mid H=49, T=31\right)=C_{80}^{49}\left(\frac{1}{3}\right)^{49}\left(1-\frac{1}{3}\right)^{31} \approx 0.000 \\ L\left(p=\frac{1}{2} \mid H=49, T=31\right)=C_{80}^{49}\left(\frac{1}{2}\right)^{49}\left(1-\frac{1}{2}\right)^{31} \approx 0.012 \\ L\left(p=\frac{2}{3} \mid H=49, T=31\right)=C_{80}^{49}\left(\frac{2}{3}\right)^{49}\left(1-\frac{2}{3}\right)^{31} \approx 0.054 \end{array} L(p=31∣H=49,T=31)=C8049(31)49(1−31)31≈0.000L(p=21∣H=49,T=31)=C8049(21)49(1−21)31≈0.012L(p=32∣H=49,T=31)=C8049(32)49(1−32)31≈0.054
第一种表示方式:
在二元分类的情况下,例如 y 取 0 或者 1,将对数几率回归的函数方程的结果看作概率,可以写作下式:
{ P ( y = 1 ∣ x , w ) = h ( x ) P ( y = 0 ∣ x , w ) = 1 − h ( x ) \left\{\begin{array}{ll} P(y=1 \mid x, w)= & h(x) \\ P(y=0 \mid x, w)= & 1-h(x) \end{array}\right. {
P(y=1∣x,w)=P(y=0∣x,w)=h(x)1−h(x)
由于 y 只能取 0 或者 1,可以将上面两个式写成一个式子:
P ( y ∣ x , w ) = h ( x ) y [ 1 − h ( x ) ] 1 − y P(y \mid x, w)=h(x)^{y}[1-h(x)]^{1-y} P(y∣x,w)=h(x)y[1−h(x)]1−y
写出似然函数,其中 N 为样本总数量,将每一个概率累乘就得到了似然函数:
L ( w ) = ∏ i = 1 N h ( X i ) y i [ 1 − h ( X i ) ] 1 − y i L(w)=\prod_{i=1}^{N} h\left(X_{i}\right)^{y_{i}}\left[1-h\left(X_{i}\right)\right]^{1-y_{i}} L(w)=i=1∏Nh(Xi)yi[1−h(Xi)]1−yi
在 w 的所有可能取值中找一个使得似然函数取到最大值,这时求得的解就是 w 的最大似然估计6(maximum likelihood estimation/MLE)
w = argmax w ( L ( w ) ) = argmax w ( ∏ i = 1 N h ( X i ) y i [ 1 − h ( X i ) ] 1 − y i ) w=\underset{w}{\operatorname{argmax}}(L(w))=\underset{w}{\operatorname{argmax}}\left(\prod_{i=1}^{N} h\left(X_{i}\right)^{y_{i}}\left[1-h\left(X_{i}\right)\right]^{1-y_{i}}\right) w=wargmax(L(w))=wargmax(i=1∏Nh(Xi)yi[1−h(Xi)]1−yi)
由于带连乘运算的代价函数不好优化,这里我们对似然函数取自然对数并且取反,S 函数的取值为(0,1),似然函数的取值也是(0,1),对其取对数不影响其单调性。这样就得到了对数几率回归的代价函数:
Cost ( w ) = − ln L ( w ) = − ∑ i = 1 N ( y i ln h ( X i ) + ( 1 − y i ) ln ( 1 − h ( X i ) ) ) \begin{aligned} \operatorname{Cost}(w) &=-\ln L(w) \\ &=-\sum_{i=1}^{N}\left(y_{i} \ln h\left(X_{i}\right)+\left(1-y_{i}\right) \ln \left(1-h\left(X_{i}\right)\right)\right) \end{aligned} Cost(w)=−lnL(w)=−i=1∑N(yilnh(Xi)+(1−yi)ln(1−h(Xi)))
由于加了一步取反的操作,这是就不是求最大值,而是将其改为求最小值:
w = argmin w ( − ∑ i = 1 N ( y i ln h ( X i ) + ( 1 − y i ) ln ( 1 − h ( X i ) ) ) ) w=\underset{w}{\operatorname{argmin}}\left(-\sum_{i=1}^{N}\left(y_{i} \ln h\left(X_{i}\right)+\left(1-y_{i}\right) \ln \left(1-h\left(X_{i}\right)\right)\right)\right) w=wargmin(−i=1∑N(yilnh(Xi)+(1−yi)ln(1−h(Xi))))
第二种表示方式:
我们先来看下 S 函数的一个性质:
f ( z ) = 1 1 + e − z = e z 1 + e z f ( − z ) = 1 1 + e z = 1 − f ( z ) \begin{aligned} f(z) &=\frac{1}{1+e^{-z}}=\frac{e^{z}}{1+e^{z}} \\ f(-z) &=\frac{1}{1+e^{z}}=1-f(z) \end{aligned} f(z)f(−z)=1+e−z1=1+ezez=1+ez1=1−f(z)
在二元分类的情况下, 当 y 的值取 -1 或者 1 时,将对数几率回归的函数方程的结果看作概率,可以写作下式
{ P ( y = 1 ∣ x , w ) = h ( x ) = 1 1 + e − w T x P ( y = − 1 ∣ x , w ) = 1 − h ( x ) = h ( − x ) = 1 1 + e w T x \left\{\begin{array}{l} P(y=1 \mid x, w)=h(x)=\frac{1}{1+e^{-w^{T} x}} \\ P(y=-1 \mid x, w)=1-h(x)=h(-x)=\frac{1}{1+e^{w^{T} x}} \end{array}\right. {
P(y=1∣x,w)=h(x)=1+e−wTx1P(y=−1∣x,w)=1−h(x)=h(−x)=

本文介绍对数几率回归算法,包括模型函数、代价函数、正则化等核心内容,并提供了梯度下降法和牛顿法的具体实现,同时对比了不同正则化方式的影响。
最低0.47元/天 解锁文章
2589

被折叠的 条评论
为什么被折叠?



