编码器和解码器

article/2025/11/6 21:19:03

1.编码器—解码器(seq2seq)

        编码器的作用是把一个不定长的输入序列变换成一个定长的背景变量c,并在该背景变量中编码输入序列信息。常用的编码器是循环神经网络。

        编码器可以是一个单向的循环神经网络,每个时间步的隐藏状态只取决于该时间步及之前的输入子序列。我们也可以使用双向循环神经网络构造编码器。在这种情况下,编码器每个时间步的隐藏状态同时取决于该时间步之前和之后的子序列(包括当前时间步的输入),并编码了整个序列的信息。

        编码器是没有输出的RNN,编码器最后时间状态的隐状态用于解码器的初始隐状态。

        编码器输出的背景变量$\boldsymbol{c}$编码了整个输入序列x1,……,xT的信息。给定训练样本中的输出序列y1, y2, ……, yT,对每个时间步t(符号与输入序列或编码器的时间步t有区别),解码器输出y_{t'}的条件概率将基于之前的输出序列y_1,\ldots,y_{t'-1}和背景变量c,即P(y_{t'} \mid y_1, \ldots, y_{t'-1}, \boldsymbol{c})

为此,我们可以使用另一个循环神经网络作为解码器。在输出序列的时间步t^\prime,解码器将上一时间步的输出y_{t^\prime-1}以及背景变量\boldsymbol{c}作为输入,并将它们与上一时间步的隐藏状态\boldsymbol{s}{t^\prime-1}变换为当前时间步的隐藏状态\boldsymbol{s}{t^\prime}。因此,我们可以用函数g表达解码器隐藏层的变换:

\boldsymbol{s}{t^\prime} = g(y{t^\prime-1}, \boldsymbol{c}, \boldsymbol{s}_{t^\prime-1})

有了解码器的隐藏状态后,我们可以使用自定义的输出层和softmax运算来计算$P(y_{t^\prime} \mid y_1, \ldots, y_{t^\prime-1}, \boldsymbol{c}),例如,基于当前时间步的解码器隐藏状态 \boldsymbol{s}{t^\prime}、上一时间步的输出y{t^\prime-1}以及背景变量c来计算当前时间步输出y_{t^\prime}的概率分布。

        解码器的输入:

         训练:真正的句子

        推理:上一个时段的输出

        编码器和解码器常用BLUE作为衡量生成序列的好坏。 

2.集束搜索

        在准备训练数据集时,我们通常会在样本的输入序列和输出序列后面分别附上一个特殊符号"<eos>"表示序列的终止。,假设解码器的输出是一段文本序列。设输出文本词典\mathcal{Y}(包含特殊符号"<eos>")的大小为\mathcal{Y},输出序列的最大长度为T'。所有可能的输出序列一共有\mathcal{O}(\left|\mathcal{Y}\right|^{T'})种。这些输出序列中所有特殊符号"<eos>"后面的子序列将被舍弃。 

(1)贪婪搜索      

        对于输出序列任一时间步$t'$,我们从$|\mathcal{Y}|$个词中搜索出条件概率最大的词y _ { t ^ { \prime } } = \underset { y \in \mathcal { Y } } { \operatorname { argmax } } P \left( y | y _ { 1 } , \ldots , y _ { t ^ { \prime } - 1 } , c \right)作为输出。一旦搜索出"<eos>"符号,或者输出序列长度已经达到了最大长度$T'$,便完成输出。

(2)穷举搜索

        穷举所有可能的输出序列,输出条件概率最大的序列。

        计算开销\mathcal{O}(\left|\mathcal{Y}\right|^{T'})很容易过大

(3)束搜索

        每次选取当前时间步条件概率最大的k个词,最终,我们从各个时间步的候选输出序列中筛选出包含特殊符号“<eos>”的序列,并将它们中所有特殊符号“<eos>”后面的子序列舍弃,得到最终候选输出序列的集合。

        在最终候选输出序列的集合中,我们取以下分数最高的序列作为输出序列:

 \frac{1}{L^\alpha} \log P(y_1, \ldots, y_{L}) = \frac{1}{L^\alpha} \sum_{t'=1}^L \log P(y_{t'} \mid y_1, \ldots, y_{t'-1}, \boldsymbol{c})

        其中L为最终候选序列长度,\alpha一般可选为0.75。分母上的L^\alpha是为了惩罚较长序列在以上分数中较多的对数相加项。分析可知,束搜索的计算开销为\mathcal{O}(k\left|\mathcal{Y}\right|T')。这介于贪婪搜索和穷举搜索的计算开销之间。此外,贪婪搜索可看作是束宽为1的束搜索。束搜索通过灵活的束宽$k$来权衡计算开销和搜索质量。

 

 

         


http://chatgpt.dhexx.cn/article/AKDyo7LL.shtml

相关文章

二维码解码工具

http://tool.chinaz.com/qrcode/?jdfwkeyweexu

编解码工具

支持各种文件摘要&#xff08;Hash&#xff09;、Base64编码、Hex编码、国密sm2加密、Rsa加密&#xff0c;以及各种对称加密算法的小工具 下载地址&#xff1a;https://pan.baidu.com/s/1AJwUaVizzk5HeLa_8Q5AqA 提取码&#xff1a;4567

编码与解码

什么是编码与解码 电脑是由电路板组成&#xff0c;电路板里面集成了无数的电阻和电容&#xff0c; 交流电经过电容的时候&#xff0c;电压比较低 记为低电平 &#xff0c; 用0表示&#xff0c;交流电流过电阻的时候&#xff0c;电压比较高&#xff0c;记为高电平&#xff0c;用…

Encoder编码器、Decoder解码器

知乎用户对编码器解码器的理解 Encoder&#xff1a; 本身其实就是一连串的卷积网络。该网络主要由卷积层&#xff0c;池化层和BatchNormalization层组成。卷积层负责获取图像局域特征&#xff0c;池化层对图像进行下采样并且将尺度不变特征传送到下一层&#xff0c;而BN主要对…

Protobuf在线解码工具推荐

P1: CyberChef 地址&#xff1a;CyberChef 非常灵活&#xff0c;支持各种导入格式可以直接转成json支持导入.proto文件 P2: protobuf-decoder 地址&#xff1a;protobuf-decoder 有对齐问题 P3: protogen 地址&#xff1a;protogen 有乱码问题 P4: PB-JCE-Decoder&…

在线JWT Token解析解码工具

1&#xff1a;JWT Token在线解析解码 - ToolTT在线工具箱 2&#xff1a; 3&#xff1a;

密码解码常用工具网站汇总

xssee:http://web2hack.org/xssee xssee:http://evilcos.me/lab/xssee 在线编码解码(多种并排):http://bianma.911cha.com 在线加密解密(多种):http://encode.chahuo.com Unicode转中文:http://www.bejson.com/convert/unicode_chinese 栅栏密码 && 凯撒密码 &&…

URL在线编码/解码工具

一刀工具箱提供在线URL编码解码工具:对网址Url进行UrlEncode编码转换,UrlEncode编码,UrlDecode解码。 代码片段 methods:{convertEncode(){this.item encodeURIComponent(this.value)},convertDecode(){this.item decodeURIComponent(this.value);}} URL在线编码/解码工具 …

URL 编码和解码工具

简介 本文简要介绍一款编解码工具&#xff0c;它支持URL编码和解码、Base64编码和解码。 官网地址&#xff1a;https://smart-tools.cn/dev/encoder/app 背景 URL编码 URL编码是浏览器发送数据给服务器时使用的编码。它是编码算法&#xff0c;而不是加密算法。其目的是把任…

HTK 3.5解码工具HVITE独立工程(Visual Studio Code实现)

HTK3.5支持DNN HTK3.5支持DNN了&#xff0c;本来想做一个HMMDNN的模型&#xff0c;作为HMMGMM的对比。但是HTK不支持实时的HMMDNN解码。原因有两个。 HTK不支持实时的计算MFCC_0_D_A_Z的特征&#xff0c;即无法实时计算出特征空间的均值。HTK不支持实时的DNN或者HMMDNN的解码…

全自动解密解码神器 — Ciphey

Ciphey 是一个使用自然语言处理和人工智能的全自动解密/解码/破解工具。 简单地来讲&#xff0c;你只需要输入加密文本&#xff0c;它就能给你返回解密文本。就是这么牛逼。 有了Ciphey&#xff0c;你根本不需要知道你的密文是哪种类型的加密&#xff0c;你只知道它是加密的&…

Linux搭建NTP时间服务器

1. NTP简介 NTP&#xff08;Network Time Protocol 网络时间协议&#xff09;是一个用于同步计算机时钟的网络协议。它可以使计算机与其他服务器或时钟源进行时间同步&#xff0c;进行高精度的时间校正。 简而言之&#xff0c;NTP就是使一台或多台服务器&#xff08;客户端&a…

windows NTP服务器搭建方法/步骤

一、在开始菜单栏中&#xff0c;点击“运行”&#xff08;WIN R&#xff09;&#xff0c;输入regedit&#xff0c;打开Windows 注册表 二、设定成为NTP 服务器类型 注册表路径&#xff1a; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters 修改Par…

NTP 服务器搭建

一、功能介绍&#xff1a; 威纶通 HMI 实现与 Windows NTP 服务器实现时间同步。 二、准备条件&#xff1a; 1. 电脑或者工控机&#xff08;Windows 系统&#xff09; 2. 支持 NTP 服务器的触摸屏 预设&#xff1a;PLC IP 为 192.168.10.100 电脑本机 IP:192.168.10.200 …

Linux搭建ntp服务器(全)

时间服务器作用&#xff1a; 大数据产生与处理系统是各种计算设备集群的&#xff0c;计算设备将统一、同步的标准时间用于记录各种事件发生时序&#xff0c; 如E-MAIL信息、文件创建和访问时间、数据库处理时间等。 大数据系统内不同计算设备之间控制、计算、处理、应用等数…

【测试环境】搭建NTP服务器(windows10)

一、服务器搭建准备 设备&#xff1a;笔记本、台式电脑 操作系统&#xff1a; windows10 网络&#xff1a;1&#xff09;可被局域网中其他主机访问&#xff1b;2&#xff09;可访问外部internet 二、服务器搭建操作步骤 1. 将服务器类型更改为 NTP a. win R打开运行&#…

Windows下安装NTP服务器

软件推荐 这里推荐一个批量远程桌面软件&#xff1a;IIS7远程桌面管理工具&#xff0c;它可以批量连接n台服务器vps&#xff0c;并且支持群控功能。 IIS7远程桌面管理工具(3389、vps、服务器批量管理、批量远程工具)简介&#xff1a; 1、批量管理WIN系列服务器&#xff0c;VP…

centos 7 中NTP时间服务器搭建

一&#xff1a;时间&#xff0c;时区设定 1.查看当前系统日期和时间&#xff1a; date [rootkevin ~]# date 2021年 12月 18日 星期六 21:41:42 CST2.在中国时区是CST&#xff0c;如果显示时区不正确&#xff0c;修改&#xff1a;tzselect (time zone)输入数字选择 …

Linux下搭建ntp时间服务器

NTP&#xff08;Network Time Protocol&#xff09;服务器是用于局域网服务器时间同步使用的&#xff0c;可以保证局域网所有的服务器与时间服务器的时间保持一致&#xff0c;应用于对时间实时性要求高的、必须统一时间事件。 NTP时间服务器是一个简单的常用的服务器&#xff…

windows (win10 ) NTP服务器搭建方法/步骤

一、在开始菜单栏中&#xff0c;点击“运行”&#xff08;WIN R&#xff09;&#xff0c;输入regedit&#xff0c;打开Windows 注册表 二、设定成为NTP 服务器类型 注册表路径&#xff1a; HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters 修改Par…