softmax、log_softmax、NLLLoss和交叉熵损失对比分析
softmax(x) 函数:输入一个实数向量并返回一个概率分布
log_softmax(x) 函数:对经过softmax的函数经过一次对数运算
NLLLoss 损失:负对数似然损失,negative log likelihood loss,若𝑥𝑖=[𝑞1,𝑞2,...,𝑞𝑁]xi=[q1,q2,...,qN] 为神经网络对第i个样本的输出值,𝑦𝑖yi为真实标签。 则:𝑓(𝑥𝑖,𝑦𝑖)=−𝑞𝑦𝑖
在分类问题中,CrossEntropy等价于log_softmax 结合 nll_loss
𝑁N分类问题,对于一个特定的样本,已知其真实标签,CrossEntropy的计算公式为:𝑐𝑟𝑜𝑠𝑠_𝑒𝑛𝑡𝑟𝑜𝑝𝑦=−∑𝑘=1𝑁(𝑝𝑘∗log𝑞𝑘)cross_entropy=−∑k=1N(pk∗logqk)
其中p表示真实值,在这个公式中是one-hot形式;q是经过softmax计算后的结果, 𝑞𝑘qk为神经网络认为该样本为第𝑘k类的概率。
仔细观察可以知道,因为p的元素不是0就是1,而且又是乘法,所以很自然地我们如果知道1所对应的index,那么就不用做其他无意义的运算了。所以在pytorch代码中target不是以one-hot形式表示的,而是直接用scalar表示。若该样本的真实标签为𝑦y,则交叉熵的公式可变形为:
𝑐𝑟𝑜𝑠𝑠_𝑒𝑛𝑡𝑟𝑜𝑝𝑦=−∑𝑘=1𝑁(𝑝𝑘∗log𝑞𝑘)=−𝑙𝑜𝑔𝑞𝑦
softmax 和 带有温度t的softmax性质分析, 带有温度的softmax使得输出的概率分布更加平滑
感谢up主,https://www.bilibili.com/video/av87124082?from=search&seid=15136075071288444663
时刻记着自己要成为什么样的人!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)