You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras Tuner最优模型评估MSE与结果汇总得分不一致问题

问题:Keras Tuner最优模型得分与实际评估MSE不一致

我正在尝试1)调整超参数,2)保存最优模型。但发现Keras Tuner输出的“最优模型”得分,与实际评估该模型得到的MSE不一致。相关代码及输出如下:

tuner = RandomSearch(
  hypermodel =  build_model,
  max_trials = 5,
  executions_per_trial = 5,
  hyperparameters = hp,
  tune_new_entries = T,
  objective = 'mse',
  project_name = project_name, 
  overwrite = TRUE
)

tuner %>% fit_tuner(x = x, y = y, 
                    epochs = 100, 
                    validation_data = list(x_val, y_val))

best_model <- tuner %>% get_best_models(1)

tuner %>% results_summary(1)

best_model[[1]] %>% evaluate(x=x, y=y)

输出结果

# Output from tuner %>% results_summary(1):

Showing 1 best trials
<keras_tuner.engine.objective.Objective object at 0x0000026FAE07C610>
Trial summary
Hyperparameters:
num_layers: 3
units: 30
Score: 0.23338192105293273

# Output from best_model[[1]] %>% evaluate(x=x, y=y):

32/32 [==============================] - 0s 676us/step - loss: 0.1719 - mse: 0.1719
     loss       mse 
0.1718763 0.1718763

results_summary中的Score与评估最优模型得到的mse存在差异,我认为二者应该一致,请问我忽略了什么?

补充数据生成代码

a = rnorm(1000)
b = rnorm(1000)
c = rnorm(1000)

y = matrix(c(a,b,c), nrow = 1000)

x = lapply(1:20, function(i) y[,1]*i^2 + y[,2]*i + y[,3]) %>% unlist() %>% matrix(nrow = 1000)

x_val和y_val的定义方式类似。


解答

核心原因:评估数据集不一致

Keras Tuner在results_summary中展示的Score是基于你传入的validation_data(即x_val和y_val)计算的,而你后续用evaluate(x=x, y=y)评估的是训练集数据。训练集和验证集的样本不同,模型在两个数据集上的MSE自然会有差异,这是最主要的原因。

次要原因:多次执行的平均得分

你设置了executions_per_trial = 5,这意味着每个超参数组合会被独立训练5次,results_summary中的Score是这5次训练在验证集上MSE的平均值。而get_best_models()返回的是该超参数组合下某次训练得到的模型(通常是表现最优的那一次),这个单个模型在验证集上的得分本身就可能和平均得分有小幅差异,再加上你用训练集评估,差异被进一步放大。

验证方法

  1. 用验证集评估最优模型,结果会更接近Score:
best_model[[1]] %>% evaluate(x=x_val, y=y_val)

这个结果应该和results_summary里的0.2333更接近(可能有小幅波动,因为是单次训练的模型,而非5次的平均)。

  1. 确认目标函数的评估逻辑:Keras Tuner默认使用验证集的指标作为优化目标,如果你想让Score基于训练集,需要在fit_tuner中调整objective的评估数据集,但这通常不推荐(容易过拟合)。

内容的提问来源于stack exchange,提问作者Mas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:18:23