A Clockwork RNN后续学习(一)

CW-RNN特点及优化

CW-RNN网络结构理解图[1]
CW-RNN后续学习(一)

特点:
1.CW-RNN的指数分布模块定时是不灵活的 导致不足以识别和利用历史上发生得很远的信息。
2.其他函数可以用来设置模块的周期:线性、斐波那契、对数级数,甚至是固定的随机周期。
3.每个模块不一定具有相同的大小,可以根据输入自己调整。
优化点:
1.学习周期(可以使用不需要梯度封闭形式的进化算法来训练时钟周期)。
2.低速模块每次只读一个输入,部分序列经过不处于活动的模块可能不会影响它们的输出。可以使用多个低速模块运行在同一时钟周期但是交错使用不同的偏移量,使用一个缓冲序列和通过低速模块这个缓冲区的函数(例如,平均数)或将数据转换为其他领域(如小波),让CW-RNN处理转换后的信息。
3.网络内部动态为给定类型的输入序列分配资源。

CW-RNN变体

卷积CW-RNN

  1. 密集卷积CW-RNN[1]

CW-RNN在实践中,由于“慢”单元长时间不活动,它们不能对输入的高频变化作出反应,并产生某种意义上过时的输出。另外,在我们的目标是学习作为概率框架输入的动态数据表示的情况下,该体系结构还存在另一个弱点,即在任何给定的时间步长上都有不同的频段处于活动状态。网络将对在不同时间施加的相同输入刺激做出不同的响应。通过引入与位移相关的尺寸,此“位移方差”使特征空间卷积。

DCWRNN结构
CW-RNN后续学习(一)

网络结构理解

每个规模k存在nkn^k个并行线程改变彼此,这样在每一个时间单元中的其中一个线程的一个单元触发、不仅更新自己的状态,并且提供更高频率单元的输入。属于同一模块的线程之间的所有权重被共享,使网络中的总体参数数量与原始时钟结构相同。

文中划分模块周期的方式为Tk=nk(k=0,1,2,3...)T_k=n^k(k=0,1,2,3...)k+1k+1个模块。如上图所示,为了简化结构,这里划为3个模块且每个模块只有一个神经单元,这里n=2n=2k=0k=0时,显然只有一个线程,k=1k=1时有2个线程,即需要隔一个时间步来更新自己状态,同时为更新频率比自己高的单元在下一个时间步提供输入==(记忆存储)==,k=2k=2时则有4个线程需要隔三个时间步更新自己状态,也要为更新频率比自己高的单元在下一个时间步提供输入。比如x(t2)x^{(t-2)}x(t1)x^{(t-1)}时刻,T0=1T_0=1,T1=2T_1=2,T2=4T_2=4这三个时钟周期的线程的单元触发时的情形为:图中红色单元只更新自己的状态;绿色单元需要隔一个时间步即在x(t)x^{(t)}来更新自己状态,同时为x(t1)x^{(t-1)}红色单元提供输入;蓝色单元需要隔三个时间步即在x(t+2)x^{(t+2)}来更新自己状态,同时为x(t1)x^{(t-1)}红色单元和绿色单元提供输入。(注:不同时间尺度下的更新

公式表示

h(t)=f(Wx(t)+Δ(UH)) h^{(t)}=f(Wx^{(t)}+\Delta(UH))

其中H=[h(t1)...h(tnk)...h(tnK)]H=[h^{(t-1)}...h^{(t-n^k)}...h^{(t-n^K)}]是隐藏单元的历史矩阵,UU为隐藏层递归矩阵,WW为输入层到隐藏层的矩阵。定义Δ()\Delta()作为一个在列向量中返回对角元素的矩阵的运算符。

CW-RNN后续学习(一)

上图给出了方程的直观意义,在图中比较了原始CWRNN和提出的DCWRNN的更新规则,这里的n=2,K=5 。以时刻t = 6为例,只更新了单元h1和h2,即前两行。在这个密集CW-RNN中,所有隐藏单元每时每刻都在更新。
将之前隐藏状态h(t1)h^{(t-1)}的向量替换为大小为$(K\times K)$5×5的下三角“历史”矩阵H,该矩阵是由**历史h串联数列得到的,时间不是连续采样的,而是在一个指数范围内,2,22,...252,2^2,...2^5。最后,两个三角矩阵的点积的对角元素构成对向量h(t) 。前馈的计算方法与标准RNN相同。

实验:可视化HMOG数据集

描述了使用HMOG数据来探索没有显式复位门(即RNN,CWRNN和DCWRNN)的时间模型的移位不变性。实验随机选择了200个标准化加速度计幅度序列,并应用了三个不同的网络,每个网络都有8个隐藏单元和一个输出神经元。所有网络的所有权重均由具有固定种子的正态分布随机初始化。对于这两种时钟周期架构,都使用以2为底指数设置规则和8个频段。

CW-RNN后续学习(一)

该图显示了RNN和DCWRNN可以被认为是位移不变的(所有曲线几乎在所有地方都重叠,除了序列开始时的细微扰动和窄峰附近的扰动外),而CWRNN的输出非常高依赖于位移。

因此,尽管CWRNN在多尺度周期性和非周期性信号的情况下具有很强的优势,但由于学习分布的高位移相关失真,使用CWRNN进行基于未细分数据的特征学习的目的可能不是最佳的,对于DCWRNN则不是这种情况。

  1. 卷积CW-RNN[2]

卷积层描述如下:
(XF)(i,t)=j=l2l1τ=l2l2xt+τ(i+j)F(l1+1j,l2+1τ) (X*F)(i,t)=\sum_{j=-l_2}^{l_1}\sum_{\tau=-l_2}^{l_2}x_{t+\tau}(i+j)F(l_1+1-j,l_2+1-\tau)
其中输入矩阵XRnin×NX\in\mathbb{R}^{n_{in}\times N},二维滤波器FRf1×f2F\in\mathbb{R}^{f_1\times f_2}l1=f1/2l_1=\llcorner f1/2\lrcornerl2=f2/2l_2=\llcorner f2/2\lrcorneri[l1+1,...,nin+l1]i\in[-l_1+1,...,n_{in}+l_1]t[l2+1,N+l2]t\in[-l_2+1,N+l_2]

滤波值被认为是层的参数,从均匀(-1,1)分布随机初始化,并在用反向传播进行模型训练时估计。在前向传递过程中,我们对每个过滤器的宽度和高度进行卷积,计算任何位置上过滤器的项和输入项之间的点积。在本工作中,我们考虑滤波器的尺寸为5×5。由于convolutional layer得到的feature size大于input size,所以在convolutional layer之后增加了一个max-pooling layer。最大池技术是一种常用的图像处理技术,它是一种非线性下采样技术。主要思想是对卷积输出进行划分,并保持每个部分的最大值。用这种方法进行降维,得到鲁棒性特征。

双向CW-RNN

双向cwrnn (biCW-RNN)是基于双向RNN。双向方法能够利用输入中的未来和过去信息。biCW-RNN的隐状态向量ht是简单CWRNN的前向ht(f)h_t^{(f)}和后向ht(b)h_t^{(b)}的加法。因此,总隐藏状态是ht=ht(f)+ht(b)h_t=h_t^{(f)}+h_t^{(b)}

混合CW-RNN

当考虑CW-RNN时,多个隐含层模块在大部分时间步长处于非活动状态。网络的输出层也可以看作是过去时间步长的平均值,可以设置为对隐含层的反馈。具体地说,我们利用输出后验概率和主动模型的过去隐藏状态的影响来获得隐含层动力学。这样,我们引入了一种混合的CW-RNN结构,它将来自Jordan模型Elman模型的递归结合在CW-RNN框架内。混合CW-RNN的动力学描述如下:
ht(i)={f(j=im+ViOt1)+Wixtif(t mode Ti)=0ht1i h_t^{(i)}=\begin{cases} f{(\sum_{j=i}^m+V_iO_{t-1})+W_ix_t} & if(t\ mode\ T_i)=0\\h_{t-1}^i \end{cases}

参考文献

[1]Neverova N , Wolf C , Lacey G , et al. Learning Human Identity from Motion Patterns[J]. IEEE Access, 2016, 4:1810-1820.

arning Human Identity from Motion Patterns[J]. IEEE Access, 2016, 4:1810-1820.

[2]Georgiadou D , Diakoloukas V , Tsiaras V , et al. ClockWork-RNN Based Architectures for Slot Filling[C]// Interspeech 2017. 2017.

相关文章:

  • 2022-01-16
  • 2021-06-12
  • 2021-04-07
  • 2021-06-10
  • 2021-09-21
  • 2021-09-26
  • 2021-11-30
  • 2022-01-06
猜你喜欢
  • 2021-06-01
  • 2021-12-02
  • 2022-01-01
  • 2022-12-23
  • 2021-05-16
  • 2021-11-22
  • 2021-11-05
相关资源
相似解决方案