人工智能10大算法-逻辑回归(logistics regression)

逻辑回归是一个二分类问题

二分类问题

二分类问题是指预测的y值只有2个取值(0或1),二分类问题可以扩展到多分类问题.例如:我们要做一个垃圾邮件过滤系统, x i x^i xi是邮件的特征,预测的y值就是邮件的类别,是垃圾邮件还是正常邮件.对于类别我们通常称为正类(positive class)和负类(negative class),垃圾邮件的例子中,正类就是正常邮件,负类就是垃圾邮件

逻辑回归

Logistic函数

如果我们忽略二分类问题中y的取值是一个离散的取值(0或1),我们继续使用线性回归来预测y的取值.这样会导致y的取值并不为0或1.逻辑回归使用一个函数来归一化y值,使y的取值在(0,1)之间,这个函数称为Logistic函数(Logistic function),也称为Sigmoid函数,公式如下
g(z) = 1 1 + e − z \frac{1}{1 + ^{e^{-z}}} 1+ez1
Logistic函数当z趋近于无穷大时,g(z)趋近于1;当z趋近于无穷小时,g(z)趋近于0
Logistic函数图如下:
Logistic function
Logistic函数求导时有一个特征
g / g^/ g/(z) = d d z \frac{d}{dz} dzd 1 1 + e − z \frac{1}{1+e^{-z}} 1+ez1
= 1 ( 1 + e − z ) 2 \frac{1}{(1+e^{-z})^2} (1+ez)21( e − z e^{-z} ez)
= 1 1 + e − z \frac{1}{1+e^{-z}} 1+ez1(1- 1 ( 1 + e − z ) \frac{1}{(1+e^{-z})} (1+ez)1)
=g(z)*(1-g(z))

逻辑回归表达式

逻辑回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数g(z)将最为假设函数来预测.g(z)可以将连续值映射到0和1之间.线性回归模型的表达式代入g(z),就得到逻辑回归的表达式:
h θ ( x ) = g ( θ T x ) = 1 1 + e − θ h_\theta(x) = g(\theta^Tx) = \frac{1}{1 + e^{-\theta}} hθ(x)=g(θTx)=1+eθ1
这里为什么用 h θ ( x ) h_\theta(x) hθ(x):hyperthesis:假设
x 0 = 1 x_0 = 1 x0=1
θ T x = θ 0 + ∑ j = 0 n θ j x j \theta^Tx = \theta_0 + \sum_{j=0}^{n}\theta_jx_j θTx=θ0+j=0nθjxj

逻辑回归的软分类

现在我们将y的取值 h θ ( x ) h_\theta(x) hθ(x)通过Logistic函数归一化到(0,1)间,y的取值特殊的含义,它表示结果取1的概率,因此对于输入x分类结果为类别1和类别0的概率分别为:
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P(y=1|x;\theta) = h_\theta(x) P(y=1x;θ)=hθ(x)
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
解释:当y=0时, P ( y ∣ x ; θ ) = 1 − h θ ( x ) P(y|x;\theta)=1-h_\theta(x) P(yx;θ)=1hθ(x).当y=1时, P ( y ∣ x ; θ ) = h θ ( x ) P(y|x;\theta)=h_\theta(x) P(yx;θ)=hθ(x)

梯度上升

得到逻辑回归的表达式,下一步和线性回归类似.构建似然函数,然后最大似然估计,最终推导出 θ \theta θ的迭代更新表达式,这个请参考文章《线性回归、梯度下降》,只不过这里用的不是梯度下降,而是梯度上升,因为这里是最大化似然函数不是最小化似然函数.
似然函数表达式:
L ( θ ) = p ( y ⃗ ∣ X ; θ ) L(_\theta)=p(\vec{y}|X;\theta) L(θ)=p(y X;θ)
= ∏ i = 1 m p ( y ( i ) ∣ x i ; θ ) \prod_{i=1}^{m}p(y^{(i)}|x^{i};\theta) i=1mp(y(i)xi;θ)
= ∏ i = 1 m ( h θ ( x i ) ) y ( i ) ( 1 − h θ ( x i ) ) 1 − y i \prod_{i=1}^{m}(h_\theta(x^{i}))^{y^{(i)}}(1-h_\theta(x^{i}))^{1-y^{i}} i=1m(hθ(xi))y(i)(1hθ(xi))1yi
对似然函数取 log ⁡ \log log:即逻辑回归的损失函数
Ψ ( θ ) = log ⁡ L ( θ ) \Psi(\theta)=\log{L(\theta)} Ψ(θ)=logL(θ)
= ∑ i = 1 m y ( i ) log ⁡ h ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h ( x ( i ) ) ) \sum_{i=1}^{m}y^{(i)}\log{h(x^{(i)})+(1-y^{(i)})\log{(1-h(x^{(i)})}}) i=1my(i)logh(x(i))+(1y(i))log(1h(x(i)))
转换后的似然函数对 θ \theta θ求偏导,
α α θ j Ψ ( θ ) \frac{\alpha}{\alpha\theta_j}\Psi(\theta) αθjαΨ(θ)
= ( y 1 g ( θ T x ) − ( 1 − y ) 1 1 − g ( θ T x ) ) α α θ j g ( θ T x ) (y\frac{1}{g(\theta^Tx)}-(1-y)\frac{1}{1-g(\theta^Tx)})\frac{\alpha}{\alpha\theta_j}g(\theta^Tx) (yg(θTx)1(1y)1g(θTx)1)αθjαg(θTx)
= ( y 1 g ( θ T x ) − ( 1 − y ) 1 1 − g ( θ T x ) ) g ( θ T x ) ( 1 − g ( θ T x ) α α θ j ) θ T x (y\frac{1}{g(\theta^Tx)}-(1-y)\frac{1}{1-g(\theta^Tx)})g(\theta^Tx)(1-g(\theta^Tx)\frac{\alpha}{\alpha\theta_j})\theta^Tx (yg(θTx)1(1y)1g(θTx)1)g(θTx)(1g(θTx)αθjα)θTx
= ( y ( 1 − g ( θ T x ) ) − ( 1 − y ) g ( θ T x ) ) x j (y(1-g(\theta^Tx))-(1-y)g(\theta^Tx))x_j (y(1g(θTx))(1y)g(θTx))xj
= ( y − h θ ( x ) ) x j (y-h_\theta(x))x_j (yhθ(x))xj
这个求导过程第一步是对 θ \theta θ偏导的转化,一句偏导公式: y = ln ⁡ x y=\ln{x} y=lnx; y / = 1 x y^/=\frac{1}{x} y/=x1

  • 第二步是根据个g(z)求导的特性: g / ( z ) = g ( z ) ( 1 − g ( z ) ) g^/(z)=g(z)(1-g(z)) g/(z)=g(z)(1g(z))
  • 第三步就是普通的变换
    这样我们就得到了梯度上升每次迭代的更新时间,那么 θ \theta θ的迭代表达式为:
    θ j : = θ j + α ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \theta_j:=\theta_j+\alpha(y{(i)}-h_\theta(x^{(i)}))x_j^{(i)} θj:=θj+α(y(i)hθ(x(i)))xj(i)
    这个表达式域LMS算法的表达式相比,看上去完全相同,但是梯度上升与LMS是两个不同的算法,因为 h θ ( x i ) h_\theta(x^i) hθ(xi)表示的是关于 θ T x \theta^Tx θTx的一个非线性函数.两个不同的算法,同一个表达式表达,这并不仅仅是巧合,两者存在深层次的联系.这个问题,我们将在广义线性模型GLM中解答
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GeekPlusA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值