使用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

使用ABLSTM 实现 human activity

这是一个输入与输出序列长度相等的RNN结构图,其中使用ABLSTM 实现 human activity代表输入序列,使用ABLSTM 实现 human activity表示输出序列,h表示hidden state

使用ABLSTM 实现 human activity

使用ABLSTM 实现 human activity

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

LSTM

使用ABLSTM 实现 human activity

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都可以使用双向的的机构。

使用ABLSTM 实现 human activity

因此LSTM有两个传输状态:使用ABLSTM 实现 human activity使用ABLSTM 实现 human activity,还有3个门控信号

使用ABLSTM 实现 human activity   z不是门控信号,而是参考使用ABLSTM 实现 human activity值,在使用ABLSTM 实现 human activity更新时会用上它

使用ABLSTM 实现 human activity  更新门控信号,对输入使用ABLSTM 实现 human activity进行选择记忆

使用ABLSTM 实现 human activity  忘记门控,控制上一个状态的使用ABLSTM 实现 human activity有哪些需要忘记

使用ABLSTM 实现 human activity   输出门控

使用ABLSTM 实现 human activity是Hadamard Product,也就是矩阵中对应元素相乘。

GRU

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

使用ABLSTM 实现 human activity

在GUR中使用ABLSTM 实现 human activity,而且只有两个门控信号

使用ABLSTM 实现 human activity

使用ABLSTM 实现 human activity   相关门控

使用ABLSTM 实现 human activity   更新门控

使用ABLSTM 实现 human activity  z大多数都是0或者1,z=0表示cell memory不更新,反之则更新。

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

Attention机制

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

使用ABLSTM 实现 human activity

 

使用ABLSTM 实现 human activity=amount of attention 使用ABLSTM 实现 human activity should pay to 使用ABLSTM 实现 human activity(encode中的隐藏单元)     使用ABLSTM 实现 human activity

使用ABLSTM 实现 human activity,如果是双向结构使用ABLSTM 实现 human activity

现在还有一个问题是使用ABLSTM 实现 human activity是怎么来的?

实际上,使用ABLSTM 实现 human activity是通过模型学习出来的,它与decoder的i-1阶段的隐藏状态和encoder的j阶段的隐藏状态有关

使用ABLSTM 实现 human activity

使用ABLSTM 实现 human activity  

论文中提出来的ABLSTM

使用ABLSTM 实现 human activity

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

上一篇:JS 数组去重 学习日志#1


下一篇:Javascript中apply、call、bind