什么是逻辑回归?
逻辑回归算法应用非常广泛,他是用来解决“分类”问题,可能同学要问,回归问题不是返回的是数值吗?怎么变成分类了?这是因为逻辑回归比较特殊,他虽然返回的是数值,但是这个数值是各个类别出现的概率,概率最大的类别,我们就将它作为类别的输出结果。
所以,逻辑回归就是根据事物的特征值,最后能够输出判别这个事物属于什么类别的一种方法。
如何根据特征值获得分类结果?
首先看下面2个公式:
= σ( * )
σ(t) =
- :每个特征对应的权值,这就是我们训练模型需要找到的目标值
- :需要输入的特征
- σ(t) :这个就是大名鼎鼎的sigmod激活函数,下面对他详细介绍:
sigmod函数
- 公式σ(t) =
- 当t趋近于正无穷时候,值域趋近于1
- 当t趋近于负无穷时候,值域趋近于0
- 当t > 0 时:
- 当t < 0 时: < 0.5
结论
通过上面的公式我们知道了,我们要获得分类结果,就必须找出正确的 ,因为找到θ了,我们就能根据输入特征,通过公式获得每个类别输出的概率
如何找出 ?
步骤
- 我们初始化一个随机的θ
- 我们将初始化的θ和真实的分类结果相减,就能得到一个误差,我们称这个误差为“损失函数”
- 所以,只要这个损失函数足够的小,我们的初始化的θ就无穷的接近真实的θ
- 所以,我们的目标变成了减小“损失函数”
减小损失函数Loss
分析损失函数的构成
- 当样本值y = 1时:
- 当样本值y =0时:
通过上面的分析,我们可以将损失定义为:
L = - y log() - ( 1 - y ) log(1 - )
- 因为,属于(0,1)之间,如果偏离真实点越远,损失提高的速度越快,惩罚提高的速度也就越快
所以样本的损失函数为:
L(θ) = - log() + ( 1 - ) log(1 - )
带入第1,2个公式得:
L(θ) = - log(σ( ) ) + ( 1 - ) log(1 - σ( ) )
梯度下降法
思想
梯度下降法的思想就是,先随机初始化一个值x,我们希望慢慢移动这个值,将它移动到f(x)值最小的地方去,但怎样移动能够移动到最小的地方呢?答案就是,按照导数的方向去移动,每次移动一小步,慢慢就能移动到最小的地方去。但是有可能出现移动到局部最小值,而无法出来,这是之后需要解决的问题。下面我们来对上面的损失函数求导。
梯度公式
梯度公式就是将上面的L(θ)求导对应的公式,由于求导过程不难,但是太繁琐,这里地方也没办法将列出来,我就直接给出求导公式了:
ΔL(θ) = * (σ(
总结
- 我们要求到逻辑回归的权值,就需要明白他的激活函数特性
- 根据激活函数的特征,我们求得损失函数
- 我们通过梯度下降法获得最小损失函数,从而求得逻辑回归的权值
- 但是,细心的朋友会发现,我们推导的时候,只是针对线性可分的情况,如果要适应非线性可分的情况,只需要加入多项式即可
- 另外,当激活函数变化时,推导的梯度下降的公式也会变化