循环神经网络的网络结构,神经网络训练过程图解

如何使用tensorflow构建,训练和改进循环神经网络

我们利用TensorFlow提供的tf.train.AdamOptimizer来控制学习速度。

AdamOptimizer通过使用动量(参数的移动平均数)来改善传统梯度下降,促进超参数动态调整。

我们可以通过创建标签错误率的摘要标量来跟踪丢失和错误率:#Createaplaceholderforthesummarystatisticswithtf.name_scope("accuracy"):#Computetheedit(Levenshtein)distanceofthetoppathdistance=tf.edit_distance((self.decoded[0],tf.int32),self.targets)#Computethelabelerrorrate(accuracy)=tf.reduce_mean(distance,name='label_error_rate')_placeholder=tf.placeholder(dtype=tf.float32,shape=[])self.train_ler_op=tf.summary.scalar("train_label_error_rate",_placeholder)self.dev_ler_op=tf.summary.scalar("validation_label_error_rate",_placeholder)self.test_ler_op=tf.summary.scalar("test_label_error_rate",_placeholder)如何改进RNN现在我们构建了一个简单的LSTMRNN网络,下一个问题是:如何继续改进它?

幸运的是,在开源社区里,很多大公司都开源了自己的最新语音识别模型。

在2016年9月,微软的论文《TheMicrosoft2016ConversationalSpeechRecognitionSystem》展示了在NIST200Switchboard数据中单系统残差网络错误率6.9%的新方式。

他们在卷积+循环神经网络上使用了几种不同的声学和语言模型。

微软的团队和其他研究人员在过去4年中做出的主要改进包括:在基于字符的RNN上使用语言模型使用卷积神经网络(CNN)从音频中获取特征使用多个RNN模型组合值得注意的是,在过去几十年里传统语音识别模型获得的研究成果,在目前的深度学习语音识别模型中仍然扮演着自己的角色。

修改自:AHistoricalPerspectiveofSpeechRecognition,XuedongHuang,JamesBaker,RajReddyCommunicationsoftheACM,Vol.57No.1,Pages94-103,2014训练你的第一个RNN模型在本教程的Github里,作者提供了一些介绍以帮助读者在TensorFlow中使用RNN和CTC损失函数训练端到端语音识别系统。

大部分事例数据来自LibriVox。

数据被分别存放于以下文件夹中:Train:train-clean-100-wav(5examples)Test:test-clean-wav(2examples)Dev:dev-clean-wav(2examples)当训练这些示例数据时,你会很快注意到训练数据的词错率(WER)会产生过拟合,而在测试和开发集中词错率则有85%左右。

词错率不是100%的原因在于每个字母有29种可能性(a-z、逗号、空格和空白),神经网络很快就能学会:某些字符(e,a,空格,r,s,t)比其他的更常见辅音-元音-辅音是英文的构词特征MFCC输入声音信号振幅特征的增加只与字母a-z有关。

如何用PyTorch实现递归神经网络

从Siri到谷歌翻译,深度神经网络已经在机器理解自然语言方面取得了巨大突破rbsci

这些模型大多数将语言视为单调的单词或字符序列,并使用一种称为循环神经网络(recurrentneuralnetwork/RNN)的模型来处理该序列。

但是许多语言学家认为语言最好被理解为具有树形结构的层次化词组,一种被称为递归神经网络(recursiveneuralnetwork)的深度学习模型考虑到了这种结构,这方面已经有大量的研究。

虽然这些模型非常难以实现且效率很低,但是一个全新的深度学习框架PyTorch能使它们和其它复杂的自然语言处理模型变得更加容易。

虽然递归神经网络很好地显示了PyTorch的灵活性,但它也广泛支持其它的各种深度学习框架,特别的是,它能够对计算机视觉(computervision)计算提供强大的支撑。

PyTorch是FacebookAIResearch和其它几个实验室的开发人员的成果,该框架结合了Torch7高效灵活的GPU加速后端库与直观的Python前端,它的特点是快速成形、代码可读和支持最广泛的深度学习模型。

开始SPINN链接中的文章()详细介绍了一个递归神经网络的PyTorch实现,它具有一个循环跟踪器(recurrenttracker)和TreeLSTM节点


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部