NLP学习笔记(5)

  • 传统的语音识别模型需要建立一个generative模型,从语言模型中产生单词序列,然后产生tokens(音标)序列,然后产生语音序列(时域或频域的声音序列),然后是计算得到一些特征(信号处理专家给出计算方法),这样当语音序列进来的时候,就会被换算成同样的特征,然后逆流而上搜索对应的Y NLP学习笔记(5)
  • 如果把上述的每一个元件都用神经网络来实现,会发现神经网络在每一个步骤都做得比传统方法要更好NLP学习笔记(5)
  • 但我们希望能做到端到端的模型,而不是上述的组件式模型,也就是说,我们的训练数据是这样的(X, Y)对,X是语音输入,Y是对应的文本,我们用这样的训练数据来训练,从而对这样的测试数据来进行预测。这些端到端模型包括了CTC(connectionist temporal classification)、LAS (listen, attention and spell)等等。
  • CTC模型的输入是频谱图,也就是说是一个频率响应随时间变化的一个序列,将RNN用在这个时序数据上,预测出单词或者字母、空音标等。空音标的意义在于,在字母到字母的变化时需要经过一个空音标。如下:当你想要预测cat时,你的softmax必须在不同的时序上先预测c再预测空音标再预测a、、、NLP学习笔记(5)NLP学习笔记(5)
  • CTC可以进一步改良,因为上述的基于字母预测的CTC并没有对语法和拼写等问题做出足够的限制和监督,所以经常出现语法错误和拼写错误。谷歌的一篇论文进一步解决了这个问题,他们预测的是单词而不是字母。NLP学习笔记(5)
  • LAS model是一个seq2seq model,特点是将一整个语音序列做完一个长vector一次性输入,这就是listen;然后每次根据上一个时序RNN的输出和这一整个长vector产生attention,是一个对这个长vector做的softmax,希望把注意力放在哪个时间点,然后根据attention的结果预测出这一时刻的输出。所以这个softmax理论上会沿着时序将attention的点从前往后移动。 NLP学习笔记(5)NLP学习笔记(5)