逻辑回归算法原理及用于解决多分类问题

逻辑回归算法原理及用于解决多分类问题

逻辑回归算法又叫做对数几率回归,作为一种分类算法,在统计学中属于广义的线性模型。实际上逻辑回归是通过对数几率函数将线性函数的结果进行mapping,这样一来目标函数的取值空间就发生了如下的变化:
,+01 (-\infty,+\infty)映射到(0,1)
这样一来,逻辑回归就可以用来处理分类问题。

一、逻辑回归的基本原理

在训练时,线性回归模型在整个实数域上对于异常数据点的敏感性一致,所以用于分类效果较差。对于二分类任务,逻辑回归的输出标记如下:
y{0,1} y\in\{0,1\}
而线性回归的预测值是实值,如下:
y=θTx y=\theta^{T}x
因此我们就需要一个特定的函数将实值映射为0/1。

直接的想法就是使用单位阶跃函数,这样一来:预测值大于零就为正例;预测值小于零就为负例;如若预测值为临界值则可以任意判别。但是这样是有问题的:单位阶跃函数不连续而且不光滑,或者说不可导,故而无法进行求解。

那么我们就看中了对数几率函数(S函数),或者说对数概率函数。两者参见下图:

逻辑回归算法原理及用于解决多分类问题
逻辑回归算法原理及用于解决多分类问题
图一为单位阶跃函数的数学表达式,图二为单位阶跃函数和对数几率函数的图像。

线性回归模型:
y=WTx+b y=W^{T}x+b
对数线性回归:
lny=WTx+b lny=W^{T}x+b
它实际上实在试图达到如下目标:
eWTx+by线线 让e^{W^{T}x+b}逼近y。这里依旧是线性回归,但实际上已经在求取输入空间到输出空间的非线性函数映射。

这里的取对数的作用是:将线性回归魔心过的预测值与真实标记联系起来。

推广:考虑单调可谓函数g(.)令:
y=g1(WTx+b) y=g^{-1}(W^{T}x+b)
对数几率函数(Sigmoid函数)表达式:
y=11+ez y=\cfrac{1}{1+e^{-z}}
带入到上述推广之中,得到:
y=11+e(WTx+b) y=\cfrac{1}{1+e^{-(W^{T}x+b)}}
两边取对数求解得到:
lny1y=WTx+b ln\cfrac{y}{1-y}=W^{T}x+b

P(Y=1X)=11+e(WTx+b) 其中,P(Y=1\vert{X})=\cfrac{1}{1+e^{-(W^{T}x+b)}}

P(Y=0X)=11+e(WTx+b) P(Y=0\vert{X})=\cfrac{1}{1+e^{(W^{T}x+b)}}

xRnY{0,1}WTb 在这里,x\in{R^n}是输入,Y\in\{0,1\}是输出,W^T是参数,b为截距。逻辑回归在分类的时候,根据给定

P(Y=1X)P(Y=0X) 的输入,分别计算P(Y=1\vert{X})和P(Y=0\vert{X}),根据概率大小,将实例进行分类到概率值较大的一类。

二、使用梯度下降法对逻辑回归进行求解

hw=11+e(WTx+b), 记h_{w}=\cfrac{1}{1+e^{-(W^{T}x+b)}},构造最大似然概率如下:

(w,b)=i=1mp(yixi;w,b)=i=1m(hw(x))y(1hw(x))1y \ell(w,b)=\prod_{i=1}^{m}p(y_i\vert{x_i};w,b)=\prod_{i=1}^{m}(h_w(x))^{y}(1-h_w(x))^{1-y}

上式为累乘形式,取对数以转化为累加形式便于求导操作,同时转化为求最小值问题:因此有下式:
(w,b)=1mi=1m[yilnhw(xi)+(1yi)ln(1hw(xi))] \ell(w,b)=-\cfrac{1}{m}\sum_{i=1}^{m}[y_ilnh_w(x_i)+(1-y_i)ln(1-h_w(x_i))]
使用梯度下降法求解:
wj+1=wjα(w,b)(w)=wjα1mi=1mxi[hw(xi)yi] w_{j+1}=w_j-\alpha\cfrac{\partial\ell(w,b)}{\partial(w)}=w_j-\alpha\cfrac{1}{m}\sum_{i=1}^{m}x_i[h_w(x_i)-y_i]

w=1mxi(hw(xi)yi)b=1mi=1m(hw(xi)yi) 简写为:\cfrac{\partial{\ell}}{\partial{w}}=\cfrac{1}{m}x_i(h_w(x_i)-y_i)和\cfrac{\partial{\ell}}{\partial{b}}=\cfrac{1}{m}\sum_{i=1}^{m}(h_w(x_i)-y_i)

三、逻辑回归解决多分类为题

逻辑回归分类器是线性分类器,可以方便的解决二分类问题,但也可以用于解决多分类问题。方案如下:

方案1:当存在样本可能属于多个标签的情况时,可以训练出k个二分类的逻辑回归分类器。第i个分类器用以区分每个样本是否可以归类为第i类,训练该分类器的时候,需要把标签重新整理为第i类标签非第i类标签两类。通过这样的方法,就解决了每个样本可能拥有多个标签的情况。

方案2:若每个样本只对应于一个标签,我们可以假设每个样本属于不同标签的概率服从几何分布,使用多项式逻辑回归(Softmax Regression)来进行分类。具体如下:
hθ(x)=[P(y=1|x;θ)P(y=k|x;θ)]=1j=1kejTx[e1TxekTx] h_\theta\left(x\right)=\left[\begin{matrix}P\left(y=1\middle|x;\theta\right)\\\vdots\\P\left(y=k\middle|x;\theta\right)\\\end{matrix}\right]=\frac{1}{\sum_{j=1}^{k}{e_j^Tx}}\left[\begin{matrix}e_1^Tx\\\vdots\\e_k^Tx\\\end{matrix}\right]

θ1,θ2,,θkRn1j=1keθjTx便 其中,\theta_1,\theta_2,\ldots,\theta_k\in\mathbb{R}^n为模型的参数,而\frac{1}{\sum_{j=1}^{k}e^{\theta_j^Tx}}可以看作是对概率的归一化。为了方便起见:

θ1,θ2,,θkkn×kθ 将\theta_1,\theta_2,\ldots,\theta_k这k个列向量按顺序排列成n\times{k}维的矩阵,写成\theta表示整个参数集。一般来说,多项式逻辑

θ1,θ2,,θk2 回归具有参数冗余的特点,即将\theta_1,\theta_2,\ldots,\theta_k同时加减一个向量后预测结果不变。特别的,当类别数为2时,

hθ(x)=1eθ1Tx+eθ2Tx[eθ1Txeθ1Tx] h_\theta\left(x\right)=\frac{1}{e^{\theta_1^Tx}+e^{\theta_2^Tx}}\left[\begin{matrix}e^{\theta_1^Tx}\\e^{\theta_1^Tx}\\\end{matrix}\right]

θ1, 利用参数冗余的特点,将所有参数减去\theta_1,上式变成了如下形式,

hθ(x)=1e0x+e(θ2Tθ1T)x[e0xe(θ2Tθ1T)x]=[11+eθTx111+eθTx] h_\theta\left(x\right)=\frac{1}{e^{0\bullet{x}}+e^{\left(\theta_2^T-\theta_1^T\right)x}}\left[\begin{matrix}e^{0\bullet{x}}\\e^{\left(\theta_2^T-\theta_1^T\right)x}\\\end{matrix}\right]=\left[\begin{matrix}\frac{1}{1+e^{\theta^Tx}}\\1-\frac{1}{1+e^{\theta^Tx}}\\\end{matrix}\right]

θ=θ2θ1 其中,\theta=\theta_2-\theta_1。

发现整理之后的式子与逻辑回归一致,因此多项式逻辑回归实际上时二分类逻辑回归在多标签分类下的一种拓展。