log_softmax比softmax更好?
多类别分类的一个trick
探讨一下在多类别分类场景,如翻译、生成、目标检测等场景下,使用log_softmax的效果优于softmax的原因。
假设词典大小为10,一个词的ID为9(即词典的最后一个词),使用交叉熵作为损失函数,我们给出两组向量:
a = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
b = [0.1, 0.1, 0.1, 0.1, 0.1, 0.05, 0.05, 0.1, 0.2, 0.1]
已知交叉熵损失函数定义如下:
l o s s = ∑ i = 0 k y i l o g ( p i ) loss = \sum^{k}_{i=0}y_ilog(p_i) loss=∑i=0kyilog(pi)
则根据公式,可分别计算得到:
CE(softmax(a), 9) = 2.3026
CE(log_softmax(a), 9) = 2.3026CE(softmax(b), 9) = 2.3027
CE(log_softmax(b), 9) = 2.3033
则使用softmax操作的a,b向量在损失上相差-1e-4,而使用log_softmax在损失上相差-7e-4。
发现1:当类别概率预测错误时,CE(log_softmax(),)会加大错误类别惩罚。
这还不明显,我们现在假设
b = [0, 0, 0, 0, 0, 0.05, 0.05, 0, 0.1, 0.8]
则
CE(softmax(b), 9) = 2.2084
CE(log_softmax(b), 9) = 1.6365
此时,对比一下softmax操作之后损失之差为9.42e-2,log_softmax损失之差为0.6661。
发现2:使用CE(softmax(),)即便预测概率分布很接近真实概率分布,在损失上下降也不是很明显(9.42e-2),但使用CE(log_softmax(),)会有非常显著的损失下降(0.6661,约为softmax的7倍)。
相关文章:
log_softmax比softmax更好?
多类别分类的一个trick 探讨一下在多类别分类场景,如翻译、生成、目标检测等场景下,使用log_softmax的效果优于softmax的原因。 假设词典大小为10,一个词的ID为9(即词典的最后一个词),使用交叉熵作为损失函…...
[LeetCode - Python]344.反转字符串(Easy);345. 反转字符串中的元音字母(Easy);977. 有序数组的平方(Easy)
1.题目 344.反转字符串(Easy) 1.代码 class Solution:def reverseString(self, s: List[str]) -> None:"""Do not return anything, modify s in-place instead."""# 双指针left,right 0, len(s)-1while left < right:temp s[left]s[…...
【SOP】最佳实践之 TiDB 业务写变慢分析
作者: 李文杰_Jellybean 原文来源: https://tidb.net/blog/d3d4465f 前言 在日常业务使用或运维管理 TiDB 的过程中,每个开发人员或数据库管理员都或多或少遇到过 SQL 变慢的问题。这类问题大部分情况下都具有一定的规律可循,…...
带有参数的 PL/SQL 过程/函数从选择查询返回表
技术标签: 【中文标题】带有参数的 PL/SQL 过程/函数从选择查询返回表【英文标题】:PL/SQL Procedure/function with params to return a table from(of) a select query【发布时间】:2020-12-01 11:17:49【问题描述】: 如何创建带参数的 (…...
文件的权限
1、修改文件的所属者和所属组 2、修改文件某一类人(所属者、所属组、其他人)的权限 一、用户对于普通文件的权限 二、用户对于目录文件的权限 三、访问控制列表ACL 四、特殊权限(了解) wuneng创建了几个文件,xiaoming对…...
vue3集成echarts最佳实践
安装 echarts npm install echarts --save 两种引用方式 非虚拟 dom import * as echarts from echarts;var chartDom document.getElementById(mychart); var myChart echarts.init(chartDom); var option;option {title: {text: Referer of a Website,subtext: Fake Da…...
一位年薪40W的测试被开除,回怼的一番话,令人沉思
一位年薪40W测试工程师被开除回怼道:“反正我有技术,在哪不一样” 一技傍身,万事不愁,当我们掌握了一技之长后,在职场上说话就硬气了许多,不用担心被炒,反过来还可以炒了老板,这一点…...
网络适配器和MAC地址
点对点信道:由于目的地只有一个选项,所以数据链路层不需要使用地址。 而在广播信道中: 各个主机如何判断信号是不是发给自己的? 当多个主机连接在同一个广播信道上,要想实现两个主机之间的通信,则每个主机都…...
react-player静音不能自动播放问题
现象 移动端不能自动播放 原因 取决于您使用的浏览器,但muted如果您不想与autoplay用户交互,则必须使用视频。 Chrome 的自动播放策略很简单: 始终允许静音自动播放。在以下情况下允许自动播放声音: 用户与域进行了交互&#x…...
培训Java技术要多久才能学会?答案都在这里啦
培训Java技术要多久才能学会?这是想学习Java开发的很多人都会问到的一个问题。而这个问题的答案其实并不是那么简单,因为学Java的时间长短受到众多因素的影响。本文将从个人基础、学习动力和学习效率三个方面来为您解答这个问题。 1. 个人基础 自己的基础对于学习…...
Java中使用HttpPost发送form格式的请求
在Java中使用HttpPost发送form格式的请求,可以使用Apache HttpClient库来实现。以下是一个示例代码: import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client…...
C语言----字节对齐
一:字节对齐的概念 针对字节对齐,百度百科的解释如下: 字节对齐是字节按照一定规则在空间上排列,字节(Byte)是计算机信息技术用于计量存储容量和传输容量的一种计量单位,一个字节等于8位二进制数,在UTF-8编…...
Next.js入门介绍(服务端渲染)
Next.js 一 目录 不折腾的前端,和咸鱼有什么区别 目录一 目录二 前言三 设置四 多页面五 链接六 样式七 共享组件八 布局组件九 实战 9.1 目录结构 9.2 UI 组件 9.3 Markdown 内容 9.4 Pages 入口和 API 9.4.1 服务端渲染 9.5 Public 静态资源 9.6 resor…...
模板Plus
文章目录 1.非类型模板参数的引入2.标准库和普通数组3.模板的特化 1.非类型模板参数的引入 //非类型模板参数 -- 常量 template<class T, size_t N 10> class array { private:T _a[N]; };int main() {array<int> a1;array<int, 100> a2;array<double, …...
spring事务和数据库事务是怎么实现
Spring事务的原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获取连接 Connection con DriverManag…...
el-date-picker设置默认当前日期
HTMl部分: <el-form-item label"拍摄时间:"><el-date-pickerv-model"searchData.filmingTimeRange"type"daterange"align"right"unlink-panelsrange-separator"至"start-placeholder"…...
vue中使用this.$refs获取不到子组件的方法,属性方法都为undefined的解决方法
问题描述 vue2中refs获取不到子组件中的方法?,而获取到的是undefined 原因及解决方案: 第一种、在循环中注册了很多个ref 因为注册了多个ref,获取是不能单单知识refs.xxx,需要使用数组和索引来获取具体一个组件refs[…...
Linux命令200例:df用于显示文件系统的磁盘空间使用情况
🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…...
Service not registered 异常导致手机重启分析
和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、Service not registered 异常导致手机重启二、Service not registered 解决方案 一、Service not registered 异常导致手机重启 1.重启 的部分Log如…...
深度解读|一站式ABI平台 Smartbi Insight V11 能力再升级
纵观过去,我们发现汽车和BI的发展有异曲同工之妙。 100来年,汽车的动力从蒸汽到燃油再到新能源,汽车的操控方式从手动到自动再到智能无人驾驶。而在BI领域,自1958年BI的概念提出后,底层数据准备从报表开发、Cube多维模…...
STM32串口调试玄学翻车?从XCOM 2.3到2.0的降级避坑实录
STM32串口调试的版本陷阱:当XCOM 2.3让你的开发板"沉默"时 调试嵌入式系统时,最令人抓狂的莫过于硬件一切正常,代码毫无问题,但串口就是拒绝工作。最近在STM32F103ZET6开发板上遇到了一个诡异现象:同一块板子…...
英雄联盟个性化工具LeaguePrank:安全自定义你的游戏身份
英雄联盟个性化工具LeaguePrank:安全自定义你的游戏身份 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank LeaguePrank是一款基于英雄联盟官方LCU API开发的免费开源工具,允许玩家安全、合法地自定义游戏…...
京沪高铁涨价了,传说中的“牛马专列”要坐不起了?
一直以来,京沪高铁因为其连通北京上海这两大重要城市,成为了最受关注的高铁线路,然而就在最近京沪高铁的涨价引发了市场的热议,让人不禁想问传说中的“牛马专列”要坐不起了? 一、京沪高铁涨价了? 据南方都…...
Win10混合现实模拟器初体验:除了测试,还能怎么玩?
Win10混合现实模拟器:从测试工具到创意游乐场的5种玩法 当你第一次打开Win10混合现实模拟器,看到那个漂浮的手柄模型和空荡荡的虚拟空间时,是否也产生过"就这?"的疑问?这个被多数教程简单带过的内置工具&…...
深度掌控AMD Ryzen:解锁处理器底层调试与性能调优终极指南
深度掌控AMD Ryzen:解锁处理器底层调试与性能调优终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...
AI赋能泳装设计,今夏爆款如何诞生?
AI赋能泳装设计,今夏爆款如何诞生?随着气温攀升,泳装市场迎来销售旺季。北京先智先行科技有限公司凭借"先知大模型"、“先行AI商学院”、"先知AIGC超级工场"三大旗舰产品,正为泳装行业注入全新活力。传统泳装…...
告别Keil破解!用STM32CubeIDE + HAL库点亮你的第一颗Blue Pill LED(保姆级图文)
从Keil到STM32CubeIDE:零成本玩转Blue Pill开发板 第一次接触STM32开发时,我被Keil的破解流程劝退了——注册机、license管理、版本兼容性问题接踵而至。直到发现STM32CubeIDE这款完全免费的官方工具,配合HAL库的抽象层设计,终于能…...
Vue 项目中 vis-network 点击节点不生效的问题排查:外层 transform 缩放导致坐标偏移
最近在 Vue3 项目中把一个原生 HTML 版知识图谱迁移成 Vue 组件。原始 HTML 使用 vis-network 实现节点关系图,点击节点可以正常展开下一级。但迁移到 Vue 项目后,图谱可以正常渲染,节点、连线、布局都没有问题,唯独点击节点时无法…...
【VASP实战】Ubuntu 22.04 LTS 部署 vasp.6.x 指南:从Intel oneAPI编译到GPU加速测试
1. VASP 6.x与Ubuntu 22.04 LTS环境概述 VASP(Vienna Ab initio Simulation Package)是材料科学领域广泛使用的第一性原理计算软件,能够模拟原子尺度的电子结构、分子动力学等过程。最新版VASP 6.x在并行计算效率和GPU加速支持上有显著提升&a…...
Spike Prime避坑指南:Python控制电机和传感器时,新手最常遇到的5个错误及解决方法
Spike Prime避坑指南:Python控制电机和传感器时新手最常遇到的5个错误 第一次用Python控制Spike Prime的电机和传感器时,那种期待和兴奋很快就会被各种报错消磨殆尽。明明照着官方文档写的代码,电机就是不转;传感器读数永远为零&a…...
