分类问题常用算法——逻辑回归原理

逻辑回归模型算是机器学习的一种基本方法,但也有很多细节。本篇文章从原理入手,力求化繁为简,如有错漏,烦请指正。

什么是逻辑回归:

逻辑回归是一种分类模型。给定输入X, 可以将Y的条件概率P(Y|X)形式化为logistic分布。具体地讲,以二分类为例,逻辑回归模型为:

P(Y=1|x) = \frac{1}{1+e^{-wx}}=\frac{e^{wx}}{1+e^{wx}}

P(Y=0|x) = \frac{e^{-wx}}{1+e^{-wx}}=\frac{1}{1+e^{wx}}

对于逻辑回归模型,给定x,根据以上两个式子求得P(Y=1|x)和P(Y=0|x),比较两个概率大小,然后将x分类为概率最大的一类。

p为一个事件发生的概率,则一个事件发生的几率为p/(1-p),而:

ln\frac{P(Y=1|x)}{1-P(Y-1|x)} = wx

可以看出逻辑回归的特点,输出Y=1的几率为输入x的线性函数。

损失函数:

\pi(x) = P(Y=1|x),1-\pi(x)=P(Y=0|x)

似然函数为:

\prod_{i=1}^{N}\pi(x_i)^{y_i}(1-\pi(x_i))^{1-y_i}

对数似然函数为:

L(w) = \sum_{i=1}^{N}[y_i ln\pi_i+(1-y_i)ln(1-\pi_i)]

        =\sum_{i=1}^{N}[y_iln\frac{\pi(x_i)}{1-\pi(x_i)}+ ln(1-\pi(x_i))]

        =\sum_{i=1}^{N}[y_i (w x_i)-ln(1+exp(wx_i))]

损失函数为负平均对数似然:

J(w)=-\frac{1}{N}L(w)

在逻辑回归中,最小化损失函数即为最大化对数似然

求解:

主要求解方法:梯度下降法(随机梯度下降、mini-batch梯度下降等),牛顿法等

1.随机梯度下降:

g=\frac{\partial J}{\partial w}=x_i(\pi(x_i)-y_i)

w^{k+1}=w^k-\alpha g

2.牛顿法:

基本思路是在现有极小估计点附近做二阶泰勒展开,得到导数为0的点进行一个更新,直到达到要求。设w_k为目前的极小估计点:

\varphi (w)=J(w^k)+J'(w^k)(w-w^k)+\frac{1}{2}J''(w^k)(w-w^k)^2

\varphi '(w)=0,可得:

w^{k+1} = w^k-\frac{J'(w^k)}{J''(w^k)}=w^k-H_k^{-1}\cdot g_k

其中H_k为海森矩阵

缺点:牛顿法是定长迭代,没有步长因子,所以不能保证函数值稳定的下降。牛顿法要求函数一定是二阶可导的。而且计算Hessian矩阵的逆复杂度很大。

所以提出拟牛顿法,用一个特别的表达形式来模拟Hessian矩阵或者是他的逆使得表达式满足拟牛顿条件。主要有DFP法(逼近Hession的逆)、BFGS(直接逼近Hession矩阵)、 L-BFGS(可以减少BFGS所需的存储空间)。

正则化:

1、L1正则(LASSO回归):

对参数增加一个先验,服从零均值拉普拉斯分布:

f(w|\mu,b)=\frac{1}{2b}exp(-\frac{|w-\mu|}{b})

所以负对数似然变为:

-lnL(w) = -\sum_{i=1}^{N}[y_iln\pi(x_i)+(1-y_i)ln(1-\pi(x_i))]+\lambda \sum_{j=1}^{d}|w_j|

2、L2正则(Ridge回归):

对参数w增加一个先验,服从零均值正态分布:

f(w|\mu ,\sigma )=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(w-\mu)^2}{2\sigma^2})

负对数似然为:

-lnL(w) = -\sum_{i=1}^{N}[y_iln\pi(x_i)+(1-y_i)ln(1-\pi(x_i))]+\lambda \sum_{j=1}^{d}w_i^2

3、作用与区别

控制模型复杂度,惩罚过大的参数来防止过拟合。L1正则化可以产生稀疏权值矩阵,从而可以进行特征选择。

你可能感兴趣的:(经典永不过时——机器学习,算法,分类,逻辑回归)