欢迎来到代码驿站!

Python代码

当前位置:首页 > 软件编程 > Python代码

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

时间:2022-11-06 09:22:33|栏目:Python代码|点击:

1.RNN基础模型

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

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

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

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

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

2.LSTM

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

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

3.流程结构

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

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

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

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

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

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

以上便是LSTM的整体结构。

上一篇:Python实现破解猜数游戏算法示例

栏    目:Python代码

下一篇:python中的netCDF4批量处理NC文件的操作方法

本文标题:Python人工智能深度学习RNN模型结构流程

本文地址:http://www.codeinn.net/misctech/218330.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有