一、逻辑斯蒂回归模型

1. 二项逻辑斯蒂回归模型

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

P(Y=1|x)=exp(wx+b)1+exp(wx+b)
<script type="math/tex; mode=display" id="MathJax-Element-1">P(Y=1|x)=\frac{\exp{(w \cdot x+b)}}{1+\exp(w\cdot x+b)}</script>
P(Y=0|x)=11+exp(wx+b)
<script type="math/tex; mode=display" id="MathJax-Element-2">P(Y=0|x)=\frac{1}{1+\exp(w\cdot x+b)}</script>
注意: P(Y=1|x) <script type="math/tex" id="MathJax-Element-3">P(Y=1|x)</script>模型也经常写成 hθ(x)=11+exp(θTx) <script type="math/tex" id="MathJax-Element-4">h_\theta(x)=\frac{1}{1+\exp(-\theta^T\cdot x)}</script>。
事件的 几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。
如果事件发生的概率是p,那么该事件的几率是 P1P <script type="math/tex" id="MathJax-Element-5">\frac{P}{1-P}</script>,该事件的对数几率(log odds)或logit函数是: logit(P)=logp1p <script type="math/tex" id="MathJax-Element-6">logit(P)=\log\frac{p}{1-p}</script>。
逻辑回归的对数几率是:
log(P(Y=1|x)1P(Y=1|x))=wx
<script type="math/tex; mode=display" id="MathJax-Element-7">\log(\frac{P(Y=1|x)}{1-P(Y=1|x)})=w\cdot x</script>
意义:在逻辑斯蒂回归模型中,输出Y=1的对数几率是输入x的线性函数。或者说,输出Y=1的对数几率是由属于x的线性函数表示的模型,即逻辑斯蒂回归模型。(这里需要再理解下
  感知机只通过决策函数( wx <script type="math/tex" id="MathJax-Element-8">w\cdot x</script>)的符号来判断属于哪一类。逻辑斯蒂回归需要再进一步,它要找到分类概率 P(Y=1) <script type="math/tex" id="MathJax-Element-9">P(Y=1)</script>与输入向量x的直接关系,再通过比较概率值来判断类别。
令决策函数( wx <script type="math/tex" id="MathJax-Element-10">w\cdot x</script>)输出值等于概率值比值取对数,即:
logp1p=wxp=exp(wx+b)1+exp(wx+b)
<script type="math/tex; mode=display" id="MathJax-Element-11">log\frac{p}{1-p}=w\cdot x\Longrightarrow p=\frac{\exp{(w \cdot x+b)}}{1+\exp(w\cdot x+b)}</script>
逻辑斯蒂回归模型的定义式 P(Y=1|x) <script type="math/tex" id="MathJax-Element-12">P(Y=1|x)</script>中可以将线性函数 wx <script type="math/tex" id="MathJax-Element-13">w\cdot x</script>转换为概率,这时,线性函数的值越接近正无穷,概率值就越接近1;线性函数的值越接近负无穷,概率值就接近0.

2. 模型参数估计

应用极大似然法进行参数估计,从而获得逻辑斯蒂回归模型。极大似然估计的数学原理参考这里
设: P(Y=1|x)=π(x),P(Y=0|x)=1π(x) <script type="math/tex" id="MathJax-Element-14">P(Y=1|x)=\pi(x), P(Y=0|x)=1-\pi(x)</script>
似然函数为:

i=1N[π(xi)]yi[1π(xi)]1yi
<script type="math/tex; mode=display" id="MathJax-Element-15">\prod_{i=1}^N{[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}}</script>
上式连乘符号内的两项中,每个样本都只会取到两项中的某一项。若该样本的实际标签 yi=1 <script type="math/tex" id="MathJax-Element-16">y_i=1</script>,取样本计算为1的概率值 π(xi) <script type="math/tex" id="MathJax-Element-17">\pi(x_i)</script>;若该样本的实际标签 yi=0 <script type="math/tex" id="MathJax-Element-18">y_i=0</script>,取样本计算的为0的概率值 1π(xi) <script type="math/tex" id="MathJax-Element-19">1-\pi(x_i)</script>。
对数似然函数为:
L(w)====i=1N[yilogπ(xi)+(1yi)log(1π(xi))]i=1N[yilogπ(xi)1π(xi)+log(1π(xi))]i=1N[yi(wxi)+log11+exp(wxi)]i=1N[yi(wxi)log(1+exp(wxi))]
<script type="math/tex; mode=display" id="MathJax-Element-20">\begin{eqnarray*}L(w) & = & \sum\limits_{i=1}^N[y_i\log{\pi(x_i)+(1-y_i)\log{(1-\pi(x_i))}}] \\ &=&\sum\limits_{i=1}^N[y_i\log{\frac{\pi(x_i)}{1-\pi(x_i)}}+\log{(1-\pi(x_i))}]\\ &=&\sum\limits_{i=1}^N[y_i(w\cdot x_i )+\log{\frac{1}{1+\exp{(w\cdot x_i)}}}]\\ &=&\sum\limits_{i=1}^N[y_i(w\cdot x_i )-\log{(1+\exp{(w\cdot x_i)})}] \end{eqnarray*}</script>
对上式中的 L(w) <script type="math/tex" id="MathJax-Element-21">L(w)</script>求极大值,得到 w <script type="math/tex" id="MathJax-Element-22">w</script>的估计值。
问题转化成以对数似然函数为目标函数的无约束最优化问题,通常采用梯度下降法以及拟牛顿法求解w<script type="math/tex" id="MathJax-Element-23">w</script>。
假设 w <script type="math/tex" id="MathJax-Element-24">w</script>的极大估计值是wˆ<script type="math/tex" id="MathJax-Element-25">\widehat{w}</script>,那么学到的逻辑斯蒂回归模型为:
P(Y=1|x)=exp(wˆx)1+exp(wˆx)
<script type="math/tex; mode=display" id="MathJax-Element-26">P(Y=1|x)=\frac{\exp{(\widehat{w} \cdot x)}}{1+\exp(\widehat{w}\cdot x)}</script>
P(Y=0|x)=11+exp(wˆx)
<script type="math/tex; mode=display" id="MathJax-Element-27">P(Y=0|x)=\frac{1}{1+\exp(\widehat{w}\cdot x)}</script>

3. 多项逻辑斯蒂回归

多项逻辑斯蒂回归用于多分类问题,其模型为:

P(Y=k|x)=exp(wkx)1+k=1K1exp(wkx),k=1,2,,K1
<script type="math/tex; mode=display" id="MathJax-Element-32">P(Y=k|x)=\frac{\exp{(w_k \cdot x)}}{1+\sum\limits_{k=1}^{K-1}\exp(w_k\cdot x)},k=1,2,\cdots,K-1</script>
P(Y=K|x)=11+k=1K1exp(wkx)
<script type="math/tex; mode=display" id="MathJax-Element-33">P(Y=K|x)=\frac{1}{1+\sum\limits_{k=1}^{K-1}\exp(w_k\cdot x)}</script>
上面的公式和二分类的类似,式中 k <script type="math/tex" id="MathJax-Element-34">k</script>的取值只能取到K1<script type="math/tex" id="MathJax-Element-35">K-1</script>。

4. 交叉熵损失函数的求导

逻辑回归的另一种理解是以交叉熵作为损失函数的目标最优化。交叉熵损失函数可以从上文最大似然推导出来。
交叉熵损失函数为:

y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))
<script type="math/tex; mode=display" id="MathJax-Element-187">y^{(i)}\log(h_\theta(x^{(i)}))+(1-y^{(i)})\log(1-h_\theta(x^{(i)}))</script>
则可以得到目标函数为:
J(θ)==1mi=1my(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))1mi=1m[y(i)θTx(i)log(1+eθTx(i))]
<script type="math/tex; mode=display" id="MathJax-Element-188">\begin{eqnarray*}J(\theta)&=&-\frac{1}{m}\sum_{i=1}^{m}y^{(i)}\log(h_\theta(x^{(i)}))+(1-y^{(i)})\log(1-h_\theta(x^{(i)}))\\ &=&-\frac{1}{m}\sum_{i=1}^m \left[y^{(i)}\theta^T x^{(i)}-\log(1+e^{\theta^T x^{(i)}})\right] \end{eqnarray*}</script>

计算J(θ)对第j个参数分量 θj <script type="math/tex" id="MathJax-Element-189">\theta_j</script>求偏导:

θjJ(θ)====θj(1mi=1m[log(1+eθTx(i))y(i)θTx(i)])1mi=1m[θjlog(1+eθTx(i))θj(y(i)θTx(i))]1mi=1mx(i)jeθTx(i)1+eθTx(i)y(i)x(i)j1mi=1m(hθ(x(i))y(i))x(i)j
<script type="math/tex; mode=display" id="MathJax-Element-190">\begin{eqnarray*}\frac{\partial}{\partial\theta_{j}}J(\theta) &=&\frac{\partial}{\partial\theta_{j}}\left(\frac{1}{m}\sum_{i=1}^m \left[\log(1+e^{\theta^T x^{(i)}})-y^{(i)}\theta^T x^{(i)}\right]\right)\\ &=&\frac{1}{m}\sum_{i=1}^m \left[\frac{\partial}{\partial\theta_{j}}\log(1+e^{\theta^T x^{(i)}})-\frac{\partial}{\partial\theta_{j}}\left(y^{(i)}\theta^T x^{(i)}\right)\right]\\ &=&\frac{1}{m}\sum_{i=1}^m \left(\frac{x^{(i)}_je^{\theta^T x^{(i)}}}{1+e^{\theta^T x^{(i)}}}-y^{(i)}x^{(i)}_j\right)\\ &=&\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} \end{eqnarray*}</script>

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐