深度学习TensorFlow2,循环神经网络(RNN,LSTM)系列知识

一:概述

二:时间序列

三: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 层的常用 参数

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值