【问题标题】:Why should we use RNNs instead of Markov models?为什么我们应该使用 RNN 而不是马尔可夫模型?
【发布时间】:2018-01-02 15:37:10
【问题描述】:
最近我偶然发现了this article,我想知道从递归神经网络(如上文所述)和简单的马尔可夫链中得到的结果有什么区别。
我不太了解 RNN 引擎盖下发生的线性代数,但您似乎基本上只是在设计一种超级复杂的方法,为下一个字母将基于以前的字母,在马尔可夫链中非常简单地完成的事情。
为什么 RNN 很有趣?仅仅是因为它们是一个更通用的解决方案,还是我错过了什么?
【问题讨论】:
标签:
neural-network
artificial-intelligence
recurrent-neural-network
markov-chains
【解决方案1】:
马尔可夫链假定马尔可夫属性,它是“无记忆的”。下一个符号的概率是根据前 k 个符号计算的。在实践中,k 被限制在较低的值(比如 3-5),因为转换矩阵呈指数增长。因此,隐马尔可夫模型生成的句子非常不一致。
另一方面,RNN(例如使用 LSTM 单元)不受马尔可夫属性的约束。它们丰富的内部状态使它们能够跟踪远距离依赖关系。
Karpathy 的博客文章逐个字符地列出了由 RNN 生成的 C 源代码。该模型令人印象深刻地捕捉了诸如左括号和右括号之类的依赖关系。