首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >世界人工智能大会的日志似然(逻辑层次stan模型)

世界人工智能大会的日志似然(逻辑层次stan模型)
EN

Stack Overflow用户
提问于 2018-03-07 01:47:55
回答 1查看 867关注 0票数 1

我正在创建一个新的模型,我想将它与世界人工智能大会的另一个模型进行比较。我知道我需要写一个生成的数量块。然而,我正在努力转换测试的logsumexp。我非常感谢任何线索/帮助。我的模型块看起来如下:

代码语言:javascript
复制
model { 

    //prior for phi,b
    phi ~ cauchy(0,5);
    mu_b ~ normal(0,1);
    sigma_b ~ cauchy(0,1);
    mu ~ normal(0,1);
    sigma ~ cauchy(0,1);

   //model
   log_b_z ~ normal(0, 1);
   theta_raw ~ normal(mu, sigma);

   for (i in 1:n) {
       vector[number_segments] test;    
       for (j in 1:number_segments) {
           test[j] = beta_lpdf(response[i] | p[j][i]*phi, (1-p[j][i])*phi) + log(prob_segment[j]);
       }    
       target += log_sum_exp(test);
   }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-07 17:58:14

您需要定义一个生成的数量块,该块定义每个数据点的后向预测日志的可能性。

你可以用这种方法对混合物进行最小的重构。

代码语言:javascript
复制
transformed parameters {
  vector[n] log_lik;      
  {
    vector[number_semgnents log_prob_segment = log(prob_segment);
    for (i in 1:n) {
      vector[number_segments] lp = log_prob_segment;
      for (j in 1:number_segments) {
        lp[j] += beta_lpdf(response[i] | p[j, i] * phi, (1 - p[j, i]) * phi);
      log_lik[i] = log_sum_exp(lp);       
   }
}
...
model {
  target += sum(log_lik);
...

你也可以将log_lik定义为生成的数量--如果你能将可能性矢量化(这对于斯坦的混合物还不可能),这会更有效。

一旦你这样做了,你可以使用厕所包计算世界人工智能大会等,如在小插曲和参考文献中所描述的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49142847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档