逻辑回归的代价函数2.3-吴恩达老师课程



逻辑回归的代价函数(也翻译作成本函数)。


为什么需要代价函数:

代价函数是衡量我们训练的模型的好坏程度。

为了训练逻辑回归模型的参数Ridge 惩罚三项逻辑回归的迭代过程_算法和参数Ridge 惩罚三项逻辑回归的迭代过程_机器学习_02,我们需要一个代价函数,通过训练代价函数来得到参数Ridge 惩罚三项逻辑回归的迭代过程_算法和参数Ridge 惩罚三项逻辑回归的迭代过程_机器学习_02。先看一下逻辑回归的输出函数:

Ridge 惩罚三项逻辑回归的迭代过程_机器学习_05


为了让模型通过学习调整参数,你需要给予一个Ridge 惩罚三项逻辑回归的迭代过程_逻辑回归_06样本的训练集,这会让你在训练集上找到参数Ridge 惩罚三项逻辑回归的迭代过程_算法和参数Ridge 惩罚三项逻辑回归的迭代过程_机器学习_02,来得到你的输出。

对训练集的预测值Ridge 惩罚三项逻辑回归的迭代过程_算法_09,我们更希望它会接近于训练集中的Ridge 惩罚三项逻辑回归的迭代过程_Ridge 惩罚三项逻辑回归的迭代过程_10值。

损失函数:

损失函数又叫做误差函数,用来衡量算法的运行情况,Loss function:Ridge 惩罚三项逻辑回归的迭代过程_损失函数_11

通过损失函数来衡量预测输出值和实际值有多接近。一般我们用预测值和实际值的平方差或者它们平方差的一半,但是通常在逻辑回归中我们不这么做,因为当我们在学习逻辑回归参数的时候,会发现我们的优化目标不是凸优化,只能找到多个局部最优值,梯度下降法很可能找不到全局最优值,虽然平方差是一个不错的损失函数,但是我们在逻辑回归模型中会定义另外一个损失函数。

Ridge 惩罚三项逻辑回归的迭代过程_损失函数_12

凸优化


Ridge 惩罚三项逻辑回归的迭代过程_损失函数_13



逻辑回归中用到的损失函数是:Ridge 惩罚三项逻辑回归的迭代过程_损失函数_14

当使用平方误差作为损失函数的时候,你会想要让这个误差尽可能地小,对于这个逻辑回归损失函数,我们也想让它尽可能地小,为了更好地理解这个损失函数怎么起作用,我们举两个例子:
Ridge 惩罚三项逻辑回归的迭代过程_算法_15时损失函数Ridge 惩罚三项逻辑回归的迭代过程_机器学习_16,如果想要损失函数Ridge 惩罚三项逻辑回归的迭代过程_逻辑回归_17尽可能得小,那么Ridge 惩罚三项逻辑回归的迭代过程_算法_09就要尽可能大,因为sigmoid函数取值Ridge 惩罚三项逻辑回归的迭代过程_损失函数_19,所以Ridge 惩罚三项逻辑回归的迭代过程_算法_09会无限接近于1。
Ridge 惩罚三项逻辑回归的迭代过程_逻辑回归_21时损失函数Ridge 惩罚三项逻辑回归的迭代过程_损失函数_22,如果想要损失函数Ridge 惩罚三项逻辑回归的迭代过程_逻辑回归_17尽可能得小,那么Ridge 惩罚三项逻辑回归的迭代过程_算法_09就要尽可能小,因为sigmoid函数取值,所以会无限接近于0。
就是如果Ridge 惩罚三项逻辑回归的迭代过程_机器学习_25等于1,我们就尽可能让Ridge 惩罚三项逻辑回归的迭代过程_Ridge 惩罚三项逻辑回归的迭代过程_26变大,如果等于0,我们就尽可能让Ridge 惩罚三项逻辑回归的迭代过程_Ridge 惩罚三项逻辑回归的迭代过程_26变小。

损失函数是在单个训练样本中定义的,它衡量的是算法在单个训练样本中表现如何,为了衡量算法在全部训练样本上的表现如何,我们需要定义一个算法的代价函数,算法的代价函数是对Ridge 惩罚三项逻辑回归的迭代过程_逻辑回归_06个样本的损失函数求和然后除以Ridge 惩罚三项逻辑回归的迭代过程_逻辑回归_06:Ridge 惩罚三项逻辑回归的迭代过程_逻辑回归_30损失函数只适用于像这样的单个训练样本,而代价函数是参数的总代价,所以在训练逻辑回归模型时候,我们需要找到合适的Ridge 惩罚三项逻辑回归的迭代过程_算法Ridge 惩罚三项逻辑回归的迭代过程_机器学习_02,来让代价函数Ridge 惩罚三项逻辑回归的迭代过程_逻辑回归_33的总代价降到最低。