如何训练和制作神经网络的序列化特征向量



通过序列化,我的意思是输入的值以离散的时间间隔出现,并且向量的大小也事先不知道。传统上,神经网络采用固定大小的并行输入神经元和固定大小的并行输出神经元。

序列化实现可用于语音识别,我可以向网络提供波形的时间序列,并在输出端获取音素。

如果有人可以指出一些现有的实现,那就太好了。

简单神经网络作为一种结构在时间尺度变形中没有不变性,这就是为什么应用它来识别时间序列是不切实际的。为了识别时间序列,通常使用通用通信模型(HMM)。NN可以与HMM一起使用,对单个语音帧进行分类。在这种HMM-ANN配置中,音频被分割在帧上,帧切片被传递到ANN中以计算音素概率,然后使用HMM的动态搜索分析整个概率序列以获得最佳匹配。

HMM-ANN系统

通常需要从更强大的HMM-GMM系统进行初始化,因此没有独立的HMM-ANN实现,通常它们是整个语音识别工具包的一部分。在流行的工具包中,Kaldi实现了HMM-ANN甚至HMM-DNN(深度神经网络)。

还有一些神经网络被设计用于对时间序列进行分类 - 递归神经网络,它们可以成功地用于对语音进行分类。可以使用任何支持 RNN 的工具包(例如 Keras)创建该示例。如果你想从循环神经网络开始,试试长短期记忆网络(LSTM),它们的架构可以实现更稳定的训练。语音识别的 Keras 设置在为 LSTM 二进制分类构建语音数据集中讨论

有几种类型的神经网络旨在对序列数据进行建模;我想说的是,这些模型中的大多数都属于称为递归神经网络的等价类,它通常是连接图包含循环的任何神经网络模型。通常可以利用连接图中的循环来模拟网络过去"状态"的某些方面,并且已经开发了不同的策略 - 例如,Elman/Jordan网络,Echo状态网络等 - 以不同的方式利用这种状态信息。

从历史上看,经常性蚊帐很难有效训练。由于最近在神经网络二阶优化工具方面的大量工作,以及深度神经网络社区的研究,最近开发了几个循环网络的例子,这些例子在建模现实世界的任务方面显示出前景。在我看来,这种网络目前最简洁的例子之一是Ilya Sutskever的"使用递归神经网络生成文本"(ICML 2011),其中循环网络被用作非常紧凑的远程n-gram字符模型。(在链接的主页上尝试RNN演示,这很有趣。

据我所知,循环网络还没有成功地直接应用于语音>音素建模,但Alex Graves在他最近的几篇论文中特别提到了这项任务。(实际上,看起来他有一篇关于这个主题的2013年ICASSP论文。

最新更新