如何优化半定义损失函数

时间:2020-03-13 14:18:18

标签: r optimization gradient

我最近正在尝试优化代码,并且遇到以下问题:

  • 我定义了损失函数,但是要计算它,必须使用其他软件包来获取损失函数中的成分;

  • 我无法明确写下这些组件的表达式;

  • 我已经检查了一些优化包,例如blackboxdfoptim等...,但是找不到可用的包;

之前,我使用grid searchfor循环)来计算good的估计量,但这太费时间了。

这是我的LOSS功能:

LOSS <- function(sigma) {
  x11 <- seas(data, x11='')
  ssm <- SSModel(data ~ SSMtrend(1, Q=list(sigma[2])) + SSMseasonal(12, sea.type = 'dummy', Q=1), H=sigma[1])
  kfs <- KFS(ssm)

  seasonal_x11 <- series(x11, "d10")
  trend_x11 <- series(x11, "d12")

  seasonal_kfs <- signal(kfs, "seasonal")$signal
  trend_kfs <- signal(kfs, "trend")$signal

  l <- sum((seasonal_x11-seasonal_kfs)^2) + sum((trend_x11-trend_kfs)^2) + sum((diff(trend_x11)-diff(trend_kfs))^2)
  return(l)
}

因此,此处使用包seasonalKFAS并假定已给出数据。 sigma是我们感兴趣的估计向量。

我花了很多时间在上面,希望有人能帮助我:)

0 个答案:

没有答案