ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【深度学习】深度理解多分类交叉熵为什么比较适合于分类任务

【深度学习】深度理解多分类交叉熵为什么比较适合于分类任务 数学定义对于多分类问题假设有CCC个类别对于一个样本其真实标签通常用独热编码表示one-hot encoding即真实概率分布 $ y $ 中正确类别为1其余为0。模型输出的通常是经过Softmax激活函数后的概率分布y^\hat{y}y^​满足∑i1Cy^i1\sum_{i1}^C \hat{y}_i 1∑i1C​y^​i​1。单个样本的损失函数定义为真实分布与预测分布的交叉熵L−∑i1Cyilog⁡(y^i) \mathcal{L} -\sum_{i1}^{C} y_i \log(\hat{y}_i)L−i1∑C​yi​log(y^​i​)由于yyy是 one-hot 向量只有正确类别kkk处yk1y_k 1yk​1公式可以简化为L−log⁡(y^k) \mathcal{L} -\log(\hat{y}_k)L−log(y^​k​)其中y^k\hat{y}_ky^​k​是模型对正确类别的预测概率。整个数据集N个样本的平均损失为Ltotal−1N∑j1N∑i1Cyj,ilog⁡(y^j,i) \mathcal{L}_{total} -\frac{1}{N} \sum_{j1}^{N} \sum_{i1}^{C} y_{j,i} \log(\hat{y}_{j,i})Ltotal​−N1​j1∑N​i1∑C​yj,i​log(y^​j,i​)对数惩罚机制因为log⁡(x)\log(x)log(x)在x→1x \to 1x→1时趋近于0在x→0x \to 0x→0时趋近于负无穷。当模型对正确类别的预测概率接近 1时损失−log⁡(1)≈0-\log(1) \approx 0−log(1)≈0表示预测完美。当模型对正确类别的预测概率接近 0时损失−log⁡(0)→∞-\log(0) \to \infty−log(0)→∞表示预测极度错误给予巨大的惩罚。关注点明确它只关心“正确答案”的概率是否足够大而不关心错误类别的具体分布只要它们总和为1即可。这使得模型训练时目标极其清晰。假设有一个 3 分类问题类别猫、狗、鸟:情况一预测较好真实标签猫 →y[1,0,0]y [1, 0, 0]y[1,0,0]模型输出Softmax后y^[0.7,0.2,0.1]\hat{y} [0.7, 0.2, 0.1]y^​[0.7,0.2,0.1]损失L−log⁡(0.7)≈0.356\mathcal{L} -\log(0.7) \approx 0.356L−log(0.7)≈0.356情况二预测较差真实标签猫 →y[1,0,0]y [1, 0, 0]y[1,0,0]模型输出y^[0.1,0.8,0.1]\hat{y} [0.1, 0.8, 0.1]y^​[0.1,0.8,0.1]损失L−log⁡(0.1)≈2.302\mathcal{L} -\log(0.1) \approx 2.302L−log(0.1)≈2.302可以看到正确概率从 0.7 降到 0.1损失从 0.356 急剧上升到 2.302梯度会非常大迫使模型快速修正。在实际深度学习中交叉熵几乎总是和Softmax配合使用。这两者结合有一个非常美妙的数学性质。设 Softmax 层的输入为ziz_izi​输出为y^iezi∑jezj\hat{y}_i \frac{e^{z_i}}{\sum_j e^{z_j}}y^​i​∑j​ezj​ezi​​。对于正确类别kkk损失对输入zzz的偏导数为∂L∂ziy^i−yi \frac{\partial \mathcal{L}}{\partial z_i} \hat{y}_i - y_i∂zi​∂L​y^​i​−yi​如果 $ i $ 是正确类别梯度 y^k−1\hat{y}_k - 1y^​k​−1负值表示需要增大该类的输出。如果 $ i $ 是错误类别梯度 y^i−0\hat{y}_i - 0y^​i​−0正值表示需要减小该类别的输出。优点梯度直接就是“预测概率”与“真实概率”的差值。当预测接近正确时如y^k0.99\hat{y}_k 0.99y^​k​0.99梯度很小0.01更新缓慢防止震荡当预测错误时如y^k0.1\hat{y}_k 0.1y^​k​0.1梯度很大0.9快速修正。这是一个自适应的、平滑的梯度。如果将多分类输出经过Softmax用均方误差LMSE12∑(y^i−yi)2\mathcal{L}_{MSE} \frac{1}{2} \sum (\hat{y}_i - y_i)^2LMSE​21​∑(y^​i​−yi​)2梯度会包含(y^i−yi)(\hat{y}_i - y_i)(y^​i​−yi​)乘以 Softmax 的雅可比矩阵导致梯度非常小饱和现象。当模型预测完全错误y^k≈0\hat{y}_k \approx 0y^​k​≈0时MSE的梯度反而可能接近0因为Softmax输出平缓导致学习停滞。而交叉熵在错误时梯度大在正确时梯度小完美契合了梯度下降的需求。
返回列表