《统计学习方法》第六章逻辑斯蒂回归与最大熵模型学习笔记
·
一、逻辑斯蒂回归模型
1. 二项逻辑斯蒂回归模型
二项逻辑斯蒂回归模型是如下的条件概率分布:
P(Y=1|x)=exp(w⋅x+b)1+exp(w⋅x+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(w⋅x+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(−θT⋅x) <script type="math/tex" id="MathJax-Element-4">h_\theta(x)=\frac{1}{1+\exp(-\theta^T\cdot x)}</script>。
事件的 几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。
如果事件发生的概率是p,那么该事件的几率是 P1−P <script type="math/tex" id="MathJax-Element-5">\frac{P}{1-P}</script>,该事件的对数几率(log odds)或logit函数是: logit(P)=logp1−p <script type="math/tex" id="MathJax-Element-6">logit(P)=\log\frac{p}{1-p}</script>。
逻辑回归的对数几率是:
log(P(Y=1|x)1−P(Y=1|x))=w⋅x
<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的线性函数表示的模型,即逻辑斯蒂回归模型。(这里需要再理解下)
感知机只通过决策函数( w⋅x <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的直接关系,再通过比较概率值来判断类别。
令决策函数( w⋅x <script type="math/tex" id="MathJax-Element-10">w\cdot x</script>)输出值等于概率值比值取对数,即:
logp1−p=w⋅x⟹p=exp(w⋅x+b)1+exp(w⋅x+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>中可以将线性函数 w⋅x <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)]1−yi
<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)+(1−yi)log(1−π(xi))]∑i=1N[yilogπ(xi)1−π(xi)+log(1−π(xi))]∑i=1N[yi(w⋅xi)+log11+exp(w⋅xi)]∑i=1N[yi(w⋅xi)−log(1+exp(w⋅xi))]
<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-24">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(wk⋅x)1+∑k=1K−1exp(wk⋅x),k=1,2,⋯,K−1
<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=1K−1exp(wk⋅x)
<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>的取值只能取到
4. 交叉熵损失函数的求导
逻辑回归的另一种理解是以交叉熵作为损失函数的目标最优化。交叉熵损失函数可以从上文最大似然推导出来。
交叉熵损失函数为:
y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(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(θ)==−1m∑i=1my(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))−1m∑i=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(1m∑i=1m[log(1+eθTx(i))−y(i)θTx(i)])1m∑i=1m[∂∂θjlog(1+eθTx(i))−∂∂θj(y(i)θTx(i))]1m∑i=1m⎛⎝x(i)jeθTx(i)1+eθTx(i)−y(i)x(i)j⎞⎠1m∑i=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>
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)