欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python人工智能深度学习RNN模型结构流程

程序员文章站 2022-03-12 10:48:48
目录1.rnn基础模型2.lstm3.流程结构1.rnn基础模型rnn主要特点是,在dnn隐藏层的输出内容会被存储,并且可以作为输入给到下一个神经元。如下图所示,当“台北”这个词被输入的时候,前面的词...

1.rnn基础模型

rnn主要特点是,在dnn隐藏层的输出内容会被存储,并且可以作为输入给到下一个神经元。

如下图所示,当“台北”这个词被输入的时候,前面的词有可能是“离开“,有可能是”到达“,如果把上一次输入的”离开“,所得的隐藏层内容,输入给下一层,这样就有可能区分开是”离开台北“,还是”到达台北“。

Python人工智能深度学习RNN模型结构流程

如果隐藏层存储的内容并给下次使用,叫做elman network

如果最终的输出内容给下次使用,叫做jordan network

双向rnn:从正向输入的内容,得到的存储内容,以及反向输入内容得到的存储内容,同时输入给模型。

Python人工智能深度学习RNN模型结构流程

2.lstm

long short-term memory,其实当人们说到使用rnn的时候,通常都是使用的lstm。对于lstm的每一个单元,除了输入的数据之外,还有另外三个“门”来控制输入,输出,存储。如下图所示,如此一来,每一个lstm单元共有4个输入,以及1个输出。

Python人工智能深度学习RNN模型结构流程

这些控制的门都是向量,并且输入之后都需要进行一个sigmoid函数转换,因此输入和门进行计算之后,得到的输出是位于0-1之间的数据,这样就可以实现对输入、输出、存储与否的把控。而门的参数都需要由rnn学习得到。

3.流程结构

如下图,假如输入的是z,经过函数转换,得到g(z),输入门的数据z(i),经过一个sigmoid函数转换,将其相乘,得到g(z) * f(z(i))

同样的,当控制存储数的门得到的结果是1的时候,那么以前的数据就会和1相乘,并于前面算的结果相加,这样就实现了对上次存储数据的利用。是0的时候就会删除上次的数据,实现存储数据的格式化。

最终得到的输出是h(c),但如果输出门输入z0后计算的结果是0,则该输出就无法输出,是1的时候才可以输出。

Python人工智能深度学习RNN模型结构流程

lstm和dnn的区别,就是把神经元换成了lstm单元,输入的数据乘上权重之后,来控制各个门。因此参数变成平常dnn参数的4倍。

Python人工智能深度学习RNN模型结构流程

将整个流程简化来表示,如下。

Python人工智能深度学习RNN模型结构流程

实际中,lstm不只是一个,它是多个组合,并且每一个的输出,以及存储的内容也会添加到下一次的输入当中。如下图所示:

Python人工智能深度学习RNN模型结构流程

以上便是lstm的整体结构。

python人工智能深度学习rnn模型流程结构的详细内容今天就为大家讲解到这里了,更多关于rnn模型流程结构的资料请关注其它相关文章!