2022吴恩达机器学习(Deep learning)课程对应笔记7
代价函数(损失函数)
更新时间:2023/03/19
概述
上节讲到为了实现线性回归,我们首先就要去定义一个叫做代价函数的东西(也就是
f
f
f),它是评价模型的一个指标有助于我们去优化模型。
下面你有一个训练集,输入特征是 x x x,输出目标是 y y y,你的模型是线性回归模型 f w , b ( x ) = w x + b f_{w,b}(x)=wx+b fw,b(x)=wx+b。现在你用这个模型去拟合训练集的数据。 w 和 b w和b w和b的术语称为参数,在机器学习的过程中,模型的参数是你在训练过程中可以调整的变量,用于改进模型。有时候参数 w 和 b w和b w和b也被称为系数或权重。
选择不同的
w
和
b
w和b
w和b,会得到不同的函数
f
f
f,在坐标系中形成的线也不一样。具体的例子如下图。
对于你的训练,你要做的是选择合适的
w
和
b
w和b
w和b的值,这样从函数f得到的直线就能够很好地拟合训练集数据,就像这里显示的这条直线。函数
f
f
f以某种形式很好的拟合了数据。
给定输入 x ( i ) x^{(i)} x(i), 通过模型 f w , b ( ) f_{w,b}() fw,b(),将得到输出的估计值 y ^ \hat{y} y^,
- y ^ = f w , b ( x ( i ) ) = w x ( i ) + b \hat{y} =f_{w,b}(x^{(i)})=wx^{(i)}+b y^=fw,b(x(i))=wx(i)+b
那么现在的问题就是:如何找到参数 w 和 b w和b w和b的值,能够使得预测值 y ^ \hat{y} y^尽可能的接近真实值 y ( i ) y^{(i)} y(i)
要解决这个问题,我们首先就要知道如何衡量一条直线与训练数据的吻合程度。这就要用到我们所说的代价函数了(总算是把为什么要用代价函数给引进来了)。
计算代价函数需要比较两个值:预测值 y ^ \hat{y} y^和目标值 y y y,它们之间的平方误差 ϵ = ( y ^ − y ) 2 \epsilon=(\hat{y}-y)^{2} ϵ=(y^−y)2是我们的主要衡量指标。当然我们要计算的训练集中的每一对样本的估计值与目标值之间的平方误差 ϵ = ( y ^ ( i ) − y ( i ) ) 2 \epsilon=(\hat{y}^{(i)}-y^{(i)})^{2} ϵ=(y^(i)−y(i))2。
- 整个训练的平方误差计算方法如下:
∑ i = 1 m ( y ^ ( i ) − y ( i ) ) , 其中 m 表示训练集的样本数量 \sum_{i=1}^{m}(\hat{y}^{(i)}-y^{(i)}), 其中m表示训练集的样本数量 i=1∑m(y^(i)−y(i)),其中m表示训练集的样本数量
通常会在上式前面乘上 1 m \frac{1}{m} m1,以计算平均平方误差,但是实际上是乘上 1 2 m \frac{1}{2m} 2m1。当然因为后面要平方求导消去2看起来式子更简洁呀。
最终的,代价函数会被表达成下式:
J
(
w
,
b
)
=
∑
i
=
1
m
(
y
^
(
i
)
−
y
(
i
)
)
,
其中
m
表示训练集的样本数量
J(w,b)=\sum_{i=1}^{m}(\hat{y}^{(i)}-y^{(i)}), 其中m表示训练集的样本数量
J(w,b)=i=1∑m(y^(i)−y(i)),其中m表示训练集的样本数量
也就是
J
(
w
,
b
)
=
∑
i
=
1
m
(
f
w
,
b
(
x
(
i
)
)
−
y
(
i
)
)
,
其中
m
表示训练集的样本数量
J(w,b)=\sum_{i=1}^{m}(f_{w,b}({x}^{(i)})-y^{(i)}), 其中m表示训练集的样本数量
J(w,b)=i=1∑m(fw,b(x(i))−y(i)),其中m表示训练集的样本数量