zoukankan      html  css  js  c++  java
  • 人工智能算法综述(二) RNN and LSTM


    接上一篇 :AI算法综述 (一)

    RNN:循环神经网络 and LSTM 长短期记忆网络

    LSTM就是一个RNN网络,外部的结构是一样的,主要是单元的内在结构不同。或者说LSTM是为了让RNN能够更好的处理NLP(自然语言问题)做的一些内部改造。

    我推荐这篇文章理解LSTM :https://www.jianshu.com/p/9dc9f41f0b29

    可能会比我自己说的更好,我这里就简单说一下,不涉及太多技术细节。

    我们先回顾一下基本的神经网络结构图

    整体结构就是 输入层+N层隐层+输出层。

    数据的流向就是由左往右,输入X1,X2,X3 会分发给隐层通过这些连线传递过去,然后在节点计算之后有一个输出,继续分发给下一层。

    那么单独拎一个节点放大来看的话就是这样的。

    Z就是某中间节点。  这就是标准的前馈神经网络的结构。

    这种结构在处理某一类问题的时候非常无力,就是比方说当前的识别结果,需要依赖上一次的识别结果。

    具体的场景就是自然语言的翻译,翻译需要结合上下文语境才能更精确的翻译出来。而不能像某些机译一样,一句一句单独翻译。

    那么RNN 所谓的循环神经网络就是在这中间节点做了一个改造。

    这个改造就是,把中间节点的输出拷贝一份出来,然后混合着下一次的输入再做一次计算(激活函数)得出结果,反复如是,直到没有输入。

     那LSTM跟这个RNN有什么区别呢?

    RNN当然也不是万能的,其中也存在各种利弊。

    然后有个缺陷,就是假如当前 T 结果依赖上一次 (就是  T -1) 的结果,这问题不大,那如果 依赖 T-2 或者更远一点 T-10 的结果呢?

    然后大家看回那个结构图,h20 的结果如果依赖 X1  那么中间的路途遥远,原输入经过了很多次计算才到H20 损耗非常大,变数更大。

    而且需要依赖上下文语境的情况在自然语言处理中还普遍存在。所以……

    当当当……

    LSTM应运而生,为了世界和平而生。

    我们先看一下LSTM跟常规的RNN区别。

    主要是绿色块里面的变化,外部结构是一样的。

    这个内在结构长的很像电路板,可以把这个电路板分为3个部件。

    分别是“遗忘门” “输入门” “输出门”

    具体这个结构怎么实现的这3个门这里不细说,上面那个地址有详细说明,爱看公式的童鞋可以移步。

    这里我概括性的讲为啥要有遗忘门跟输入门、输出门

    接我们刚才在RNN那里讲的,如果依赖的结果离的很远,比如说T 依赖 T-10 的输出结果。中间隔了一条银河。

    你想要T么?先忘掉T-11 T-12…… 之前的所有信息,然后输入T-10,然后 忘掉 T-9 T-8 T-7 …… 然后把 T-10 的输入 通过输出门得出结果。

    那么遗忘门的摊开之后的参数就是 从T-12 到 T 就是:

    T-11 T-10 T-9 T-8 T-7 T-6 T-5 T-4 T-3 T-2 T-1 T-0
    0 1 0 0 0 0 0 0 0 0 0 0

    输入门就是:

    T-11 T-10 T-9 T-8 T-7 T-6 T-5 T-4 T-3 T-2 T-1 T-0
    0 0 0 0 0 0 0 0 0 0 0 1

    RNN的训练过程就是根据标识好的数据,训练调整这些参数到符合这些数据的规律。

    好了,RNN就讲到这里,感谢各位阅读!

  • 相关阅读:
    div错位解决IE6、IE7、IE8样式不兼容问题
    DIV背景半透明文字不半透明的样式
    Div 自适应屏幕大小
    mysql 设置外键 四大属性 CASCADE SET NULL NO ACTION RESTRICT 理解
    msyql 主从配置
    全国最新区划数据-四级-省-市-县(区)-乡(镇)
    ThinkPHP3.2 伪静态配置
    色彩网站
    Javascript php 异常捕获
    jQuery 操作大全
  • 原文地址:https://www.cnblogs.com/7rhythm/p/8797572.html
Copyright © 2011-2022 走看看