代价函数(Cost Function)在机器学习中的每一种算法中都很重要,因为训练模型的过程就是优化代价函数的过程,代价函数对每个参数的偏导数就是梯度下降中提到的梯度,防止过拟合时添加的正则化项也是加在代价函数后面的
1.什么是代价函数
概况来讲,任何能够衡量模型预测出来的值h(θ)与真实值y之间的差异的函数都可以叫做代价函数J(θ)。
代价函数就是用于找到最优解的目的函数,这也是代价函数的作用。
损失函数(Loss Function ) 是定义在单个样本上的,算的是一个样本的误差。
代价函数(Cost Function ) 是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
目标函数(Object Function) 定义为:最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。
2.代价函数的作用是什么
假设,给定一个关于 x
和 y
的数据集,该数据集可以被认定为一个线性回归模型,设定假象函数 : fw,b (x) = wx + b
当函数中 w
和 b
两个参数发生改变时,函数也会偏离或者靠近数据集,为了使假象函数跟接近于真实的目标函数或更能使其正确的表示这个数据集,此时就可以引入代价函数
以平方误差代价函数为例,从最简单的单一参数来看,假设函数为:Jw = wx,平方误差代价函数的主要思想就是将实际数据给出的值与我们拟合出的线的对应值做差,求出我们拟合出的直线与实际的差距。
为了使这个值不受个别极端数据影响而产生巨大波动,采用类似方差再取二分之一的方式来减小个别数据的影响。这样,就产生了代价函数:
将其扩充成2个参数,就变成了