《神经网络与深度学习》-循环神经网络


  全前馈神经网络,信息单向传递,网络易学习,但能力被减弱。网络输出只依赖于当前的输入。输入输出维数固定。
  循环神经网络,具有 短期记忆能力。其中的神经元可接收 其他神经元的信息和 本身的信息。输入输出可不固定。参数学习可通过 随时间反向传播算法学习。输入序列较长时,错误信息向前传递过长,存在 梯度爆炸梯度消失问题,即 长程依赖问题,一种有效的改进方式: 门控机制
  循环神经网络易拓展到更广义的记忆网络模型: 递归神经网络图网络

1. 给网络增加记忆能力

  时序数据处理需要历史信息。前馈网络无记忆能力。介绍三种方法给网络增加记忆能力

1.1 延时神经网络

  延时神经网络通过在前馈网络的非输出层中都添加一个延时器,记录神经元的最近几次活性值,增加前馈网络的短期记忆能力。在 t t t 时刻,第 l l l 层神经元的活性值依赖于第 l − 1 l-1 l1层神经元的最近 K K K 个时刻的活性值:

h t ( l ) = f ( h t ( l − 1 ) , h t − 1 ( l − 1 ) , ⋅ ⋅ ⋅ , h t − K ( l − 1 ) ) \pmb{h}_t^{(l)} = f(\pmb{h}_t^{(l-1)},\pmb{h}_{t-1}^{(l-1)},\cdot\cdot\cdot,\pmb{h}_{t-K}^{(l-1)}) hhht(l)=f(hhht(l1),hhht1(l1),,hhhtK(l1))

其中 h t ( l ) ∈ R M l \pmb{h}_t^{(l)} \in \mathbb{R}^{ \pmb{M}_l } hhht(l)RMMMl 表示第 l l l 层神经元在时刻 t t t 的活性值, M l M_l Ml 为第 l l l 层神经元的数量。前馈神经网络的活性值:

a ( l ) = f l ( W ( l ) a ( l − 1 ) + b ( l ) ) \pmb{a}^{(l)} = f_l(\pmb{W}^{(l)}\pmb{a}^{(l-1)} + \pmb{b}^{(l)}) aaa(l)=fl(WWW(l)aaa(l1)+bbb(l))

1.2 有外部输入的非线性自回归模型

自回归模型 (AutoRegressive Model,AR)统计学上的时间序列模型,用一个变量 y t \pmb{y}_t yyyt 的历史信息来预测自己:

y t = w 0 + ∑ k = 1 K w k y t − k + ϵ t \pmb{y}_t = w_0 + \sum_{k=1}^K w_k \pmb{y}_{t-k} + \epsilon_t yyyt=w0+k=1Kwkyyytk+ϵt

其中 K K K 为超参数, w 0 , ⋅ ⋅ ⋅ , w K w_0, \cdot\cdot\cdot, w_K w0,,wK 为可学习参数, ϵ t \epsilon_t ϵt ~ N ( 0 , σ 2 ) N(0, \sigma^2) N(0,σ2) 为第 t t t 个时刻的噪声,方差 σ 2 \sigma^2 σ2 与时间无关。

有外部输入的自回归模型 (Nonlinear AutoRegressive with Exogenous Inputs Model,NARX),在每个时刻 t t t 都有一个外部输入 x t \pmb{x}_t xxxt, 产生一个输出 y t \pmb{y}_t yyyt, NARX 通过一个延时器记录最近 K x K_x Kx次的外部输入和最近 K y K_y Ky次的输出,第 t t t 个时刻的输出 y t \pmb{y}_t yyyt为:

y t = f ( x t , x t − 1 , ⋅ ⋅ ⋅ , x t − K x , y t − 1 , y t − 2 , ⋅ ⋅ ⋅ , y t − K y ) \pmb{y}_t = f(\pmb{x}_t,\pmb{x}_{t-1},\cdot\cdot\cdot,\pmb{x}_{t-K_x}, \pmb{y}_{t-1},\pmb{y}_{t-2},\cdot\cdot\cdot,\pmb{y}_{t-K_y}) yyyt=f(xxxt,xxxt1,,xxxtKx,yyyt1,yyyt2,,yyytKy)

其中 f ( ⋅ ) f(\cdot) f() 表示非线性函数,可以前馈网络, K x K_x Kx K y K_y Ky 为超参数。

1.3 循环神经网络

循环神经网络 (Recurrent Neural Network,RNN)通过使用带自反馈的神经元处理任意长度的时序数据。
  给定输入序列 x 1 : T = ( x 1 , x 2 , . . . , x t , . . . , x T ) \pmb{x}_{1:T} = (\pmb{x_1}, \pmb{x_2}, ... ,\pmb{x_t}, ..., \pmb{x_T}) xxx1:T=(x1x1x1,x2x2x2,...,xtxtxt,...,xTxTxT),RNN 这样更新带反馈边的隐藏层的活性值 h t \pmb{h}_t hhht

h t = f ( h t − 1 , x t ) \pmb{h}_t = f(\pmb{h}_{t-1}, \pmb{x}_t) hhht=f(hhht1,xxxt)

其中 h 0 = 0 \pmb{h}_0 = 0 hhh0=0 f ( ⋅ ) f(\cdot) f() 为非线性函数。可谓前馈网络。从数学上来说,该公式可看成动力系统,故隐藏层活性值 h t \pmb{h}_t hhht 又被成为状态(State)或隐状态(Hidden State)。
在这里插入图片描述

2. 简单循环网络

  简单循环网络(SRN)只有一个隐藏层。在一个两层的前馈神经网络中,连接存在相邻的层与层之间,隐藏层的节点之间无连接。简单循环网络增加了隐藏层到隐藏层的反馈连接。

  假设向量 x t ∈ R M \pmb{x}_t \in \mathbb{R}^M xxxtRM 表示在时刻 t t t时网络的输入, h t ∈ D M \pmb{h}_t \in \mathbb{D}^M hhhtDM 表示隐藏层状态(隐藏层神经元活性值), h t \pmb{h}_t hhht和当前时刻输入 x t \pmb{x}_t xxxt、上一时刻隐藏层状态 h t − 1 \pmb{h}_{t-1} hhht1相关。 SRN在t时刻更新公式为:
在这里插入图片描述
在这里插入图片描述
其中 z t \pmb{z}_t zzzt 为隐藏层的净输入, U ∈ R D × D \pmb{U} \in \mathbb{R}^{D \times D} UUURD×D状态-状态权重矩阵, W ∈ R D × D \pmb{W} \in \mathbb{R}^{D \times D} WWWRD×D状态-输入权重矩阵, b ∈ R D \pmb{b} \in \mathbb{R}^{D} bbbRD偏移向量, 其中 f ( ⋅ ) f(\cdot) f() 表示非线性函数,常为Logistic函数或Tanh函数。
  若把每个时刻的状态都看做前馈神经网络的一层,循环神经网络可看做在时间维度上权值共享的神经网络。按时间展开的循环神经网络:
在这里插入图片描述

2.1 循环神经网络的计算能力

  前馈神经网络可以模拟任何连续函数,而循环神经网络可以模拟任何程序。定义一个完全连接的循环神经网络。 x t \pmb{x}_t xxxt 为输入, y t \pmb{y}_t yyyt 为输出, h t \pmb{h}_t hhht 为隐状态, f ( ⋅ ) f(\cdot) f()为非线性激活函数, U \pmb{U} UUU W \pmb{W} WWW b \pmb{b} bbb V \pmb{V} VVV为网络参数:
在这里插入图片描述

2.1.1 循环神经网络的通用近似定理

  循环神经网络的拟合能力也十分强大。一个完全连接的循环网络是任何非线性动力系统的近似器。可用通用近似定理解释:
在这里插入图片描述

2.1.2 图灵完备

  图灵完备(Turing Completeness)是指一种数据操作规则,比如一种编程语言,可以实现图灵机(Turing Machine)的所有功能,解决所有的可计算问题。
在这里插入图片描述
  故一个完全连接循环神经网络可以近似解决所有的可计算问题。

3. 应用到机器学习

  循环神经网络可以应用到三种模式的机器学习任务::序列到类别模式、同步的序列到序列模式、异步的序列到序列模式。

3.1 序列到类别模式

  序列到类别模式主要用于序列数据的分类问题。比如文本分类任务,输入为单词序列,输出为该文本类别。
  假设输入序列 x 1 : T = ( x 1 , x 2 , . . . , x t , . . . , x T ) \pmb{x}_{1:T} = (\pmb{x_1}, \pmb{x_2}, ... ,\pmb{x_t}, ..., \pmb{x_T}) xxx1:T=(x1x1x1,x2x2x2,...,xtxtxt,...,x

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值