循环神经网络

https://zh.d2l.ai/chapter_recurrent-neural-networks/rnn.html

第一段,

对于一个足够强大的函数 f( (8.4.2) ),隐变量模型不是近似值。

是有typo吗,看起来应该是

对于一个足够强大的函数 f (8.4.2) ,隐变量模型不是近似值。

加了一个括号以后看起来像是(8.4.2)是f的参数

Personally, I find Fig 8.4.1. a little confusing. These three RNN neurons are actually the same neuron acted by elements in a sequence X in order. Unlike previous networks discussed, the RNN neuron takes two inputs: the data input, the hidden state (or “persistent memory”). We can also see this hidden state as a property of the RNN neuron when it starts working on a sequence. More complicated variations come later, with LSTM or GRU, but this is the very idea of attaching states to the neurons. Whereas in the past, neurons have been stateless. What a beautiful idea.

I personally prefer this Figure. This tutorial and its model setup is also very clear as to what is the nature of RNN neurons.

basic RNN neuron diagram

1 Like
  1. 如果我们使用循环神经网络来预测文本序列中的下一个字符,那么任意输出所需的维度是多少?
    输出的维度应该与输入维度相同吧,因为在RNN中每一个输出由当下时间步t的输入和上一步传入的隐状态h_t-1决定

  2. 为什么循环神经网络可以基于文本序列中所有先前的词元,在某个时间步表示当前词元的条件概率?
    隐状态h_t-1存储了到时间步 t−1 的序列信息

  3. 如果你基于一个长序列进行反向传播,梯度会发生什么状况?
    如果序列比较长反向传播的时候梯度可能会出现消失或者爆炸的情况

  4. 与本节中描述的语言模型相关的问题有哪些?

2 Likes

在看到一个语言模型报告其perplexity是109时,我们就可以直观的理解为,平均情况下,这个语言模型预测下一个词时,其认为有109个词等可能地可以作为下一个词的合理选择。

3 Likes

这一节的隐变量的定义和“序列模型”一节的隐变量的定义的约定不一致啊。这一节中p(x_{t}|h_{t-1}),而“序列模型”一节中是p(x_{t}|h_{t})。相应的,隐状态的公式也是不一致的。

8.4.7公式中的1/n能不能理解为cross entropy中的加权平均,即期望E

可以的,李沐老师在b站的课上就是这样解释这个公式的

thanks ,经过了解,这个1/n不能当作 是cross-entropy中的期望,这只是一个后置处理取平均而已。
另外觉得视频与此处课程重复性高,所以就没去看视频啦~

另外想知道,8.4.7式是不是将序列联合概率应用自信息推导的,但代码实现上好像少了一项P(x1)作了简化?

分享一篇關於困惑度(perplexity)很好的文章:Perplexity in Language Models. Evaluating language models using the… | by Chiara Campagnola | Towards Data Science

1/n应该是emprical distribution产生的,可以理解为真实分布为emprical distribution,预测分布为p(xt|xt-1,…,xt)的交叉熵

其实就是多样本时 平均交叉熵。。。。。。