概述
一:概述
二:时间序列
三:RNN
四:LSTM
一:概述
1、什么叫循环?
循环神经网络是一种不同于ResNet,VGG的网络结构,个人理解最大的特点就是:它通过权值共享,极大的减少了权值的参数量。举个例子那ResNet18做个练习往往就可以抛出成千上万的权值w,但在循环神经网络w的值也就那么几个然后每层都用他们这几个,构成了循环。
2 、 循环神经网络主要作用场景?
主要用于语言模型,文本生成,机器翻译。他们的一个特点就是数据是有序列可循的,举个例子:在进行图片识别的识别,你每次都拿到好几张图片,他们直接没啥关系,你先拿到一张狗和你先拿到一张猫并不会对模型产生什么大影响。但语言不一样,你现在读消息是从左往右,古代还有从右往左的那,这就是规定的序列。
ok!在学习循环神经网络前先把一个基础知识补充一下:时间序列
二:时间序列与嵌入层Embedding
1、时间序列:
在上面我们提到了,语言是有顺序的,那么我们如何表达这些顺序那?有的人可能会觉得一句话从左往右,那么这是空间序列啊,emm一定程度上来说,好像也有点道理。但。。不太好比如万一有人从右往左写那?所以我们按照时间序列,我不管你怎么来,反正我先读到的但肯定是头,最后读的是尾。
所以在使用循环神经网络一定要明确,我们是从时间的延展上看待数据
那么我们如何去存储这些句子中的单词那?最先想到的是one_hot,但是我们的数据集至少也有上万的单词,那么表示一个单词可能会有上万个0表不是,造成了一个极大的稀疏矩阵
2、Embedding:
于是深度学习给我们提供了一解决的方法“”嵌入层Embedding, 然而当我去了解Embedding的时候发现,官网的解释如下
嵌入层将正整数(下标)转换为具有固定大小的向量
啊?这,,,这都啥啊!什么叫做正整数的下标,怎么还有正数,和向量,不是探讨单词存储吗?
给举个例子,嵌入层实际上就是通过高纬度表示低纬度,这样就可以节省很多空间:举个例子给你一个坐标轴x,单位为1,你在10的空间之中就能表示十个数字,但在给你一个单位1长度10的y轴变成2维度,你就能保存100个,再给你z轴。。。。
实际操作中我们可以对单词进行编号,用一个多位的数组表示他 比如same对应的为【15,24,32,45,12】然后我们就可以通过这个坐标去找到它
还一个好处就是:在实际训练中每个嵌入的向量都会得到更新。更新的目的是将由相关性的单词放到一起,在可视化的,我们可以更好的了解词语之间的关系(不仅仅是词语,任何能通过嵌入层 Embedding 转换成向量的内容都可以这样做)
3、Embedding 层的常用 参数
最后
以上就是粗犷凉面为你收集整理的深度学习TensorFlow2,循环神经网络(RNN,LSTM)系列知识一:概述二:时间序列与嵌入层Embedding三:RNN:四:LSTM:的全部内容,希望文章能够帮你解决深度学习TensorFlow2,循环神经网络(RNN,LSTM)系列知识一:概述二:时间序列与嵌入层Embedding三:RNN:四:LSTM:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复