逻辑回归(LR)

一、推导过程

假设要解决的问题是一个二分类问题,目标值为 { 0 , 1 } \{0, 1\} {0,1},以线性回归为基础,将模型输出映射到 [ 0 , 1 ] [0, 1] [0,1] 之间。我们选择这样一个函数:
g ( z ) = 1 1 + e − z h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x g(z) = \frac{1}{1 + e^{-z}} \\ h_\theta(x) = g(\theta^T x) = \frac{1}{1+e^{-\theta^Tx}} g(z)=1+ez1hθ(x)=g(θTx)=1+eθTx1
其中 g ( z ) g(z) g(z)被称为 sigmoid 函数。为什么要选择 sigmoid 函数其实是可以通过指数分布族加上广义线性模型进行推导分析的。通过 sigmoid 函数我们可以计算单个样本属于正类还是负类的概率:
p ( y = 1 ∣ x ; θ ) = h θ ( x ) p ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) p(y=1|x;\theta) = h_\theta(x) \\ p(y=0|x;\theta) = 1 - h_\theta(x) p(y=1∣x;θ)=hθ(x)p(y=0∣x;θ)=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(y=x;θ)=(hθ(x))y(1hθ(x))(1y)
有了上面这个式子,我们就能很容易的得到函数 h h h 在整个数据集上的似然函数
l ( θ ) = P ( Y ∣ X ; θ ) = ∏ i p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) ( 1 − y ( i ) ) \begin{aligned} l(\theta) =& P(Y|X;\theta) \\ =& \prod_i p(y^{(i)} | x^{(i)} ; \theta) \\ =& \prod_i (h_\theta(x^{(i)}))^{y^{(i)}} (1 - h_\theta(x^{(i)})) ^ {(1-y^{(i)})} \end{aligned} l(θ)===P(YX;θ)ip(y(i)x(i);θ)i(hθ(x(i)))y(i)(1hθ(x(i)))(1y(i))
转为对数似然函数
L ( θ ) = l o g l ( θ ) = ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( l − h θ ( x ( i ) ) ) ] \begin{aligned} L(\theta) =& logl(\theta) \\ =& \sum_{i=1}^m[y^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(l-h_\theta(x^{(i)}))] \end{aligned} L(θ)==logl(θ)i=1m[y(i)loghθ(x(i))+(1y(i))log(lhθ(x(i)))]
假设我们用随机梯度下降法更新参数,每次只用一个样例,则上面的对数似然函数退化成:
L ( θ ) = y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( l − h θ ( x ( i ) ) ) L(\theta) = y^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(l-h_\theta(x^{(i)})) L(θ)=y(i)loghθ(x(i))+(1y(i))log(lhθ(x(i)))
更新参数的公式为:
θ j : = θ j + α ⋅ ∂ ∂ θ j L ( θ ) \theta_j := \theta_j + \alpha \cdot \frac{\partial}{\partial \theta_j} L(\theta) θj:=θj+αθjL(θ)
这里的 α \alpha α 就是学习率。其次注意式子里的 “+”,因为我们要极大化对数似然函数,所以我们需要沿着梯度方向更新参数。接下来我们要做的就是求出 L ( θ ) L(\theta) L(θ) 对各个参数的偏导。
(1)首先我们知道 sigmoid 函数的求导结果为:
g ′ ( z ) = g ( z ) ( 1 − g ( z ) ) {g}'(z)=g(z)(1 - g(z)) g(z)=g(z)(1g(z))
(2)我们可以推导出 L ( θ ) L(\theta) L(θ) 对各个参数的偏导为:
∂ ∂ θ j L ( θ ) = x j ( y − h θ ( x ) ) \frac{\partial}{\partial \theta_j} L(\theta) = x_j(y - h_\theta(x)) θjL(θ)=xj(yhθ(x))

(3)所以,参数更新公式为:
θ j : = θ j + α ( y ( i ) − h θ j ( x ( i ) ) ) x j ( i ) \theta_j := \theta_j + \alpha (y^{(i)} - h_{\theta_j}(x^{(i)})) x^{(i)}_j θj:=θj+α(y(i)hθj(x(i)))xj(i)

如果我们用梯度下降法,每次更新参数用所有样例,则参数更新公式为:
θ j : = θ j + ∑ i = 1 m α ( y ( i ) − h θ j ( x ( i ) ) ) x j ( i ) \theta_j := \theta_j + \sum_{i=1}^m \alpha (y^{(i)} - h_{\theta_j}(x^{(i)})) x^{(i)}_j θj:=θj+i=1mα(y(i)hθj(x(i)))xj(i)

二、参考

  • 斯坦福机器学习课程 —— 吴恩达
  • 斯坦福ML公开课笔记 —— 张雨石
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值