上一章我们简单提及最小二乘法(Least Square),由于涉及到BP神经网络模型损失函数值的计算,所以最小二乘法是个非常重要的算法。本章暂不讨论神经网络,仅仅从数学角度,用简单的例子来探讨最小二乘法的原理。
测得值、平均值及真实值
最小二乘法可谓“日用而不知”,举一个贴近生活的例子,如下有5把不同颜色的尺子,

分别测量一段绳子的长度,不同尺子测得长度如下,

测得长度各不相同,可能的原因,
- 生产工艺不同导致精度差异。
- 材质不同导致热胀冷缩出现偏差。
- 测量者视角不同造成误差。
- 等等
而真实的值只有上帝知道,这种情况下,要取得最接近真实的值,一般采用平均值作为长度,

这是日常生活中常用的求平均值法方法,但从数学的角度来看,会有质疑,
- 这样的平均数是最优解吗?
- 为什么不用调和平均数
- 中位数为什么不行?
- 几何平均数为什么不行?
- 等等
算术平均数与最小二乘法
把测得坐标值在坐标系上标志出来,

然后,把要“猜测”的长度的真实值用平行于横轴的直线f(x)表示,

每个点向f(x)作垂线,点与垂线之间的距离为|f(xᵢ) - yᵢ|也可以理解为测量值(预测值)于真实值之间的误差。

误差是长度,如果用绝对值表示,计算起来麻烦,直接用平方来代表误差,

误差平方的总和为,

因为y是待求直线,不断变化,δ也不断变化。让误差平方的总和最小时的y就是“真值”。这是因为,如果误差随机,则误差应该围绕真值上下波动。这就是最小二乘法,即,

这是一个二次函数,对其求导,导数为0的时候取得最小值(所谓导数为0,即该点处切线的斜率为0,为二次函数顶点),




这正好是算术平均数,也就是使用最小二乘法,当误差平方的和最小时,计算出的真值即为算术平均数。
一元函数与最小二乘法
算术平均数是最小二乘法的一个特例,但最小二乘法的适用范围却广泛的多。理论上,只要数据足够多,使用最小二乘法可以拟合任意函数。
假设测得一些列数据,反映海拔高度与气温的关系,

分析表中各点, 疑似某种线性关系。把点在笛卡尔坐标系标出,貌似各点逼近于某条直线。如下图,

假设上述直线的线性方程为,


上图中5个坐标依次为,

误差平方的和为,

不同的a和b(对应线性回归模型里的权重和偏差)会有不同的误差和δ,依次对a和b求偏导数,当偏导数为0时,δ最小
若求得偏导数,要简要复习一下高等数学的链式求导法则,
如果某个函数由复合函数组成,那么高复合函数的导数,可用构成复合函数的各个函数的导数的乘积来表示。


举有个例子,

求f(x)导数f’(x)。
令

那么f(x)可以看做两个函数的复合,

根据求导公式,


得,


代入,


学习了链式法则求导,那么偏导数就简单了。所谓偏导数就是“偏向”某一个自变量的导数,偏向某一方,说明自变量不止一个。偏导数本意是partial,应该理解为部分导数。这些细节不影响我们偏导数的求解。对于偏导数z = f(x, y),两个自变量x和y,当我们求z对x的偏导数时,把y作为常数;同样,当我们求z对y的偏导数时,把x视为常数。
举一个例子,

求

及在点(1, 2)处的偏导数。
根据求导公式,


在点(1, 2)的偏导数,


在点(1, 2)的偏导数,

学会了偏导数的求解,回头再看

把除了a和b之外的自变量视为常量,上式可以看作由

和

组成的复合函数。对g(a, b)和f(g(a, b))分别求偏导数,得,


代入,

得δ对a的偏导数,

同理,可得δ对b的偏导数,

当偏导数为0的时候,δ取最小值。

代入坐标点,得,

如下直线,

推广到高次方程
最小二乘法对于平均数是一个特例,对线性方程也是一个特例。实际上,最小二乘法可以推广到多元多次方程,


等等,就像之前说的,只要数据足够多,可以拟合任意函数。
结论
本章复习了平均数、求导、求偏导数的知识。同时,深入浅出地学习了最小二乘法的原理。了解到最小二乘法从数学角度可以应用于三个方面,
- 求未知数据,使得所求得数据与实际数据之间误差的平方和最小。
- 曲线拟合。
- 一些优化问题可以通过最小化能量或最大化熵用最小二乘法来表达。
通过最小二乘法的学习,为后续损失函数的设计做了铺垫。