交叉熵损失函数

交叉熵损失函数的概念和理解

觉得有用的话,欢迎一起讨论相互学习~


我的微博我的github我的B站

公式

loss=i(yilog(y_predictedi)+(1yi)log(1y_predictedi))

定义

  • 在信息论中,若一个符号字符串中的每个字符的出现概率Pi已知,则可用香农熵估计该字符串中每个符号Si编码所需的平均最小位数.

H=i(pilog2(pi))

  • 除了数学表达式相似以外,完全可以将这里的熵和其热力学概念联系起来.
  • 例如,可计算单次"HELLO"的熵:

p("H")=p("E")=p("O")=1/5=0.2p("L")=2/5=0.4H=30.2log2(0.2)0.4log2(0.4)=1.92193

  • 因此,采用最优编码方案时,"Hello"中的每个符号需要2位计算单词"Hello"中的每个符号需要2位.
  • 在对符号进行编码时,如果假设了其他的概率qi而非真实概率pi,则对每个符号所需的编码的长度就会更大.这正是交叉熵所发挥作用的时候. 他允许用户以另外一种次优编码方案计算对同一个字符串进行编码所需的平均最小位数.

H=i(pilog2(qi))

  • 例如,ASCII会对每个符号赋予相同的概率值qi=1/256.下面计算采用ASCII编码时单词"HELLO"的交叉熵:

q("H")=q("E")=q("L")=q("O")=1/256H=30.2log2(1/256)=8

从而采用ASCII编码时,每个字符需要8个位,这与预期完全吻合.

  • 作为一个损失函数假设p为所期望的输出和概率分布("编码"),其中实际值 有100%,而其他任何值为0,将q作为由模型计算得到的输出,请牢记,sigmoid函数的输出是一个概率值.
  • 有这样一个定理:当p=q时,交叉熵去的最小值.因此可以利用交叉熵比较一个分布与另一个分布的吻合情况.交叉熵越接近与熵,q便是针对p更好的逼近,实际上,模型的输出与期望输出越接近,交叉熵也会越小,这正是损失函数所需要的.
  • 在对熵进行最小化时,将log2替换为log完全没有任何问题,因为两者只相差一个常系数.

参考资料

面向机器智能的tensorflow实践

posted @   WUST许志伟  阅读(9013)  评论(2编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示