NormalizationLayer

NormalizationLayer[]

表示一个可训练的网络层,对输入数据的第二维及之后的维度进行正规化,并对第一维的每个分量进行单独缩放和设置偏差.

NormalizationLayer[aggregationlevels]

对指定聚合层级的数据进行正规化处理,并对其余级别应用学习到的缩放和偏差方法.

NormalizationLayer[aggregationlevels,scalinglevels]

在指定的缩放等级上应用学到的缩放和偏差.

更多信息和选项

  • NormalizationLayer is used to perform data normalization, followed by a learnable affine transformation.
  • aggregationlevels 决定对输入的哪些层级进行聚合,以计算平均值和方差统计量,而 scalinglevels 则决定对输入的哪些层级应用特定的分量缩放和偏差.
  • aggregationlevels 的可能值有:
  • a仅有聚合层级 a
    a1;;a2聚合层级 a1a2
    {a1,}聚合层级 ai
  • 默认聚合层级为 2;;All.
  • scalinglevels 的可能值为:
  • "Complement"除聚合层级外的所有层级(默认值)
    "Same"与聚合层级相同的层级
    s仅有层级 s
    s1;;s2层级 s1s2
    {s1,}层级 si
  • 可包含以下可选参数:
  • "Epsilon" 0.001稳定性参数
    LearningRateMultipliersAutomatic缩放与/或偏差参数的学习率乘子
    "Unbiased" False是否用长度减一(而不是长度)来正规化标准差
  • 使用聚合层级 {a1,,an},通过设置 "GroupNumber"{g1,,gn}aj 层级级别会被拆分成 gj 组,这些组会被独立正规化. 层级 aj 的维度必须是 gj 的整数倍.
  • 允许指定以下可学会的参数:
  • "Biases"Automatic可学会的偏置参数
    "Scaling"Automatic可学会的缩放参数
  • 当设置为 Automatic 时,使用 NetInitializeNetTrain 的情况下,自动初始化缩放和偏置参数. 如果设置为 None,可禁用缩放和添加偏置参数.
  • 如果缩放和偏置参数已被初始化或禁用,NormalizationLayer[][input] 显式计算应用该层后的输出.
  • NormalizationLayer[][input] 把层应用到 input 显式计算输出.
  • NormalizationLayer[][{input1,input2,}] 显式计算每个 inputi 的输出.
  • 在较大的网络中,如果不能从其他层推导得出,可以使用选项 "Input"->{d1,d2,} 来确定 NormalizationLayer 的输入维数.
  • NetExtract 可用来从 NormalizationLayer 对象中提取缩放、偏置和 epsilon 参数.
  • NormalizationLayer 通常用在 NetChainNetGraph 等中.
  • NormalizationLayer 开放下列端口以便用在 NetGraph 等中:
  • "Input"阶数大于 1 的数组
    "Output"阶数大于 1 的数组
  • 考虑一个数组 可以在聚合级别 {a,b,} 中分解为 da×db× 子数组 xA,在缩放级别 {i,j,} 中分解为 di×dj× 子数组 xI. 缩放和偏差参数 有维度 (di×dj×). 那么,输出与输入数组有同样的维度,通过 获取,其中,平均数组由 给定,方差为 .
  • The output has always the same dimensions as the input.
  • 默认的 NormalizationLayer[] 对应于 Ulyanov 等人于 2016 年在 "Instance Normalization: The Missing Ingredient for Fast Stylization" 中描述的实例正规化 (instance normalization),第一级为通道维 (channel dimension),之后各级为空间维 (spatial dimension).
  • NormalizationLayer[2;;All,"Same","Input"{n,Automatic}] 对应于 Ba 等人于 2016 年在 "Layer Normalization" 中描述的层正规化 (layer normalization),最后一级为通道维 (channel dimension),第一级为时间维 (time dimension).
  • NormalizationLayer[All,1,"GroupNumber"{n,1,1,},"Input"{m*n,}] 对应于 Wu 等人于2018 年在 "Group Normalization" 中描述组正规化(group normalization),第一级为通道维,其后各级为空间维.
  • Options[NormalizationLayer] 给出构建网络层的默认选项的列表. Options[NormalizationLayer[]] 给出在一些数据上运行网络层的默认选项列表.
  • Information[NormalizationLayer[]] 给出关于该网络层的报告.
  • Information[NormalizationLayer[],prop] 给出 NormalizationLayer[] 的属性 prop 的值. 可能的属性NetGraph 相同.

范例

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

基本范例  (2)

创建一个 NormalizationLayer

创建一个初始化过的、接受 3 阶数组的 NormalizationLayer

对输入应用该层:

范围  (3)

创建一个实例正规化层,接受一幅 RGB 图像并返回一幅 RGB 图像:

对图像应用该层:

NormalizationLayer 自动逐项作用于各批输入:

创建一个 NormalizationLayer 接受二维向量序列,返回按因子 2 缩放并移位 的正规化向量序列:

对一些正弦输入应用层正规化:

可视化正规化之前和之后的值:

创建一个初始化过的 NormalizationLayer,接受一个 6 阶数组,在所有维度上进行正规化:

对输入应用该层:

选项  (8)

"Biases"  (2)

创建一个 NormalizationLayer,明确指定偏差:

提取偏差:

创建一个没有任何偏差的 NormalizationLayer

该层不含有任何可学会的偏差:

"Epsilon"  (1)

创建一个 NormalizationLayer,明确指定该层的 "Epsilon" 参数:

提取 "Epsilon" 参数:

"GroupNumber"  (2)

NormalizationLayer 计算整个聚合层级的方差和均值:

指定聚合层级必须分成两组:

每个组都独立进行正规化处理:

这相当于在正常化之前对输入进行重塑:

结合应用更深一层的正规化:

创建不带缩放功能的 NormalizationLayer

该层没有任何可学习的缩放参数:

"Scaling"  (2)

创建一个 NormalizationLayer,明确指定该层的缩放参数:

提取缩放参数:

创建不进行缩放的 NormalizationLayer

该层不含有任何可学会的缩放参数:

"Unbiased"  (1)

在神经网络应用中,默认的方差估计器通常是有偏差的:

这等价于:

定义带有无偏方差估计器的 NormalizationLayer

方差计算现在等同于 Variance

属性和关系  (1)

一般来说,NormalizationLayerStandardize 不同:

用单位 "Scaling" 和零 "Biases" 初始化图层:

计算数据标准化:

稳定参数和有偏差的方差估计器引入了一个差:

定义无正则化的 NormalizationLayer

结果接近于 Standardize

可能存在的问题  (1)

除非其输入和输出维数已知,否则 NormalizationLayer 不能被初始化:

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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