LossFunction
是 NetTrain 的一个选项,指定如何比较神经网络的实际输出和要求的输出.
更多信息
- LossFunction 指定训练期间被最小化的量.
- 在 NetTrain[net,data,…] 中,LossFunction 的可能设置包括:
-
Automatic 自动将损失层添加到所有输出上,或使用现有的损失输出(默认) "port" 将给定端口解释为损失 losslayer 将用户定义的损失层添加到网络的输出 "port"losslayer 从多输出网络的其中一个输出上计算损失 {lspec1,lspec2,…} 同时最小化几个损失 {…,lpeciScaled[r],…} 将损失缩放 r 倍 - 当用 LossFunction->losslayer 指定一个损失层时, 被训练的网络必须只有一个输出端口.
- 可被用作 losslayer 的网络层包括:
-
Automatic 自动选择损失(默认) MeanAbsoluteLossLayer[] 输出和目标间的平均距离 MeanSquaredLossLayer[] 输出与目标间的平方距离的平均值 CrossEntropyLossLayer[form] 输出和目标概率之间的距离 ContrastiveLossLayer[] 以目标为条件,输出最大化和最小化的优度 NetGraph[…], NetChain[…], ThreadingLayer[…], etc. 任意具有 "Input" 或可选 "Target" 端口的网络 - 当为端口自动选择损失层时,要使用的损失层应基于输出连接到端口的网络中的层,如下所示:
-
SoftmaxLayer[…] 使用 CrossEntropyLossLayer["Index"] ElementwiseLayer[LogisticSigmoid] 使用 CrossEntropyLossLayer["Binary"] NetPairEmbeddingOperator[…] 使用 ContrastiveLossLayer[] 其他非损失层 使用 MeanSquaredLossLayer[] 损失层 不变 - 一般情况下,损失端口的输出是一个标量值. 当它是一个数组时,损失值被计算为元素的.
- 用户定义的损失层可以是具有多个输出端口的网络. 那么,所有输出端口的值的和将被作为要最小化的损失,并以单独的子损失汇报汇报每个端口的值.
- 如果所添加的损失层有一个输入端口 ("Input"),它将被连接到网络的输出端,并且训练数据的键应给出端口来为网络提供输入(参见下面左侧的图).
- 如果所添加的损失层有两个输入端口 ("Input" 和 "Target"),则输入将与网络的输出连接,而训练数据将为目标 (Target) 提供输入,并使用网络的输出端口的名称(参见下面中间的图) . 通常情况下,该名称为 "Output",所以常见情景是形式为 <"Input"->{in1,in2,…},"Output"->{out1,out2,…} > 的训练数据,经常被写为 {in1,in2,…}->{out1,out2,…} 或 {in1->out1,in2->out2,…}.
- 如果连接了多个这样的层,则训练数据中应该有一个端口为每个层的目标提供输入(参见下面右侧的图).
范例
基本范例 (4)
用 MeanSquaredLossLayer 来训练一个简单的网络,当 SoftmaxLayer 没有产生损失时对输出应用默认的损失:
指定一个不同的损失层,与网络的输出连接. 首先创建一个损失层:
创建一个网络,接受一个长度为 2 的向量,产生类别标签 Less 或 Greater:
NetTrain 会自动将 CrossEntropyLossLayer 对象与正确的类别编码器一起使用:
创建一个 "loss net",明确计算该 evaluation net(此处,自定义损失等价于 MeanSquaredLossLayer)的损失:
在一些合成数据上训练网络,指定名为 "Loss" 的输出端口应被诠释为损失:
用 NetExtract 获取训练过的 "evaluation" 网络:
也可以使用 Part 语句:
用 NetTake 移除其他部分,只保留想要的输出和输入:
文本
Wolfram Research (2018),LossFunction,Wolfram 语言函数,https://reference.wolfram.com/language/ref/LossFunction.html (更新于 2022 年).
CMS
Wolfram 语言. 2018. "LossFunction." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2022. https://reference.wolfram.com/language/ref/LossFunction.html.
APA
Wolfram 语言. (2018). LossFunction. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/LossFunction.html 年