逻辑回归Logistic Regression——二分类原理推导

逻辑回归原理推导——Logistic Regression

逻辑回归是经典的二分类算法,逻辑回归的决策边界是非线性的。

例如下面的两种分类
在这里插入图片描述
在这里插入图片描述
前者是线性的,后者是非线性的。

实际分类中经常是先用逻辑回归分类,再用其他分类如支持向量机等,逻辑回归是比较简单的分类算法,先用逻辑回归再用其他复杂的分类算法查看分类效果,决定是否有必要使用其他分类算法。

分类时候我们想要的当然是某一个样本属于 A A A还是属于 B B B的概率为多大,然后设定一个阈值,当计算概率大于这个阈值的时候计算机判定该样本属于 A A A,当计算概率小于该阈值的时候计算机判定该样本属于 B B B

那么这就要用到sigmoid函数

sigmoid函数

sigmoid函数的计算公式如下

g ( z ) = 1 1 + e − z ​ \begin{aligned}g(z) = \frac{1}{1+e^{-z}}\end{aligned}​ g(z)=1+ez1,自变量和函数值的取值范围分别为 [ − ∞ , + ∞ ] , ( 0 , 1 ) ​ [-\infty,+\infty],(0,1)​ [,+],(0,1)

对sigmoid函数的求导过程如下

g ′ ( z ) = 0 × ( 1 + e − z ) − ( − e − z ) ( 1 + e − z ) 2 = e − z ( 1 + e − z ) 2 = 1 + e − z − 1 ( 1 + e − z ) 2 = 1 + e − z ( 1 + e − z ) 2 − 1 ( 1 + e − z ) 2 = g ( z ) − g ( z ) 2 = g ( z ) ( 1 − g ( z ) ) \begin{aligned}g'(z) = \frac{0\times(1+e^{-z})-(-e^{-z})}{(1+e^{-z})^2} = \frac{e^{-z}}{(1+e^{-z})^2} = \frac{1+e^{-z}-1}{(1+e^{-z})^2} =\frac{1+e^{-z}}{(1+e^{-z})^2} - \frac{1}{(1+e^{-z})^2} = g(z) - g(z)^2 = g(z)(1-g(z))\end{aligned} g(z)=(1+ez)20×(1+ez)(ez)=(1+ez)2ez=(1+ez)21+ez1=(1+ez)21+ez(1+ez)21=g(z)g(z)2=g(z)(1g(z))

g ( z ) g(z) g(z) g ′ ( z ) g'(z) g(z)的函数图像如下

在这里插入图片描述

g ( z ) = 1 1 + e − z \begin{aligned}g(z) = \frac{1}{1+e^{-z}}\end{aligned} g(z)=1+ez1 z z z就是输入值,就是我们得到的预测值,在通过sigmoid函数将该预测值转化成概率,这就是我们想要得到的概率值。本来我们预测的是一个值,现在就转化成了预测的概率。

预测函数

h θ ( x ) = g ( θ T x ) = 1 1 + e θ T x \begin{aligned}h_\theta(x) = g(\theta^Tx) =\frac{1}{1+e^{\theta^Tx}}\end{aligned} hθ(x)=g(θTx)=1+eθTx1

其中 θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + … + θ n x n = ∑ i = 0 i = n θ i x i = θ T X \theta_0x_0+\theta_1x_1+\theta_2x_2 + …+\theta_nx_n = \sum_{i = 0}^{i = n}\theta_ix_i =\theta^TX θ0x0+θ1x1+θ2x2++θnxn=i=0i=nθixi=θTX

对于二分类任务某个样本属于1的概率为

P ( y = 1 ∣ x ; θ ) = h θ ( x ) P(y = 1|x;\theta) = h_\theta(x) P(y=1x;θ)=hθ(x)

那么属于0的概率为

P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P(y = 0|x;\theta) = 1-h_\theta(x) P(y=0x;θ)=1hθ(x)

对上面两个公式进行整合可得到

P ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y ​ P(y|x;\theta) = (h_\theta(x))^y(1-h_\theta(x))^{1-y}​ P(yx;θ)=(hθ(x))y(1hθ(x))1y

对于二分类任务(0,1)整合后 y = 0 ​ y = 0​ y=0只保留 ( 1 − h θ ( x ) ) 1 − y ​ (1-h_\theta(x))^{1-y}​ (1hθ(x))1y, y = 1 ​ y = 1​ y=1只保留 h θ ( x ) ) y ​ h_\theta(x))^y​ hθ(x))y

此时我们构造似然函数求解 θ \theta θ的值

L ( θ ) = ∏ i = 1 i = m P ( y i ∣ x i ; θ ) = ∏ i = 1 i = m ( h θ ( x i ) ) y i ( 1 − h θ ( x i ) ) 1 − y i \begin{aligned}L(\theta) = \prod_{i = 1}^{i = m}P(y_i|x_i;\theta) = \prod_{i = 1}^{i = m}(h_\theta(x_i))^{y_i}(1-h_\theta(x_i))^{1-y^{i}}\end{aligned} L(θ)=i=1i=mP(yixi;θ)=i=1i=m(hθ(xi))yi(1hθ(xi))1yi

显然乘法计算复杂,将上述似然函数取对数得到对数似然函数

l ( θ ) = l n ( L ( θ ) ) = ∑ i = 1 i = m ( y i l n ( h θ ( x i ) ) + ( 1 − y i ) l n ( 1 − h θ ( x i ) ) ) ​ \begin{aligned}l(\theta)=ln(L(\theta)) = \sum_{i =1}^{i = m}(y_iln(h_\theta(x_i))+(1-y_i)ln(1-h_\theta(x_i)))\end{aligned}​ l(θ)=ln(L(θ))=i=1i=m(yiln(hθ(xi))+(1yi)ln(1hθ(xi)))

我们的目标是求此对数似然函数的极大值,至于为什么要求似然函数的极大值请参考我的文章

既然要求此似然函数的极大值,那么这个问题必然是一个梯度上升的问题,但是我们通常情况下是求梯度下降问题,令 J ( θ ) = − 1 m l ( θ ) ​ \begin{aligned}J(\theta) = -\frac{1}{m}l(\theta)\end{aligned}​ J(θ)=m1l(θ)就转换为了梯度下降问题,系数 1 / m ​ 1/m​ 1/m是指考虑所有样本。

∂ J ( θ ) ∂ θ j = − 1 m ∑ i = 1 i = m ( y i 1 h θ ( x i ) ∂ h θ ( x i ) ∂ θ j − ( 1 − y i ) 1 1 − h θ ( x i ) ∂ h θ ( x i ) ∂ θ j ) = 1 m ∑ i = 1 i = m ( y i 1 g ( θ T x i ) − ( 1 − y i ) 1 1 − g ( θ T x i ) ) ∂ g ( θ T x i ) ∂ θ j ​ \begin{aligned}\frac{\partial J(\theta)}{\partial \theta_j} = -\frac{1}{m}\sum_{i =1}^{i = m}(y_i\frac{1}{h_\theta(x_i)}\frac{\partial h_\theta(x_i)}{\partial \theta_j}-(1-y_i)\frac{1}{1-h_\theta(x_i)}\frac{\partial h_\theta(x_i)}{\partial \theta_j}) =\frac{1}{m}\sum_{i = 1}^{i = m}(y_i\frac{1}{g(\theta^Tx_i)}-(1-y_i)\frac{1}{1-g(\theta^Tx_i)})\frac{\partial g(\theta^Tx_i)}{\partial \theta_j} \end{aligned}​ θjJ(θ)=m1i=1i=m(yihθ(xi)1θjhθ(xi)(1yi)1hθ(xi)1θjhθ(xi))=m1i=1i=m(yig(θTxi)1(1yi)1g(θTxi)1)θjg(θTxi)

= − 1 m ∑ i = 1 i = m ( y i 1 g ( θ T x i ) − ( 1 − y i ) 1 1 − g ( θ T x i ) ) = g ( θ T x i ) ( 1 − g ( θ T x i ) ) ∂ θ T x i ∂ θ j =\begin{aligned}-\frac{1}{m}\sum_{i = 1}^{i = m}(y_i\frac{1}{g(\theta^Tx_i)}-(1-y_i)\frac{1}{1-g(\theta^Tx_i)}) = g(\theta^Tx_i)(1-g(\theta^Tx_i))\frac{\partial \theta^Tx_i}{\partial \theta_j}\end{aligned} =m1i=1i=m(yig(θTxi)1(1yi)1g(θTxi)1)=g(θTxi)(1g(θTxi))θjθTxi

= − 1 m ∑ i = 1 i = m ( y i ( 1 − g ( θ T x i ) ) − ( 1 − y i ) g ( θ T x i ) ) x i j ​ =\begin{aligned}-\frac{1}{m}\sum_{i =1}^{i = m}(y_i(1-g(\theta^Tx_i))-(1-y_i)g(\theta^Tx_i))x_i^j\end{aligned}​ =m1i=1i=m(yi(1g(θTxi))(1yi)g(θTxi))xij

= − 1 m ∑ i = 1 i = m ( y i − g ( θ T x i ) ) x i j =\begin{aligned}-\frac{1}{m}\sum_{i =1}^{i =m}(y_i - g(\theta^Tx_i))x_i^j\end{aligned} =m1i=1i=m(yig(θTxi))xij

= 1 m ∑ i = 1 i = m ( h θ ( x ) − y i ) x i j ​ = \begin{aligned}\frac{1}{m}\sum_{i =1}^{i = m}(h_\theta(x)-y_i)x_i^j\end{aligned}​ =m1i=1i=m(hθ(x)yi)xij

经过求导梯度已经得到,接下来就是参数的更新

θ j ′ = θ j − α 1 m ( ( h θ ( x ) − y i ) x i j ) ​ \begin{aligned}\theta_j' =\theta_j - \alpha\frac{1}{m}((h_\theta(x)-y_i)x_i^j)\end{aligned}​ θj=θjαm1((hθ(x)yi)xij)

这就是在二分类任务中使用的sogmoid函数以及二分类的推导过程。

而在多分类任务中使用的是softmax函数。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值