TrainingStoppingCriterion

TrainingStoppingCriterion

NetTrain 的一个选项,指定提前停止训练的标准,以防止过拟合.

更多信息

  • 在默认设置 TrainingStoppingCriterionNone 情况下,不提前停止训练.
  • 设置 TrainingStoppingCriterion"measurement" 指定如果如果 measurement 停止改进,则应停止训练. measurement 的可能的值包括:
  • "Loss"网络训练损失
    keyTrainingProgressMeasurements
  • key 可用的值依赖于 TrainingProgressMeasurements 的规范. 通常,键与度量一样. 例如,当 TrainingProgressMeasurements"ErrorRate"key 可以是 "ErrorRate". 然而,并不常是这样.
  • TrainingStoppingCriterionAutomatic 等价于 TrainingStoppingCriterion"Loss".
  • 默认情况下,TrainingStoppingCriterion 基于验证集的指标 (metric) 和损失. 如果 NetTrainValidationSet 选项为 None,则会发出警告并使用训练集. 如果存在验证集,则只要验证集的损失和指标被计算出来,就会检查停止标准(默认情况下每轮一次);否则,每轮检查一次停止标准.
  • TrainingStoppingCriterion 还有许多子选项,可用 <|"Criterion""measurement",opt1val1,opt2val2,|> 语法来指定.
  • 设置 TrainingStoppingCriterion<|"Criterion""measurement","Patience"n|> 指明如果 n 个回合在 measurement 中没有看见改善,则应该停止培训. n 的默认值是 0.
  • 设置 TrainingStoppingCriterion<|"Criterion""measurement","InitialPatience"n |> 指定在前 n 轮后才第一次检查停止标准. n 的默认值为 0.
  • 设置 TrainingStoppingCriterion<|"Criterion""measurement","Improvement"v|> 指定可被视为改进的 measurement 的最小变化. "improvement" 的可能的值为:
  • "AbsoluteChange"如果 measurement 的改进小于 v,就停止训练
    "RelativeChange"如果 measurement 的改进小于当前最佳值的比例 v,就停止训练
  • 如果没有给定改善规范,则使用 "AbsoluteChange"0.
  • 也可给出 "RelativeChange"Quantity[q,"Percent"].
  • 还可以用 TrainingStoppingCriterion<|"Criterion"func,|> 指定一个函数作为停止标准,其中,如果训练应被停止,func 应返回 True.
  • 函数 func 被赋予带有以下键的关联:
  • RoundLoss训练集的总损失
    ValidationLoss验证集的总损失
    RoundMeasurements要求的训练集的测量指标的关联
    ValidationMeasurements要求的验证集的测量指标的关联
  • 验证属性仅在验证集存在时才可用.
  • "RelativeChange""AbsoluteChange" 选项不能与函数标准一起使用.
  • 如果为 TrainingStoppingCriterion 指定了measurement,那么度量值会被用于选择从 NetTrain 返回的优化的培训网络. 注意,"Patience""InitialPatience""AbsoluteChange""RelativeChange" 的选取不会影响该选择. 如果,函数被指定用于 TrainingStoppingCriterion,那么当选择优化的培训网络时会使用默认的行为.

范例

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

基本范例  (1)

当验证损失停止改善时,通过停止培训来阻止过度拟合. 设置简单的网络以及一些培训和验证数据:

当验证损失停止改善时,使用 TrainingStoppingCriterion 停止培训:

与不提前停止训练的情况相比:

范围  (2)

设置网络及一些训练和验证数据:

TrainingStoppingCriterion 指定当验证集损失减小量小于某相对量时停止训练:

TrainingStoppingCriterion 指定当验证集损失超过 5 代都不再减小时停止训练:

当验证损失在 5 个多回合中还没有改善时,使用 TrainingStoppingCriterion 停止培训:

TrainingStoppingCriterion 指定当验证集错误率 50 次迭代都不再减小时停止训练,这次使用回调函数:

当验证宏观平均的调用已经在 50 个迭代中停止增加,使用 TrainingStoppingCriterion 停止培训:

使用回调函数停止培训. 设置网络和数据:

当验证损失高于 1.75,停止培训:

如果超过 20 轮的验证损失高于 1.75,则停止培训:

属性和关系  (2)

被视为改善的变化方向取决于 measurement. 对于 "Loss",减少就是改善. 对于其他度量,方向可以使用 TrainingProgressMeasurements 的子选项 "Direction"direction 指定. 对于内置度量,将根据需要自动选择方向.

如果第一层激活的 L1 模没有增加,则停止培训:

任何非函数停止标准可用调回函数指定. 设置网络和数据:

当验证损失在 50 个迭代中没有改善,没有回调函数,使用 TrainingStoppingCriterion 停止培训:

这等价于以下带有函数的标准:

Wolfram Research (2019),TrainingStoppingCriterion,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TrainingStoppingCriterion.html.

文本

Wolfram Research (2019),TrainingStoppingCriterion,Wolfram 语言函数,https://reference.wolfram.com/language/ref/TrainingStoppingCriterion.html.

CMS

Wolfram 语言. 2019. "TrainingStoppingCriterion." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/TrainingStoppingCriterion.html.

APA

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

BibTeX

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

BibLaTeX

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