表示一个损失层,基于距离参数和指定应该最小化或最大化距离的目标计算损失.
ContrastiveLossLayer[margin]
指定一个距离,对于 True 目标超过该距离损失为零.
ContrastiveLossLayer
表示一个损失层,基于距离参数和指定应该最小化或最大化距离的目标计算损失.
ContrastiveLossLayer[margin]
指定一个距离,对于 True 目标超过该距离损失为零.
更多信息和选项
- ContrastiveLossLayer 通常与 NetPairEmbeddingOperator 一起使用,以了解从输入到向量空间的嵌入,使得相似的输入在向量空间聚集,而不相似的输入被分开.
- ContrastiveLossLayer 开放下列端口,以便用于 NetGraph 等:
-
"Input" 表示距离的实数 "Target" True 如果距离应被最大化,则为 True,如果应被最小化,则为 False "Loss" 实数 - ContrastiveLossLayer[margin] 计算下列损失:
- ContrastiveLossLayer[…][<|"Input"in,"Target"target|>] 显式计算应用层的损失.
- ContrastiveLossLayer[…][<|"Input"{in1,in2,…},"Target"{target1,target2,…}|>] 显式计算每一对 ini 和 targeti 的损失.
- 当 NumericArray 作为输入时,输出将是 NumericArray.
- ContrastiveLossLayer 通常用于 NetGraph 内部,从已知嵌入构建训练网络.
- 在训练具体网络时,ContrastiveLossLayer[…] 可以作为 NetTrain 的第三个参数提供.
- 如果未提供明确损失规范,则在适当时,ContrastiveLossLayer 自动被 NetTrain 采用.
- Options[ContrastiveLossLayer] 给出构造层的默认选项列表. Options[ContrastiveLossLayer[…]] 提供用于在某些数据上运算网络层的默认选项列表.
- Information[ContrastiveLossLayer[…]] 提供有关该层的报告.
- Information[ContrastiveLossLayer[…],prop] 给出 ContrastiveLossLayer[…]的属性 prop 的值. 可能的属性与 NetGraph 相同.
范例
打开所有单元 关闭所有单元基本范例 (2)
创建给定边幅的 ContrastiveLossLayer:
ContrastiveLossLayer[1.5]loss = ContrastiveLossLayer[]loss[<|"Input" -> 0.1, "Target" -> True|>]如果目标为 True,仅当输入距离小于默认边幅 0.5 时损失非零:
loss[<|"Input" -> 0.1, "Target" -> True|>]
loss[<|"Input" -> 0.6, "Target" -> True|>]如果目标为 False,损失与输入距离成比例:
loss[<|"Input" -> 0.1, "Target" -> False|>]应用 (1)
训练多层感知器嵌入仅基于其拓扑结构的合成数据集. 首先,在平面上密集的螺旋状流形上创建训练数据:
points = Table[r -> AngleVector[{r + RandomReal[5.5], r + RandomReal[0.1]}] / 15, {r, 0, 6Pi, .002}];Graphics[Point[Values@points], Frame -> True]mlp = NetChain[{200, Ramp, 100, Ramp, 20, Tanh, 1}, "Input" -> 2];lossNet = NetPairEmbeddingOperator[mlp]创建生成器,对点对采样,如果它们在流形上的参数化差异大于 Pi,则将它们关联为 True:
sampler[n_] := Block[{a, b},
a = RandomSample[points, n];
b = RandomSample[points, n];
Thread[Transpose[Values /@ {a, b}] -> Thread[Abs[Keys[a] - Keys[b]] > Pi]]];sampler[4]训练网络,使用生成器对点对采样,如果它们的原始参数化接近的话则将其归类为相同:
trained = NetTrain[lossNet, sampler[#BatchSize]&, LossFunction -> ContrastiveLossLayer[], BatchSize -> 512, TimeGoal -> 120]trainedMlp = NetExtract[trained, "Net"];ArrayPlot[Flatten /@ trainedMlp /@ CoordinateBoundsArray[1.3 * {{-1, 1}, {-1, 1}}, .05], ColorFunction -> Hue
]技术笔记
相关指南
-
▪
- 神经网络层
文本
Wolfram Research (2017),ContrastiveLossLayer,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ContrastiveLossLayer.html.
CMS
Wolfram 语言. 2017. "ContrastiveLossLayer." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/ContrastiveLossLayer.html.
APA
Wolfram 语言. (2017). ContrastiveLossLayer. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ContrastiveLossLayer.html 年
BibTeX
@misc{reference.wolfram_2026_contrastivelosslayer, author="Wolfram Research", title="{ContrastiveLossLayer}", year="2017", howpublished="\url{https://reference.wolfram.com/language/ref/ContrastiveLossLayer.html}", note=[Accessed: 12-October-2026]}
BibLaTeX
@online{reference.wolfram_2026_contrastivelosslayer, organization={Wolfram Research}, title={ContrastiveLossLayer}, year={2017}, url={https://reference.wolfram.com/language/ref/ContrastiveLossLayer.html}, note=[Accessed: 12-October-2026]}