首先,介绍一下神经网络的基本知识。一个神经网络可以表示为一个人工神经元的图,或者说节点和有向边,用来对突触建模。每个神经元是一个处理单元,它将连接到它的节点的输出作为输入。在发出输出之前,每个神经元会先应用一个非线性激活函数。正是由于这个激活函数,神经网络具有对非线性关系进行建模的能力。
现在,考虑这个最近的著名论文Playing Atari with Deep Reinforcement Learning,结合convnets和强化学习来训练电脑玩视频游戏。该系统在某些游戏上有超越人类的表现,比如Breakout!,这种游戏在任意时候的合适的策略,都可以通过查看屏幕推断出来。但是,当优化策略是需要在长时间跨度规划时,系统就和人的表现相差甚远,例如太空侵略者(Space Invaders)。
因此, 我们引入递归神经网络(RNN),一个赋予神经网络对时间进行显式建模的能力,通过添加跨越时间点的自连接隐藏层。换句话说,隐藏层的反馈,不仅仅进入输出端,而且还进入了下一时间步骤隐藏层。在本文中,我将使用递归网络的一些示意图,从我即将审查的这一主题的文献中摘录。
一旦被展开,这些网络可以使用反向传播,进行端到端的训练。这种跨时间步的反向传播扩展,被称为沿时间反向传播(Backpropagation Through Time)。
然而有一个问题,在Yoshua Bengio经常被引用的论文(LearningLong-Term Dependencies with Gradient Descent is Difficult)中提到,那就是消失的梯度。换句话说,后面时间步的错误信号,往往并不能回到足够远的过去,像更早的时间步一样,去影响网络。这使它很难以学习远距离的影响,比如放过的那只小卒会在12步后回来将你。
补救这一问题的措施是1997年首先被Sepp Hochreiter和Jurgen Schmidhuber提出的长短期记忆(LSTM)模型。在这个模型中,常规的神经元,即一个将S型激活应用于其输入线性组合的单位,被存储单元所代替。每个存储单元是与一个输入门,一个输出门和一个跨越时间步骤无干扰送入自身的内部状态相关联。