回归算法(二):逻辑回归

 三、逻辑回归

解决二分类问题。

1. 换个思路推导出sigmoid函数

方案一

假定P(y=1|x)依赖于线性函数wx,但wx不可能在(0,1)内,所以先把wx的其中一个界换成0或1所以对wx转换成exp(wx),值域变成了(0,+∞)。现在想不到如何对exp(wx)再转换,从而使值域变成(0,1),所以对P(y=1|x)动手。于是有:

命名此函数为sigmoid函数:

所以:


 方案二

回到最初的那句话 “所以对wx转换成exp(wx),值域变成了(0,+∞)” ,这里可以继续转换变成sigmoid函数,使值域在(0,1)之间。把值域看成两个部分(0,1)∪(1,+∞)。(1,+∞)的倒数的值域是(0,1),而(0,1)的倒数的值域是(1,+∞)。也就是说,只要exp(wx)的值域变成(1,+∞)即可。所以有:exp(wx)变成1+exp(wx),这样值域就是(1,+∞)了。再取倒数,得 1 / [1+exp(wx)]。但是在一开始假设的时候,我们是假定P(y=1|x)依赖于wx,一般而言都是希望wx越大,P越大,呈正相关。但1 / [1+exp(wx)] 这条式子表明,wx越大,exp()越大,整体结果越小。因此还需要转换,使得在不改变exp()的值域是(0,+∞)的前提下,wx越大,exp()越小,这样整体结果就会越大。于是有:把exp(wx)转换成exp(-wx)

所以最终得sigmoid函数:

 

2. 如何求解w?

利用极大似然法:估计的参数应使从模型中抽取n组样本观测值的概率最大。

 为什么逻辑回归的损失函数不是误差平方和,因为逻辑回归是用于分类,label是类别,不是数值所以不可以用误差平方和。而线性回归是用误差平方和,是因为线性回归是用于回归,label是数值,所以可以。

 极大似然法:

抛10次硬币,7次正面,3次反面。那么抛硬币得到正面的概率p是多少?按照常识,答案是0.5。但按照极大似然法,答案是argmax(p^7*p^3);意思是求得的概率p能够令 “7次正面,3次反面” 这种情况出现的概率最大;因此答案是0.7。

因为机器学习中的损失函数习惯是取最小值,所以损失函数为负极大似然函数。为了把连乘变成累加,对p取log,这样就变成了负对数极大似然。于是有:

先求sigmoid对wj(向量w中的一个值)的求导,待会会用到:(为了方便,下面把sigmoid写成s)

现在对损失函数求导:

 

3. 梯度下降法

采用梯度下降法不断迭代减小L(w)

(1)随机初始w,计算L(w)

(2)计算梯度▽L(w),下降方向:dir = -▽L(w)

(3)移动(步长λ)w' = w + λ·dir

(4)重新计算L(w'),若L(w')-L(w)较小,则停止,否则重复(2)(3)(4)

梯度下降法中,想象出一座山:

w:你所在的位置,minL(w):山谷,下降方向:-▽L(w)

多元线性回归与逻辑回归有相似的地方,可以结合起来记忆:

多元线性回归: 

逻辑回归:

这两者的损失函数不一样:

多元线性回归损失函数:,这里 1/2 是为了在求导的时候把2变成1(加不加 1/2 都行)

逻辑回归损失函数:

但这两者的梯度可以化为相同的格式:

下降方向:

 

根据计算梯度的方法不同,梯度下降法有三种:

(1)批量梯度下降BGD

(2)随机梯度下降法SGD

(3)小批量梯度下降法MBGD

学习率 λ 该如何设置?

(1)动态调整法:

(2)折半调整:一开始设大一点,当L(w)变大的时候,就折半 λ

 

接下来,将引入softmax回归。

欢迎转载,转载请标明出处。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值