抽象模型
马尔可夫性
这是一个概率论的概念,即:
P ( x t + 1 ∣ . . . , x t − 1 , x t ) = P ( x t + 1 ∣ x t ) P(x_{t+1}|...,x_{t-1},x_{t})=P(x_{t+1}|x_{t}) P(xt+1∣...,xt−1,xt)=P(xt+1∣xt)
通俗的解释就是关于时间的事件序列x,其发生的状态的情况仅仅与当前时刻的事件有关与更早的事件是无关的。这一性质描述了一个随机过程无记忆的特性。
马尔可夫链
上面定义无记忆的过程也定义了马尔可夫链,也就是对应的 x t x_t xt为离散时间马尔可夫链,对应的下一时间的状态仅仅与当前的状态相关,相关量的数量为1,如果推广一下到2,3,4,5…于是有当下一时间的状态与过去发生过的两个时间序列相关为:
P ( x 3 ∣ x 0 , x 1 , x 2 ) = P ( x 3 ∣ x 1 , x 2 ) P(x_3|x_0,x_1,x_2)=P(x_3|x_1,x_2) P(x3∣x0,x1,x2)=P(x3∣x1,x2)
P ( x 1 , x 2 , x 3 , x 4 ) = P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ∣ x 1 , x 2 ) P ( x 4 ∣ x 2 , x 3 ) P(x_1,x_2,x_3,x_4)=P(x_1)P(x_2|x_1)P(x_3|x_1,x_2)P(x_4|x_2,x_3) P(x1,x2,x3,x4)=P(x1)P(x2∣x1)P(x3∣x1,x2)P(x4∣x2,x3)
其对应为二阶的马尔可夫链,同样更大阶数的马尔可夫链也是相同的方法推导。
最终我们获得了一个通过之前多个时间序列来推导下一时间序列的抽象模型。
循环神经网络
与全连接神经网络不同,RNN体现了一种时间相关性,而其时间相关性的实现便是通过隐藏状态体现,隐藏状态记录了之前时间步的信息,之后传递到下一时间步参与运算,如此往后,循环进行,以此实现一个时序相关的计算过程。
模型
循环神经网络的结构具有很高的重复性,相比于卷积与全连接其显得比较规整,也正因为规整与重复的结构才对应了相应的循环运算。
图中的x为输入,h为产生的隐藏状态,每个单元之间的箭头都是上一单元的隐藏状态,注意 x t x_t xt是某一时间的状态序列,可能是单变量的一个值,也可能是多变量的数据,描述时间点的相关信息。
核心
其中核心的计算就是关于隐藏变量的计算过程,这里与一般的神经网络进行类比:
全连接中的运算是一个线性运算之后进行一个激活函数
H = ϕ ( X W i + b i ) H=\phi(XW_i+b_i) H=ϕ(XWi+bi), W W W为对应层的参数, b b b为对应的偏置量, ϕ \phi ϕ为相应的激活函数。
RNN中的计算过程多了一个隐藏状态的权重计算:
H t = ϕ ( X t W x h + H t − 1 W h h + b h ) H_t=\phi(X_tW_{xh}+H_{t-1}W_{hh}+b_h) Ht=ϕ(XtWxh+Ht−1Whh+bh),对应的x是一个时间点的信息, H t − 1 H_{t-1} Ht−1为上一时间点的状态信息, b h b_h bh为对应的偏置量, ϕ \phi ϕ为相应的激活函数, W x h , W h h W_{xh},W_{hh} Wxh,Whh为隐藏层的参数, b h b_h b<