LSTM调研

元学习论文总结||小样本学习论文总结

2017-2019年计算机视觉顶会文章收录 AAAI2017-2019 CVPR2017-2019 ECCV2018 ICCV2017-2019 ICLR2017-2019 NIPS2017-2019

这里有别人总结的教程资源:https://blog.csdn.net/jizhidexiaoming/article/details/80930287

一:理解LSTM

摘要:

  • 传统的网络不能基于上一帧的理解,来解释当前帧。RNN解决了这个问题
  • LSTM是十分特别的RNN,能起到非常好的效果
  • RNN能解决间隙小的前后联系,LSTM能加长间隙
  • LSTM记住长时间的信息实际上是他们的默认行为,而不是他们要学习的东西!
  • 所有递归神经网络都具有神经网络重复模块链的形式。在标准的rnns中,这个重复模块将有一个非常简单的结构,例如一个tanh层。

LSTM的核心思想:

  • LSTM增减数据由“门”控制,门由sigmoid(输出0和1)以及点乘运算构成;一个LSTM单元由三个门组成,来控制LSTM核心
    • 第一步是决定从核心中丢弃什么信息(forget gate layer.)gate尤其是forget gate的作用与residual类似,给较早时刻的单词加了一条通路,可以更好的把较早时刻的单词信息传到当前时刻,也有利于梯度的传播~当forget gate越接近0时,意味着对历史信息(t-1时刻)信息的丢失;而forget gate越接近于1,意味着对历史信息的更多保留。
    • 第二步时决定往核心中添加新信息(input gate layer),包括sigmoid更新信息以及tanh添加新信息,
    • 第三步,输出

二:LSTM教程

LSTM教程,源码,论文,学习思路:https://blog.csdn.net/vbskj/article/details/71713204

 

三:cnn与rnn的区别与联系

RNN变体调研:https://blog.csdn.net/zhaojc1995/article/details/80572098

https://www.cnblogs.com/softzrp/p/6434282.html

  • CNN对于输入数据的维度约束是比较严重的,比如用CNN训练一个图像识别的model,训练的图片像素是48*48的,那么在预测的时候,也需要把所有的预测图片转成48*48。这个约束在图像识别方面可能表现的并不是那么明显,人们可以说:大不了预测的时候我做个图片大小转换不就得了?我们再思考另一个场景,比如用CNN去做一个智能问答系统,CNN会需要所有的问答数据都是固定的长度,这就很可怕了,这种模型会让问答变成对对子,必须每句话长短固定。而RNN没有这种约束。
  • RNN更多的考虑了神经元之间的联系,比如我们训练一个翻译系统,那么对于一个短语的翻译一定要考虑前因后果,这就需要模型对于数据输入的前后因素都要考虑,CNN并不具备这样的特点。
  • RNN可以看成一个在时间上传递的神经网络,它的深度是时间的长度。正如我们上面所说,“梯度消失”现象又要出现了,只不过这次发生在时间轴上。对于t时刻来说,它产生的梯度在时间轴上向历史传播几层之后就消失了,根本就无法影响太遥远的过去。因此,之前说“所有历史”共同作用只是理想的情况,在实际中,这种影响也就只能维持若干个时间戳。为了解决时间上的梯度消失,机器学习领域发展出了长短时记忆单元。
  • RNN每一刻的输出都是带着之前输出值加权之后的结果。

公式表示t时刻的输出:(https://blog.csdn.net/weixin_35227692/article/details/79223536

s_t=f(Ux_t + Ws_{t-1})

st为当前时刻的输出,xt为当前时刻的输入,U为当前时刻输入值的加权计算,st-1为上一时刻的输出,W为上一时刻输出的权重。

通过这样的计算方式,我们可以认为,当前的结果包含之前的结果,或者说受到之前结果的影响。

  • one to one:表示的是CNN网络的场景,从固定的输入到固定的输出(参考

  • one to many:RNN的场景,序列输出,有点像看图说话,例如固定了输入的图片,然后输出一段序列描述这个图的意义

  • many to one:RNN的场景,序列输入,比如我们做语义情感分析,输入一串不定长度的话,返回情绪

  • many to many:RNN的场景,常见的sequence to sequence,比如之前的一个文章到的,通过周杰伦的歌词数据,模仿写出一首周杰伦风格的歌词,这种场景的输入和输出的长度都是不定的。

 

四:前馈神经网络与RNN之间的区别

https://baijiahao.baidu.com/s?id=1593640393562919434&wfr=spider&for=pc

  • RNN可以被看作是神经网络的一个序列。  
  • LSTM的单元被用作一个RNN层的构建单元,该RNN层通常被称为LSTM网络。
  • LSTM使RNN能够长时间记住他们的输入。这是因为LSTM将他们的信息包含在内存中,这很像计算机的内存,因为LSTM可以从内存读取、写入和删除信息。
  • LSTM中的门是模拟的,采用S形的形式,意思是它们的范围从0到1,它们是模拟的,这使得它们可以反向传播。消失梯度的问题可以通过LSTM来解决,因为它可以保持梯度足够陡峭,因此训练相对较短,准确度较高。
  • 当时间间隔不断增大时,RNN 会丧失学习到连接如此远的信息的能力。

五:用python的keras框架实现LSTM字符序列的预测

https://blog.csdn.net/zwqjoy/article/details/80493341

六:[深入浅出] LSTM神经网络(向前,向后都给出了):https://blog.csdn.net/m0epnwstyk4/article/details/79124800

  • 原始 RNN 的隐藏层只有一个状态,即h,它对于短期的输入非常敏感。再增加一个状态,即c,让它来保存长期的状态,称为单元状态(cell state)。

  • 640?wx_fmt=png&wxfrom=5&wx_lazy=1 展开时间序列0?wx_fmt=png

 

  • 怎样控制长期状态 c ?方法是:使用三个控制开关,遗忘门、输入门、输出门

  • 0?wx_fmt=png

  • 门gate 实际上就是一层全连接层,输入是一个向量,输出是一个 0到1 之间的实数向量。

  • 方法:用门的输出向量按元素乘以我们需要控制的那个向量
    原理:门的输出是 0到1 之间的实数向量,
    当门输出为 0 时,任何向量与之相乘都会得到 0 向量,这就相当于什么都不能通过;
    输出为 1 时,任何向量与之相乘都不会有任何改变,这就相当于什么都可以通过。

  • LSTM 的前向计算:门控制h和c

  • 反向计算:https://blog.csdn.net/m0epnwstyk4/article/details/79124800

  • 文本生成实验:https://github.com/keras-team/keras/blob/master/examples/lstm_text_generation.py

六:循环神经网络

  • 全连接神经网络和卷积神经网络,以及它们的训练和使用。他们都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。
  • 来看看W是什么。循环神经网络隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵 W就是隐藏层上一次的值作为这一次的输入的权重。
  • 循环层可以看作:
  • 隐藏层要保存值
  • 循环神经网络的训练算法:BPTT:

    BPTT算法是针对循环层的训练算法,它的基本原理和BP算法是一样的,也包含同样的三个步骤:前向计算每个神经元的输出值;反向计算每个神经元的误差项值,它是误差函数E对神经元j的加权输入的偏导数;最后再用随机梯度下降算法更新权重。计算每个权重的梯度。

  • 训练的公式介绍。最终的梯度是各个时刻的梯度之和。
  • RNN的梯度爆炸和消失问题:对应的误差项的值增长或缩小的非常快。梯度爆炸更容易处理一些。因为梯度爆炸的时候,我们的程序会收到NaN错误。我们也可以设置一个梯度阈值,当梯度超过这个阈值的时候可以直接截取。梯度消失更难检测,而且也更难处理一些

  • 数字,词语的计算机表示:向量化:建立一个包含所有词的词典,每个词在词典里面有一个唯一的编号;任意一个词都可以用一个N维的one-hot向量来表示。其中,N是词典中包含的词的个数。假设一个词在词典中的编号是i,v是表示这个词的向量,是向量的第j个元素,则:

  • ,向量稀疏,要降维

七:LSTM网络:https://zybuluo.com/hanbingtao/note/581764

  • LSTM的关键,就是怎样控制长期状态c

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值