zoukankan      html  css  js  c++  java
  • 哪种神经网络做回归比较好,LSTM还是RNN

      循环神经网络(RNN),长期和短期记忆(LSTM),这些红色和紫色的神经网络——,是时候放弃它们了!
      LSTM和RNN是在20世纪80年代和90年代发明的,并在2014年复活。在接下来的几年里,他们成为解决序列学习和序列转换的方法(seq2seq),这也使语音到文本的识别和Siri,Cortana,谷歌语音助手,Alexa的能力得到惊人的提高。
      此外,不要忘记人工智能机器翻译,包括将文档翻译成不同的语言,或者神经网络机器翻译也可以将图像翻译成文本、文本翻译成图像、字幕、视频等。
      在接下来的几年里,ResNet出现了。ResNet是一个剩余网络,这意味着要训练更深层次的模型。2016年,微软亚洲研究院的一组研究人员凭借惊人的152层深度残差网络,在ImageNet图像识别挑战赛中以绝对优势赢得了图像分类、图像定位和图像检测三大项目的冠军。之后,注意力模型出现了。
      虽然仅仅过去了两年,但今天我们可以肯定地说:
      "停止使用RNN和LSTM,他们不再工作了!"
      让我们用事实说话。谷歌、Facebook和Salesforce等公司越来越多地使用基于注意力的网络。
      所有这些公司都用基于注意力的模式取代了RNN及其变种,而这只是开始。与基于注意力的模式相比,RNN需要更多的资源来训练和运行。RNN的生命不长。
      为什么?
      请记住,随着时间的推移,RNN和LSTM及其衍生品主要是按顺序处理的。请参见下图中的水平箭头:
      RNN的顺序处理
      水平箭头表示长期信息需要在进入当前处理单元之前按顺序遍历所有单元。这意味着它可以很容易地成倍增加
      n .
      跳过3-4步来追踪信息比跳过100步要简单得多!
      这种架构非常类似于神经网络图灵机,但它允许神经网络通过注意力来决定从内存中读取什么。这意味着一个实际的神经网络将决定哪些过去的向量对未来的决策是重要的。
      但是把它存储在内存里怎么样?上述架构将所有以前的表示存储在内存中,这与神经网络图灵机(NTM)不同。这可能非常低效:考虑在视频——中存储每一帧的表示。在大多数情况下,表示向量不会一帧一帧地改变,所以我们确实存储了太多相同的内容!我们可以做的是增加另一个单元来防止相关数据被存储。例如,与先前存储的向量过于相似的向量不会被存储。但这真的只是一个破解方法。最好的方法是让应用程序来指导应该保存还是不保存哪些向量。这是当前研究的焦点。
      看到这么多公司仍然使用RNN/LSTM进行语音到文本的转换,我真的很惊讶。许多人不知道这些网络有多低效和不可扩展。
      训练RNN和LSTM的噩梦
      RNN和LSTM的培训很困难,因为他们需要存储带宽绑定计算,这是硬件设计人员最糟糕的噩梦,并最终限制了神经网络解决方案的适用性。简而言之,LSTM要求每个单元4个线性层(MLP层)在每个时间步长序列中运行。
      线性层需要大量的存储带宽来计算。事实上,他们不能使用许多计算单元,通常是因为系统没有足够的存储带宽来满足计算单元。此外,添加更多的计算单元很容易,但添加更多的内存带宽却很困难(请注意,芯片上有足够的线路,从处理器到存储的长线路等)。
      因此,RNN/LSTM及其变体不是硬件加速的最佳匹配。我们以前在这里讨论过这个问题。解决方案将在存储设备中计算,就像我们在FWDNXT上工作一样。
      简而言之,放弃RNN。注意力模型是你真正需要的一切!
    如果您有互联网问题,也可以咨询我,谢谢!如果你也想一起学习人工智能,欢迎留言交流。

  • 相关阅读:
    golang动态加载原生代码思路
    boltdb的实现和改进
    如何保证数据掉电不损坏?
    msgpack库的神奇用法
    消息推送与同步协议的思考
    cassandra的gc调优
    tcp链接断开的探测
    加速和监控国际网络
    轻松逃脱某防火墙对ss的探测
    java文件操作之war压缩解压
  • 原文地址:https://www.cnblogs.com/phploser/p/12268337.html
Copyright © 2011-2022 走看看