RNN Transducer(RNN-T)
循环神经对齐器(RNA,Recurrent Neural Aligner)对CTC解码器的改进,具体内容如下:
- “RNA”,全称 “Recurrent Neural Aligner”,引用来自 [Sak, et al., INTERSPEECH’17]。
- CTC 解码器特性:左侧文字阐明 “CTC Decoder: take one vector as input, output one token”,即 CTC 解码器每次取一个向量作为输入,独立输出一个 token(如 ( c, \phi, a ) 等),不思量前后依靠。
- RNA 的改进:图中黄色模块代表解码器单元,RNA 通过箭头连接这些单元,使输出之间产生依靠关系(“RNA adds dependency”)。例如,后续输出会参考之前的输出信息,而非独立生成。这种机制让模子在生成 token 时可以或许利用序列的汗青信息,制止 CTC 解码器独立决策导致的问题(如重复输出或忽略前文束缚)。
综上,RNA 通过引入循环依靠,增强了解码器对序列上下文的感知,优化了 CTC 框架下的序列生成过程。
RNN - T(RNN Transducer) 模子的工作机制,重要用于处理序列到序列的任务(如语音辨认),具体分析如下:
- 模子结构与流程:
- 图中绿色的 h t h^t ht 代表编码器输出的隐蔽状态,通过 “copy” 传递到蓝色模块,再输入到黄色模块(解码器单元)。
- 左侧:黄色模块输出 t t t 和 h h h,体现 RNN - T 常规的解码过程,解码器基于当前和前序信息生成输出。
- 右侧:增加了空白符 ϕ \phi ϕ 的输出。当输出 ϕ \phi ϕ 时,箭头 “Give me the next frame” 表现模子请求获取下一个输入帧,以便继续处理后续的输入数据。这种机制适用于流式场景(如实时语音辨认),答应模子在处理过程中动态请求新的输入帧,增强了对变长序列的处理本事。
- RNN - T 的核心:
- 通过引入空白符 ϕ \phi ϕ,RNN - T 可以或许机动处理输入与输出的对齐问题,结合编码器和解码器的信息,在团结模块中盘算输出概率。输出 ϕ \phi ϕ时请求新帧,体现了模子在流式输入下的自适应处理本事,平衡了输入序列与输出标签的对齐需求。
- 模子组件与输入:
- 绿色的 h t , h t + 1 , h t + 2 , h t + 3 h^t, h^{t+1}, h^{t+2}, h^{t+3} ht,ht+1,ht+2,ht+3是编码器输出的隐蔽状态,通过“copy”传递至蓝色模块,再输入到黄色的解码器单元。
- 黄色解码器单元处理输入并生成橙色的输出(如 t , h , e , ϕ t, h, e, \phi t,h,e,ϕ等),其中 ϕ \phi ϕ 为空白符。
- 流式处理机制:
- 每当输出 ϕ \phi ϕ时,箭头指向 “next frame”,表现模子请求获取下一个输入帧。这种机制使 RNN - T 可以或许逐帧处理流式数据(如实时语音),动态适应输入序列长度。
- 差别的编码器隐蔽状态 h t , h t + 1 h^t, h^{t+1} ht,ht+1 等对应差别的解码器步骤,表明模子在差别时间步利用相应输入信息进行解码。
- 输出寄义:
- 带蓝色框的 t , h , e t, h, e t,h,e 等为实际输出标签,而 ϕ \phi ϕ用于控制输入帧的请求,平衡输入序列与输出标签的对齐。例如,连续输出 ϕ \phi ϕ时,模子连续请求新帧,直到输出非 ϕ \phi ϕ标签(如 e e e)。
综上,图中体现了 RNN - T 通过空白符 ( \phi ) 动态请求输入帧的特性,适用于语音辨认等流式序列处理任务,实现输入与输出的机动对齐。
这张图展示了 RNN - T(RNN Transducer) 模子在处理流式序列数据时,对空白符 ϕ \phi ϕ 的处理机制:
- 组件与流程:
- 绿色的 h t , h t + 1 , h t + 2 , h t + 3 h^t, h^{t+1}, h^{t+2}, h^{t+3} ht,ht+1,ht+2,ht+3是编码器输出的隐蔽状态,通过黑色线传递至蓝色模块,再输入黄色的解码器单元。
- 黄色解码器单元生成橙色输出(如 t , h , e , ϕ t, h, e, \phi t,h,e,ϕ 等),赤色线表现解码器状态传递路径。
- 空白符处理:
- 当输出 ϕ \phi ϕ 时,赤色线旁标注 “ignore”,表现此时忽略部分状态传递路径。这意味着模子在输出 ϕ \phi ϕ 时,不依靠于常规的状态更新逻辑,而是专注于请求并处理下一个输入帧(如 “next frame”),确保流式输入下的动态适应。
- 模子意图:
- 通过忽略 ϕ \phi ϕ输出时的部分状态传递,RNN - T 能在流式场景中制止无效状态干扰,维持关键状态的有效更新,从而准确生成非空白输出标签(如 t , h , e t, h, e t,h,e 等),实现输入与输出的机动对齐。
**语言模子在处理时,会忽略语音自己的声学特征等信息,仅关注文本标记(如单词、子词等符号化的单元)进行处理。**例如在语音辨认或天然语言处理中,语言模子专注于学习标记之间的统计规律、语法结构和语义关系,而非语音的音频特性,以此来猜测或生成合理的文本序列。
Neural Transducer
Neural Transducer:
- 绿色的 h t h^t ht 到 h t + w h^{t + w} ht+w 表现多个连续的编码器隐蔽状态。
- 接纳 “attention” 机制,答应解码器在生成输出(如 c c c、 a a a、 ϕ \phi ϕ )时,综合思量多个连续的隐蔽状态信息,动态聚焦相关输入,增强对输入序列上下文的感知和利用本事,相比传统模子能更机动有效地处理序列信息。
神经转换器(Neural Transducer)在处理序列数据时基于注意力机制(attention)的工作原理:
整体架构
- 黄色模块代表解码器单元,蓝色模块吸收来自编码器的隐蔽状态 h i h^i hi(绿色方块)。
- 解码器通过注意力机制,动态聚焦差别的编码器隐蔽状态来生成输出(橙色方块,如 c , a , ϕ , t c, a, \phi, t c,a,ϕ,t等)。
窗口机制
- window 1:包罗编码器隐蔽状态 h 1 h^1 h1 到 h 4 h^4 h4。解码器在生成 c , a , ϕ c, a, \phi c,a,ϕ等输出时,利用注意力机制从这个窗口内选取相关隐蔽状态信息。
- window 2:包罗 h 5 h^5 h5到 h 8 h^8 h8。当处理后续输出(如 t , ϕ t, \phi t,ϕ )时,注意力机制切换到这个新窗口获取信息。
空白符与数据块请求
- 输出 ϕ \phi ϕ 时,标注 “next chunk”,表现模子请求下一个数据块(新的隐蔽状态窗口),以继续处理后续输入序列,体现了模子在流式数据处理中的动态适应性。
展示了差别注意力机制在语音辨认任务中,随着窗口巨细(window size,W)变化时的音素错误率(Phone Error Rate,PER),具体内容如下:
差别的注意力机制
- no - attention(蓝色线):代表没有使用注意力机制的模子。
- DOT - ATTENTION(绿色线):使用点积注意力机制的模子。
- MLP - ATTENTION(赤色线):接纳多层感知机注意力机制的模子。
- LSTM - ATTENTION(青色线):使用是非期记忆网络注意力机制的模子。
数据趋势
- no - attention:随着窗口巨细从 5 增加到 30,音素错误率呈明显上升趋势,阐明无注意力机制时,模子在处理更大窗口数据时性能下降。
- DOT - ATTENTION:错误率先有小幅度下降,在窗口巨细约为 15 后开始迟钝上升,整体波动相对较小。
- MLP - ATTENTION:错误率先下降,在窗口巨细约为 15 时达到最低值,之后随着窗口增大迟钝上升。
- LSTM - ATTENTION:错误率整体较为安稳,有稍微波动,始终保持在较低水平,表现出较好的稳固性。
Monotonic Chunkwise Attention(MoChA)
MoChA(Monotonic Chunkwise Attention,单调分块注意力)机制,具体如下:
机制原理
- 输入与判定:黄色方块 z 0 z^0 z0作为输入,进入蓝色判定模块 “here?”。该模块类似注意力机制,判定是否在当前位置放置窗口。
- 决策分支:
- “yes” 环境:若判定结果为 “yes”,则在当前位置放置窗口,利用该窗口内的编码器隐蔽状态(如 h 1 h^1 h1等绿色方块)进行后续处理。
- “no” 环境:若判定结果为 “no”,则将窗口向右移动,继续对后续隐蔽状态进行评估和处理。
- 动态窗口调解:整个过程中,窗口根据判定结果动态移动,即 “dynamically shift the window”,确保模子能自适应地关注输入序列的差别部分,有效处理序列数据。
进一步阐释了 MoChA(单调分块注意力)机制的工作流程:
整体流程
- 输入与传递:黄色方块 z 0 z^0 z0作为初始输入,传递到 z 1 z^1 z1,再到 z 2 z^2 z2等后续模块。
- 窗口与隐蔽状态:蓝色区域代表窗口,涵盖编码器隐蔽状态 h 3 h^3 h3到 h 6 h^6 h6 等。窗口内的隐蔽状态信息到场处理过程。
输出规则
- token 输出:每个窗口对应输出一个 token(如橙色方块 c c c、 a a a),且不会输出空白符 ϕ \phi ϕ。这与其他一些注意力机制(如 RNN - T 中会输出 ϕ \phi ϕ 来控制输入处理)差别,MoChA 通过这种方式更直接地生成序列输出。
总结
对几种序列到序列(seq2seq)模子的总结:
LAS(Listen, Attend and Spell)
- 阐明:就是平凡的 seq2seq 模子。通过编码器(Encoder)处理输入序列 h 1 − h 4 h^1 - h^4 h1−h4 等隐蔽状态),解码器利用注意力机制(attention)生成输出 c 0 − c 4 c^0- c^4 c0−c4 等)。
CTC(Connectionist Temporal Classification)
- 阐明:解码器是线性分类器的 seq2seq 模子。通过引入空白符 ϕ \phi ϕ 办理输入输出不对齐问题,每个时间步独立输出 token,后处理归并重复 token 并去除 ϕ \phi ϕ。
RNA(Recurrent Neural Aligner)
- 阐明:输入一个元素就要输出一个元素的 seq2seq 模子。在 CTC 解码器基础上引入循环依靠,使输出间产生关联,制止独立输出导致的问题。
RNN - T(RNN Transducer)
- 阐明:输入一个元素可输出多个元素的 seq2seq 模子。具备处理流式数据本事,通过空白符 ϕ \phi ϕ 控制输入帧请求,机动处理输入输出对齐。
Neural Transducer
- 阐明:每次输入一个窗口数据的 RNN - T 模子。利用注意力机制,综合多个连续的编码器隐蔽状态生成输出,能更好捕捉上下文信息。
MoChA(Monotonic Chunkwise Attention)
- 阐明:窗口可机动移动伸缩的 Neural Transducer。每个窗口对应输出一个 token,不输出空白符 ϕ \phi ϕ,动态调解窗口关注输入序列差别部分。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |