当前位置: 首页 > news >正文

交叉熵损失函数的优势

一、交叉熵损失函数简介

def compute_cost(A, Y, parameters):"""计算成本:param A: -- 输出层的输出结果:param Y: -- 标签:param parameters: w,b"""m = Y.shape[1]logprobs = np.log(A) * Y + np.log(1 - A) * (1 - Y)cost = -np.sum(logprobs) / mreturn cost

变量含义​

  • Y:真实标签矩阵(如二分类中的0/1)
  • A:模型预测的概率输出(需经过Sigmoid激活,值在[0,1]区间)
  • m:样本数量(用于平均损失)
    ​计算逻辑​
    ​- 核心公式​:logprobs = Y * log(A) + (1-Y) * log(1-A)
  • 此公式是二元交叉熵损失的逐样本计算

​物理意义​:

  • 当真实标签Y=1时,损失简化为-log(A2):预测概率A2越接近1,损失越小(对数函数单调递增)。
  • 当真实标签Y=0时,损失简化为-log(1-A2):预测概率A2越接近0,损失越小。
  • ​归一化​:np.sum(logprobs)/m 对所有样本的损失求和后取平均,确保损失与批量大小无关。

二、交叉熵损失的核心优势

1. ​梯度性质优异,加速收敛​

​与激活函数解耦​:
dw = A-Y,梯度仅取决于预测值与真实值的误差​(A2-Y),与激活函数的导数无关

​对比均方误差(MSE)​​:
dw = (A−Y)⋅σ ′ (z)其中σ’(z)是激活函数导数。当输出值接近饱和区(如Sigmoid两端),σ'(z)→0,导致梯度消失,收敛缓慢

​影响​:交叉熵损失在误差较大时提供更大梯度,避免梯度消失,显著提升收敛速度

2. ​对错误预测的惩罚更强​

​非线性惩罚机制​:
当预测严重错误时(如Y=1但A→0),损失-log(A)→∞,梯度急剧增大,迫使模型快速修正

反之,MSE的惩罚是二次函数((A2-Y)^2),在严重错误时梯度反而较小(如下图)。

3. ​概率分布导向,适合分类任务​

​量化分布差异​:
交叉熵直接衡量预测概率分布A2与真实分布Y的差异,与分类任务目标一致

​与Softmax/Sigmoid天然兼容​:当输出层使用Softmax(多分类)或Sigmoid(二分类)时,交叉熵损失的梯度计算简单高效: L=A2−Y
其中z是未激活的Logits,梯度可直接反向传播

4. ​数值稳定性与实现简洁性​

​代码实现简单​:如您所示,核心计算仅需1~2行

​防数值溢出​:实际实现时需对A2做数值裁剪(如np.clip(A2, 1e-12, 1-1e-12)),避免log(0)导致NaN

5、对比均方差函数

在这里插入图片描述

相关文章:

  • Java常见异常详解及解决方案(九)
  • 【Git】关于项目开发分支的使用规范
  • 分库分表之优缺点分析
  • 结合 STM32CubeMX 使用 FreeRTOS 实时操作系统
  • XXE(XML外部实体注入)详解
  • 基于集体智能长尾识别的超声乳腺病变亚型分类|文献速递-深度学习医疗AI最新文献
  • [Jenkins在线安装]
  • 关于机器学习中迁移学习与深度学习的思考
  • CMake基础:常用内部变量和环境变量的引用
  • ntfs!CcGetDirtyPages函数分析之DirtyPages=0x1和TargetAttribute=0xe0的一个例子
  • 借助AI学习编程,走向架构师之路
  • AntV F2入门教程
  • OpenCV CUDA模块设备层---- 绝对值函数abs()
  • HarmonyOS 5 原子化服务卡片测试全攻略
  • 探究webView与html的通讯
  • LLaVA-Med常见问题解决方案
  • 论文笔记 <交通灯><多智能体>MetaLight:基于价值的元强化学习用于交通信号控制
  • day13-软件包管理
  • 22.流程控制函数
  • python校园服务交流系统
  • 现在网站建设还用测浏览器吗/营销广告语
  • 代网站建设/网络销售推广是做什么的具体
  • 网站先做前台还是后台/免费个人网站注册
  • 正确认识部门网站建设/win7优化教程
  • 做网站毕业设计能过吗/找客户资源的软件
  • 做网站起名字/seo薪酬水平