本文主要是介绍数学表达式: 从恐惧到单挑 (10. Logistic 回归),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
10. Logistic 回归
logistic 回归用于分类, 特别是二分类 (仅有两个类别).
10.1 分割超平面
- 线性分类模型的目标, 是找到一个超平面, 把正例、负例分割.
- 问题: 如何评价每个超平面的性能?
- 方案之一, 是最小化错分对象的数量, 但如果多个超平面都满足条件怎么办?
- 哪个超平面是最优的, 就体现不同算法的设计理念.
- 方案方二, 就是根据每个对象到超平面的距离, 来计算其损失. 如果正确分类, 则离超平面越远越好; 如果错误分类, 则离超平面越近越好.
图 1. 分割超平面
10.2 点到直线的距离
- 在 m m m 维空间上, m m m维向量 w \mathbf{w} w 确定了一条直线.
- 为方便起见, 令 w \mathbf{w} w 为列向量.
- 点 x \mathbf{x} x 与 w \mathbf{w} w 的距离为 x w \mathbf{x}\mathbf{w} xw.
- 这个距离带符号. 正号代表 x \mathbf{x} x 在 w \mathbf{w} w 的某一边, 负号则表示另一边.
- 参见《高等数学》.
10.3 sigmoid 函数
- x \mathbf{x} x 到超平面的距离 (带符号) 取值范围为 ( − ∞ , + ∞ ) (-\infty, +\infty) (−∞,+∞), 希望将其转成概率.
- 如果距离为负而且离超平面很远, 则它为正例的概率就接近 0;
- 如果距离为正而且离超平面很远, 则它为正例的概率就接近 1.
- 使用 sigmoid 函数将距离转成 (我们以为的) 概率.
P ( y = 1 ∣ x ; w ) = 1 1 + e − x w (1) P(y = 1 \vert \mathbf{x}; \mathbf{w}) = \frac{1}{1 + e^{-\mathbf{xw}}} \tag{1} P(y=1∣x;w)=1+e−xw1(1)
源码: p(y = 1 \vert \mathbf{x}; \mathbf{w}) = \frac{1}{1 + e^{-\mathbf{xw}}}
10.4 优化目标
- 统一 y i y_i yi 不同取值 (0 或 1):
P ( y i ∣ x i ; w ) = P ( y i = 1 ∣ x i ; w ) y i ( 1 − P ( y i = 1 ∣ x i ; w ) ) 1 − y i (2) P(y_i \vert \mathbf{x}_i; \mathbf{w}) = P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})^{y_i} (1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}))^{1 - y_i} \tag{2} P(yi∣xi;w)=P(yi=1∣xi;w)yi(1−P(yi=1∣xi;w))1−yi(2)
显然, 这个概率越大越好.
要针对全部对象进行优化, 可将相应的概率相乘 (最大似然, maximal likelihood):
arg max w L ( w ) = ∏ i = 1 n P ( y i ∣ x i ; w ) (4) \argmax_\mathbf{w} L(\mathbf{w}) = \prod_{i = 1}^n P(y_i \vert \mathbf{x}_i; \mathbf{w}) \tag{4} wargmaxL(w)=i=1∏nP(yi∣xi;w)(4)
10.5 求解
-
相乘计算困难, 将其求一个对数, 不改变单调性
log L ( w ) = ∑ i = 1 n log P ( y i ∣ x i ; w ) = ∑ i = 1 n y i log P ( y i = 1 ∣ x i ; w ) + ( 1 − y i ) log ( 1 − P ( y i = 1 ∣ x i ; w ) ) = ∑ i = 1 n y i log P ( y i = 1 ∣ x i ; w ) 1 − P ( y i = 1 ∣ x i ; w ) + log ( 1 − P ( y i = 1 ∣ x i ; w ) ) = ∑ i = 1 n y i x i w − log ( 1 + e x i w ) (4) \begin{aligned}\log L(\mathbf{w}) & = \sum_{i = 1}^n \log P(y_i \vert \mathbf{x}_i; \mathbf{w}) \\ & = \sum_{i = 1}^n y_i \log P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}) + (1 - y_i) \log(1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})) \\ & = \sum_{i = 1}^n y_i \log \frac{P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})}{1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})} + \log (1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}))\\ & = \sum_{i = 1}^n y_i \mathbf{x}_i \mathbf{w} - \log (1 + e^{\mathbf{x}_i \mathbf{w}}) \end{aligned}\tag{4} logL(w)=i=1∑nlogP(yi∣xi;w)=i=1∑nyilogP(yi=1∣xi;w)+(1−yi)log(1−P(yi=1∣xi;w))=i=1∑nyilog1−P(yi=1∣xi;w)P(yi=1∣xi;w)+log(1−P(yi=1∣xi;w))=i=1∑nyixiw−log(1+exiw)(4)
源码: \begin{aligned}\log L(\mathbf{w}) & = \sum_{i = 1}^n \log P(y_i \vert \mathbf{x}i; \mathbf{w}) \
& = \sum{i = 1}^n y_i \log P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w}) + (1 - y_i) \log(1 - P(y_i = 1 \vert \mathbf{x}i; \mathbf{w})) \
& = \sum{i = 1}^n y_i \log \frac{P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})}{1 - P(y_i = 1 \vert \mathbf{x}_i; \mathbf{w})} + \log (1 - P(y_i = 1 \vert \mathbf{x}i; \mathbf{w}))\
& = \sum{i = 1}^n y_i \mathbf{x}_i \mathbf{w} - \log (1 + e^{\mathbf{x}_i \mathbf{w}}) \end{aligned}\tag{4} -
对 w \mathbf{w} w 求偏导
∂ log L ( w ) ∂ w = ∑ i = 1 n y i x i − e x i w 1 + e x i w x i = ∑ i = 1 n ( y i − e x i w 1 + e x i w ) x i (5) \begin{aligned} \frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} & = \sum_{i = 1}^n y_i \mathbf{x}_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}} \mathbf{x}_i\\ & = \sum_{i = 1}^n \left(y_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}}\right) \mathbf{x}_i\end{aligned} \tag{5} ∂w∂logL(w)=i=1∑nyixi−1+exiwexiwxi=i=1∑n(yi−1+exiwexiw)xi(5)
源码: \begin{aligned} \frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} & = \sum_{i = 1}^n y_i \mathbf{x}_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}} \mathbf{x}i\
& = \sum{i = 1}^n \left(y_i - \frac{e^{\mathbf{x}_i \mathbf{w}}}{1 + e^{\mathbf{x}_i \mathbf{w}}}\right) \mathbf{x}_i\end{aligned} \tag{5} -
令该偏导为 0, 无法获得解析式, 因此用梯度下降.
w t + 1 = w t − α ∂ log L ( w ) ∂ w (6) \mathbf{w}^{t + 1} = \mathbf{w}^t - \alpha \frac{\partial \log L(\mathbf{w})}{\partial \mathbf{w}} \tag{6} wt+1=wt−α∂w∂logL(w)(6)
10.6 作业
自己推导一遍, 并描述这个方法的特点 (不少于 5 条).
这篇关于数学表达式: 从恐惧到单挑 (10. Logistic 回归)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!