zoukankan      html  css  js  c++  java
  • 循环神经网络(Recurrent Neural Network)

    传统的神经网络模型,隐藏层的节点之间是无连接的,如下图所示。

     而循环神经网络隐藏层的节点之间有连接,主要用于对序列数据进行分类、预测等处理。有连接意味着需要接受信息,这种网络通常用来对序列数据进行处理。

    隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出,即网络会对之前时刻的信息进行记忆,并应用于当前的输出计算中。RNN可以处理的序列结构有以下几种:

     第一个多对多,例如词性标注,输入为一句话,输出为各个词对应的词性。

    第二个为多对一,例如一段话的情感标注。

    第三个多对多,为非同步的序列输入和输出,例如在机器翻译中一种语言翻译为另外一种语言进行输出。

    第四个为一对多,例如输入为一张图片,生成并输出一段文字,这段文字用来描述图片的内容。

    最基本的RNN结构如下图:

     从左往右看隐藏层是三层,可以折叠表示,带圆的箭头表示隐藏层的自连接。

     

    基本RNN的计算过程:

     RNN的参数共享

    在传统的神经网络中,每一层的参数是不共享的。而在RNN中,每一步都共享参数U,V,W,即在计算输出Ot+1时也会用到参数U,V,W,且这些参数的值和计算输出Ot时是相同的,即图中的三个U,三个V,三个W的值都是相同的。共享参数说明RNN每一步都在做相同的事,只不过是输入不同而已。因此大大降低了网络中需要学习的参数,从而提高效率。

  • 相关阅读:
    leetcode 47 Permutations II ----- java
    leetcode 46 Permutations ----- java
    leetcode 45 Jump Game II ---- java
    leetcode 44 Wildcard Matching ----java
    leetcode 43 Multiply Strings ----java
    leetcode 42 Trapping Rain Water ---java
    leetcode 41 First Missing Positive ---java
    leetcode 40 Combination Sum II --- java
    leetcode 39 Combination Sum --- java
    java 上下文切换
  • 原文地址:https://www.cnblogs.com/xyzluck/p/12095393.html
Copyright © 2011-2022 走看看