【问题标题】:What is this outermgc message while optimising with TMB?使用 TMB 进行优化时,这个 outermgc 消息是什么?
【发布时间】:2017-03-17 05:46:18
【问题描述】:

在使用 TMB 生成目标函数和梯度并调用 optim 函数后,我在控制台中打印出一系列报告,其格式似乎为“outer mgc:”:

outer mgc:  56.54273 
outer mgc:  56.51064 
outer mgc:  56.96065 
outer mgc:  57.13384 
outer mgc:  29.01959 
outer mgc:  27.08267 
outer mgc:  25.99866 
outer mgc:  25.79068 
outer mgc:  25.58621 
outer mgc:  21.91722 
outer mgc:  21.73952 
outer mgc:  21.56449 
outer mgc:  21.52924 
outer mgc:  21.52189 
outer mgc:  21.19551 
outer mgc:  20.7331 
outer mgc:  16.39087 
outer mgc:  11.35111 
outer mgc:  10.61466 
outer mgc:  6.748524 
outer mgc:  1.420802 
outer mgc:  0.1197647 

似乎较小的数字表示更快的收敛和更好的收敛结果。但我不完全确定这些是什么,因此最好了解这些以诊断算法的收敛特性。

【问题讨论】:

    标签: r tmb


    【解决方案1】:

    缩写 mgc 代表“最大梯度分量”。

    对于每个参数,TMB 估计一个梯度(偏导数),优化后您可以通过运行 obj$gr(opt$par) 得到。所有这些都应尽可能接近于零。因此,要使模型正常,最高或最大值(离零最远)应该仍然很低。您会注意到,在使用 sdreport() 时,还会给出最终的最大梯度分量。在使用 nlminb/optim 时,默认情况下也会为每次迭代计算和打印这些梯度(除非在 makeADfun 中静默=TRUE)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-05-29
      • 2010-10-01
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 2023-01-14
      相关资源
      最近更新 更多