logistic回归损失函数与梯度下降

逻辑回归中,假设函数hypothesis hθ(x)为:

hθ(x)=g(θTx)=11+eθTx=g(θTx+b)

hθ(x)=g(θTx)0.5, 即θTx0, 此时意味着预估y=1;
hθ(x)=g(θTx)<0.5, 即θTx<0, 此时意味着预估y=0.

所以我们认为θTx=0是一个决策边界,当它大于0或小于0时,逻辑回归模型分别预测不同的分类结果。

假设函数hypothesis就是y=1的概率:

{P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1hθ(x)

损失函数与梯度下降

损失函数loss function与代价函数cost function的区别与联系
1.损失函数(Loss function)是定义在单个训练样本上的,也就是就算一个样本的误差,比如我们想要分类,就是预测的类别和实际类别的区别,是一个样本的哦,用L表示
2.代价函数(Cost function)是定义在整个训练集上面的,也就是所有样本的误差的总和的平均,也就是损失函数的总和的平均,有没有这个平均其实不会影响最后的参数的求解结果。

常见的损失函数
机器学习或者统计机器学习常见的损失函数有如下四种:
1. 0-1损失函数(0-1 loss function)
2. 平方损失函数(quadratic loss function)
3. 绝对值损失函数(absolute loss function)
4. 对数损失函数(logarithmic loss function) 或对数似然损失函数(log-likehood loss function)

构造代价函数求出参数的值

构造代价函数

根据上面的内容,我们可以得到逻辑回归的对数似然损失函数cost function:

cost(hθ(x),y)={log(hθ(x))if y=1log(1hθ(x))if y=0

稍微解释下这个损失函数,或者说解释下对数似然损失函数:
当y=1时,假定这个样本为正类。如果此时hθ(x)=1,则单对这个样本而言的cost=0,表示这个样本的预测完全准确。那如果所有样本都预测准确,总的cost=0
但是如果此时预测的概率hθ(x)=0,那么cost→∞。直观解释的话,由于此时样本为一个正样本,但是预测的结果P(y=1|x;θ)=0, 也就是说预测 y=1的概率为0,那么此时就要对损失函数加一个很大的惩罚项。
当y=0时,推理过程跟上述完全一致,不再累赘。
将以上两个表达式合并为一个,则单个样本的损失函数可以描述为:
cost(hθ(x),y)=yilog(hθ(x))(1yi)log(1hθ(x))

因为yi只有两种取值情况,1或0,分别令y=1或y=0,即可得到原来的分段表示式。
全体样本的代价函数可以表示为:
cost(hθ(x),y)=i=1myilog(hθ(x))(1yi)log(1hθ(x))
这就是逻辑回归最终的代价函数表达式。
代价函数确定了,接下来的问题就是机械计算的工作了。常见的方法是用梯度下降法。

上述代价函数可以用极大似然估计求得:

{P(y=1|x;θ)=hθ(x)P(y=0|x;θ)=1hθ(x)

P(yi|xi)={hθ(xi)yi=11hθ(xi)yi=0

将两个式子整合到一起
P(yi|xi)=(hθ(xi))yi(1hθ(xi))1yi

联合似然函数为
L=i=1mP(yi|xi)=i=1m(hθ(xi))yi(1hθ(xi))1yi

取对数
l=i=1m(yilog(hθ(xi))+(1yi)log(1hθ(xi)))

最大化似然函数L等价于最小化L,等价于最小化ll可作为代价函数。

求出参数的值

统计学习方法都是由模型,策略,和算法构成的,即统计学习方法由三要素构成,可以简单表示为:
方法=模型+策略+算法
https://blog.csdn.net/lookqlp/article/details/51161640
一般回归问题的步骤是:
1. 寻找预测函数(h函数,hypothesis)
2. 构造损失函数(J函数)
3. 使损失函数最小,获得回归系数θ

而第三步中常见的算法有:
1. 梯度下降
2. 牛顿迭代算法
3. 拟牛顿迭代算法(BFGS算法和L-BFGS算法)
其中随机梯度下降和L-BFGS在spark mllib中已经实现,梯度下降是最简单和容易理解的。

逻辑回归梯度下降法详解

J(θ)=1ml(θ)=1mlogL(θ)=1mi=1m(yilog(hθ(x))+(1yi)log(1hθ(x)))

同样是取极小值,我们把如上的J(θ)作为逻辑回归的代价函数。Andrew Ng的课程中,上式乘了一个系数1/m,我怀疑就是为了和线性回归的损失函数保持一致吧。
梯度下降θ的更新过程,走梯度方向的反方向:
这里写图片描述
注:上面计算过程的第三步用到了sigmoid函数g(z)的性质:g(z)=g(z)(1g(z)).
因此更新过程可以写成:
θj:=θjα1mi=1m(hθ(xi)yi)xij

那迭代多少次停止呢,当cost变化小于一定值时停止。
这里写图片描述
这里写图片描述

参考:https://blog.csdn.net/han_xiaoyang/article/details/49123419

展开阅读全文

没有更多推荐了,返回首页