锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / 语音识别开源 / kaldi使用LSTM训练、LSTM和DNN精度对比讨论
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发

锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。锐英源软件对经典开源项目有大量翻译,翻译内容技术层次较高,对初学者有深究意义。本文也是解决问题中查到的线索,有类似问题的朋友可以联系交流。有幸浏览到的朋友请关注头条号,可以获取最新更新。致谢kaldi开源团队

kaldi使用LSTM训练、LSTM和DNN精度对比讨论


现在,我正在尝试在 Kaldi 中运行 LSTM。我从 github 获得的代码已经被 Karel NN 中的其他人实现了。我有关于 FRAME_ACCURACY 的问题。我在 Karel NN 中看到 LSTM 的 FRAME_ACCURACY 高于 DNN 基线的 FRAME_ACCURACY 的结果。但是 LSTM 的 WER 低于 DNN 的 WER。

这是 DNN 的 FRAME_ACCURACY:FRAME_ACCURACY >> 82.0806% <<(最后一次迭代)(WER% 1.60)
,这是 LSTM 的 FRAME_ACCURACY:FRAME_ACCURACY >> 92.0364% <<(最后一次迭代)(WER% 17)

也许有人可以就这个问题提出建议。

 

对于经典的前馈 DNN,帧精度取决于输入上下文的长度: 典型行为是“更长的上下文 - > 更高的 FRAME_ACCURACY”,看起来像RM 数据库上的数字,也许您也可以比较不同的DB,或使用一元图。你能把指向github存储库的指针发给我看看代码吗?

 

最近我在使用 kaldi-lstm 版本(谷歌版本),发生了同样的问题……LSTMP 的帧精度比 DNN 低得多,而 WER更糟……,谁能给我有些见识?

 

我猜你的意思是帧精度要好得多,但 WER更糟。这在看到较长时间上下文的模型中很正常。

 

这似乎很正常,您通常可以使用 LSTM 获得更好的帧精度,而您的 WER 则在旧的附近......

在此处查看 Hasim 的论文:http://arxiv.org/pdf/1402.1128v1.pdf。他们在帧精度上的改进也比 WER 大得多。另外,请确保您不要过度训练。

 

顺便说一句,我还没有尝试过那个特定的实现,所以它也可能是那个实现的特别之处。但总的来说,我认为您会从 LSTM 中看到更高的帧精度。

 

我已经阅读了那篇论文,看到了 LSTM 的 WER 结果,它比 DNN 和 RNN 更好。但是在我的实现中,LSTM的WER比DNN和RNN差。

即使对于 LSTM 模型,我也使用 nnet-forward 对模型进行解码以进行测试。也许这可能是 LSTM 的 WER 比 DNN 差的一个问题。

 

我怀疑您正在使用资源管理。这是一个非常小的语料库 ,你不能真正相信它的结果。涉及 DNN 的事物往往与规模有关。你应该使用更多的数据。
此外,任何使用更多时间上下文的方法都会有更好的帧精度,但可能也可能没有更好的 WER。

 

顺便说一句,由于现在对 LSTM 很感兴趣, 如果您能贡献一个示例脚本来展示如何使用该外部工具,人们可能会很感激。

 

我很高兴分享代码。我怎样才能做到这一点?实际上,我从以下链接获得了关于实现 LSTM 的代码:https://github.com/dophist/kaldi-lstm我只是让它可以在我的 kaldi 版本中运行并创建 shell 脚本来运行 LSTM。

 

正如您所提到的,如何确保模型不会过度训练?

 

检查过度训练的正常方法是查看训练和验证目标函数和/或帧精度,看看有多少差异。在 nnet2 设置中,这些位于compute_prob_train.XX.log 和 compute_prob_valid.XX.log 中。验证目标函数比训练好是正常的,但也不过分好(例如,对数似然的差异不应该超过 1.5 左右)。

 

---------------------翻译分隔线---------------

上面讨论时间久了,我在2021年粗略看了kaldi的lstm,是有lstm脚本的,但是wsj方案下没有run_lstm.sh,但是有lstm目录,里面的脚本文件指向train_rnn.py,看来kaldi也是向pytorch看齐,上层用python,底层用C++。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内劳动服务器公司办公楼一层