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

Scheduled Sampling工作原理【小白记笔记】

Scheduled Sampling(计划采样)是一种在序列生成任务中用于逐步引导模型的训练策略。该方法最早由 Bengio 等人在 2015 年提出,主要用于解决序列到序列(sequence-to-sequence)模型中的曝光偏差(exposure bias)问题。曝光偏差指的是:在训练过程中,模型始终使用真实的目标序列作为下一步的输入,但在推理过程中,它必须依赖自己的预测结果作为下一步的输入。这种训练和推理的不一致性可能导致模型生成的序列质量较差,尤其是当预测发生错误时,误差会在生成过程中积累。
Scheduled Sampling 的工作原理

Scheduled Sampling 的核心思想是:在训练过程中,不再总是使用真实的目标作为下一步的输入,而是逐步增加使用模型自己生成的预测结果作为下一步输入的概率。这样可以让模型逐渐适应推理时的生成流程,减少训练和推理的不一致性。

具体而言,Scheduled Sampling 的过程如下:

1、定义混合比例:设定一个混合比例(如 mix_rate),来决定在某一时间步中是使用模型的预测结果,还是使用真实的目标。
2、逐步过渡:在训练初期,模型大多数时间会使用真实的目标(类似 Teacher Forcing),但随着训练的进行,逐渐增加使用模型预测结果的概率。
3、采样过程:在每个时间步,使用随机数决定是否采用真实的目标还是模型的预测结果作为下一步的输入。

例如代码:

if args.scheduled_sampling:if np.random.rand() > args.mix_rate:# 使用真实的目标值作为下一步的输入,即使用 teacher forcingloss = pipeline(history, future, video_user_info, teacher_forcing=True)else:# 使用模型的预测结果作为下一步的输入,即不使用 teacher forcingloss = pipeline(history, future, video_user_info, teacher_forcing=False)

args.scheduled_sampling:是否启用 Scheduled Sampling。
args.mix_rate:混合比例,决定在当前时间步是使用真实的目标(Teacher Forcing)还是使用模型的预测结果。

在训练中,每个时间步都会生成一个随机数 np.random.rand():
如果随机数大于 args.mix_rate,使用 Teacher Forcing(即真实的目标值作为下一步的输入)。 如果随机数小于或等于
args.mix_rate,则使用模型的预测结果作为下一步输入。

通过这种方式,Scheduled Sampling 逐渐让模型适应生成任务的推理过程,最终有助于减少序列生成任务中的误差累积问题。

这样做的好处:

减少训练和推理的差异:Scheduled Sampling 可以逐步减少训练过程中对真实目标的依赖,帮助模型适应生成任务中的自回归输入。
提高生成质量:通过使用模型的预测结果进行训练,模型在推理过程中能更好地应对错误预测,减少误差累积。

举例说明:

假设在自然语言生成中(例如机器翻译),模型生成了前一个词 “the”。在 Scheduled Sampling 的策略下,模型可能会随机选择:

使用真实目标词(如 “cat”),这相当于 Teacher Forcing。 或者使用模型自己预测的词(如 “dog”)作为下一个输入。

通过这种混合策略,模型会逐步减少对真实目标的依赖,从而提高在推理阶段的表现。

相关文章:

Scheduled Sampling工作原理【小白记笔记】

Scheduled Sampling(计划采样)是一种在序列生成任务中用于逐步引导模型的训练策略。该方法最早由 Bengio 等人在 2015 年提出,主要用于解决序列到序列(sequence-to-sequence)模型中的曝光偏差(exposure bia…...

C++:C++的IO流

目录 一.C标准IO流 1.operator bool 二.C文件IO流 1.文件读取 ifstream (1)ifstream继承istream (2)ifstream 构造函数 (3)ifstream,get读取整个文件 (4)>&g…...

「QT」几何数据类 之 QLine 整型直线类

✨博客主页何曾参静谧的博客📌文章专栏「QT」QT5程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…...

day58 图论章节刷题Part09(dijkstra(堆优化版)、Bellman_ford 算法)

dijkstra(堆优化版) 朴素版的dijkstra解法的时间复杂度为 O(n^2),时间复杂度只和 n(节点数量)有关系。如果n很大的话,可以从边的角度来考虑。因为是稀疏图,从边的角度考虑的话,我们在堆优化算法中最好使用…...

【计网不挂科】计算机网络期末考试——【选择题&填空题&判断题&简述题】试卷(1)

前言 大家好吖,欢迎来到 YY 滴计算机网络 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 本博客主要内容,收纳了一部门基本的计算机网络题目,供yy应对期中考试复习。大家可以参考 本章是去答案版本。带答案的版本在下…...

智能出行助手:SpringBoot共享汽车管理平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理共享汽车管理系统的相关信息成为必然。开发…...

【月之暗面kimi-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞 …...

Flink实现实时数据处理

代码如下: #!/usr/bin/python # -*- coding: UTF-8 -*-from pyflink.datastream import StreamExecutionEnvironment from pyflink.table import StreamTableEnvironment, EnvironmentSettings, DataTypes# 初始化执行环境 s_env StreamExecutionEnvironment.get_…...

11.9.2024刷华为

文章目录 HJ31 单词倒排HJ32 密码提取语法知识记录 傻逼OD题目又不全又要收费,看毛线,莫名奇妙 HW这叼机构别搁这儿害人得不得? 我觉得我刷完原来的题目 过一遍华为机考的ED卷出处,就行了 HJ31 单词倒排 游戏本做过了好像 HJ3…...

Chromium 中chrome.system.storage扩展接口定义c++

一、chrome.system.storage 您可以使用 chrome.system.storage API 查询存储设备信息,并在连接和分离可移动存储设备时收到通知。 权限 system.storage 类型 EjectDeviceResultCode 枚举 "success" 移除命令成功执行 - 应用可以提示用户移除设备。…...

【Qt聊天室客户端】登录窗口

1. 验证码 具体实现 登录界面中创建验证码图片空间&#xff0c;并添加到布局管理器中 主要功能概述&#xff08;创建一个verifycodewidget类专门实现验证码操作&#xff09; 详细代码 // 头文件#ifndef VERIFYCODEWIDGET_H #define VERIFYCODEWIDGET_H#include <QWidget>…...

如何显示模型特征权重占比图【数据分析】

可视化模型的特征权重 1、流程 1、导入库: numpy:用于处理数组和矩阵。 matplotlib.pyplot:用于绘图。 sklearn.datasets:用于加载数据集。 sklearn.ensemble.RandomForestClassifier:用于训练随机森林模型。2、加载数据集: 使用load_iris函数加载Iris数据集。3、训练模…...

Ubuntu24安装MySQL

下载deb包&#xff1a; 先更新系统包&#xff1a; sudo apt update sudo apt update -y下载mysql: wget https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb 安装deb包&#xff1a; sudo dpkg -i mysql-apt-config_0.8.17-1_all.deb目前mysql还没有正式支持Ubun…...

微服务架构面试内容整理-Eureka

Spring Cloud Netflix 是一个为构建基于 Spring Cloud 的微服务应用提供的解决方案,利用 Netflix 的开源组件来实现常见的分布式系统功能。以下是 Spring Cloud Netflix 的一些主要组件和特点: 服务注册与发现:Eureka 是一个 RESTful 服务,用于注册和发现微服务。服务实例在…...

qt QErrorMessage详解

1、概述 QErrorMessage是Qt框架中用于显示错误消息的一个对话框类。它提供了一个简单的模态对话框&#xff0c;用于向用户显示错误或警告消息。QErrorMessage通常用于应用程序中&#xff0c;当需要向用户报告错误但不希望中断当前操作时。它提供了一个标准的错误消息界面&…...

SpringBoot 将多个Excel打包下载

在Spring Boot应用中&#xff0c;如果你需要将多个Excel文件打包成一个ZIP文件并提供下载&#xff0c;你可以使用一些Java库来帮助完成这个任务。这里我将展示如何使用Apache POI来生成Excel文件&#xff0c;以及使用Java.util.zip来创建ZIP文件&#xff0c;并通过Spring Boot的…...

分页存储小总结

知识点: 什么是分页存储? 将内存空间分为一个个大小相等的分区&#xff08;比如&#xff1a;每个分区4KB&#xff09;&#xff0c;每个分区就是一个“页框”&#xff08;页框页帧内存块物理块物理页面&#xff09;。每个页框有一个编号&#xff0c;即“页框号”&#xff08;…...

Star-CCM+应用篇之动力电池温度场仿真操作流程与方法

1 动力电池温度场仿真项目 电池包内模组温度分布、电芯温度分布、温升速率、充电时间等。 2 动力电池温度场仿真分析流程图 图1 电池包热流场分析流程 3 动力电池温度场仿真参数需求 类别...

Spring Boot应用开发:从入门到精通

Spring Boot应用开发&#xff1a;从入门到精通 Spring Boot是Spring框架的一个子项目&#xff0c;旨在简化Spring应用的初始搭建和开发过程。通过自动配置和约定大于配置的原则&#xff0c;Spring Boot使开发者能够快速构建独立的、生产级别的Spring应用。本文将深入探讨Sprin…...

【JAVA项目】基于jspm的【医院病历管理系统】

技术简介&#xff1a;采用jsp技术、MySQL等技术实现。 系统简介&#xff1a;通过标签分类管理等方式&#xff0c;实现管理员&#xff1b;个人中心、医院公告管理、用户管理、科室信息管理、医生管理、出诊信息管理、预约时间段管理、预约挂号管理、门诊病历管理、就诊评价管理、…...

重塑AI资源管理范式:HAMi异构计算虚拟化的架构革命

重塑AI资源管理范式&#xff1a;HAMi异构计算虚拟化的架构革命 【免费下载链接】HAMi Heterogeneous GPU Sharing on Kubernetes 项目地址: https://gitcode.com/GitHub_Trending/ha/HAMi 在AI计算资源日益紧张的今天&#xff0c;企业面临着一个严峻的挑战&#xff1a;昂…...

ORTC与AI融合:从实时传输到智能通信的架构演进与实践

1. 项目概述&#xff1a;当实时通信遇上人工智能最近几年&#xff0c;我身边不少做音视频通信和做AI算法的朋友&#xff0c;聊天时总绕不开一个话题&#xff1a;ORTC&#xff08;Object Real-Time Communication&#xff09;和AI&#xff0c;这两者到底能擦出什么样的火花&…...

UPS不间断电源正确使用指南:从开机到维护,一文掌握核心要点

凌晨两点&#xff0c;服务器机房突然跳闸&#xff0c;运维人员慌乱中误按UPS不间断电源关机键&#xff0c;导致核心数据丢失——这样的事故&#xff0c;本可通过规范操作避免。UPS电源作为电力保障的“最后一道防线”&#xff0c;其使用方法直接影响设备寿命与数据安全。本文结…...

cliclick 开发者指南:从源码编译到自定义Action开发

cliclick 开发者指南&#xff1a;从源码编译到自定义Action开发 【免费下载链接】cliclick macOS CLI tool for emulating mouse and keyboard events 项目地址: https://gitcode.com/gh_mirrors/cl/cliclick cliclick 是一款强大的 macOS 命令行工具&#xff0c;用于模…...

如何3步搞定LaTeX中文排版?告别字体缺失烦恼的终极方案

如何3步搞定LaTeX中文排版&#xff1f;告别字体缺失烦恼的终极方案 【免费下载链接】latex-chinese-fonts Simplified Chinese fonts for the LaTeX typesetting. 项目地址: https://gitcode.com/gh_mirrors/la/latex-chinese-fonts 还在为LaTeX中文排版头疼吗&#xff…...

039对称二叉树

对称二叉树 题目链接&#xff1a;https://leetcode.cn/problems/symmetric-tree/description/?envTypestudy-plan-v2&envIdtop-100-liked 我的解答&#xff1a; //方法一&#xff1a;递归 //时间复杂度&#xff1a;O(n) //空间复杂度&#xff1a;O(n) public boolean isSy…...

基于LLM的AI新闻智能体:自动化信息采集与周报生成实战

1. 项目概述&#xff1a;一个能自动追踪AI新闻的智能体 最近在GitHub上看到一个挺有意思的项目&#xff0c;叫 ai-news-weekly-agent 。光看名字&#xff0c;你大概能猜到它是个和AI新闻相关的自动化工具。没错&#xff0c;它的核心目标就是扮演一个“AI新闻周刊编辑”的角色…...

从‘冠军策略’到实盘失效:深度复盘菲阿里四价在A股期货市场的7年表现

菲阿里四价策略的七年之痒&#xff1a;量化交易者必须警惕的经典策略陷阱 1. 当冠军策略遭遇市场进化 2015年&#xff0c;当某位日本期货冠军公开其赖以成名的菲阿里四价策略时&#xff0c;整个亚洲量化圈为之震动。这个看似简单的日内突破策略&#xff0c;凭借其清晰的逻辑和可…...

Neovim原生GitHub Copilot客户端gp.nvim:从安装配置到高级实战

1. 项目概述&#xff1a;一个为Neovim量身打造的GitHub Copilot客户端如果你和我一样&#xff0c;是个重度Neovim用户&#xff0c;同时又对GitHub Copilot这类AI编程助手爱不释手&#xff0c;那你肯定也经历过那种“鱼与熊掌”的纠结时刻。在VSCode里&#xff0c;Copilot的集成…...

CloudBase-MCP:基于MCP协议桥接本地应用与云服务的实践指南

1. 项目概述&#xff1a;一个连接云与本地应用的“智能接线员”如果你正在开发一个应用&#xff0c;需要让它在本地服务器上运行&#xff0c;同时又想无缝地调用云上的各种能力——比如对象存储、数据库、AI模型或者消息队列&#xff0c;你会怎么做&#xff1f;传统的方式可能是…...