这是一个基于Obsidian以及Vercel的个人学习知识库
1. 梯度下降关心的是什么?
首先,梯度下降算法本身并不关心损失函数是什么形式。它的工作流程非常“机械”:
- 给我一个可微的损失函数
。 - 我计算出
关于参数 的梯度 。 - 我沿着负梯度方向更新
。
所以,无论是均方误差 (Mean Squared Error, MSE) 还是负对数似然 (Negative Log-Likelihood, NLL),只要它们是可微的,梯度下降都能用它们来优化模型。
2. 均方误差 vs. 负对数似然
我们来仔细看看这两个损失函数:
均方误差 (MSE)
是模型对输入 的预测值。 是预测误差(残差)。 - 物理意义: 它直接衡量了预测值与真实值之间的几何距离(的平方)。你说得对,它的“量纲”是目标值
量纲的平方。这非常直观。
负对数似然 (NLL)
- 物理意义: 它衡量的是模型对观测数据出现(被预测出来)的概率的“惊讶程度”。如果模型认为观测到的真实数据
出现的概率很低( 很小),那么 就会很大,损失就很大。它的“量纲”是信息论中的“比特”或“奈特”,是无量纲的。
3. 两者何时等价?【关键点】
现在到了最关键的部分。为什么看起来完全不同的两个东西,都能用来做回归任务?
答案是:当我们假设模型的预测误差服从高斯分布(正态分布)时,最小化均方误差就等价于最大化对数似然!
让我们来推导一下:
-
做出假设: 我们假设对于一个给定的输入
,模型的预测值 是真实值 加上一个服从高斯分布的噪声 。 其中,
,即噪声的均值为0,方差为 。 -
写出似然函数: 根据这个假设,给定
和 , 的条件概率分布就是一个高斯分布,其均值为模型的预测值 : 根据高斯分布的概率密度函数公式:
-
计算负对数似然 (NLL):
利用对数性质
和 : -
计算总损失:
-
进行优化: 我们的目标是找到使
最小的参数 。观察上式,第二项 是一个与 无关的常数,在求导和优化过程中可以忽略。第一项前面的系数 也是一个正的常数。
因此,最小化就等价于最小化: 这正是平方误差(或均方误差,只差一个常数因子
)!
结论
- 是的,梯度下降时,损失函数可以是负对数似然形式。 这在处理概率模型时非常自然和普遍(例如,分类问题中的交叉熵损失就是NLL的一种)。
- “量纲”问题是个好问题,但它不影响优化。 梯度下降只关心损失函数对参数的相对变化率(梯度),而不在乎损失函数的绝对值和单位。
- 两者是统一的。 均方误差损失可以被看作是负对数似然损失在“误差服从高斯分布”这个特定假设下的一个特例。
- 选择哪个?
- 均方误差:更直观,从几何距离出发。
- 负对数似然:更具普遍性,从概率和信息论出发。它不仅能推导出均方误差,还能在不同假设下推导出其他损失函数(如分类问题的交叉熵损失,当假设服从伯努利分布时)。这为我们提供了一个统一的框架来理解各种损失函数。
所以,你的疑惑非常有价值,它揭示了机器学习中不同方法背后深层的统计学联系。