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 聚合层级 a1 到 a2 {a1,…} 聚合层级 ai - 默认聚合层级为 2;;All.
- scalinglevels 的可能值为:
-
"Complement" 除聚合层级外的所有层级(默认值) "Same" 与聚合层级相同的层级 s 仅有层级 s s1;;s2 层级 s1 到 s2 {s1,…} 层级 si - 可包含以下可选参数:
-
"Epsilon" 0.001 稳定性参数 LearningRateMultipliers Automatic 缩放与/或偏差参数的学习率乘子 "Unbiased" False 是否用长度减一(而不是长度)来正规化标准差 - 使用聚合层级 {a1,…,an},通过设置 "GroupNumber"{g1,…,gn},aj 层级级别会被拆分成 gj 组,这些组会被独立正规化. 层级 aj 的维度必须是 gj 的整数倍.
- 允许指定以下可学会的参数:
-
"Biases" Automatic 可学会的偏置参数 "Scaling" Automatic 可学会的缩放参数 - 当设置为 Automatic 时,使用 NetInitialize 或 NetTrain 的情况下,自动初始化缩放和偏置参数. 如果设置为 None,可禁用缩放和添加偏置参数.
- 如果缩放和偏置参数已被初始化或禁用,NormalizationLayer[…][input] 显式计算应用该层后的输出.
- NormalizationLayer[…][input] 把层应用到 input 显式计算输出.
- NormalizationLayer[…][{input1,input2,…}] 显式计算每个 inputi 的输出.
- 在较大的网络中,如果不能从其他层推导得出,可以使用选项 "Input"->{d1,d2,…} 来确定 NormalizationLayer 的输入维数.
- NetExtract 可用来从 NormalizationLayer 对象中提取缩放、偏置和 epsilon 参数.
- NormalizationLayer 通常用在 NetChain、NetGraph 等中.
- 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)
范围 (3)
创建一个实例正规化层,接受一幅 RGB 图像并返回一幅 RGB 图像:
NormalizationLayer 自动逐项作用于各批输入:
创建一个 NormalizationLayer 接受二维向量序列,返回按因子 2 缩放并移位 的正规化向量序列:
创建一个初始化过的 NormalizationLayer,接受一个 6 阶数组,在所有维度上进行正规化:
选项 (8)
"Biases" (2)
"Epsilon" (1)
创建一个 NormalizationLayer,明确指定该层的 "Epsilon" 参数:
"GroupNumber" (2)
NormalizationLayer 计算整个聚合层级的方差和均值:
创建不带缩放功能的 NormalizationLayer:
"Scaling" (2)
"Unbiased" (1)
属性和关系 (1)
一般来说,NormalizationLayer 与 Standardize 不同:
用单位 "Scaling" 和零 "Biases" 初始化图层:
定义无正则化的 NormalizationLayer:
结果接近于 Standardize:
可能存在的问题 (1)
除非其输入和输出维数已知,否则 NormalizationLayer 不能被初始化:
文本
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 年