BasicRecurrentLayer

BasicRecurrentLayer[n]

表示可培训的循环层,它接受向量序列并产生大小为 n 的向量序列.

BasicRecurrentLayer[n,opts]

包括初始权重和其他参数的选项.

更多信息和选项

  • BasicRecurrentLayer[n] 表示一个网络,接受表示向量序列的输入矩阵并输出相同长度的序列.
  • 输入序列的每个元素是一个大小为 k 的向量,输出序列的每个元素是一个大小为 n 的向量.
  • 通常从 NetGraphNetChain 等中自动推断得出输入向量的大小 k.
  • BasicRecurrentLayer[n] 所表示的网络的输入端口和输出端口为:
  • "Input"大小为 k 的向量组成的序列
    "Output"大小为 n 的向量组成的序列
  • 给定输入序列 {x1,x2,,xT}BasicRecurrentLayer 输出状态序列 {s1,s2,,sT},其中 st=Tanh[wi.xt+ws.st-1+b].
  • BasicRecurrentLayer[n] 有一个状态端口 "State",它是一个大小为 n 的向量.
  • NetGraph 中,形式为 src->NetPort[layer,"State"] 的连接可用于为 BasicRecurrentLayer 的状态提供初始值,在循环关系中对应于 s0. 默认初始值是零向量.
  • NetGraph 中,形式为 NetPort[layer,"State"]->dst 的连接可用于获取 BasicRecurrentLayer 状态的最终值,在循环关系中对应于 sT.
  • NetStateObject 可用于创建一个会记住 BasicRecurrentLayer(在神经网络用于输入时更新)状态值得神经网络.
  • 操作于大小为 k 的向量上的初始化的 BasicRecurrentLayer[] 包含以下可培训的数组:
  • "InputWeights"Wx大小为 n×k 的矩阵
    "StateWeights"Ws大小为 n×n 的矩阵
    "Biases"b大小为 n 的向量
  • BasicRecurrentLayer[n,opts] 中,可使用形式为 "array"->value 的规则对可培训数组给出初始值.
  • 可包括以下训练参数:
  • "Dropout" Nonedropout 规则,其中,根据概率将单元设为零
    LearningRateMultipliersAutomatic可训练数组的学习率乘子
  • 指定 "Dropout"->None 在培训时禁用 Dropout.
  • 指定 "Dropout"->p 使用自动选择的 Dropout 方法让 Dropout 概率为 p.
  • 指定 "Dropout"->{"method1"->p1,"method2"->p2,} 可被用于组合带有相应退出概率的退出的指定方法. 可能的方法包括:
  • "VariationalWeights"将 dropout 应用于加权矩阵间的 recurrent 连接(默认)
    "VariationalInput"将 dropout 应用于输入的 gate contributions,在每个序列步骤中使用相同的单位模式
    "VariationalState"将 dropout 应用于前一状态的 gate contributions,在每个序列步骤中使用同样的单位模式
    "StateUpdate"在添加到前一个状态之前,将 dropout 应用于状态更新向量,在每个序列步骤中使用不同的单位模式
  • dropout 方法 "VariationalInput""VariationalState" 基于 Gal 等人于 2016 年提出的方法,而 "StateUpdate" 基于 Semeniuta 等人于 2016 年提出的方法,"VariationalWeights" 基于 Merity 等人于 2017 年提出的方法.
  • BasicRecurrentLayer[n,"Input"->shape] 允许指定输入的形式. shape 的可能的形式有:
  • NetEncoder[]编码器产生向量序列
    {len,k}长度为 klen 向量序列
    {len,Automatic}len 向量序列,其长度是被推断的
    {"Varying",k}向量的不同数目,每个长度为 k
    {"Varying",Automatic}向量的不同数目,每个长度为被推断的长度
  • 如果给出 NumericArray 作为输入,那么输出也将是一个 NumericArray.
  • Options[BasicRecurrentLayer] 给出构建网络层的默认选项列表. Options[BasicRecurrentLayer[]] 给出在某些数据上运行网络层的默认选项列表.
  • Information[BasicRecurrentLayer[]] 给出关于网络层的报告.
  • Information[BasicRecurrentLayer[],prop] 给出 BasicRecurrentLayer[] 的属性 prop 的值. 可能的属性NetGraph 相同.

范例

打开所有单元关闭所有单元

基本范例  (2)

创建一个 BasicRecurrentLayer,产生长度为 3 的向量序列:

创建一个随机初始化的 BasicRecurrentLayer,它接受长度为 2 的向量并产生长度为 3 的向量序列:

对输入序列应用该层:

范围  (4)

Ports  (4)

创建一个随机初始化的 BasicRecurrentLayer,它接受字符串并产生长度为 2 的向量序列:

对输入字符串应用该层:

把层应用于一批输入:

创建一个随机初始化的神经网络并接受长度为 2 的向量序列,产生一长度为 3 的向量:

把该层应用于输入:

把该层应用于一批输入:

创建一个 NetGraph,它允许设置 BasicRecurrentLayer 的初始状态:

创建一个 NetGraph,它允许获取 BasicRecurrentLayer 最后状态:

终态是输出序列的最后一个元素:

选项  (2)

"Dropout"  (2)

创建一个 BasicRecurrentLayer,其中指定退出的方法:

创建一个带有指定退出概率的随机初始化的 BasicRecurrentLayer

在向量序列上计算该层:

在计算过程中,Dropout 没有影响:

使用 NetEvaluationMode 强迫退出的培训行为:

同样输入的多个计算会给出不同的结果:

应用  (2)

创建包含字符串的培训数据,它包含两位数相加和对应的数值解:

使用堆栈的 BasicRecurrentLayer 层创建网络,它读取输入字符串并预测数值结果:

培训网络:

把培训的网络应用于输入的列表:

创建基于包含 x 和 y 的,或者比较 x 和 y 数目的 Less, GreaterEqual 的培训数据. 培训数据包含所有可能的句子长度不超过 8:

创建一个包含 BasicRecurrentLayer 的网络,读取输入字符串并预测 LessGreaterEqual 之一:

培训网络:

把培训网络应用于输入列表中:

度量整个培训集的精确度:

属性和关系  (1)

NetStateObject 可用于创建记住 BasicRecurrentLayer 的神经网络:

每次计算会修改存于 NetStateObject 的状态:

Wolfram Research (2017),BasicRecurrentLayer,Wolfram 语言函数,https://reference.wolfram.com/language/ref/BasicRecurrentLayer.html (更新于 2020 年).

文本

Wolfram Research (2017),BasicRecurrentLayer,Wolfram 语言函数,https://reference.wolfram.com/language/ref/BasicRecurrentLayer.html (更新于 2020 年).

CMS

Wolfram 语言. 2017. "BasicRecurrentLayer." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2020. https://reference.wolfram.com/language/ref/BasicRecurrentLayer.html.

APA

Wolfram 语言. (2017). BasicRecurrentLayer. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/BasicRecurrentLayer.html 年

BibTeX

@misc{reference.wolfram_2024_basicrecurrentlayer, author="Wolfram Research", title="{BasicRecurrentLayer}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/BasicRecurrentLayer.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_basicrecurrentlayer, organization={Wolfram Research}, title={BasicRecurrentLayer}, year={2020}, url={https://reference.wolfram.com/language/ref/BasicRecurrentLayer.html}, note=[Accessed: 22-November-2024 ]}