gpt4 book ai didi

python - 针对特定指标在 tensorflow 中进行优化

转载 作者:行者123 更新时间:2023-11-30 08:31:00 25 4
gpt4 key购买 nike

有没有什么方法可以让我们针对特定指标使用内置的 Tensorflow 优化器进行优化?如果没有,如何实现这一目标?例如。如果我只想专注于最大化分类器的 F 分数,是否可以在 tensorflow 中做到这一点?

estimator = tf.estimator.LinearClassifier(
feature_columns=feature_cols,
config=my_checkpointing_config,
model_dir=output_dir,
optimizer=lambda: tf.train.FtrlOptimizer(
learning_rate=tf.train.exponential_decay(
learning_rate=0.1,
global_step=tf.train.get_or_create_global_step(),
decay_steps=1000,
decay_rate=0.96)))

我正在尝试在获得更好的 F 分数的基础上专门优化我的分类器。尽管使用了逐渐下降的学习率和 300 个训练步骤,但我得到的结果不一致。在检查日志中的指标时,我发现精度召回准确度的行为非常不稳定。尽管增加了训练步骤的数量,但并没有明显的改善。所以我想如果我能让优化器更多地关注提高整体的 F 分数,我可能会得到更好的结果。因此就有了这个问题。我有什么遗漏的吗?

最佳答案

在分类设置中,优化器最大限度地减少损失,例如交叉熵;准确性、F 分数、精确度、召回率等数量本质上是业务指标,它们在优化过程中不会(也不可能)直接最小化。

这是一个在 SO 中以各种伪装频繁出现的问题;这里有一些线索,希望能帮助您理清这些概念(尽管它们指的是准确度、精确度和召回率,但 F 分数的论点完全相同):

Loss & accuracy - Are these reasonable learning curves?

Cost function training target versus accuracy desired goal

Is there an optimizer in keras based on precision or recall instead of loss?

底线,改编我自己的(链接的)答案之一:

损失和准确性或 F 分数等指标是不同的东西;粗略地说,从商业角度来看,像准确率和 F 分数这样的指标是我们真正感兴趣的,而损失是学习算法(优化器)试图从最小化的目标函数。 em>数学角度。更粗略地说,您可以将损失视为业务目标(准确性、F 分数等)到数学领域的“翻译”,这种翻译在分类问题中是必要的(在回归问题中,通常是损失和业务目标相同,或者至少原则上可以相同,例如 RMSE)...

关于python - 针对特定指标在 tensorflow 中进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52371714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com