TrainingStoppingCriterion
是 NetTrain 的一个选项,指定提前停止训练的标准,以防止过拟合.
更多信息
- 在默认设置 TrainingStoppingCriterionNone 情况下,不提前停止训练.
- 设置 TrainingStoppingCriterion"measurement" 指定如果如果 measurement 停止改进,则应停止训练. measurement 的可能的值包括:
-
"Loss" 网络训练损失 key TrainingProgressMeasurements 键 - key 可用的值依赖于 TrainingProgressMeasurements 的规范. 通常,键与度量一样. 例如,当 TrainingProgressMeasurements"ErrorRate",key 可以是 "ErrorRate". 然而,并不常是这样.
- TrainingStoppingCriterionAutomatic 等价于 TrainingStoppingCriterion"Loss".
- 默认情况下,TrainingStoppingCriterion 基于验证集的指标 (metric) 和损失. 如果 NetTrain 的 ValidationSet 选项为 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 停止培训:
属性和关系 (2)
被视为改善的变化方向取决于 measurement. 对于 "Loss",减少就是改善. 对于其他度量,方向可以使用 TrainingProgressMeasurements 的子选项 "Direction"direction 指定. 对于内置度量,将根据需要自动选择方向.
当验证损失在 50 个迭代中没有改善,没有回调函数,使用 TrainingStoppingCriterion 停止培训:
文本
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 年