CrossEntropyLossLayer

CrossEntropyLossLayer["Index"]

表示一个网络层,通过比较输入类概率向量与表示目标类的指数计算交叉熵损失.

CrossEntropyLossLayer["Probabilities"]

表示一个网络层,通过比较输入类概率向量与目标类概率向量计算交叉熵损失.

CrossEntropyLossLayer["Binary"]

表示一个网络层,通过比较输入概率标量与目标概率标量计算二值交叉熵损失,其中每个概率表示一个二值选择.

更多信息和选项

  • CrossEntropyLossLayer 开放下列端口以便在 NetGraph 等中使用:
  • "Input"n 階的实数数组
    "Target"n 階的实数数组或 n-1 階的整数数组
    "Loss"实数
  • 当在多维输入上操作时,CrossEntropyLossLayer 有效地线性作用于任何额外的数组维度以产生损失数组并返回这些损失的平均值.
  • 对于 CrossEntropyLossLayer["Binary"],输入和目标应为 0 和 1 之间的标量值,或者这些数值的数组.
  • 对于 CrossEntropyLossLayer["Index"],输入应为总和为 1 的概率 {p1,,pc} 的向量,或者这种向量的数组. 目标应该是 1 和 c 之间的整数,或者这种整数的数组.
  • 对于 CrossEntropyLossLayer["Probabilities"],输入和目标应为总和为 1 的概率向量,或者这种向量的数组.
  • 对于 "Index""Probabilities" 的形式,其中输入数组的维数为 {d1,d2,,dn},最终维数 dn 用于标出类的索引. 输出损失取作剩余维数 {d1,,dn-1} 的均值.
  • CrossEntropyLossLayer[][<|"Input"->in,"Target"target|>] 显式计算应用层的输出.
  • CrossEntropyLossLayer[][<|"Input"->{in1,in2,},"Target"->{target1,target2,}|>] 显式计算每对 initargeti 的输出.
  • NumericArray 作为输入时,输出将是 NumericArray.
  • CrossEntropyLossLayer 通常用于 NetGraph 内部,以构建训练网络.
  • CrossEntropyLossLayer 可以运算在包含 "Varying" 维度的数组上.
  • 在训练特定网络时,CrossEntropyLossLayer[] 可以作为 NetTrain 的第三个参数提供.
  • 在适当时候,如果未提供显式损失规范,NetTrain 将自动使用 CrossEntropyLossLayer. 将会基于输出端口的最后激活和任何附加的 NetDecoder 形式从 "Binary""Probabilities""Index" 中选择其一.
  • CrossEntropyLossLayer[form,"port"->shape] 允许指定输入或目标端口的形式. shape 的可能形式为:
  • "Real"单个实数
    "Integer"单个实数
    n长度为 n 的向量
    {n1,n2,}维数为 n1×n2× 的数组
    "Varying"长度可变的向量
    {"Varying",n2,n3,}一个数组其第一个维度是可变的,其余维度是 n2×n3×
    NetEncoder[]编码器
    NetEncoder[{,"Dimensions"{n1,}}]映射在维数为 n1× 数组上的编码器
  • Options[CrossEntropyLossLayer] 给出构造层的默认选项列表. Options[CrossEntropyLossLayer[]] 提供用于在某些数据上运算网络层的默认选项列表.
  • Information[CrossEntropyLossLayer[]] 提供有关该层的报告.
  • Information[CrossEntropyLossLayer[],prop] 给出 CrossEntropyLossLayer[]的属性 prop 的值. 可能的属性NetGraph 相同.

范例

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

基本范例  (3)

创建一个接受概率向量和索引的 CrossEntropyLossLayer 对象:

创建 CrossEntropyLossLayer,其中输入为概率向量,目标为索引:

将其应用于输入和目标:

创建一个 CrossEntropyLossLayer,对从字符串生成的序列进行计算:

将其应用于输入和目标:

完全正确的预测给出的损失为 0

范围  (5)

创建 CrossEntropyLossLayer,其中输入和目标为单一的概率:

将其应用于输入和目标:

线性作用于一批输入:

创建 CrossEntropyLossLayer,其中输入为概率向量,目标为索引:

将其应用于输入和目标:

创建一个 CrossEntropyLossLayer,对由字符串生成的向量进行操作:

将其应用于输入和目标:

创建 CrossEntropyLossLayer,其中输入和目标为表示二值类概率矩阵的图像:

将层应用于输入和目标:

度量来自小型集合的输入和目标的所有可能损失:

损失最小的输入和目标对:

损失最大的输入和目标对:

创建含有 CrossEntropyLossLayer 的图,其中输入是一个各颜色通道表示一个类的 3-通道图像,目标是表示各个像素正确类的索引矩阵:

度量目标图像和矩阵上的损失,其中区域上主要是红色、绿色和蓝色,分别匹配目标上的索引 1、2 和 3:

排列颜色,使各像素分布与目标矩阵不一致,并使损失增加:

应用  (2)

当用于输出的最后激活为 ElementwiseLayer[LogisticSigmoid] 时, CrossEntropyLossLayer["Binary"] 自动被 NetTrain 使用. 创建网络,接受一个数据对,生成 TrueFalse

训练网络来判断第一个数字是否大于第二个数字:

NetTrain 自动构建的训练网络含有二值类型的 CrossEntropyLossLayer

在平面上显示训练过的网络的行为:

绘制网络学到的概率:

当用于输出的最后激活为 SoftmaxLayer 时,CrossEntropyLossLayer["Index"] 自动被 NetTrain 使用. 从三个正态分布聚类创建人工数据集:

绘制数据集的图形:

通过把每个点和标签关联在一起创建训练数据:

创建一个网络,计算位于各个聚类上点的概率,使用 "Class" 解码器将输入分类为 RedGreenBlue

在数据上训练网络:

NetTrain 自动构建的训练网络含有 index-type 的 CrossEntropyLossLayer

在每个聚类的中心运行网络:

显示特征空间中的等高线,其中每个类都达到了 0.75 的后验概率:

属性和关系  (4)

这里是由 CrossEntropyLossLayer["Binary"] 计算的函数:

在一些数据上对函数进行运算:

与下式等价:

在目标固定为 1 的情况下,当输入接近 1 时损失被最小化:

一般情况下,目标接近输入时损失被最小化:

CrossEntropyLossLayer["Binary"] 应用到标量概率 p 等价于把 CrossEntropyLossLayer["Probabilities"] 应用到向量概率 {p,1-p}

通过替换得到同样的结果:

这里是由 CrossEntropyLossLayer["Probabilities"] 计算的函数:

对一些数据进行计算:

和下例等价:

采用独热 (one-hot) 编码的情况下,CrossEntropyLossLayer["Probabilities"] 等价于 CrossEntropyLossLayer["Index"]

在稀疏标注数据上进行计算,给出同样的结果:

CrossEntropyLossLayer["Index"]CrossEntropyLossLayer["Probabilities"] 快,且在类别数量较大的情况下使用的内存要少的多.

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

文本

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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