吴恩达深度学习——2.3 logistic回归损失函数

为了训练logistic回归模型的参数w和b,需要定义一个成本函数,让我们来看一下,用logistic回归来训练的成本函数,回忆一下,这是上一张幻灯片的函数,所以你的输出 y ^ = s i g m o i d ( w T x + b ) \hat{y}=sigmoid(w^Tx+b) y^=sigmoid(wTx+b),这里定义为sigmoid(z)。

在这里插入图片描述

为了让模型通过学习来调整参数,要给一个m个样本的训练集。很自然地,你想通过在训练集,找到参数w和b来得到你的输出。对于训练集中的预测值 y ^ \hat{y} y^,我们希望它会接近于在训练集中的 y i y^{i} yi值。

为了让上面的方程更详细一些,需要说明上面这里定义的 y ^ \hat{y} y^是对一个训练样本x来说的。对于每个训练样本,使用这些带有圆括号的上标,方便引用说明,还有区分样本。

你的训练样本 x ( i ) x^{(i)} x(i)对应的预测值是 y ^ \hat{y} y^,这是训练样本通过sigmoid函数作用到 w T x + b w^Tx+b wTx+b得到的。在这门课中,我们将使用这个符号约定,就是这个上标 ( i ) (i) (i)来指明数据,表示x或者y或者z或者其它的数据与第i个训练样本有关,这就是上标 ( i ) (i) (i)的含义。

现在我们来看看损失函数,或叫做误差函数,它们可以用来衡量算法的运行情况,,可以定义损失为 y ^ \hat{y} y^和y的差的平方,或者它们差的平方的二分之一,结果表明你可以这样做,但通常在logistic回归中,大家都不这样做,因为当你学习这些参数的时候,你会发现之后讨论的优化问题会变成非凸的,最后会得到很多个局部最优解。使用梯度下降法,可能找不到全局最优值。这个直观的理解是,我们通过定义这个损失函数L来衡量你的预测输出值 y ^ \hat{y} y^与实际值y有多接近。误差平方,看起来似乎是一个合理的选择,但用这个的话,梯度下降法就不太好用。

在逻辑回归中,我们会定义一个不同的损失函数,它起着与误差平方相似的作用,但是这个损失函数会给我们一个凸优化问题。

在逻辑回归中,我们用的损失函数为 L o s s ( y ^ , y ) = − ( y l o g ( y ^ ) + ( 1 − y ) l o g ( 1 − y ^ ) ) Loss(\hat{y},y)=-(ylog(\hat{y})+(1-y)log(1-\hat{y})) Loss(y^,y)=(ylog(y^)+(1y)log(1y^))直观地看为何这个损失函数能起作用,记得如果我们使用误差平方越小越好,对于这个逻辑回归的损失函数,同样的,我们也想让它尽可能地小。

为了更好地理解为什么这个损失函数能够起作用,让我们来看两个例子,在第一个例子中,我们说y=1时,那么损失函数可以表示为 L o s s ( y ^ , y ) = − y l o g ( y ^ ) Loss(\hat{y},y)=-ylog(\hat{y}) Loss(y^,y)=ylog(y^)因为如果y=1,那么第二项1-y就等于0,这就是说当y=1时,你想让 − y l o g ( y ^ ) -ylog(\hat{y}) ylog(y^)尽可能小,这意味着,想让 l o g ( y ^ ) log(\hat{y}) log(y^)尽可能大,这也意味着,你想要 y ^ \hat{y} y^尽可能大。但是因为 y ^ \hat{y} y^是sigmoid函数得出的,永远不会比1大、也就是说,如果y=1时,你会想让 y ^ \hat{y} y^尽可能的大,但它永远不会大于1,所以你要让 y ^ \hat{y} y^接近1,。

另一个情况就是,如果y=0,损失函数的第一项等于0,第二项就是这个损失函数,损失函数变为 L o s s ( y ^ , y ) = − l o g ( 1 − y ^ ) Loss(\hat{y},y)=-log(1-\hat{y}) Loss(y^,y)=log(1y^)在学习过程中,想让损失函数小一些,也就意味着你想要 l o g ( 1 − y ^ ) log(1-\hat{y}) log(1y^)足够大,因为这里有一个负号,通过这一系列推理,你可以得出,损失函数让 y ^ \hat{y} y^尽可能地小,因为 y ^ \hat{y} y^只能介于0到1之间,这就是说,当y=0时,损失函数会让这些参数,让 y ^ \hat{y} y^尽可能地接近0,有很多函数都能达到这个效果。如果y=1,我们尽可能让 y ^ \hat{y} y^很大,如果y=0,尽可能让 y ^ \hat{y} y^足够小。

最后说一下,损失函数是单个训练样本中定义的,他衡量了在单个训练样本上的表现,下面要定义一个成本函数,它衡量的是在全体训练样本上的表现,这个成本函数为 J ( w , b ) = 1 m ∑ i = 1 m L o s s ( y ( i ) ^ , y ( i ) ) = − 1 m ∑ i = 1 m [ y ( i ) l o g ( y ( i ) ^ ) + ( 1 − y ( i ) ) l o g ( 1 − y ( i ) ^ ) ] J(w,b)=\frac{1}{m}\sum_{i=1}^mLoss(\hat{y^{(i)}},y^{(i)})=-\frac{1}{m}\sum_{i=1}^m[y^{(i)}log(\hat{y^{(i)}})+(1-y^{(i)})log(1-\hat{y^{(i)}})] J(w,b)=m1i=1mLoss(y(i)^,y(i))=m1i=1m[y(i)log(y(i)^)+(1y(i))log(1y(i)^)]这个成本函数是基于参数的总成本,所以在训练逻辑回归模型时,我们要找到合适的参数w和b,让这个成本函数J尽可能小。

逻辑回归函数可以被看做是一个非常小的神经网络,在下一节课中,我们将会直观地去理解神经网络能做什么。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值