Logistic Regression(逻辑回归)基本原理与学习总结

逻辑回归原理

逻辑回归是一种广义线性模型,判别一个模型是否是线性的,可通过判别分界面是否是线性来判断的,逻辑回归的分界面是线性的。逻辑回归解决的是分类问题,由条件概率分布P(Y|X)表示,通过引入sigmoid函数,用于表示输出值的概率。

构造广义线性模型(Constructing GLMs)

要构建广义线性模型,我们要基于以下三个假设:

  1. 给定特征属性和参数后,的条件概率服从指数分布族,即
  2. 预测的期望,即计算。 #h(x) = E[y|x]
  3. 之间是线性的,即

 由于逻辑回归解决的是二分类问题,可以选择伯努利分布来构建逻辑回归的模型。

  exponential family(指数族)指出:如果一类分布(a class of distribution)属于exponential family,那么它能写成如下形式:

 伯努利分布可以写成:

image,伯努利分布均值φ,记为Bernoulli(φ),y ∈ {0, 1},所以p(y = 1; φ) = φ; p(y = 0; φ) = 1 − φ

Logistic Regression(逻辑回归)基本原理与学习总结_第1张图片

对于伯努利分布,η = log(φ/(1-φ)) ,我们将φ用η表示,则:φ=1/(1+e-η)。根据三个假设,我们有

Logistic Regression(逻辑回归)基本原理与学习总结_第2张图片

构建完成,这就是逻辑回归中使用的模型。

二项逻辑斯蒂回归模型

二项逻辑斯蒂回归模型是如下的条件概率分布:

P(Y=1|x)=\frac{exp(w\cdot x+b)}{1+exp(w\cdot x+b)}

P(Y=1|x)=\frac{1}{1+exp(w\cdot x+b)}

可以发现,对于 Logistic Regression,我们可以通过link function(联结函数)logit(对数几率) 建立了与简单线性模型的关联。联结函数就是把任意 exponential family distribution 的均值 μ映射到线性尺度上。

logit(p)=log\frac{p}{1-p}=log\frac{P(Y=1|x)}{1-P(Y=1|x)}=w\cdot x

即是,在 Logistic Regression 模型中,输出 y=1 的 log-odds (对数几率)是关于输入 x 的线性函数,其中几率表示的是该事件发生的几率与不发生的概率的比值。

模型参数估计

极大似然角度:

我们假设预测结果服从伯努利分布,那么可以把一个case预测结果写成:
其中为给定前提下概率值

要使当前参数下所有事情发生的概率最大,联合分布为各边缘分布的乘积,得到:

其中h(x)=\frac{exp(w\cdot x+b)}{1+exp(w\cdot x+b)}
取log后方便计算:

=\sum [y_{i}(wx_{i})-log(1+exp(wx_{i}))]

这个就是我们最初的交互熵的形式,问题也变成了以对数似然函数为目标函数的最优化问题,通常采用梯度下降法及拟牛顿法来求解。

对数似然函数的本质就是衡量在某个参数下,整体的估计和真实情况一样的概率,越大代表越相近。就是已知样本,希望通过调整模型参数来使得模型能够最大化样本情况出现的概率。

信息熵角度:

用来衡量信息量大小,熵越大,越不稳定,信息量越大。

相对熵(relative entropy)就是KL散度(Kullback–Leibler divergence),用于衡量两个概率分布之间的差异。

对于两个概率分布和,其相对熵的计算公式为:

注意:由于和在公式中的地位不是相等的,所以.

相对熵的特点,是只有时,其值为0。若和略有差异,其值就会大于0。其证明利用了负对数函数()是严格凸函数(strictly convex function)的性质。具体可以参考PRML1.6.1 Relative entropy and mutual information.

相对熵公式的前半部分就是交叉熵(cross entropy)。

引入交叉熵,其用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小。若是数据的真实概率分布,wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==是由数据计算得到的概率分布。机器学习的目的就是希望尽可能地逼近甚至等于,从而使得相对熵接近最小值0. 由于真实的概率分布是固定的,相对熵公式的后半部分就成了一个常数。那么相对熵达到最小值的时候,也意味着交叉熵达到了最小值。对wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==的优化就等效于求交叉熵的最小值。

交叉熵越低,这个策略就越好,最低的交叉熵也就是使用了真实分布所计算出来的信息熵,因为此时 ,交叉熵 = 信息熵。这也是为什么在机器学习中的分类算法中,我们总是最小化交叉熵,因为交叉熵越低,就证明由算法所产生的策略最接近最优策略,也间接证明我们算法所算出的非真实分布越接近真实分布。

对于LR来说,其本身求的就是条件概率分布,因此,用交叉熵去衡量训练得到的概率分布与实际概率分布的差异再合适不过了。

另一方面,由于模型中含有sigmoid函数,如果用二次代价函数去作为损失函数,在梯度下降时会发生损失函数学习速率降低的问题,而用交叉熵则不存在这一问题。

 

参考文献

1.李航《统计学习方法》

2.logistic regression一点理解

3.从广义线性模型(GLM)理解逻辑回归

4.如何通俗的解释交叉熵与相对熵?

你可能感兴趣的:(机器学习)