最小二乘法的原理理解

最小二乘法的原理理解在上文一文让你彻底搞懂最小二乘法 超详细推导 中我们提到过 发明最小二乘法的勒让德认为 让误差的平方和最小估计出来的模型是最接近真实情形的 误差 真实值 理论值 换句话说 勒让德认为最佳的拟合准则是使 yiy i yi 与 f xi f x i f xi 的距离的平方和最小 即 L i 1n yi f xi 2L sum i 1 n y i f x i 2 L i 1 n yi f xi 2 这个准则也被称为最小二乘准则 勒让德在原文中提到 使误差平方和达到最小

在上文一文让你彻底搞懂最小二乘法(超详细推导)中我们提到过,发明最小二乘法的勒让德认为,让误差的平方和最小估计出来的模型是最接近真实情形的(误差=真实值-理论值)。换句话说,勒让德认为最佳的拟合准则是使 y i y_{i} yi f ( x i ) f(x_{i}) f(xi)的距离的平方和最小,即:
L = ∑ i = 1 n ( y i − f ( x i ) ) 2 L=\sum_{i=1}^{n}(y_{i}-f(x_i))^{2} L=i=1n(yif(xi))2
这个准则也被称为最小二乘准则。

勒让德在原文中提到:使误差平方和达到最小,在各方程的误差之间建立了一种平衡,从而防止了某一极端误差取得支配地位,而这有助于揭示系统的更接近真实的状态。至于说为什么最佳准则就是误差平方而不是其它的,当时是没有给出解释的,直到后来高斯建立了正态误差分析理论才成功回答了该问题。

误差分析理论其实说到底就一个结论:观察值的误差服从标准正态分布,即 ϵ ∈ N ( 0 , σ 2 ) \epsilon \in N\left(0, \sigma^{2}\right) ϵN(0,σ2)

这个结论现在在我们看来是理所当然的,因为它实在太符合直觉了,观测值距离理论值有时大有时小,当观测样本多起来后,根据大数定理,这些样本的误差就一定会服从正态分布!

那么如何根据这个结论推导出最小二乘法呢?

我们先暂时忘记什么是最小二乘法,重新审视一下这个问题:我们观测得到了一组样本,我们想通过这组样本去估计出模型的参数。

我们假设真实的模型参数为 θ \theta θ,模型的真实输出为 f θ ( x i ) f_{\theta}(x_i) fθ(xi), 由于各种问题,我们观测到的样本 y i y_{i} yi距离真实值都是存在误差的,这个误差项记为 ϵ \epsilon ϵ。那么根据高斯误差分析的结论,误差项 ϵ \epsilon ϵ应当满足 ϵ ∈ N ( 0 , σ 2 ) \epsilon \in N\left(0, \sigma^{2}\right) ϵN(0,σ2),则每个观测样本 y i y_{i} yi应该有: y i ∈ N ( f θ ( x i ) , σ 2 ) y_{i} \in N\left(f_{\theta}(x_i), \sigma^{2}\right) yiN(fθ(xi),σ2),即观察到的样本 y i y_{i} yi是由理论值(模型的真实输出) f θ ( x i ) f_{\theta}(x_i) fθ(xi) 叠加上高斯噪声 ϵ \epsilon ϵ 得到的,这个不难理解。

从概率统计的视角,我们把观测样本看作随机变量,其中随机变量 y i y_{i} yi符合概率分布: y i ∈ N ( f θ ( x i ) , σ 2 ) y_{i} \in N\left(f_{\theta}(x_i), \sigma^{2}\right) yiN(fθ(xi),σ2) ,目前已经给定了一批样本,那么我如何去估计出模型的参数呢?

没错,极大似然估计!

推导

极大似然估计的思想总结来说就是,最大化当前这个样本集发生的概率,专业点说就是最大化似然函数(likelihood function),而似然函数就是样本的联合概率。由于我们通常都会假设样本是相互独立的,因此联合概率就等于每个样本发生的概率乘积。

在这个问题中,每个样本 y i y_{i} yi发生概率:
p ( y i ∣ x i ; θ ) = 1 2 π σ exp ⁡ ( − ( y i − f θ ( x i ) ) 2 2 σ 2 ) p\left(y_{i} \mid x_{i} ; \theta\right)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y_{i}-f_{\theta}(x_i)\right)^{2}}{2 \sigma^{2}}\right) p(yixi;θ)=2π
σ
1
exp(2σ2(yifθ(xi))2)

一般来说,我们会对似然函数取 l o g log log以将连乘变成累加,主要有两个目的:防止溢出和方便求导,则有:
J ( θ ) = log ⁡ ( L ( θ ) ) = ∑ i = 1 m log ⁡ p ( y i ∣ x i ; θ ) = ∑ i = 1 m ( log ⁡ 1 2 π σ exp ⁡ ( − ( y i − f θ ( x i ) ) 2 2 σ 2 ) ) = − 1 2 σ 2 ∑ i = 1 m ( y i − f θ ( x i ) ) 2 − m ln ⁡ σ 2 π \begin{aligned} J(\theta) &=\log (L(\theta)) \\ &= \sum_{i=1}^{m}\log p\left(y_{i} \mid x_{i} ; \theta\right) \\ &=\sum_{i=1}^{m}\left(\log \frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{\left(y_{i}-f_{\theta}(x_i)\right)^{2}}{2 \sigma^{2}}\right)\right) \\ &=-\frac{1}{2 \sigma^{2}} \sum_{i=1}^{m}\left(y_{i}-f_{\theta}(x_i)\right)^{2}-m \ln \sigma \sqrt{2 \pi} \end{aligned} J(θ)=log(L(θ))=i=1mlogp(yixi;θ)=i=1m(log2π
σ
1
exp(2σ2(yifθ(xi))2))
=2σ21i=1m(yifθ(xi))2mlnσ2π

去掉不包含 θ \theta θ 的常数项,以及系数,则
arg ⁡ max ⁡ θ J ( θ ) ⇔ arg ⁡ min ⁡ θ ∑ i = 1 m ( y i − f θ ( x i ) ) 2 \arg \max _{\theta} J(\theta) \Leftrightarrow \arg \min _{\theta} \sum_{i=1}^{m}\left(y_{i}-f_{\theta}(x_i)\right)^{2} argθmaxJ(θ)argθmini=1m(yifθ(xi))2

即极大化似然函数等价于极小化最小二乘法的代价函数,这也表明了以误差平方和作为最佳拟合准则的合理性。

因此我们可以这样说,最小二乘法其实就是误差满足正态分布的极大似然估计!

深度学习中的损失函数

事实上,深度学习中的损失函数也与极大似然估计有关。

最小二乘法中的模型是我们根据先验知识定下的,换句话说 f f f是有显示的函数表达式的,这是因为问题比较简单。当面对复杂问题时,这种方式就无能为力了,因为我们很难估计出输入与输出之间的关系应该是什么样子的。

而在深度学习里,我们就不需要去考虑该问题,我们通过搭建复杂的神经网络让它去自动拟合输入到输出之间的映射关系,因此也是一种更强大的技术。

当我们选定了一个具体的神经网络(比如CNN、RNN、transformer等)后,我们就相当于构建了模型 f θ f_{\theta} fθ,输入与输出之间的映射关系就隐含在模型参数 θ \theta θ中。我们通过在训练集上使用梯度下降法来不断调整参数 θ \theta θ,使得模型预测值与真实值越近越好。

那么需要考虑的一个问题就是,需要何种准则去衡量模型预测值与真实值之间的距离。这种衡量准则被称为损失函数(loss function)或代价函数(cost function)。虽然损失函数有很多种,但每种类型的问题都有事实上确定的损失函数,比如数值回归问题就用误差平方损失,分类问题就用交叉熵损失。

关于回归问题的误差平方损失我们已经证明过了,那么分类问题为什么要用交叉熵损失呢?这个我问题会写在下一篇博客。

以上就是全部内容。

如果对你有帮助,请点个赞让我知道:-D

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223746.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午1:30
下一篇 2026年3月17日 下午1:30


相关推荐

  • 超强半监督学习 MixMatch

    超强半监督学习 MixMatch人类的学习方法是半监督学习 他们能从大量的未标记数据和极少量的标记数据学习 迅速理解这个世界 半监督学习最近有没有什么大的突破呢 我的 Twitter 账号被这篇 TheQuietSemi SupervisedRe 1 博客刷屏了 这篇博客介绍了 DeepMind 的 MixMatch 2 方法 此方法仅用少量的标记数据 就使半监督学习的预测精度逼近监督学习 深度学习领域的未来可能因此而刷新 以前的半监督学习方案 一直以来表现其实都很差 你可能会想到 BERT 和 GPT 这两个

    2026年3月17日
    1
  • 带你深入了解 GitLab CI/CD 原理及流程

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:狂乱的贵公子 cnblogs.com/cjsblog/p/12256843.html GitLab CI/CD…

    2021年6月25日
    79
  • WIN32 API —— 最简单的Windows窗口封装类[通俗易懂]

    WIN32 API —— 最简单的Windows窗口封装类[通俗易懂]1开发语言抉择1.1关于开发Win32程序的语言选择C还是C++在决定抛弃MFC,而使用纯Win32API开发Window桌面程序之后,还存在一个语言的选择,这就是是否使用C++。C+

    2022年8月1日
    5
  • ipcs简单介绍

    ipcs简单介绍ipcs 是一个 uinx linux 的命令 用于报告系统的消息队列 信号量 共享内存等 1 列出所有的 ipcs 参数 a nbsp nbsp nbsp 他是默认选项及 ipcs 等效于 ipcs a root test ipcs aSharedMemor nbsp nbsp nbsp nbsp nbsp nbsp nbsp shmid nbsp nbsp nbsp nbsp nbsp owner nbsp nbsp nbsp nbsp nbsp perms

    2026年3月17日
    2
  • 新手小白学JAVA 分支结构 switch结构 for循环

    新手小白学JAVA 分支结构 switch结构 for循环分支结构 switch

    2026年3月18日
    1
  • spring cloud和dubbo的区别,各自优缺点「建议收藏」

    spring cloud和dubbo的区别,各自优缺点「建议收藏」区别:————————–来源(背景):Dubbo,是阿里巴巴服务化治理的核心框架,并被广泛应用于阿里巴巴集团的各成员站点。SpringCloud,从命名我们就可以知道,它是SpringSource的产物,Spring社区的强大背书可以说是Java企业界最有影响力的组织了,除了SpringSource之外,还有Pivotal和Netfix是其强大的后盾与技术输…

    2022年6月12日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号