理解一
LSTM的输入变成四个,分别是输入,以及三个控制门开闭的信号。三个信号分别通过输入经过线性变换得到。如下图所示
理解二
课程这里我的理解是:
- 这里 c t − 1 c^{t-1} ct−1是一个向量,是各个LSTM cell中cell的值组成的向量。
- x t x^t xt是一个输入样本,也是一个向量。
- 把LSTM cell看作是一个neuron来看LSTM和传统神经网络的联系时。LSTM cell的输入是一个4个scalar(一个input,以及三个控制gate开闭的信号)。
- 输入向量 x t x^t xt经过transform后得到一个向量,每个向量的每一维就是每一个LSTM cell的输入scalar。
- 然后一共有4个trainsform,从而得到四个输入。
这样可以用神经元的角度跟传统神经网络建立联系。
理解三
因此上图的各个操作时element-wise的,例如激活函数对经过transform得到的输入的每一个元素进行activate,乘法和加法操作也是向量对应元素相乘相加。
其实总结就是RNN能够将前面的信息或者记忆与当前的输入进行聚合。这种需要是因为对于共享参数的网络结构而言,一个相同的输入只能产生相同的输出,如果要处理一个输入输出多种类别时,就需要加入别的信息,例如上下文信息,让输入差异化,比如如果需要像根据上下文来判断当前输入是属于哪个类别,例如自助购票系统,要根据上下文判断一个地点是目的地还是起始地,那么要结合上下文。而RNN通过将前面读过的信息聚合时,就能够让输入不同。至于对于怎样的输入要怎样利用上下文的信息,怎样利用当前时刻的信息,是否需要更新传递到下一个时刻的信息,以及是否需要输出,这些参数都通过网络学习来获得。
理解四
一些DNN和RNN的应用,是将一篇文档或者文档中的每一个句子过一遍RNN,通过memory cell的积累,最后一个时刻的hidden state能保存文档或句子的信息。