lstm是rnn,lstm是rnn中的一种吗
1、RNN
简单神经网络和卷积神经网络都有一个主要特点,就是不具备记忆能力,也就是说它们都是单独处理每一个输入,但是前后输入之间没有关系。例如,如果需要处理数据点或时间序列,则需要同时向网络显示整个时间序列,即将时间序列转换为单个数据点输入。采用这种输入方式的网络称为前馈神经网络(feddforwardnetwork)。
为了使这个过程更容易理解,我们使用简单的循环逻辑来实现RNN的正向传播。
#简单RNN实现Numpy实现
importnumpyasnp
时间步长=100
input_feature=32
output_fearture=64
Inputs=np.random.random((时间步长,input _ feature)) #生成一个100,32形状的矩阵
打印(输入)
state _ t=NP . zeros((output _ fearture,))#生成64个全0的数字。
打印(状态t)
w=np.random.random((输出特征,输入特征))
u=np.random.random((输出_特征,输出_特征))
b=NP . random . random((output _ feature,))
连续输出=[]
forinput _ tininputs:
输出_ t=NP。tanh (NP。dot (w,input _ t) NP。dot (u,state _ t) b) # NP。点表示数组点积。
successive _ outputs . append(output _ t)
状态t=输出t
最终输出序列=np.stack(连续输出,轴=0)
打印(最终输出序列)2、LSTM
从理论上讲,RNN应该能够记住过去看过的信息,但实际上它不可能学习到长期存在的信息,主要是因为梯度的消失。因此,研究人员设计了LSTM(longshort-termmemory),称为长期和短期记忆。
与RNN相比,LSTM具有跨域携带信息的多时间步长(单元状态C)。这一步类似于传送带,其运行方向平行于你正在加工的序列方向。序列中的信息可以随时跳到传送带上,然后被传送带送到更远的时间步,如果需要,还可以原封不动地跳回来。这是LSTM的原则。
这是python中对RNN和LSTM的基本介绍。希望能帮到你!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。