目录

吴恩达机器学习笔记复盘五均方误差函数

吴恩达机器学习笔记复盘(五)均方误差函数

只讲了线性回归的代价函数。

均方误差(Mean Squared Error, MSE)

均方误差(MSE)基于最小二乘法,通过计算预测值与真实值之间差值的平方的平均值来衡量模型的误差。

原理

假设我们有一组数据集 https://latex.csdn.net/eq?%5C%7B%28x_1%2Cy_1%29%2C%28x_2%2Cy_2%29%2C%5Ccdots%2C%28x_n%2Cy_n%29%5C%7D ,其中 https://latex.csdn.net/eq?x_i 是第 https://latex.csdn.net/eq?i 个样本的特征向量, https://latex.csdn.net/eq?y_i 是对应的真实值,我们的模型对 https://latex.csdn.net/eq?x_i 的预测值为 https://latex.csdn.net/eq?%5Chat%7By%7D_i 。 我们的目标是找到一个函数 https://latex.csdn.net/eq?f%28x%29 (即模型),使得预测值 https://latex.csdn.net/eq?%5Chat%7By%7D_i%20%3D%20f%28x_i%29 尽可能接近真实值 https://latex.csdn.net/eq?y_i

为了得到一个总体的误差衡量指标,我们考虑将所有样本的误差进行综合。如果直接对误差求和 https://latex.csdn.net/eq?%5Csum_%7Bi%20%3D%201%7D%5E%7Bn%7De_i%3D%5Csum_%7Bi%20%3D%201%7D%5E%7Bn%7D%28y_i%20-%20%5Chat%7By%7D_i%29 ,由于误差有正有负,可能会相互抵消,不能准确反映总体的误差情况。 为了避免这种正负抵消的问题,我们对误差进行平方,得到 https://latex.csdn.net/eq?e_i%5E2%3D%28y_i%20-%20%5Chat%7By%7D_i%29%5E2 。平方后的误差都是非负的,这样就可以将所有样本的误差平方相加,得到总的误差平方和 https://latex.csdn.net/eq?SSE%3D%5Csum_%7Bi%20%3D%201%7D%5E%7Bn%7D%28y_i%20-%20%5Chat%7By%7D_i%29%5E2 。 然而, https://latex.csdn.net/eq?SSE 的值会受到样本数量 https://latex.csdn.net/eq?n 的影响,样本数量越多, https://latex.csdn.net/eq?SSE 通常会越大,不利于不同数据集或不同模型之间的比较。为了消除样本数量的影响,我们对 https://latex.csdn.net/eq?SSE 求平均,得到均方误差 https://latex.csdn.net/eq?MSE%3D%5Cfrac%7B1%7D%7Bn%7D%5Csum_%7Bi%20%3D%201%7D%5E%7Bn%7D%28y_i%20-%20%5Chat%7By%7D_i%29%5E2 。 通过最小化 https://latex.csdn.net/eq?MSE ,我们可以找到最优的模型参数,使得模型的预测结果在整体上尽可能接近真实值。

在数学上,可以通过对 https://latex.csdn.net/eq?MSE 关于模型参数求偏导数,并令偏导数为零,来求解使(MSE)最小的参数值。这就是均方误差的原理及求证过程。为了方面求导,MSE公式会转为 https://latex.csdn.net/eq?MSE%3D%5Cfrac%7B1%7D%7B2n%7D%5Csum_%7Bi%20%3D%201%7D%5E%7Bn%7D%28y_i%20-%20%5Chat%7By%7D_i%29%5E2

简化模型

令fW​(X)=WX(即B=0),此时目标是找到使J(W)最小的W值。分别分析不同W取值时的情况:

  • 当W=1时,函数fW​(X)是斜率为1的直线,对于训练集中的三个点(1,1)、(2,2)、(3,3),f(Xi​)=Yi​,误差为0,代入成本函数J(W)计算得J(1)=0。
  • 当W=0.5时,f(X)是斜率为0.5的直线。分别计算三个训练样本的平方误差并求和得3.5,再乘以2m1​(m=3),得出J(0.5)=63.5​ 。
  • 当W=0时,f(X)是水平线,计算得J(0)=61​×14≈2.33 。
  • 当W=−0.5时,f(X)是向下倾斜直线,此时代价更高约为5.25。

这里可以得出第一种情况误差最小。但至今为止这里只是代入验证,并非求解。求解会引入另外一个问题 - 梯度下降。

理解

线性回归用数学来解释是,有函数 https://latex.csdn.net/eq?f%28x%29%20%3D%20wx+b ,求一个合适的w数值能满足给定数据集的最小误差。

即线性回归模型为fW,B​(X)=WX+B,通过选择合适的W和B使直线拟合训练数据,代价函数J(W,B)衡量模型预测与真实值差异,目标是最小化J(W,B) = https://latex.csdn.net/eq?MSE%3D%5Cfrac%7B1%7D%7B2n%7D%5Csum_%7Bi%20%3D%201%7D%5E%7Bn%7D%28y_i%20-%20%5Chat%7By%7D_i%29%5E2

函数f(x)是根据数据集预测未来数值的函数,而J(w,b)是用来计算得出误差的最小情况的。