逻辑回归梯度求解复习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文主要记录对数几率回归模型的学习和推导过程。


提示:以下是本篇文章正文内容,下面案例可供参考

一、对数几率回归模型

示例:对数几率回归模型又叫逻辑回归(LogisticRegression)。

在分类任务中,在给定输入x的情况下,概率密度函数为:

p ( y ∣ x ; μ ) = μ ( x ) y ( 1 − μ ( x ) ) 1 − y p(y|x;\mu)=\mu(x)^y(1-\mu(x))^{1-y} p(yx;μ)=μ(x)y(1μ(x))1y

期望 μ ( x ) \mu(x) μ(x) 如何表示? 最简单的模型: 线性模型

μ ( x ) = w T x \mu(x)=w^\mathrm{T}x μ(x)=wTx

但是 μ ( x ) \mu(x) μ(x)表示给定 x x x的情况下, y = 1 y=1 y=1的概率,取值为区间[0,1]。
所以,将 w T x w^\mathrm{T}x wTx的输出范围转换到[0,1]:
利用 sigmoid函数 (S形函数)可以实现该转换:
Sigmoid函数为:

d σ ( z ) d z = σ ( z ) ( 1 − σ ( z ) ) \frac{d\sigma(z)}{dz}=\sigma(z)(1-\sigma(z)) dzdσ(z)=σ(z)(1σ(z))
在这里插入图片描述

二、损失函数

1.交叉熵损失

对数几率模型:
y ∣ x ∼ B e r n o u l l i ( μ ( x ) ) , p ( y ∣ x ; μ ( x ) ) = μ ( x ) y ( 1 − μ ( x ) ) ( 1 − y ) ,其中 μ ( x ) = σ ( w T x   ) y|x\thicksim\mathrm{Bernoulli}(\mu(x)), p(y|x;\mu(x))=\mu(x)^y(1-\mu(x))^{(1-y)} ,其中 \mu(x)=\sigma(w^\mathrm{T}x^\mathrm{~}) yxBernoulli(μ(x))p(yx;μ(x))=μ(x)y(1μ(x))(1y),其中μ(x)=σ(wTx )
log似然:
ℓ ( μ ) = ln ⁡ p ( D ) = ∑ i = 1 N ln ⁡ p ( y i ∣ x i ) = ∑ i = 1 N ln ⁡ ( μ ( x i ) y i ( 1 − μ ( x i ) ) ( 1 − y i ) ) \begin{aligned}\ell(\mu)&=\ln p(\mathcal{D})=\sum_{i=1}^N\ln p(y_i|x_i)\\&=\sum_{i=1}^N\ln\bigl(\mu(x_i)^{y_i}(1-\mu(x_i))^{(1-y_i)}\bigr)\end{aligned} (μ)=lnp(D)=i=1Nlnp(yixi)=i=1Nln(μ(xi)yi(1μ(xi))(1yi))
交叉熵损失:
定义负log似然损失又叫交叉熵损失为:

L ( y , μ ( x ) ) = − y ln ⁡ ( μ ( x ) ) − ( 1 − y ) ln ⁡ ( 1 − μ ( x ) ) L\bigl(y,\mu(x)\bigr)=-y\ln\bigl(\mu(x)\bigr)-(1-y)\ln\bigl(1-\mu(x)\bigr) L(y,μ(x))=yln(μ(x))(1y)ln(1μ(x))
对数几率回归的损失函数采用交叉熵损失

L ( y , μ ( x ) ) = − y ln ⁡ ( μ ( x ) ) − ( 1 − y ) ln ⁡ ( 1 − μ ( x ) ) L\big(y,\mu(x)\big)=-y\ln\big(\mu(x)\big)-(1-y)\ln\big(1-\mu(x)\big) L(y,μ(x))=yln(μ(x))(1y)ln(1μ(x))

其中 y y y为真值, μ ( x ) = σ ( w T x   ) \mu(x)=\sigma(w^\mathrm{T}x^\mathrm{~}) μ(x)=σ(wTx )为预测值为1的概率。
N个样本上的目标函数如下:
J ( w , b ) = 1 N ∑ i = 1 N L ( y i ^ , y i ) = − 1 N ∑ i = 1 N [ y i l n ( y i ^ ) + ( 1 − y i ) l n ( 1 − y i ^ ) ] J(w,b)=\frac1N\sum_{i=1}^NL(\hat{y_i},y_i)=-\frac1N\sum_{i=1}^N[y_iln(\hat{y_i})+(1-y_i)ln(1-\hat{y_i})] J(w,b)=N1i=1NL(yi^,yi)=N1i=1N[yiln(yi^)+(1yi)ln(1yi^)]

2.加入正则项的目标函数

J ( w , b ) = 1 N ∑ i = 1 N L ( y i ^ , y i ) = − 1 N ∑ i = 1 N [ y i l n ( y i ^ ) + ( 1 − y i ) l n ( 1 − y i ^ ) ] J(w,b)=\frac1N\sum_{i=1}^NL(\hat{y_i},y_i)=-\frac1N\sum_{i=1}^N[y_iln(\hat{y_i})+(1-y_i)ln(1-\hat{y_i})] J(w,b)=N1i=1NL(yi^,yi)=N1i=1N[yiln(yi^)+(1yi)ln(1yi^)]
加入正则项:
实现的目标函数为
J ( w , b , λ ) = C ∑ i = 1 N L ( y i , μ ( x i ; w ) ) + λ R ( w ) J(w,b,\lambda)=C\sum_{i=1}^N L\bigl(y_i,\mu(x_i;w)\bigr)+\lambda R(w) J(w,b,λ)=Ci=1NL(yi,μ(xi;w))+λR(w) 正则项 R ( w ) 可为L1正则、L2正则、L1正则+L2正则 \text{正则项}R(\mathbf{w})\text{可为L1正则、L2正则、L1正则+L2正则} 正则项R(w)可为L1正则、L2正则、L1正则+L2正则正则越少。 其中超参数 C C C起到正则作用, C C C越大,正则越少。

3.求梯度

以L2正则为例:
正则项取L2正则 : R ( w ) = ∑ j = 1 D w j 2 = w T w \text{正则项取L2正则}:R(\mathbf{w})=\sum_{j=1}^Dw_j^2=w^Tw 正则项取L2正则:R(w)=j=1Dwj2=wTw
对于单个样本:
目标函数为 J ( w , b , λ ) = − y ln ⁡ ( μ ( x ) ) − ( 1 − y ) ln ⁡ ( 1 − μ ( x ) ) + λ ∑ j = 1 D w j 2 J(w,b,\lambda)=-y\ln\bigl(\mu(x)\bigr)-(1-y)\ln\bigl(1-\mu(x)\bigr)+\lambda \sum_{j=1}^Dw_j^2 J(w,b,λ)=yln(μ(x))(1y)ln(1μ(x))+λj=1Dwj2
首先给出预备知识:
μ ( x , w ) = σ ( w T x + b ) σ ( z ) = 1 1 + e − z d σ ( z ) d z = σ ( z ) ( 1 − σ ( z ) ) ∂ ( w T x + b ) ∂ w = x ∂ ( w T x + b ) ∂ b = 1 \begin{gathered} \mu(x,w)=\sigma(w^{\mathrm{T}}x+b) \\ \sigma(z)=\frac{1}{1+e^{-z}} \\ \frac{d\sigma(z)}{dz}=\sigma(z)(1-\sigma(z)) \\ \frac{\partial\left(\boldsymbol{w}^\mathrm{T}\boldsymbol{x +b}\right)}{\partial\boldsymbol{w}}=x \\ \frac{\partial\left(\boldsymbol{w}^\mathrm{T}\boldsymbol{x +b}\right)}{\partial\boldsymbol{b}}=1 \end{gathered} μ(x,w)=σ(wTx+b)σ(z)=1+ez1dzdσ(z)=σ(z)(1σ(z))w(wTx+b)=xb(wTx+b)=1
第一步:
∂ J ∂ u ( x ) = − ∂ ∂ u ( x ) [ y l o g u ( w , x ) + ( 1 − y ) l o g ( 1 − u ( x ) ) ] = − y u ( x ) + 1 − y 1 − u ( x ) \begin{aligned} \frac{\partial J}{\partial u(x)}& =-\frac\partial{\partial u(x)}[ylogu(w,x)+(1-y)log(1-u(x))] & \\ &=-\frac y{u(x)}+\frac{1-y}{1-u(x)} \end{aligned} u(x)J=u(x)[ylogu(w,x)+(1y)log(1u(x))]=u(x)y+1u(x)1y
其次:
d σ ( z ) d z = u ( x ) ( 1 − u ( x ) ) ∂ z ( w , b ) ∂ w = − ∂ ∂ w ( w T x + b ) = x ∂ z ( w , b ) ∂ b = − ∂ ∂ b ( w T x + b ) = 1 \begin{gathered} \begin{aligned}\frac{d\sigma(z)}{dz}=u(x)(1-u(x))\end{aligned} \\ \begin{aligned}\frac{\partial z(w,b)}{\partial w}=-\frac\partial{\partial w}(w^Tx+b)=x\end{aligned} \\ \frac{\partial z(w,b)}{\partial b}=-\frac\partial{\partial b}(w^Tx+b)=1 \end{gathered} dzdσ(z)=u(x)(1u(x))wz(w,b)=w(wTx+b)=xbz(w,b)=b(wTx+b)=1
又:
∂ R ( w ) ∂ w = 2 w ∂ R ( w ) ∂ b = 0 ω \begin{aligned}\frac{\partial R(w)}{\partial w}&=2w\\\frac{\partial R(w)}{\partial b}&=0\end{aligned}^{\omega} wR(w)bR(w)=2w=0ω
根据求导链式法则得到:
∂ J ∂ w = ∂ J ∂ u ( x ) d σ ( z ) d z ∂ z ( w , b ) ∂ w = ( u ( x ) − y ) x + 2 λ w ∂ J ∂ b = ∂ J ∂ u ( x ) d σ ( z ) d z ∂ z ( w , b ) ∂ b = u ( x ) − y \begin{aligned}\frac{\partial J}{\partial w}&=\frac{\partial J}{\partial u(x)}\frac{d\sigma(z)}{dz}\frac{\partial z(w,b)}{\partial w}=(u(x)-y)x+2\lambda w\\\frac{\partial J}{\partial b}&=\frac{\partial J}{\partial u(x)}\frac{d\sigma(z)}{dz}\frac{\partial z(w,b)}{\partial b}={}^{}u(x)-y\end{aligned} wJbJ=u(x)Jdzdσ(z)wz(w,b)=(u(x)y)x+2λw=u(x)Jdzdσ(z)bz(w,b)=u(x)y

综上:
当提供学习率时就可以进行梯度下将求解;
1. 初始化 w ( 0 ) w^{(0)} w(0) ( 上标括号中的数字表示迭代次数 ) ; 2. 计算函数 J ( w ) J_{(w)} J(w)在当前位置 w ( t ) w^{(t)} w(t)处的梯度 ∇ w J ∣ w ( t ) \color{red}{\nabla_w}\color{red}{J|_{w^{(t)}}} wJw(t)

  1. 根据当前学习率η,更新参数

w ( t + 1 ) = w ( t ) − η ∇ w J ∣ w ( t ) w^{(t+1)}=w^{(t)}-\eta\left.\nabla_wJ\right|_{w^{(t)}} w(t+1)=w(t)ηwJw(t)

4.若 J ( w ( t ) ) − J ( w ( t + 1 ) ) < ε J(w^{(t)})-J(w^{(t+1)})<\varepsilon J(w(t))J(w(t+1))<ε,返回 w ( t ) w^{(t)} w(t)为最佳参数 ; 否则 t = t + 1 t=t+1 t=t+1,转第2步。

总结

主要是进行一个逻辑回归梯度得一个求解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值