深层循环神经网络(DRNN)

DRNN可以增强模型的表达能力,主要是将每个时刻上的循环体重复多次,每一层循环体中参数是共享的,但不同层之间的参数可以不同。DRNN结构图如图5所示。

深层循环神经网络(DRNN)

TensorFlow中可以通过rnn_cell.MultiRNNCell([lstm] * number_of_layer)来构建DRNN,其中number_of_layer表示了有多少层。

在我们构建自己的任务模型时,往往会设置dropout来让构建的网络模型更加健壮,类似在卷积神经网络只在最后全连接层使用dropout,DRNN一般只在不同层循环体结构中使用dropout,而不在同一层的循环体结构中使用。即从时刻t-1传递到t时刻时,RNN不进行状态的dropout,但在同一时刻t中,不同层循环体之间会使用dropout,图6展示了DRNN中使用dropout,其中实线箭头表示不使用dropout,虚线箭头表示使用dropout。

深层循环神经网络(DRNN)

TensorFlow中可以使用tf.nn.rnn_cell.DropoutWrapper类来实现dropout功能