吴恩达深度学习课程笔记-神经网络编程基础-逻辑回归损失函数
吴恩达深度学习课程笔记
第二周:神经网络编程基础(Basics of Neural Network programming)
2.3 逻辑回归损失函数(Logistic Regression cost function)
为了训练逻辑回归模型的参数 和参数
,我们需要一个损失函数,通过训练损失函数来得到参数
和参数
。先看一下逻辑回归的输出函数:
where
Given , want
.
为了让模型通过学习调整参数,你需要提供一个具有 个样本的训练集,然后在训练集上找到参数
和参数
,来得到你的输出。对训练集的预测值,我们将它写成
,我们希望它会接近于训练集中的
值。
损失函数又叫做误差函数,用来衡量算法的运行情况,Loss function:
我们将 L 称为损失函数,来衡量预测输出值和实际值有多接近。一种常用的损失函数为平方差: ,但是在逻辑回归中我们不这么做,因为如果采用平方差作为损失函数,当我们在学习逻辑回归参数的时候,会发现我们的优化目标不是凸优化,只能找到多个局部最优值,梯度下降法很可能找不到全局最优值。
我们在逻辑回归模型用到的损失函数是这样的:
为什么要用这个函数作为逻辑回归的损失函数?对于损失函数,我们想让它尽可能地小,我们举两个例子就容易理解了:
当 时,
,如果想要 L 尽可能小,那么
就要尽可能大,因为 sigmoid 函数取值范围在 0 到 1 之间,所以
需要无限接近于 1。
当 时,
,如果想要 L 尽可能小,那么
就要尽可能小,因为 sigmoid 函数取值范围在 0 到 1 之间,所以
需要无限接近于 0。
可以看到当 与
越接近时,损失函数越小,这是符合我们预期的。
损失函数是对单个训练样本定义的,它衡量的是算法在单个训练样本中的表现如何,为了衡量算法在全部训练样本上的表现,我们需要定义一个算法的代价函数,算法的代价函数是对 个样本的损失函数求和然后除以
:
在训练逻辑回归模型时候,我们需要找到合适的 和
,来让代价函数 J 降到最低。
下一篇:吴恩达深度学习课程笔记-神经网络编程基础-梯度下降法