回归(二):Logistic回归

回归(二)

Logistic 回归

虽然本小节的方法叫做Logistic回归,但是Logistic回归通常用于解决离散状态的分类问题。

Logistic/sigmoid函数

首先直接给出sigmoid函数的定义:

g(z) = \frac{1}{1+ e^{-z}}​

我们在线性回归中使用的使用的预测函数:h_{\theta}(x) = \theta^Tx​,将其直接代入到sigmoid函数中,并将这个新的函数作为我们的预测函数:

h_{\theta}(x) = g(\theta^Tx) = \frac{1}{1+ e^{-\theta^Tx}}

sigmoid函数有一个很好的性质就是,它的就到时非常简单的:

g^{'}(x) =( \frac{1}{1+ e^{-x}})^{'} = \frac{e^{-x}}{(1+e^{-x})^2}\\ = \frac{1}{1+e^{-x}}\centerdot\frac{e^{-x}}{1+e^{-x}} = \frac{1}{1+e^{-x}}\centerdot(1- \frac{1}{1+e^{-x}})\\ =g(x)(1-g(x))

Logistic回归的优化算法

在最简单的二分类问题中,我们可以将问题简化为y只能取两个值:0和1。并且将h_{\theta}(x)作为y取1的概率,因此我们可以假设:

P(y=1|x;\theta) = h_{\theta}(x)​

P(y=0|x;\theta) = 1-h_{\theta}(x)

P(y|x, \theta) = (h_{\theta}(x))^y (1-h_{\theta}(x))^{1-y}​

因此可以计算所有样本的似然函数;

L(\theta) = p(\vec y|X; \theta)\\ = \prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta)\\ =\prod_{i=1}^m(h_{\theta}(x^{(i)}))^{y^{(i)}} (1-h_{\theta}(x^{(i)}))^{1-y^{(i)}}​

取对数似然函数:

l(\theta) = logL(\theta) = \sum_{i=1}^my^{(i)}logh(x^{(i)}) + (1-y^{(i)})log(1-h(x^{(i)}))​

对数似然函数对参数\theta求偏导:

\frac{\partial l(\theta)}{\partial \theta^j} = \sum_{i=1}^m(\frac{y^{(i)}}{h_{\theta}(x^{(i)})} - \frac{1- y^{(i)}}{1-h_{\theta}(x^{(i)})})\centerdot\frac{\partial h_{\theta}(x^{(i)})}{\partial \theta_j}\\ =\sum_{i=1}^m(\frac{y^{(i)}}{g(\theta^Tx^{(i)})} - \frac{1- y^{(i)}}{1-g(\theta^Tx^{(i)})})\centerdot\frac{\partial g(\theta^Tx^{(i)})}{\partial \theta_j}\\ =\sum_{i=1}^m(\frac{y^{(i)}}{g(\theta^Tx^{(i)})} - \frac{1- y^{(i)}}{1-g(\theta^Tx^{(i)})})\centerdot g(\theta^Tx^{(i)})(1-g(\theta^Tx^{(i)}))\centerdot\frac{\partial \theta^Tx^{(i)}}{\partial \theta_j}\\ =\sum_{i=1}^m(y^{(i)}(1-g(\theta^Tx^{(i)})) - (1-y^{(i)})g(\theta^Tx^{(i)}))\centerdot x^{(i)}_j\\ =\sum_{i=1}^m(y^{(i)}-g(\theta^Tx))\centerdot x^{(i)}_j

因此,根据极大似然估计,很容易就可以得到学习的算法:

\theta_j := \theta_j + \alpha(y^{(i)} - h_{\theta}(x^{(i)}))x^{(i)}_j

其实logistic回归的学习和线性回归具有相同的形式。在预测的过程中,我们使用模型来计算y=1的概率,如果超过0.5就预测y=1,否则就预测y=1

Logistic回归的解释

一个事件发生的几率odds,是该事件发生的概率和该事件不发生的概率的比值。

我们之前直接把h_{\theta}(x)作为y取1的概率,我们来计算一下y取1的对数几率:

ln\ odds(p) = ln\frac{p}{1-p} = ln\frac{h_{\theta}(x)}{1-h_{\theta}(x)} = ln\frac{\frac{1}{1+e^{-\theta^Tx}}}{\frac{e^{-\theta^Tx}}{1+e^{-\theta^Tx}}} = \theta^Tx

因此logistic回归就可以看成是一个广义的线性回归,\theta^Tx可以解释为事件y=1的几率。反过来我们可以推导出sigmoid函数,如果我们想要构造一个模型,是的y=1的对数几率满足一个线性模型,即:

ln\frac{p}{1-p} = \theta^Tx \Rightarrow \frac{p}{1-p} = e^{\theta^Tx}\\ \Rightarrow (1+e^{\theta^T x})\centerdot p = e^{\theta^Tx}\\ \Rightarrow p = \frac{e^{\theta^Tx}}{1+ e^{\theta^Tx}}\\ \Rightarrow p = \frac{1}{1+e^{-\theta^Tx}}

就得到了sigmoid函数的形式。以上推导,读者可以自行理解。

Logistic回归的损失函数

这里我们对y的取值做一些修改,即:y_i\in\{-1, 1\},因此我们可以改写一下似然函数:

L(\theta) = \prod _{i=1}^{m} p_i^{(y_i+1)/2}(1-p_i)^{-(y_i-1)/2}\\ \Rightarrow l(\theta) = \sum ln\left[ p_i^{(y_i+1)/2}(1-p_i)^{-(y_i-1)/2} \right]

我们令p_i = \frac{1}{1+e^{-f_i}},那么:

l(\theta) = \sum_{i=1}^m ln \left[ \left(\frac{1}{1+e^{-f_i}}\right)^{(y_i+1)/2}\left( \frac{1}{1+e^{f_i}} \right)^{-(y_i-1)/2}\right]

\therefore loss(y_i, \hat{y_i}) = -l(\theta)\\ = \sum_{i=1}^m \left[ \frac{1}{2} (y_i + 1) ln(1+e^{-f_i}) - \frac{1}{2}(y_i - 1)ln(1+e^{f_i}) \right]\\ = \begin{cases}\sum_{i=1}^m\left[ ln(1+e^{-f_i})\right] \qquad y_i = 1\\ \sum_{i=1}^m\left[ ln(1+e^{f_i})\right] \qquad y_i = -1 \end{cases} \Rightarrow loss(y_i, \hat{y_i}) = \sum_{i=1}^{m}\left[ ln(1+e^{-y_if_i}) \right]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容