配置提前终止

已完成

超参数优化有助于微调模型,并选择使模型性能最佳的超参数值。

然而,对你来说,找到最佳模型可能是一场永无止境的征服。 你始终必须考虑是否值得测试新的超参数值的时间和费用,才能找到性能更好的模型。

在扫描作业中,每次试用时,都会使用新的超参数值组合来训练新模型。 如果训练新模型不会生成明显更好的模型,则可能需要停止扫描作业并使用到目前为止性能最佳的模型。

在 Azure 机器学习中配置扫描作业时,还可以设置最大试用版数。 更复杂的方法是,当较新的模型不会产生显著更好的结果时,可能会停止扫描作业。 若要根据模型的性能停止扫描作业,可以使用 提前终止策略

何时使用提前终止策略

是否想要使用早期终止策略可能取决于正在使用的搜索空间和采样方法。

例如,可以选择对离散搜索空间使用网格采样方法,最多导致六次试验。 在六次试验中,最多将训练六个模型,并可能不需要提前终止策略。

在搜索空间中使用连续超参数时,早期终止策略尤其有用。 连续超参数提供无限数量的可能值可供选择。 使用连续超参数和随机或贝伊斯采样方法时,你很可能想要使用早期终止策略。

配置提前终止策略

选择使用提前终止策略时,有两个主要参数:

  • evaluation_interval:指定要评估策略的时间间隔。 每次记录试用的主要指标时,都计为一个时间间隔。
  • delay_evaluation:指定何时开始评估策略。 此参数确保至少有一个最低数量的试验在不受提前终止策略影响的情况下完成。

新模型可能只会比以前的模型稍微好一些。 若要确定模型应比以前的试验性能更好的程度,有三种提前终止选项:

  • 强盗策略:使用 slack_factor (相对)或 slack_amount(绝对)。 任何新模型都必须在性能最佳的模型的宽延范围内执行。
  • 中间值停止策略:使用主要指标平均值的中间值。 任何新模型的性能都必须优于中值。
  • 截断选择策略:使用 truncation_percentage,这是性能最低的试用的百分比。 任何新模型的性能必须优于性能最低的试验。

强盗策略

如果目标性能指标比迄今为止的最佳试用的性能低指定幅度,则可以使用 bandit 策略来停止试用。

例如,以下代码应用延迟 5 次试用的 bandit 策略,按每个间隔评估策略,并允许绝对可宽延量为 0.2。

from azure.ai.ml.sweep import BanditPolicy

sweep_job.early_termination = BanditPolicy(
    slack_amount = 0.2, 
    delay_evaluation = 5, 
    evaluation_interval = 1
)

假设主要指标是模型的准确性。 在前五次试验之后,性能最佳的模型的准确性为 0.9,任何新模型的性能都需要优于 (0.9-0.2) 或 0.7。 如果新模型的准确性高于 0.7,则扫描作业将继续。 如果新模型的准确性分数低于 0.7,则策略将终止扫描作业。

使用强盗策略的两个示例图:一个模型性能足够好,另一个表现不佳。

你还可以使用可宽延时间系数来应用 bandit 策略,它将性能指标作为比率(而不是绝对值)进行比较

中值停止策略

如果目标性能指标低于所有试用的运行平均值的中值,则中值停止策略会放弃试用。

例如,以下代码应用一个延迟 5 次试用的中值停止策略,并按每个间隔评估策略。

from azure.ai.ml.sweep import MedianStoppingPolicy

sweep_job.early_termination = MedianStoppingPolicy(
    delay_evaluation = 5, 
    evaluation_interval = 1
)

假设主要指标是模型的准确性。 当第六次试验记录准确性时,该指标需要高于到目前为止准确度分数的中值。 假设到目前为止准确度分数的中位数为 0.82。 如果新模型的准确性高于 0.82,则扫描作业将继续。 如果新模型的准确性分数低于 0.82,则策略将停止扫描作业,并且不会训练新模型。

使用中值停止策略时的两个示例图:一个模型性能足够好,另一个表现不佳。

截断选择策略

截断选择策略会根据你为X指定的truncation_percentage值,在每个评估间隔取消表现最差的X%试验。

例如,以下代码应用一个延迟四次试用的截断选择策略,按每个间隔评估该策略,并使用 20% 的截断百分比。

from azure.ai.ml.sweep import TruncationSelectionPolicy

sweep_job.early_termination = TruncationSelectionPolicy(
    evaluation_interval=1, 
    truncation_percentage=20, 
    delay_evaluation=4 
)

假设主要指标是模型的准确性。 当记录第五次试用的准确性时,该指标不应处于迄今为止最差的 20% 的试用中。 在这种情况下,20% 转换为一次试用。 换句话说,如果第五次试用不是迄今为止性能最差的模型,则扫描作业将继续。 如果第五次试用的准确性分数是迄今为止所有试验中最低的,则扫描作业将停止。

在使用截断选择策略时的两个示例示意图:一个模型性能足够好,另一个表现不佳。