【问题标题】:How to train on and make a serialized feature vector for a Neural Network?如何为神经网络训练和制作序列化特征向量?
【发布时间】:2013-10-25 11:50:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: neural-network speech-recognition


    【解决方案1】:

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

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

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

    中讨论

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      猜你喜欢
      • 2020-05-03
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      相关资源
      最近更新 更多