鱼的机器学习

机器学习-Logistic回归

2021-03-08  本文已影响0人  升不上三段的大鱼

1. 后验概率与logistic函数

在贝叶斯分类中提到过后验概率p(y|x),直接对后验概率建模的计算判别模型。

对于一个二分类的模型,有y \in \{0,1 \}

p(y=0| x) = \frac{p(y=0) \cdot p(x|y=0)}{p(x)}
\quad = \frac{p(y=0) \cdot p(x|y=0)}{p(y=0) \cdot p(x|y=0)+p(y=1) \cdot p(x|y=1)}
\quad = \frac{1}{1+\frac{p(y=1) \cdot p(x|y=1)}{p(y=0) \cdot p(x|y=0)}}
\quad = \frac{1}{1+e^{ln\frac{p(y=1) \cdot p(x|y=1)}{p(y=0) \cdot p(x|y=0)}}}
\quad = \frac{1}{1+e^{-ln\frac{p(y=0)}{p(y=1)} -ln\frac{p(x|y=0)}{p(x|y=1))}}}

因此我们可以将y=0时的后验概率看作是
p(y=0| x) = \frac{1}{1+e^{-F(x)}}
可以得到y=1的后验概率为:
p(y=1| x) = 1- p(y=0|x)= \frac{1}{1+e^{F(x)}}

可以看到上面的后验概率可以写成logistic函数(也叫sigmoid函数)的形式:f(x) = \frac{1}{1+e^{-x}}

sigmoid

Sigmoid函数有很好的特性,若预测值大于0就判为正例,小于0就判为反例,临界值的概率为0.5. Sigmoid的导数可以推到得到(不复杂,懒得写过程了)是:
f'(x) = f(x)(1-f(x))

2. 决策边界

决策边界用于在特征空间区分两个类别,在决策边界上的点满足p(y=0|\mathbf{x}) = p(y=1|\mathbf{x}), 因为在分类边界上的点不能判断属于哪个类别。因此在边界上有:
F(\mathbf{x}) = ln \frac{p(y=0|\mathbf{x})}{p(y=1|\mathbf{x}} = ln 1 = 0

假设两个类别的样本都满足d维的高斯分布,则有
p(x|y) = \frac{1}{\sqrt{det(2 \pi \Sigma)}}e^{- \frac{1}{2}(x-\mu)^T \Sigma^{-1} (x-\mu)}
F(x) = ln\frac{p(y=0|x)}{p(y=1|x}
= ln \frac{p(y=0)}{p(y=1)}+ln(\frac{\frac{1}{\sqrt{det(2 \pi \Sigma_0)}}e^{- \frac{1}{2}(x-\mu_0)^T \Sigma_0^{-1} (x-\mu_0)}}{\frac{1}{\sqrt{det(2 \pi \Sigma_1)}}e^{- \frac{1}{2}(x-\mu_1)^T \Sigma_1^{-1} (x-\mu_1)}})
= ln \frac{p(y=0)}{p(y=1)} + \frac{1}{2} ln(\frac{det(2 \pi \Sigma_1)}{det(2 \pi \Sigma_0)})+ln \frac{e^{-\frac{1}{2}(x-\mu_0)^T \Sigma_0 ^{-1} (x-\mu_0)}} {e^{-\frac{1}{2}(x-\mu_1)^T \Sigma_1^{-1} (x-\mu_1)}}

可以看到前两项都是常数,展开第三项可以得到:
ln \frac{e^{-\frac{1}{2}(x-\mu_0)^T \Sigma_0^{-1} (x-\mu_0)}} {e^{-\frac{1}{2}(x-\mu_1)^T \Sigma_1^{-1} (x-\mu_1)}}
= \frac{1}{2}((x-\mu_1)^T \Sigma_1^{-1} (x-\mu_1) - (x-\mu_0)^T \Sigma_0^{-1} (x-\mu_0))
= \frac{1}{2}(x^T(\Sigma_1^{-1}-\Sigma_0^{-1})x - 2(\mu_1^T \Sigma_1^{-1}-\mu_0^T \Sigma_0^{-1})x+\mu_1^T \Sigma_1^{-1}\mu_1-\mu_0^T \Sigma_0^{-1}\mu_0)

综合一下可以得到,F(x)可以写成以下形式:
F(\mathbf{x}) = \mathbf{x}^T \mathbf{A}\mathbf{x} + \mathbf{\alpha}^T \mathbf{x} + \alpha_0
其中,\mathbf{A}=\frac{1}{2}(\Sigma_1^{-1}-\Sigma_0^{-1}),
\mathbf{\alpha}^T = \mu_1^T \Sigma_1^{-1}-\mu_0^T \Sigma_0^{-1}, \alpha_0 = ln \frac{p(y=0)}{p(y=1)} + \frac{1}{2} (ln\frac{det(2 \pi \Sigma_1)}{det(2 \pi \Sigma_0)}+\mu_1^T \Sigma_1^{-1}\mu_1-\mu_0^T \Sigma_0^{-1}\mu_0)

也就是说,对于高斯分布的两个类别,它们的决策边界是一个二次方程,也被称作二次判别方程(quadratic discriminant functions (QDA))

而当两个类别的协方差相等\Sigma_0 = \Sigma_1时, 决策边界为线性的,也被称为线性判别方程(linear discriminant functions(LDA)),对应的参数是
A = 0,
\alpha^T = (\mu_1^T -\mu_0^T )\Sigma^{-1},
\alpha_0 = ln \frac{p(y=0)}{p(y=1)} + \frac{1}{2} (\mu_1+\mu_0) ^T\Sigma^{-1}(\mu_1-\mu_0)

线性决策边界和二次决策边界

F(\mathbf{x}) = \mathbf{x}^T \mathbf{A}\mathbf{x} + \mathbf{\alpha}^T \mathbf{x} + \alpha_0,这个非线性的形式可以转换为一种线性的表示。假设有x=(x_1, x_2),二次决策边界可以看作是在五维空间(x_1,x_2,x_1x_2,x_1^2,x_2^2)里寻找线性决策边界,此空间中的线性不等式与原始空间中的二次不等式相同。

LDA与QDA都被广泛使用,并且都有较好的效果,但是之后会主要关注于LDA。

3. Logistic回归

假设后验概率为
p(y=0|x) = \frac{1}{1+e^{w^Tx+b}} = 1-g(w^Tx)
p(y=1|x) = \frac{e^{w^Tx+b}}{1+e^{w^Tx+b}} = g(w^Tx)
可以通过极大似然法来估计参数,对数似然函数(log_likelihood)为:
L(w,b)=\sum_{i=1}^m lnp(y_i|x_i)
=\sum(y_ilnf(w^Tx_i)+(1-y_i)ln(1-f(w^Tx_i)))
=\sum^m_{i=1}(y_i ln \frac{e^{w^Tx_i}}{1+e^{w^Tx_i}}+(1-y_i)ln \frac{1}{1+e^{w^Tx_i}})
=\sum_{i=1}^m (y_i w^Tx_i+ln\frac{1}{1+e^ {w^Tx_i}})

最大化这个似然函数也就等价于最小化负的似然函数,而负的似然函数是可导的连续凸函数,可以使用梯度下降法、牛顿法等求得最优解。
对于牛顿法,第k+1轮的更新公式为:

w^{(k+1)}=w^{(k)}-(\frac{\partial^2}{\partial w \partial w^T} L(w^{(k)}))^{-1} \frac{\partial}{\partial w}L(w^{(k)})
其中一、二阶导数分别为
\frac{\partial L(w)}{\partial w} = -\sum_{i=1}^m (y_i-g(w^Tx))x_i
\frac{\partial^2 L(w)}{\partial w \partial w^T} = \sum_{i=1}^m g(w^Tx_i)(1-g(w^Tx_i))x_ix_i^T

逻辑回归虽然叫做回归,但是一种分类方法,优点有可以直接对分类的可能性进行建模,无需事先假设数据分布,可以得到近似的概率预测,以及有很好的数学性质,方便取最优解等。

当使用逻辑回归处理多分类问题时,如果一个样本只对应一个标签,可以假设每个样本属于不同标签的概率服从于几何分布,使用多项逻辑回归(Softmax Regression)来进行分类。

当存在样本可能属于多个标签的情况时,可以训练k个二分类的逻辑回归分类器。第i个分类器用以区分每个样本是否可以归为第i类,训练该分类器时,需要把标签重新整理为“第i类标签”与“非第i类标签”两类。通过这样的办法,就解决了每个样本可能拥有多个标签的情况。

Reference

上一篇下一篇

猜你喜欢

热点阅读