深度学习中的温度参数(Temperature Parameter)是什么?

文章目录

  • Temperature Parameter
    • 1.背景知识
    • 2.引入Temperature Parameter
    • 3.Temperature是如何影响学习的?

Temperature Parameter

1.背景知识

标准的深度学习模型具有一堆卷积、池化、全连接层,然后是最终的全连接层。最后的全连接层输出一个与类数大小相同的向量。因此如果有 3 个类,最终的全连接层将输出一个 3 维向量。

一般来说,该向量可以包含任意实数,例如 [ − 1 , 3 , 2 ] [-1,3,2] [1,3,2]。由此,需要计算损失。最常用的方法是使用softmax_with_cross_entropy层(本质是一个Softmax层,后面跟着一个交叉熵损失准则)。

Softmax 层对给定向量的每个元素应用以下操作:
b i = exp ⁡ ( a i ) ∑ i exp ⁡ ( a i ) b_i=\frac{\exp(a_i)}{\sum_i\exp(a_i)} bi=iexp(ai)exp(ai)
a i a_i ai代表输入向量, b i b_i bi代表输出向量。故通过 Softmax 层后的每个元素为:
b 1 = exp ⁡ ( a 1 ) exp ⁡ ( a 1 ) + exp ⁡ ( a 2 ) + exp ⁡ ( a 3 ) = 0.01 b 2 = exp ⁡ ( a 2 ) exp ⁡ ( a 1 ) + exp ⁡ ( a 2 ) + exp ⁡ ( a 3 ) = 0.72 b 3 = exp ⁡ ( a 3 ) exp ⁡ ( a 1 ) + exp ⁡ ( a 2 ) + exp ⁡ ( a 3 ) = 0.27 \begin{aligned}b_1&=\frac{\exp(a_1)}{\exp(a_1)+\exp(a_2)+\exp(a_3)}=0.01\\\\b_2&=\frac{\exp(a_2)}{\exp(a_1)+\exp(a_2)+\exp(a_3)}=0.72\\\\b_3&=\frac{\exp(a_3)}{\exp(a_1)+\exp(a_2)+\exp(a_3)}=0.27\end{aligned} b1b2b3=exp(a1)+exp(a2)+exp(a3)exp(a1)=0.01=exp(a1)+exp(a2)+exp(a3)exp(a2)=0.72=exp(a1)+exp(a2)+exp(a3)exp(a3)=0.27
上面实际做的是对每个值 a i a_i ai求幂,然后将每个结果除以所有结果的总和。因为求幂给出的是一个非负数,然后将结果除以总和,得到的数字都是正数,而且总和为1。这就是各个类别的概率分布。
b 1 , b 2 , b 3 > 0 and  b 1 + b 2 + b 3 = 1. b_1,b_2,b_3>0\text{ and }b_1+b_2+b_3=1. b1,b2,b3>0 and b1+b2+b3=1.
现在,交叉熵损失主要看真实类别的负概率。也就是说,如果真实类别为 3 ,那么损失将为 − log ⁡ 0.27 -\log0.27 log0.27。当我们最小化损失时,就是将真实类别的概率推向 1。

2.引入Temperature Parameter

在知道了上述背景后,就可以很容易的看出温度系数是如何引入的。
b i = exp ⁡ ( k a i ) ∑ i exp ⁡ ( k a i ) b_i=\frac{\exp(ka_i)}{\sum_i\exp(ka_i)} bi=iexp(kai)exp(kai)
在指数函数中加入一个因子, b 1 , b 2 , b 3 > 0 and  b 1 + b 2 + b 3 = 1 b_1,b_2,b_3>0\text{ and }b_1+b_2+b_3=1 b1,b2,b3>0 and b1+b2+b3=1依旧是正确的,成立的。这是因为乘幂的结果任然是正数,而且分母确保它们的总和任然为 1,所以这任然是一个有效的概率分布。如果我们将 k = 2 k=2 k=2,那么 b = [ 0.003 , 0.880 , 0.119 ] b=[0.003,0.880,0.119] b=[0.003,0.880,0.119],如果将 k = 0.5 k=0.5 k=0.5,那么 b = [ 0.08 , 0.57 , 0.35 ] b=[0.08,0.57,0.35] b=[0.08,0.57,0.35],这两个都是有效的分布。

当我们增大 k k k的值时,分布变得更加尖峰(较大的值变得更大,较小的值变得更小)。当我们减小 k k k的值时,分布变得更加的平坦(较大的值变得更小,较小的值变得更大)。

现在,在指数中,我们不相乘 k k k,而是除以 T T T​。
b i = exp ⁡ ( a i ⋅ 1 T ) ∑ i exp ⁡ ( a i ⋅ 1 T ) b_i=\frac{\exp(a_i \cdot \frac{1}{T})}{\sum_i\exp(a_i \cdot \frac{1}{T})} bi=iexp(aiT1)exp(aiT1)

当增大 T T T的值时,分布变得更加的平坦(较大的值变得更小,较小的值变得更大);当减小 T T T的值使,分布变得更加尖峰(较大的值变得更大,较小的值变得更小)。

这里的 T T T,就是温度参数(temperature parameter)。

3.Temperature是如何影响学习的?

通常,我们可以从较大的温度值开始,然后在训练过程中逐渐降低温度值,这个过程称为退火。由于一开始的温度 T 很高,概率分布中没有值接近于零,因此梯度更容易传播。

可以把 temperature 想象为学习率,设置正确的 temperature 并适当衰减有助于训练,完全不正确的学习率会抑制训练。temperature 是一个超参数

😃😃😃

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/752755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024-3-17Go语言入门

在Go语言中: var a chan int 定义了一个名为 a 的变量,其类型为 chan int。这意味着 a 是一个整型值的通道(channel)。通道是Go语言中用于goroutine之间通信的一种机制,你可以通过通道发送和接收特定类型的值。在这个例…

【计算机网络篇】物理层(2)传输方式

文章目录 🍔传输方式⭐串行传输和并行传输⭐同步传输和异步传输🎈同步传输🎈异步传输 ⭐单向通信,双向交替通信和双向同时通信 🍔传输方式 在物理层中,传输方式是指数据在传输介质中传输的方式和方法。常见…

RS编码性能测试

RS编码 基本知识 网上一大堆的介绍,这里不做复制和粘贴了。 这里针对RS编码在我的实际项目上的性能测试。 1、算法选择 RS(255,239)编码在255个符号中添加了16个纠错符号,这意味着它可以纠正多达8个错误符号&#xf…

基于单片机的灭火机器人设计

目 录 摘 要 I Abstract II 引 言 1 1 系统方案设计 4 1.1 方案论证 4 1.2 灭火机器人系统工作原理 4 2 系统硬件设计 6 2.1 单片机 6 2.2 火焰探测系统设计 8 2.3 灭火系统设计 8 2.4 循迹模块设计 9 2.5 电机驱动模块 10 3 系统软件设计 12 3.1 系统软件开发环境 12 3.2 系统…

前端应用开发实验:Vue的特性

目录 实验目的实验内容图片浏览功能代码实现效果 简单购物车功能代码实现效果 汇率换算功能代码实现效果 关于需要准备的内容,如Vue的下载就不多赘述了 实验目的 (1)掌握vue实例编写的语法和基本选项的使用 (2)在实际…

在odoo中, 定义内嵌视图和定义看板视图

在Odoo中,定义内嵌视图(Embedded Views)和看板视图(Kanban Views)是自定义模块和界面的常见需求。下面我将通过具体的代码示例来解释如何定义这两种视图,并提醒您注意一些重要的事项。 定义内嵌视图&#…

Leetcode--13

13. 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M …

基于SpringBoot框架的校园二手交易系统的设计与实现(全套资料)

一、系统架构 前端:vue | element-plus 后端:springboot | mybatis-plus 环境:jdk17 | mysql | maven | node | redis 二、代码及数据库 三、功能介绍 01. 后台管理-登录页 02. 后台管理-首页 03. 后台管理-基础模块-用户管理 04. 后…

67: 学生成绩管理(python)

收藏 难度:简单 标签:暂无标签 题目描述 有N个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入N 个 学生数据,要求打印出每个学生三门课的平均成绩,以及平均分最高分学生数据(包括学…

Java项目:61 ssm基于java的健身房管理系统的设计与实现+vue

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 基于ssm Vue的健身房管理系统 角色:管理员、用户、教练、游客 管理员:管理员登录系统后,可以对个人中心、会员管理、器材管理、课程管理…

操作系统DC分析1

通过显示窗口过程来分析一下DC 要将内容显示在屏幕上,1、方法bios中断,2、写端口,3、写内存,其他(暂时不知道) 本次采用的写内存方法, 显卡有一个内存,只要将要显示的内容写入内存…

Conda 环境迁移

1. 进入需要迁移的环境: conda activate yolov8 2.打包迁移环境,注意安装打包库 pip install conda-packconda pack -n yolov83. 转移打包的环境包,放到anaconda/envs 下面, 在envs 下面新建环境文件夹,解压环境包到&#xff1…

JS核心知识点 - 赋值、浅拷贝、深拷贝。

一、理解基础数据类型和引用数据类型 基础数据类型: 字符串(String):表示文本数据,使用引号括起来。数字(Number):表示数值数据,包括整数和浮点数。布尔值(Bo…

vulhub中Apache Shiro 认证绕过漏洞复现(CVE-2010-3863)

Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 在Apache Shiro 1.1.0以前的版本中,shiro 进行权限验证前未对url 做标准化处理,攻击者可以构造/、//、…

[ Linux ] vim的使用(附:命令模式的常见命令列表)

1.下载安装 这里是在通过yum进行下载安装 yum install -y vim 2.了解 vim是一款编辑器,它具有多模式的特点 主要有:插入模式,命令模式,底行模式 3.使用 打开 vim 文件名 命令模式的常见命令列表 插入模式 按「 i 」切换…

A Survey on Multimodal Large Language Models

目录 1. Introduction2. 概述方法多模态指令调优 3.1.1 简介3.1.2 预备知识3.1.3 模态对齐3.1.4 数据3.1.5 模态桥接3.1.6 评估 3.2.多模态情境学习3.3.多模态思维链3.3.1 模态桥接3.3.2 学习范式3.3.3 链配置3.3.4 生成模式3.4.LLMs辅助视觉推理3.4.1 简介3.4.2 训练范式3.4.3…

医疗隔离电源系统在医院配电系统应用分析

【摘要】根据医疗场所分类说明医院尤其是 2 类 医疗场所的接地方案,分析医疗场所自动切断电源措 施,提出校验医疗 IT 系统配出回路长度;说明 RCD、RCM、IMD、IFLS 等的用途和范围;就应急医 院 2 类场所的配电方案进行探讨。 【关…

B005-springcloud alibaba 服务网关 Gateway

目录 网关简介Gateway简介Gateway快速入门基础版增强版简写版 Gateway概念及执行流程基本概念执行流程 断言Gateway内置路由断言内置路由断言工厂的使用 自定义路由断言工厂 过滤器过滤器简介局部过滤器内置局部过滤器自定义局部过滤器 全局过滤器内置全局过滤器自定义全局过滤…

【机器学习】详细解析Sklearn中的StandardScaler---原理、应用、源码与注意事项

【机器学习】详细解析Sklearn中的StandardScaler—原理、应用、源码与注意事项 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x…

用python写网络爬虫:3.urllib库进一步的使用方法

文章目录 异常处理URLErrorHTTPError设置超时时间 链接的解析、构造、合并urlparse方法urlsplit方法urljoin方法urlencode方法parse_qs方法quote方法 Robots 协议Robots 协议的结构解析协议 参考书籍 在上一篇文章:用python写网络爬虫:2.urllib库的基本用…