Softmax回归中极大似然估计解释【极大似然估计(即最大化 P(Y|X))来比较估计值与实际值】——《动手学深度学习》3.4.6 损失函数(P72)

这是一个非常核心且重要的问题,它触及了机器学习中损失函数设计的本质。我们来一步步拆解,为什么在Softmax回归中,通过极大似然估计(即最大化 P(Y|X))来比较估计值与实际值是合理且有效的。

1. 问题设定与符号定义

首先,我们明确一下场景:

  • 任务:多分类问题(例如,将图像分为猫、狗、鸟三类)。

  • 模型:Softmax回归(或称多项逻辑回归)。

  • 输入:一个样本的特征向量 x

  • 输出:该样本属于每个类别的概率。

  • 真实标签:通常使用 one-hot 编码。例如,如果真实类别是“狗”(第二类),那么真实标签向量 y = [0, 1, 0]。

  • 模型估计:模型会输出一个概率分布 ŷ = [ŷ₁, ŷ₂, ŷ₃]。例如,模型可能输出 ŷ = [0.2, 0.7, 0.1]。

我们的目标是让模型的输出 ŷ 尽可能地接近真实标签 y

2. 直观理解:我们想要一个“靠谱”的模型

什么是“好”的模型?一个“好”的模型应该使得(给定X):

  • 当真实类别是“狗”时,它预测出的 P(狗|X) 应该尽可能

  • 同时,其他错误类别的概率(如 P(猫|X) 和 P(鸟|X))应该尽可能

极大似然估计的核心思想恰恰就是:寻找一组模型参数,使得在当前模型下,“观测到我们已经拥有的这批真实数据”这件事情发生的可能性最大。

换句话说,我们调整模型参数,让模型对已经发生的“事实”(即真实标签、独热标签)觉得“这很合理,一点也不意外”。如果模型对某个样本的输出概率是 [0.2, 0.7, 0.1],而真实标签(独热标签)是 [0, 1, 0],那么模型会觉得“我看到这个真实标签是合理的,因为我本来就认为它有70%的概率是狗”。反之,如果模型输出是 [0.8, 0.1, 0.1],那么看到真实标签 (独热标签)[0, 1, 0] 时,模型会觉得“这太意外了!我本来有80%的把握认为是猫,结果却是狗,我的参数肯定有问题”。

因此,最大化条件概率 P(Y|X) 本质上就是在要求模型为每个真实标签(独热标签)给出高置信度的、正确的概率估计。

3. 数学推导:从最大似然到交叉熵损失

现在我们把上面的直觉数学化。

  1. 定义似然函数
    对于一个样本 (xy),其中 y 是 one-hot 向量。模型给出的估计是 ŷ = softmax(z)。那么,在给定模型参数下,观察(估计)到这个真实标签(独热标签) y 的概率是多少呢?
    由于 y 是 one-hot 编码,只有真实类别 k 的位置是1,即y_{k}=1,其他都是0,即y_{c}=0 (c\neq k)。所以,这个概率就是模型预测为真实类别 k 的概率:

        P(Y=y | X=x; \theta ) = \hat{y}_{k}          (其中 θ 是模型参数)

         更一般地,我们可以用一个巧妙的写法来表示整个分布:

         P(Y | X; \theta ) = \prod_{c=1}^{C} \hat{y}_{c}^{ y_{c}}              (这里 C 是类别总数)

        我们来验证一下:如果真实类别是,那么 y_{k}=1,其他 y_{c}=0 (c\neq k)。于是:

    P(Y=y|X=x;\theta )=\hat{y}_{1}^{0}\times \hat{y}_{2}^{0} \times ...\times \hat{y}_{k}^{1}\times ... \times \hat{y}_{C}^{0}=\hat{y}_{k}
        完美匹配! 

    2. 最大化似然函数

  • 对于整个训练数据集 D = {(x⁽ⁱ⁾, y⁽ⁱ⁾)},我们假设样本是独立同分布的。那么整个数据集的似然函数就是所有样本概率的乘积:

        P\left ( Y=y^{(i)}\mid X=x^{(i)} \right )=\prod_{c=1}^{C} (\hat{y}_{c}^{(i)})^{ y_{c}^{(i)}}

        L\left ( \theta \right )=\prod_{i=1}^{N}P\left ( Y=y^{(i)}\mid X=x^{(i)} \right )=\prod_{i=1}^{N} \prod_{c=1}^{C} (\hat{y}_{c}^{(i)})^{ y_{c}^{(i)}}

        我们的目标就是找到参数 θ 来最大化这个似然函数 L(θ)

    3. 转为最小化负对数似然(Negative Log-Likelihood, NLL)
        乘积形式在数学上难以处理(容易下溢,且求导复杂)。我们通常将其转化为求和形式。

         首先取对数,将乘积变为求和,且不改变优化目标(因为log是单调递增函数)。

         \log L\left ( \theta \right )=\sum_{i=1}^{N}\log P\left ( Y=y^{(i)} | X=x^{(i)} \right ) =\sum_{i=1}^{N}\sum_{c=1}^{C}y_{c}^{(i)}\log\hat{y}_{c}^{(i)}

         然后,在机器学习中,我们习惯于最小化一个损失函数,而不是最大化。所以我们在前面加一个负号,将“最大化对数似然”转化为“最小化负对数似然”:

          J\left ( \theta \right )=-\frac{1}{N}\log L\left ( \theta \right )=-\frac{1}{N}\sum_{i=1}^{N}\log P\left ( Y=y^{(i)} | X=x^{(i)} \right )=-\frac{1}{N}\sum_{i=1}^{N}\sum_{c=1}^{C}y_{c}^{(i)}\log\hat{y}_{c}^{(i)}

          这个损失函数 J(θ) 就是著名的交叉熵损失(Cross-Entropy Loss)

4. 最终解释:极大似然、交叉熵与估计值/实际值的比较        

现在可以清晰地解释标题中的问题了:

在Softmax回归中,通过极大似然估计(最大化 P(Y|X))来比较估计值与实际值,其内在逻辑是:

  1. 概率解释:最大化 P(Y|X) 直接要求模型为真实标签分配高概率。这本身就是最直接、最自然的“比较”方式——我们希望估计的概率分布 ŷ 在与真实的 one-hot 分布 y 比较时,在正确类别上的概率值很高。

  2. 等价于最小化交叉熵:通过数学推导,最大化似然函数 完全等价于 最小化交叉熵损失函数。交叉熵是衡量两个概率分布(真实分布 y 和估计分布 ŷ)之间差异的度量。

    • 当 ŷ 与 y 完全一致时,交叉熵达到最小值(0)。

    • 当 ŷ 与 y 差异越大,交叉熵的值就越大。

  3. 信息论视角:交叉熵源于信息论,它衡量了用估计分布 ŷ 来编码真实分布 y 所需要的平均比特数。我们希望通过学习,让这个“编码长度”最小,即用最“经济”的方式(模型分布)来准确描述“真相”(数据分布)。

总结一下整个逻辑链:

目标:让模型的预测(估计)分布 ŷ 接近真实标签的 one-hot 分布 y

方法:采用极大似然估计,即寻找使 P(Y|X) 最大的模型参数。

数学等价:最大化 P(Y|X) ⟺ 最大化对数似然 ⟺ 最小化负对数似然

最终形式:负对数似然就是 交叉熵损失,它直接、量化地衡量了 ŷ 和 y 这两个分布之间的“距离”或“差异”。

因此,说“在Softmax回归中通过极大似然估计来比较估计值与实际值”,其背后的实质就是使用交叉熵作为损失函数,来最小化模型预测概率分布与真实概率分布之间的差异。这是一种在概率模型框架下非常优雅且强大的理论支撑。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值