背景:
循环神经网络是一类以序列数据为输入,在序列的演进方向进行递归且所有节点按链式连接的递归神经网络。
对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习算法之一,其中双向循环神经网络和长短期记忆网络(是常见的的循环神经网络。
循环神经网络具有记忆性、参数共享并且图灵完备因此在对序列的非线性特征进行学习时具有一定优势。循环神经网络在自然语言处理,例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。引入了卷积神经网络构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。
应用:
语音问答、股票预测、作词机、模仿写论文、模仿写代码。
传统神经网络、卷积神经网络:输入和输出之间是相互独立
循环神经网络:可以更好地处理上下文具有时序关系的任务
引入“记忆”的概念
输出不仅依赖于输入,还依赖于记忆
将同一个结构循环利用
基本组成结构
传统结构对于一些问题,只能处理当前输入,不能够结合之前的输入信息进行处理,所以神经网络需要“记忆”
深度RNN
模型深度比较深的时候,特征表示能力也比较强
双向RNN
循环神经网络基本结构小结:
隐层状态h可以被看作是“记忆”,因为它包含了之前时间点上的相关信息
输出y不仅由当前的输入所决定,还会考虑到之前的“记忆“。由两者共同决定
RNN在不同时刻共享同一组参数(U,W,V),极大的减小了需要训练和预估的参数量
BPTT算法
Long Short-term Memory(长短期记忆模型)
传统RNN与LSTM的不同
直观理解参数:
LSTM和GRU的对比:
扩展:
什么是attention?
是受到人类注意力机制的启发,人们在进行观察图像的时候,不是一次就把整幅图像的每个位置像素都看过,大多是根据需求将注意力集中到图像的特定部分。而人类会根据之前观察的图像学习到未来要观察图像注意力应该集中的位置。
原文:https://www.cnblogs.com/lishuocheng/p/13545105.html