首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

深度学习与FPGA更新

深度学习与FPGA更新

在FPGA上运行LSTM神经网络LSTM简介传统的RNN由一个三层的网络:输入层
i
t


,隐藏层
h
t


,输出层
y

t


;其中
h
t


的信息作用到下一时刻的输入,这样的结构简单的模仿了人脑的记忆功能,图3是其拓扑图:

只有一个隐藏层方程:


h
t
=tanh(W

x
x
t
+W

h
h
t
+b)



其中
W

x



W

h


分别是输入和隐藏层的权重,
b

是偏置。
tanh 是激活函数:

tanh(x)=e
x
e
x

x
x
+x
x







LSTM [9]是RNN(递归神经网络)的一种,在处理时序数据得到了最广泛的应用,它由门控制信息一共有三个个门:输入门
i
t


,遗忘门
f

t


,输出门
o
t


,另外还有隐藏层
h
t


和记忆细胞
c
t


。图4是其拓扑图:

输入门控制了某一时刻的输入;遗忘门通过作用到上一时刻记忆细胞上,控制了上一时刻的数据流要流多少进入下一时刻;记忆细胞是由上一时刻的输入和这一时刻的候选输入共同决定的;输出门作用到记忆细胞上,决定了这一时刻的隐藏层信息,并且送到下一层神经网络上。全部方程如下:


i
t
=σ
(W

xi
x
t
+W

hi
h
t
+b
i
)




f

t
=σ
(W

xf

x
t
+W

hf

h
t
+b
f

)




o
t
=σ
(W

xo
x
t
+W

ho
h
t
+b
o
)




c
^
=tanh(W

xc
x
t
+W

hc
h
t
+b
c
)




c
t
=f

t
c
t1
+i
t
c
^





h
t
=o
t
tanh(c
t
)



其中
W


代表各自的权重,
b

代表各自的偏置,
σ


是logistic sigmoid 函数:

σ
(x)=1
1+e
x





返回列表