2.3 Logistic 回归损失函数-深度学习-Stanford吴恩达教授

Logistic 回归损失函数 (Logistic Regression Cost Function)

        在上个视频中,我们讲了逻辑回归模型,为了优化逻辑回归模型的参数wb,需要定义一个代价函数(cost function)

先来回顾一下上一节课逻辑回归的输出函数:

2.3 Logistic 回归损失函数-深度学习-Stanford吴恩达教授_第1张图片

为了让模型通过学习调整参数,你需要给予一个 m 样本的训练集,这会让你在训练集上找到参数wb,来得到你的输出。

        为了更详细的描述上述方程式,我们需要说明上面的定义是对一个训练样本来说的,这种形式也使用于每个训练样本,我们使用这些带有圆括号的上标来区分索引和样本,训练样本 i 所对应的预测值是y^{(i)} ,是用训练样本的w^{T}x^{(i)} +b然后通过sigmoid函数来得到,也可以把z定义为z^{(i)} = w^{T}x^{(i)} +b,我们将使用这个符号(i)注解,上标(i)来指明数据表示xyz或者其他数据的第i个训练样本,这就是上标(i)的含义。

2.3 Logistic 回归损失函数-深度学习-Stanford吴恩达教授_第2张图片


 现在来学习损失函数(又叫做误差函数),我们可以用它来检测算法的运行情况,如在算法输出时定义损失 \hat{y} 和实际y 有可能是一个或半个平方误差。你可以这样操作,但一般在逻辑回归里不会这样操作,因为当研究参数的时候,我们讨论的优化问题将会变成非凸问题,所以优化问题会产生多个局部最优解,梯度下降算法也就无法找到全局最优解,虽然平方差是一个不错的损失函数,但是我们在逻辑回归模型中会定义另外一个损失函数。如果你暂时不理解以上知识点,下面会详细讲解。2.3 Logistic 回归损失函数-深度学习-Stanford吴恩达教授_第3张图片

 请注意,函数L被称为损失函数(Loss function),我们在逻辑回归中用到的损失函数是:

L(\hat{y},y) = -y\cdot log(\hat{y} ) -(1-y)log(1-\hat{y} )

下面我们来说明一下为什么这样子设定损失函数L有意义?当我们使用平方误差作为损失函数的时候,你会想要让这个误差尽可能地小,对于这个逻辑回归损失函数,我们也想让它尽可能地小,为了更好地理解这个损失函数怎么起作用,我们举两个例子:

例子1:如果 y = 1,带入公式L(\hat{y},y) = -y\cdot log(\hat{y} ) -(1-y)log(1-\hat{y} )L(\hat{y},y) = -log(\hat{y} ),此时如果想要损失函数L尽可能得小,那么y\hat{}就要尽可能,因为sigmoid函数取值[0,1],所以 \hat{y} 会无限接近于1。

 

例子2:如果 y = 0,带入公式得,L(\hat{y},y) = -log(1-\hat{y} ),如果想要损失函数L尽可能得小,那么\hat{y}就要尽可能,因为sigmoid函数取值[0,1],所以 \hat{y} 会无限接近于0。

        在这门课中有很多的函数效果和现在这个类似,就是如果 y 等于1,我们就尽可能让 \hat{y} 变大,如果 y 等于0,我们就尽可能让 \hat{y} 变小。  

PS:损失函数和代价函数不是一个东西!!!【机器学习】代价函数,损失函数,目标函数区别_月亮是蓝色的博客-CSDN博客_目标函数和损失函数的区别

         损失函数是在单个训练样本中定义的,它衡量的是算法在单个训练样本中表现如何,为了衡量算法在全部训练样本上的表现如何,我们需要定义一个算法的代价函数,算法的代价函数是对 m 个样本的损失函数求和然后除以 m :

J(w,b) = \frac{1}{m} \sum_{i=1}^{m} L(\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)}) )

损失函数只适用于像这样的单个训练样本,而代价函数是参数的总代价,所以在训练逻辑回归模型时候,我们需要找到合适的wb,来缩小代价函数J 的整体成本。

        根据我们对逻辑回归算法的推导及对单个样本的损失函数的推导和针对算法所选用参数的总代价函数的推导,结果表明逻辑回归可以看做是一个非常小的神经网络,在下一个视频中,我们会看到神经网络会做什么。

 

 

 

 

你可能感兴趣的:(#,回归,深度学习)