详细讲解最小二乘法名称的由来

最小二乘法是一种典型的数学优化技术,其目的是通过最小化误差函数(也称为成本函数、损失函数)而求得最优的解。名称中关键的词语就是"最小"、"二乘",名称的英文为"Least Squares"。所谓最小就是使误差函数最小,"二乘"就是指的平方,因此,最小二乘法又称为最小平方法。

要想打好机器学习的数学基础,请参见清华大学出版社的人人可懂系列,包括《人人可懂的微积分》(已上市)、《人人可懂的线性代数》(即将上市)、《人人可懂的概率统计》(即将上市)。

先来看最为简单的在平面中拟合直线方程的情况,这种情况下只需要找出1个系数和截距。这种情况下,最小二乘法使用的误差函数为:

J ( θ ) = 1 2 m ∑ i = 0 m − 1 ( y p i − y i ) 2 J\left( \mathbf{\theta} \right) = \frac{1}{2m}\sum_{i = 0}^{m - 1}{(y_{pi} - y_{i})}^{2} J(θ)=2m1i=0∑m−1(ypi−yi)2

(公式1)

做线性拟合的目的就是要使 J ( θ ) J\left( \mathbf{\theta} \right) J(θ)这个误差函数的值尽可能的小。值更小就表明预测值与真实值的差值更小。公式1中, y pi y_{\text{pi}} ypi表示第i 个预测值; y i y_{i} yi即为 y t i y_{ti} yti,表示第i 个真实值; m m m表示 m m m个数据样本。因此这个函数表示计算预测值与真实值的差的平方和后再求平均。

这里有2个问题要说明,这2个问题初次接触者很容易困惑。

第1个问题是公式1中为什么要采用平方?因为平方计算后都变成了正数,就不必再担心预测值与真实值的差为负数的情况;二是平方后做导数计算。这还能有未知数存在;三是平方函数的图形是一根开口向上的抛线,必有极小值。从 J ( θ ) J\left( \theta \right) J(θ)来要求的未知数是 θ \theta θ,但是公式1中并未见 θ \theta θ?实际上是有的,只是隐含在 y pi y_{\text{pi}} ypi中罢了。要拟合的直线模型为:

y = θ 1 x + θ 0 y = \theta_{1}x + \theta_{0} y=θ1x+θ0

(方程1)

把这方程代入到公式1中,实际上就是:

J ( θ ) = 1 2 m ∑ i = 0 m − 1 ( ( θ 1 x i + θ 0 ) − y i ) 2 J\left( \mathbf{\theta} \right) = \frac{1}{2m}\sum_{i = 0}^{m - 1}{((\theta_{1}x_{i} + \theta_{0}) - y_{i})}^{2} J(θ)=2m1i=0∑m−1((θ1xi+θ0)−yi)2

(公式2)

这样把拟合方程1就转化了求得 J ( θ ) J\left( \theta \right) J(θ)的最小值,在做最小值优化的过程中来求得最合适的 θ 1 \theta_{1} θ1、 θ 0 \theta_{0} θ0这2个参数的值。

**提示:**再次提醒,求解模型是要求其中的 θ 1 \theta_{1} θ1、 θ 0 \theta_{0} θ0这些参数值,而不是x 、y 。x 、y的值事先都是已知的值。

要想打好机器学习的数学基础,请参见清华大学出版社的人人可懂系列,包括《人人可懂的微积分》(已上市)、《人人可懂的线性代数》(即将上市)、《人人可懂的概率统计》(即将上市)。

如果 θ \theta θ只有一次方,则求导数值就会变成1,这就没有办法再求解下去了。假定采用的公式是:

J ( θ ) = 1 2 m ∑ i = 0 m − 1 ( ( θ 1 x i + θ 0 ) − y i ) J\left( \mathbf{\theta} \right) = \frac{1}{2m}\sum_{i = 0}^{m - 1}{((\theta_{1}x_{i} + \theta_{0}) - y_{i})} J(θ)=2m1i=0∑m−1((θ1xi+θ0)−yi)

用这个公式对 θ 0 \theta_{0} θ0求偏导数:

∂ J ( θ ) ∂ θ 0 = ∂ ∂ θ 0 ( 1 2 m ∑ i = 0 m − 1 ( ( θ 1 x i + θ 0 ) − y i ) ) = 1 2 m ∑ i = 0 m − 1 ∂ ∂ θ 0 ( ( θ 1 x i + θ 0 ) − y i ) \frac{\partial J\left( \mathbf{\theta} \right)}{\partial\theta_{0}} = \frac{\partial}{\partial\theta_{0}}\left( \frac{1}{2m}\sum_{i = 0}^{m - 1}\left( \left( \theta_{1}x_{i} + \theta_{0} \right) - y_{i} \right) \right) = \frac{1}{2m}\sum_{i = 0}^{m - 1}{\frac{\partial}{\partial\theta_{0}}\left( \left( \theta_{1}x_{i} + \theta_{0} \right) - y_{i} \right)} ∂θ0∂J(θ)=∂θ0∂(2m1i=0∑m−1((θ1xi+θ0)−yi))=2m1i=0∑m−1∂θ0∂((θ1xi+θ0)−yi)

= 1 2 m ∑ i = 0 m − 1 1 = 1 2 m × m = 1 2 = \frac{1}{2m}\sum_{i = 0}^{m - 1}1 = \frac{1}{2m} \times m = \frac{1}{2} =2m1i=0∑m−11=2m1×m=21

这就使得导数值变成了一个常数,这就违背了做优化的初衷。因为在极值点, ∂ J ( θ ) ∂ θ 0 = 0 \frac{\partial J(\mathbf{\theta})}{\partial\theta_{0}} = 0 ∂θ0∂J(θ)=0,而这里 ∂ J ( θ ) ∂ θ 0 = 1 2 \frac{\partial J(\mathbf{\theta})}{\partial\theta_{0}} = \frac{1}{2} ∂θ0∂J(θ)=21,这就互相矛盾了。上述求导过程中,为什么 ∂ ∂ θ 0 ( ( θ 1 x i + θ 0 ) − y i ) = 1 \frac{\partial}{\partial\theta_{0}}\left( \left( \theta_{1}x_{i} + \theta_{0} \right) - y_{i} \right) = 1 ∂θ0∂((θ1xi+θ0)−yi)=1?前述数学知识中我们已经学过,求偏导数时,把 θ 0 \theta_{0} θ0看成未知数,则把 θ 1 \theta_{1} θ1看成是常量, x i x_{i} xi、 y i y_{i} yi是已知数,也看成是常量,常量的导数为0,因此:

∂ ∂ θ 0 ( ( θ 1 x i + θ 0 ) − y i ) = ∂ θ 0 ∂ θ 0 = 1 \frac{\partial}{\partial\theta_{0}}\left( \left( \theta_{1}x_{i} + \theta_{0} \right) - y_{i} \right) = \frac{\partial\theta_{0}}{\partial\theta_{0}} = 1 ∂θ0∂((θ1xi+θ0)−yi)=∂θ0∂θ0=1

同理,对 θ 1 \theta_{1} θ1求偏导数:

∂ J ( θ ) ∂ θ 1 = ∂ ∂ θ 1 ( 1 2 m ∑ i = 0 m − 1 ( ( θ 1 x i + θ 0 ) − y i ) ) = 1 2 m ∑ i = 0 m − 1 ∂ ∂ θ 1 ( ( θ 1 x i + θ 0 ) − y i ) = 1 2 m ∑ i = 0 m − 1 ∂ ∂ θ 1 ( θ 1 x i ) = 1 2 m ∑ i = 0 m − 1 x i \frac{\partial J(\mathbf{\theta})}{\partial\theta_{1}} = \frac{\partial}{\partial\theta_{1}}\left( \frac{1}{2m}\sum_{i = 0}^{m - 1}\left( \left( \theta_{1}x_{i} + \theta_{0} \right) - y_{i} \right) \right) = \frac{1}{2m}\sum_{i = 0}^{m - 1}{\frac{\partial}{\partial\theta_{1}}(\left( \theta_{1}x_{i} + \theta_{0} \right) - y_{i})} = \frac{1}{2m}\sum_{i = 0}^{m - 1}{\frac{\partial}{\partial\theta_{1}}(\theta_{1}x_{i})} = \frac{1}{2m}\sum_{i = 0}^{m - 1}x_{i} ∂θ1∂J(θ)=∂θ1∂(2m1i=0∑m−1((θ1xi+θ0)−yi))=2m1i=0∑m−1∂θ1∂((θ1xi+θ0)−yi)=2m1i=0∑m−1∂θ1∂(θ1xi)=2m1i=0∑m−1xi

在极值点, ∂ J ( θ ) ∂ θ 1 = 1 2 m ∑ i = 0 m − 1 x i = 0 \frac{\partial J(\mathbf{\theta})}{\partial\theta_{1}} = \frac{1}{2m}\sum_{i = 0}^{m - 1}x_{i} = 0 ∂θ1∂J(θ)=2m1∑i=0m−1xi=0,这个表达式里已经没有了 θ 1 \theta_{1} θ1,因此也没有办法求得 θ 1 \theta_{1} θ1。

此外,在求误差时,参照图3-3来看,已知点的分布实际情况多会是分布在线的上下,如果 θ \theta θ只有一次方,误差值有正有负,做加法时会相互抵消,也会使误差值不真实。要使误差值不相互抵消,可能您会想到可以使用绝对值,即:

J ( θ ) = 1 2 m ∑ i = 0 m − 1 ∣ ( θ 1 x i + θ 0 ) − y i ∣ J\left( \mathbf{\theta} \right) = \frac{1}{2m}\sum_{i = 0}^{m - 1}{|(\theta_{1}x_{i} + \theta_{0}) - y_{i}|} J(θ)=2m1i=0∑m−1∣(θ1xi+θ0)−yi∣

但是这样做,会使这个函数成了一个不可导的函数。前面的数学知识中已经学过,在 ∣ ( θ 1 x i + θ 0 ) − y i ∣ |(\theta_{1}x_{i} + \theta_{0}) - y_{i}| ∣(θ1xi+θ0)−yi∣这个函数的极值点, ( ( θ 1 x i + θ 0 ) − y i ) ((\theta_{1}x_{i} + \theta_{0}) - y_{i}) ((θ1xi+θ0)−yi)和 − ( ( θ 1 x i + θ 0 ) − y i ) - ((\theta_{1}x_{i} + \theta_{0}) - y_{i}) −((θ1xi+θ0)−yi)的导数值不同,产生矛盾,因此不可导。

第2个问题是公式1中系数 1 2 m \frac{1}{2m} 2m1为什么分母有个2?这是为了简化计算,当求导数时, d θ 2 dθ = 2 θ \frac{d\theta^{2}}{\text{dθ}} = 2\theta dθdθ2=2θ,这样就可以把 2 θ 2\theta 2θ前的2约掉。当然,不想要简化计算的话,用 1 m \frac{1}{m} m1也是可以的,因为并不影响求解参数 θ 1 \theta_{1} θ1、 θ 0 \theta_{0} θ0这2个参数的值,而且也不影响求做优化计算。在做优化过程中,函数前有系数 1 2 \frac{1}{2} 21和没有系数 1 2 \frac{1}{2} 21,使函数值往最小值的方向发展趋势是一样的。

要想打好机器学习的数学基础,请参见清华大学出版社的人人可懂系列,包括《人人可懂的微积分》(已上市)、《人人可懂的线性代数》(即将上市)、《人人可懂的概率统计》(即将上市)。

讲了这么多,都是为了让大家解开心中对取公式1这样的优化函数的疑团。我始终认为,只有清楚为什么这么做,才会对知识理解得透彻。

相关推荐
IanSkunk几秒前
从T/SMA 0090—2026到视光中心落地:标准化体系模块清单怎么拆
人工智能
万物智能信息科技2 分钟前
血氧心跳传感器MAX30100芯片驱动开发—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
人工智能·驱动开发·华为·开源·harmonyos·鸿蒙
Alice-YUE3 分钟前
从「能用」到「可控」:Prompt 工程与日常写 Prompt 的本质区别
人工智能·大模型·llm·prompt·prompt工程·提示词·ai应用
qq_365320607 分钟前
AI使用心得7
人工智能
Skrrapper8 分钟前
AI项目实战日记ep2:把 GitHub Issue 的第一轮脏活交给 AI:做一个 Issue 分诊助手
人工智能·github·issue
Eric.4610 分钟前
2025 深度实战:本地部署 AI 漫剧与 AI 视频全量产方案,彻底解决云端画质抖动、角色漂移、成本超标
大数据·人工智能·音视频·comfyui·ai漫剧
东坡肘子10 分钟前
Swift Server,又多了一个 Google -- 肘子的 Swift 周报 #156
人工智能·swiftui·swift
枫叶丹414 分钟前
AI Agent 说完成了,怎样验证任务真的完成
人工智能·chatgpt·开源·agent·codex
搬砖小趴菜19 分钟前
【科研速递】Applied Sciences | 冻融循环作用下玄武岩的三轴力学行为与强度模型:对寒区工程结构的意义
大数据·论文阅读·人工智能·全文检索·ai自动写文章
智感子5 小时前
测控链路:从传感器到上位机
人工智能·嵌入式硬件·fpga开发