机器学习——逻辑回归

一、逻辑回归

1、逻辑斯谛回归模型

我们可以用线性模型 z = w T x + b z=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b z=wTx+b 来做回归任务,如果我们用此线性模型来做分类任务,需要用一个单调可微函数 g ( ⋅ ) g(\cdot) g()将分类任务的真实标签 y y y与线性回归模型的预测值联系起来:
(1) y = g − 1 ( w T x + b ) y=g^{-1}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right)\tag{1} y=g1(wTx+b)(1)
这里我们使用对数几率函数(logistic function):
(2) y = 1 1 + e − z y=\frac{1}{1+e^{-z}} \tag{2} y=1+ez1(2)
它将 z z z值转化为一个接近0或1的值,结合(1)和(2)可以得到:
(3) y = 1 1 + e − ( w T x + b ) y=\frac{1}{1+e^{-\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right)}} \tag{3} y=1+e(wTx+b)1(3)

ln ⁡ y 1 − y = w T x + b \ln \frac{y}{1-y}=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b ln1yy=wTx+b

y y y视为样本 x \boldsymbol{x} x是正例的可能性,则 1 − y 1-y 1y是其反例的可能性,其比值 y 1 − y \frac y{1-y} 1yy称为几率(odds),反映了 x \boldsymbol{x} x作为正例的相对可能性,取对数得到 l n y 1 − y \mathrm{ln}\frac y{1-y} ln1yy,称为对数几率。这实际上使用线性回归模型的预测结果取逼近真实标签的对数几率。

上面提到 y y y视为样本 x \boldsymbol{x} x是正例的可能性,即 y = p ( y = 1 ∣ x ) y=p(y=1|\boldsymbol{x}) y=p(y=1x),显然有:
p ( y = 1 ∣ x ) = e w T x + b 1 + e w T x + b p ( y = 0 ∣ x ) = 1 1 + e w T x + b \begin{aligned} p(y&=1 | \boldsymbol{x})=\frac{e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}} \\ p(y&=0 | \boldsymbol{x})=\frac{1}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}} \end{aligned} p(yp(y=1x)=1+ewTx+bewTx+b=0x)=1+ewTx+b1

2、极大似然估计

我们的任务就是估计参数 w \boldsymbol{w} w b b b,可以使用极大似然估计。给定数据集 { ( x i , y i ) } i = 1 m \left\{\left(\boldsymbol{x}_{i}, y_{i}\right)\right\}_{i=1}^{m} {(xi,yi)}i=1m,并设 θ = { w , b } \boldsymbol{\theta}=\left\{\boldsymbol{w}, b\right\} θ={w,b} h θ ( x ) = e w T x + b 1 + e w T x + b h_{\theta}(\boldsymbol{x})=\frac{e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}}{1+e^{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b}} hθ(x)=1+ewTx+bewTx+b,那么:
p ( y = 1 ∣ x ; θ ) = h θ ( x ) p ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) \begin{array}{l}{p(y=1 | \boldsymbol{x} ; \boldsymbol{\theta})=h_{\theta}(\boldsymbol{x})} \\ {p(y=0 | \boldsymbol{x} ; \boldsymbol{\theta})=1-h_{\theta}(\boldsymbol{x})}\end{array} p(y=1x;θ)=hθ(x)p(y=0x;θ)=1hθ(x)
上式可以合写为:
(4) p ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y p(y | \boldsymbol{x} ; \boldsymbol{\theta})=\left(h_{\theta}(\boldsymbol{x})\right)^{y}\left(1-h_{\theta}(\boldsymbol{x})\right)^{1-y} \tag{4} p(yx;θ)=(hθ(x))y(1hθ(x))1y(4)
则可以写出似然函数:
L ( θ ) = p ( Y ∣ X ; θ ) = ∏ i = 1 m p ( y i ∣ x i ; θ ) = ∏ i = 1 m ( h θ ( x i ) ) y i ( 1 − h θ ( x i ) ) 1 − y i \begin{aligned} L(\boldsymbol{\theta}) &=p(Y | \boldsymbol{X} ; \boldsymbol{\theta}) \\ &=\prod_{i=1}^{m} p\left(y_{i} | \boldsymbol{x}_{i} ; \boldsymbol{\theta}\right) \\ &=\prod_{i=1}^{m}\left(h_{\theta}\left(\boldsymbol{x}_{i}\right)\right)^{y_{i}}\left(1-h_{\theta}\left(\boldsymbol{x}_{i}\right)\right)^{1-y_{i}} \end{aligned} L(θ)=p(YX;θ)=i=1mp(yixi;θ)=i=1m(hθ(xi))yi(1hθ(xi))1yi
取对数得到对数似然函数:
ℓ ( θ ) = log ⁡ L ( θ ) = ∑ i = 1 m y i log ⁡ h θ ( x i ) + ( 1 − y i ) log ⁡ ( 1 − h θ ( x i ) ) \begin{aligned} \ell(\boldsymbol{\theta}) &=\log L(\boldsymbol{\theta}) \\ &=\sum_{i=1}^{m} y_{i} \log h_{\theta}\left(\boldsymbol{x}_{i}\right)+\left(1-y_{i}\right) \log \left(1-h_{\theta}\left(\boldsymbol{x}_{i}\right)\right) \end{aligned} (θ)=logL(θ)=i=1myiloghθ(xi)+(1yi)log(1hθ(xi))
每个样本属于真实标签的概率越大越好,因此要最大化对数似然函数:
θ ∗ = arg ⁡ max ⁡ θ ℓ ( θ ) {\boldsymbol{\theta}}^{\ast}=\underset{\theta}{\arg \max } \ell(\boldsymbol{\theta}) θ=θargmax(θ)
ℓ ( θ ) \ell(\boldsymbol{\theta}) (θ)是关于 θ \boldsymbol{\theta} θ的高阶连续可导凸函数,可以使用梯度下降法、牛顿法等得到其最优解。以梯度下降法为例,我们需要最小化 − ℓ ( θ ) -\ell(\boldsymbol{\theta}) (θ)
θ ∗ = arg ⁡ min ⁡ θ − ℓ ( θ ) {\boldsymbol{\theta}}^{*}=\underset{\theta}{\arg \min } -\ell(\boldsymbol{\theta}) θ=θargmin(θ)
对其求导得:
∂ ∂ θ ℓ ( θ ) = ( − y 1 h θ ( x ) + ( 1 − y ) 1 1 − h θ ( x ) ) ∂ ∂ θ h θ ( x ) = ( − y 1 h θ ( x ) + ( 1 − y ) 1 1 − h θ ( x ) ) h θ ( x ) ( 1 − h θ ( x ) ) ∂ ∂ θ θ T x = ( − y ( 1 − h θ ( x ) ) + ( 1 − y ) h θ ( x ) ) x = ( h θ ( x ) − y ) x \begin{aligned} \frac{\partial}{\partial \boldsymbol{\theta}} \ell(\boldsymbol{\theta}) &=\left(-y \frac{1}{h_{\theta}\left(\boldsymbol{x}\right)}+(1-y) \frac{1}{1-h_{\theta}\left(\boldsymbol{x} \right)}\right) \frac{\partial}{\partial \boldsymbol{\theta}} h_{\theta}\left(\boldsymbol{x}\right) \\ &=\left(-y \frac{1}{h_{\theta}\left(\boldsymbol{x} \right)}+(1-y) \frac{1}{1-h_{\theta}\left(\boldsymbol{x} \right)}\right) h_{\theta}\left(\boldsymbol{x} \right) \left(1-h_{\theta}(\boldsymbol{x} ) \right) \frac{\partial}{\partial \boldsymbol{\theta}} \boldsymbol{\theta}^{\mathrm T} \boldsymbol{x} \\ &=\left(-y\left(1-h_{\theta}\left(\boldsymbol{x} \right)\right)+(1-y) h_{\theta}\left(\boldsymbol{x}\right)\right) \boldsymbol{x} \\ &=\left(h_{\theta}(\boldsymbol{x})-y\right) \boldsymbol{x} \end{aligned} θ(θ)=(yhθ(x)1+(1y)1hθ(x)1)θhθ(x)=(yhθ(x)1+(1y)1hθ(x)1)hθ(x)(1hθ(x))θθTx=(y(1hθ(x))+(1y)hθ(x))x=(hθ(x)y)x
再更新梯度:
θ : = θ − α ( h θ ( x ) − y ) x \boldsymbol{\theta} :=\boldsymbol{\theta}-\alpha\left(h_{\theta}\left(\boldsymbol{x}\right)-y\right) \boldsymbol{x} θ:=θα(hθ(x)y)x

参考资料

  • 周志华《机器学习》
  • 李航《统计学习方法》
  • 吴恩达《机器学习》公开课
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值