首页 > 其他 > 详细

Logistic Regression

时间:2021-08-03 10:18:47      阅读:20      评论:0      收藏:0      [点我收藏+]

Logistic Regression

背景

之前写到了Linear Regression是为了解决线性的问题,例如预测房价等,结果是连续的值,而现实生活中还存在一些离散的计算,例如最简单的二分类,结果往往用两个离散的值来表示。这时,就要引入Logistic Regression来解决此类问题

Sigmoid函数

也称Logistic函数,它的公式是

\[\sigma(z)=\frac{1}{1+e^{-z}} \]

函数图像如下,可以很明显的看到,在z无穷小处,其值为0,无穷大处,其值为1,所以利用其特性可以用来做二分类问题,即通过Sigmoid,将结果转化成趋近于0或趋近于1的值

技术分享图片

其函数的导数为:

\[\sigma‘(z)=\frac{e^{-z}}{(1+e^{-z})^2}=\sigma(z)(1-\sigma(z)) \]

方便计算

数学推导

和之前的Linear Regression不同的是,引入非线性的函数

\[y=\frac{1}{1+e^{-(h_\theta(x))}}=\frac{1}{1+e^{-(\omega^Tx+b)}} \]

上述式子可以写成另外一种形式:

\[ln(\frac{y}{1-y})=h_\theta(x)=\omega^Tx+b \]

由于使用了Sigmoid函数,所以结果输出在0~1之间,所以原先的均方误差损失函数不能够更好的满足需求,这里引入了交叉熵损失函数

\[\begin{align} J(\theta)=\frac{1}{m}\sum_{i=1}^{m}(y_ilog(h_\theta(x_i))+(1-y_i)log(1-h_\theta(x_i)))\J(\omega,b)=\frac{1}{m}\sum_{i=1}^{m}(y_ilog(\omega^TX_i+b)+(1-y_i)log(1-\omega^TX_i-b)) \end{align} \]

式子中的m是样本参与计算的样本数量

交叉熵损失函数为什么具有更好的效果呢,以下就来分析一下,可以看到,当结果\(y_i\)为1时,可以看到损失值为\(-\ln(y_i-\hat{y})\),反之为0时,损失值为\(-\ln(1-(\hat{y}-y_i))\),从图像上可以看到:

技术分享图片

通过交叉熵损失函数,可以更好的处理0~1之间的损失值。

这里慢慢理解一下

下一步是是最小化损失函数,和Linear Regression一样,求导,这里运用链式求导法则:

\[\begin{align*} \frac{\partial J(\theta)}{\partial \theta_j} &=\frac{\partial}{\partial \theta_j}[-\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}[y_i\frac{1}{h_\theta(x_i)}\frac{\partial}{\partial \theta_j}h_\theta(x_i)-(1-y_i)\frac{1}{1-h_\theta(x_i)}\frac{\partial}{\partial \theta_j}h_\theta(x_i)]&=-\frac{1}{m}\sum_{i=1}^{m}[y_i\frac{1}{h_\theta(x_i)}-(1-y_i)\frac{1}{1-h_\theta(x_i)}]\frac{\partial}{\partial \theta_j}h_\theta(x_i)&=-\frac{1}{m}\sum_{i=1}^{m}[y_i\frac{1}{h_\theta(x_i)}-(1-y_i)\frac{1}{1-h_\theta(x_i)}]\frac{\partial}{\partial \theta_j}g(\theta^Tx_i) \end{align*} \]

\[\begin{align} \frac{\partial}{\partial \theta_j}g(\theta^Tx_i) &=\frac{\partial}{\partial \theta_j}\frac{1}{1+e^{-\theta^Tx_i}}&=\frac{e^{-\theta^Tx_i}}{1+e^{-\theta^Tx_i}}\frac{\partial}{\partial \theta_j}\theta^Tx_i &=g(\theta^Tx_i)(1-g(\theta^Tx_i))\frac{\partial}{\partial \theta_j}(\theta^Tx_i) \end{align} \]

\[\begin{align*} \frac{\partial J(\theta)}{\partial \theta_j} &=-\frac{1}{m}\sum_{i=1}^{m}[y_i(1-g(\theta^Tx_i))-(1-y_i)g(\theta^Tx_i)]\frac{\partial}{\partial \theta_j}(\theta^Tx_i) &=-\frac{1}{m}\sum_{i=1}^{m}(y_i-g(\theta^Tx_i))\frac{\partial}{\partial \theta_j}(\theta^Tx_i) &=\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x_i)-y_i)\frac{\partial}{\partial \theta_j}(\theta^Tx_i) \\end{align*} \]

有趣的是,最后的结果竟然和Linear Regression的均方误差损失函数求导结果一样!

以上就是Logistic Regression的大致概括

Reference

逻辑回归(Logistic Regression)(一)

逻辑回归(Logistic Regression)(二)

Logistic Regression

原文:https://www.cnblogs.com/JoshuaYu/p/15092309.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!