其他分享
首页 > 其他分享> > 使用ABLSTM 实现 human activity

使用ABLSTM 实现 human activity

作者:互联网

论文:WiFi CSI Based Passive Human Activity Recognition Using Attention Based BLSTM

论文中使用attention based bi-direction long short-term memory(基于注意力模型的长短期记忆)网络结构实现了人类活动识别。在本篇博客中首先介绍一下RNN、LSTM、GRU和注意力模型的概念,然后再介绍论文中的网络结构。

RNN

这是一个输入与输出序列长度相等的RNN结构图,其中\left \{ x^{1},...x^{i} \right \}代表输入序列,\left \{ y^{1},...,y^{i} \right \}表示输出序列,h表示hidden state

h^{i}=f(w_{hh}h^{i-1}+w_{hx}x^{i}+b_{h})

y^{i}=g(w_{yh}h^{i}+b_{y})

f和g是激活函数,一般f是tanh或者relu,g取决于输出是什么,是sigmoid或者softmax

LSTM

preview

Long short-term memory(LSTM)是一种特殊的RNN,主要是为了解决RNN训练过程中的梯度消失问题。在反向传播时,序列后面输出层的误差很难影响到前面,也就是说传统的RNN难以捕获相距较远的序列之间的长期依赖。相比于传统的RNN,LSTM多列一个cell memory,用来存储长期依赖,让序列后面的状态可以被前面的序列影响到。例子:

The cat , already ate..., was full.

The cats, already ate ..., were full.

在机器翻译时,传统的RNN网络训练时很难记住前面主语是单数还是负数(英语句子中ate后面可以非常长)从而影响到后面的be动词,但是LSTM中的cell memory可以记住。

为了让前面的序列状态受到后面序列的影响,可以使用双向的结构,RNN、LSTM和GUR都可以使用双向的的机构。

因此LSTM有两个传输状态:c^{t}h^{t},还有3个门控信号

z=\tilde{c^{t}}=tanh(W_{c}[h^{t-1},x^{t}]+b_{c})   z不是门控信号,而是参考c^{t}值,在c^{t}更新时会用上它

z^{i}=\Gamma _{u}=\sigma (W_{u}[h^{t-1},x^{t}]+b_{u})  更新门控信号,对输入x^{t}进行选择记忆

z^{f}=\Gamma _{f}=\sigma (W_{f}[h^{t-1},x^{t}]+b_{f})  忘记门控,控制上一个状态的c^{t-1}有哪些需要忘记

z^{o}=\Gamma _{o}=\sigma (W_{o}[h^{t-1},x^{t}]+b_{o})   输出门控

\odot是Hadamard Product,也就是矩阵中对应元素相乘。

GRU

GRU(Gate Recurrent Unit)与LSTM一样也是为了解决长期记忆和反向传播中的梯度消失等问题而提出来的,但是GUR比LSTM更容易训练。

在GUR中c^{t}=h^{t},而且只有两个门控信号

{h}'=\tilde{c^{t}}=tanh(W_{c}[\Gamma _{r}\odot h^{t-1},x^{t}]+b_{c})

r=\Gamma _{r}=\sigma (W_{r}[c^{t-1},x^{t-1}]+b_{r})   相关门控

z=\Gamma _{u}=\sigma (W_{u}[c^{t-1},x^{t}]+b_{u})   更新门控

h^{t}=z\odot {h}'+(1-z)\odot h^{t-1}  z大多数都是0或者1,z=0表示cell memory不更新,反之则更新。

GUR的优点就是使用了一个门控信号就控制了记忆或者遗忘,参数比LSTM少,节约了计算成本。

Attention机制

在Endecode-Decode结构中,Encoder把所有的输入序列都编码成一个统一的语义特征c再解码,但是c必须包含原始序列中的所有信息,但是它的长度限制了模型性能。Attention机制通过在不同时间输入不同的c来解决这个问题

 

\alpha ^{<t,{t}'>}=amount of attention y_{t} should pay to a_{{t}'}(encode中的隐藏单元)     \sum _{{t}'}\alpha ^{<1,{t}'>}=1

c_{t}=\sum _{{t}'}\alpha ^{<t,{t}'>}a_{{t}'},如果是双向结构a_{{t}'}=(\overrightarrow{a}_{{t}'},\overleftarrow{a}_{{t}'} )

现在还有一个问题是\alpha ^{<t,{t}'>}是怎么来的?

实际上,\alpha ^{<t,{t}'>}是通过模型学习出来的,它与decoder的i-1阶段的隐藏状态和encoder的j阶段的隐藏状态有关

\alpha^{<t,{t}'>}=softmax(e^{<t,{t}'>})=\frac{exp(e^{<t,{t}'>})}{\sum _{{t}'=1}^{Tx}exp(e^{<t,{t}'>})}

  

论文中提出来的ABLSTM

论文中通过输入CSI信号,通过双向LSTM(BLSTM)网络结构提取特征,然后利用Attention机制为BLSTM提取出来的特征分配权重,最后通过softmax输出分类结果。

标签:ABLSTM,7Bt%,7D%,5E%,7B%,human,activity,LSTM,27%
来源: https://blog.csdn.net/weixin_42729843/article/details/100532793