在机器学习领域我们经常会遇到cost function和loss function(也叫error function),而这两个function实际是有区别的。loss function通常用于衡量单个样本其预测值和实际值的“差距”,而cost function通常是针对样本集中的所有样本,而且是一个平均值。
Loss Function
既然loss function是用于衡量预测值和实际值之间的"差距",那么我们其实有很多的衡量手段,比如通过方差,如下:
但是,在logistic regression算法中使用方差的方式无法得到凸函数(convex),也就无法得到全局最小值,所以,我们在logistic regression中使用不同的loss function,如下:
需要注意的是,不论是哪个函数,都是针对单个样本的,所以都带有上标
(i)
Cost Function
cost function 是针对整个样本集的,因此它的计算公式需要将所有的loss function的结果进行加总然后求平均值,如下:
Derivative
针对loss function和cost function的求导如下:
- cost function J针对某个权重w的求导实际是loss function针对w的导数之后再求平均值
完整的计算过程比较复杂,如下图所示:
- 目前针对w和b的求导均是通过两个for循环来进行求导,但是后续我们实际可以通过vectorization的方式进行并行计算。
- 注意dw的计算过程实际是通过计算每个样本的loss function对w的导数,然后累加,然后再计算平均值。有了dw之后,再进行梯度下降。