美文网首页
10月8号学习周总结——体验RNN

10月8号学习周总结——体验RNN

作者: liuchungui | 来源:发表于2017-10-09 01:07 被阅读0次

    十一过完了,但却呆在家里没出去,唯一的欣慰就是体验了下强大的RNN。

    RNN是什么呢?

    它是循环神经网络,与普通的神经网络和CNN不同的是,它可以像人一样,可以基于以前事情的记忆和理解,来进行理解现在所发生的事情。这是因为,它是循环网络结构,可以将之前的状态与当前的输入一起传递给当前神经元进行计算,这就像人有记忆了一样。

    而RNN存在长期依赖的问题——由于变深的结构使模型丧失了学习到先前信息的能力,而LSTM可以解决个问题。

    LSTM是一种特殊的RNN,它能学习和存储长期依赖关系,这是因为它是门控模型,每个神经元都是一个“记忆细胞”,细胞里有三门:遗忘门、输出门、输入门。在训练成模型之后,它会选择性对以前的信息进行遗忘还是使用。其中,门控模型中,还有一个GNU也值得关注。

    RNN应用范围很广,例如:语音识别、机器翻译、图片说明等等。

    至于RNN和LSTM中的具体结构与实现,暂时还了解的不是很透彻,里面的公式还没有看懂。

    使用

    • 在深度学习课程中,体验的第一个RNN,就是通过LSTM去读取一本小说,然后训练,之后就可以自己生成小说了。整个结构,使用tensorflow实现起来,特别简单,但是得出的功能却是不简单。可以通过练习看出来,刚开始,它学习的时候,只能学会单词空格,但是各种单词都拼错;而再训练一段时间后,它会使用一些常用的单词;但是在训练结束之后,它能完整的拼写单词,并且学会英语语法。好奇之下,我使用了以前看过的两本小说进行训练,训练完之后,发现虽然句子都通顺,但是看不懂它在写什么。例如里面有句话:“滕青山看着他说:”滕青山,你...“,分不清主角是谁。
    • 另外一个体验的是word2vec,然后明白了输出与输入是怎么产生的,输入与输出其实就是在内容中。然后还知道了,在训练word2vec的时候,其实就想得到其中隐藏的权重矩阵,然后通过这个矩阵中的某一行来代表一个词语所代表的向量,这样就将单词转换为向量了,然后通过余弦来求单词之间的相似性。而且,知道了,其中word2vec主要是用来计算出词语的向量,以供其它使用,例如机器翻译等,因为相对于one-hot编码,它可以加快运算。最后,中途在训练的时候产生了一个疑问,这个矩阵权重是如何更新的?后来联系以前所学内容知道,其实里面的权重就是使用梯度下降更新出来的,不过,因为它将权重中的计算细节隐藏到一个函数里面去了,所以一下没明白。
    • 序列到序列:这个简单说下吧,其实就是输入层有个编码器,也就是一个LSTM层,生成之后,然后输出层又有个解码器,也是一个LSTM层,最后能够很神奇的自己生成没有的内容。例如,如果是有聊天对话,它就可以做个简单的聊天机器人;如果有翻译数据,就可以做个机器翻译。中途想自己实现个什么,发现没有对应的数据集。但是,这个东西强大。
    • 之后,看了所有课程,里面有剧本生成、股票预测、风格迁移、情绪预测RNN(比普通神经网络效果更好)、摘�要生成、聊天机器人,不过这些都没有去练习和实现。

    总结与计划

    算是总体上对RNN有个了解,并且体验了它的强大。接下来,就是对它内部的细节实现具体了解,搞清楚原理。当然,中途也去跑跑数据,看看能做出有意思的东西。

    参考:
    理解LSTM Networks
    RNN 循环神经网络(下):长期依赖的挑战与长短期记忆
    深度循环神经网络与 LSTM 模型

    相关文章

      网友评论

          本文标题:10月8号学习周总结——体验RNN

          本文链接:https://www.haomeiwen.com/subject/hecuyxtx.html