SlideShare a Scribd company logo
1 of 21
Download to read offline
NIMBLE	
  
	
  (First	
  release	
  by	
  summer)	
  
model	
  
language	
  
(BUGS)	
  
Algorithm	
  
language	
  
Why	
  algorithm	
  programmability?	
  
•  Simple	
  advanced	
  MCMC:	
  block	
  updaters,	
  mulHple	
  updaters,	
  mulHple	
  scales,	
  
modularity	
  
•  Advanced	
  advanced	
  MCMC:	
  bridge	
  sampling,	
  reversible	
  jump,	
  adapHve	
  
MCMC,	
  tempering,	
  approximaHng	
  models	
  
•  ParHcle	
  filtering	
  
•  Importance	
  sampling	
  
•  Laplace	
  approximaHon,	
  adapHve	
  Gaussian	
  quadrature	
  
•  Kalman	
  Filtering,	
  Unscented	
  KF,	
  extended	
  KF	
  
•  Prior	
  sensiHvity	
  analysis	
  by	
  reweighHng	
  
•  Monte	
  Carlo	
  ExpectaHon	
  MaximizaHon	
  (MCEM)	
  
•  Data	
  cloning	
  
•  Approximate	
  Bayesian	
  ComputaHon	
  
•  Posterior	
  predicHve	
  checks	
  (without	
  re-­‐running	
  MCMC)	
  
•  Normalizing	
  constants:	
  bridge	
  sampling;	
  	
  see	
  above	
  
•  CombinaHon	
  algorithms:	
  PF	
  +	
  MCMC,	
  MCMC	
  +	
  Laplace	
  
	
  
Algorithm	
  developers	
  need	
  a	
  system	
  for	
  model-­‐flexibility	
  and	
  distribuHon.	
  
What	
  we	
  	
  do	
  with	
  BUGS	
  models	
  
model	
  {	
  
	
  	
  mu	
  ~	
  dnorm(0,	
  10)	
  
	
  	
  logit(p)	
  ~	
  dnorm(mu,	
  sigma)	
  
	
  	
  y	
  ~	
  dbin(N,	
  p)	
  
}	
  
What	
  we	
  	
  do	
  with	
  BUGS	
  models	
  
model	
  {	
  
	
  	
  mu	
  ~	
  dnorm(0,	
  10)	
  
	
  	
  logit(p)	
  ~	
  dnorm(mu,	
  sigma)	
  
	
  	
  y	
  ~	
  dbin(N,	
  p)	
  
}	
  
Extract	
  all	
  semanHc	
  relaHonships.	
  
Build	
  a	
  graphical	
  model	
  object	
  R	
  (igraph).	
  
Generate	
  C++	
  code	
  
Compile,	
  load,	
  and	
  provide	
  interface	
  objects.	
  
What	
  we	
  	
  do	
  with	
  BUGS	
  models	
  
model	
  {	
  
	
  	
  mu	
  ~	
  dnorm(0,	
  10)	
  
	
  	
  logit(p)	
  ~	
  dnorm(mu,	
  sigma)	
  
	
  	
  y	
  ~	
  dbin(N,	
  p)	
  
}	
  
Extract	
  all	
  semanHc	
  relaHonships.	
  
Build	
  a	
  graphical	
  model	
  object	
  R	
  (igraph).	
  
Generate	
  C++	
  code	
  
Compile,	
  load,	
  and	
  provide	
  interface	
  objects.	
  
mymodel$mu	
  <-­‐	
  5	
  
toCalc	
  <-­‐	
  getDependencies(mymodel,	
  "mu")	
  
calculate(mymodel,	
  toCalc)	
  
What	
  we	
  	
  do	
  with	
  BUGS	
  models	
  
Some	
  "automaHc"	
  extensions	
  of	
  BUGS	
  
1.  Expressions	
  as	
  arguments	
  
2.  MulHple	
  parameterizaHons	
  for	
  distribuHons	
  (e.g.	
  precision	
  or	
  std.	
  deviaHon)	
  
3.  Compile-­‐Hme	
  if-­‐then-­‐else	
  
4.  Single-­‐line	
  moHfs:	
  	
  y[1:10]	
  ~	
  glmm(X	
  *	
  A	
  +	
  (1	
  |	
  Group),	
  family	
  =	
  "binomial")	
  
model	
  {	
  
	
  	
  mu	
  ~	
  dnorm(0,	
  10)	
  
	
  	
  logit(p)	
  ~	
  dnorm(mu,	
  sigma)	
  
	
  	
  y	
  ~	
  dbin(N,	
  p)	
  
}	
  
Extract	
  all	
  semanHc	
  relaHonships.	
  
Build	
  a	
  graphical	
  model	
  object	
  R	
  (igraph).	
  
Generate	
  C++	
  code	
  
Compile,	
  load,	
  and	
  provide	
  interface	
  objects.	
  
mymodel$mu	
  <-­‐	
  5	
  
toCalc	
  <-­‐	
  getDependencies(mymodel,	
  "mu")	
  
calculate(mymodel,	
  toCalc)	
  
How	
  we	
  write	
  algorithms	
  
Random-­‐walk	
  MCMC	
  updater	
  
1.	
  setup	
  arguments:	
  model,	
  targetNode	
  
How	
  we	
  write	
  algorithms	
  
Random-­‐walk	
  MCMC	
  updater	
  
1.	
  setup	
  arguments:	
  model,	
  targetNode	
  
2.	
  setup	
  code:	
  	
  
	
  use	
  model	
  structure	
  to	
  query	
  targetNode	
  dependencies	
  
Processed	
  ONCE,	
  
in	
  R	
  
How	
  we	
  write	
  algorithms	
  
Random-­‐walk	
  MCMC	
  updater	
  
1.	
  setup	
  arguments:	
  model,	
  targetNode	
  
2.	
  setup	
  code:	
  	
  
	
  use	
  model	
  structure	
  to	
  query	
  targetNode	
  dependencies	
  
Processed	
  ONCE,	
  
in	
  R	
  
3.	
  run-­‐Hme	
  code:	
  
	
  	
  	
  	
  	
  	
  (i)	
  	
  	
  put	
  a	
  proposal	
  value	
  in	
  the	
  targetNode	
  
	
  	
  	
  	
  	
  	
  (ii)	
  	
  calculate	
  needed	
  log	
  likelihoods	
  
	
  	
  	
  	
  	
  	
  (iii)	
  accept	
  or	
  reject	
  
Becomes	
  C++	
  code,	
  
compiled	
  &	
  interfaced	
  
How	
  we	
  write	
  algorithms	
  
Random-­‐walk	
  MCMC	
  updater	
  
1.	
  setup	
  arguments:	
  model,	
  targetNode	
  
2.	
  setup	
  code:	
  	
  
	
  use	
  model	
  structure	
  to	
  query	
  targetNode	
  dependencies	
  
Processed	
  ONCE,	
  
in	
  R	
  
3.	
  run-­‐Hme	
  code:	
  
	
  	
  	
  	
  	
  	
  (i)	
  	
  	
  put	
  a	
  proposal	
  value	
  in	
  the	
  targetNode	
  
	
  	
  	
  	
  	
  	
  (ii)	
  	
  calculate	
  needed	
  log	
  likelihoods	
  
	
  	
  	
  	
  	
  	
  (iii)	
  accept	
  or	
  reject	
  
Becomes	
  C++	
  code,	
  
compiled	
  &	
  interfaced	
  
Building	
  a	
  program	
  with	
  many	
  funcHons:	
  
•  model	
  structure	
  (setup	
  arguments)	
  processed	
  in	
  R	
  
•  algorithm	
  executed	
  in	
  C++	
  
How	
  we	
  write	
  algorithms	
  
Random-­‐walk	
  MCMC	
  updater	
  
1.	
  setup	
  arguments:	
  model,	
  targetNode	
  
2.	
  setup	
  code:	
  	
  
	
  use	
  model	
  structure	
  to	
  query	
  targetNode	
  dependencies	
  
Processed	
  ONCE,	
  
in	
  R	
  
3.	
  run-­‐Hme	
  code:	
  
	
  	
  	
  	
  	
  	
  (i)	
  	
  	
  put	
  a	
  proposal	
  value	
  in	
  the	
  targetNode	
  
	
  	
  	
  	
  	
  	
  (ii)	
  	
  calculate	
  needed	
  log	
  likelihoods	
  
	
  	
  	
  	
  	
  	
  (iii)	
  accept	
  or	
  reject	
  
Becomes	
  C++	
  code,	
  
compiled	
  &	
  interfaced	
  
Building	
  a	
  program	
  with	
  many	
  funcHons:	
  
•  model	
  structure	
  (setup	
  arguments)	
  processed	
  in	
  R	
  
•  algorithm	
  executed	
  in	
  C++	
  
We	
  provide	
  data	
  structures	
  for	
  sets	
  of	
  model	
  values	
  (e.g.	
  MCMC	
  output)	
  
ConnecHons	
  to	
  other	
  engines	
  
When	
  another	
  system	
  has	
  a	
  great	
  algorithm,	
  we	
  want	
  to	
  wrap	
  access	
  to	
  it.	
  
ConnecHons	
  to	
  other	
  engines	
  
When	
  another	
  system	
  has	
  a	
  great	
  algorithm,	
  we	
  want	
  to	
  wrap	
  access	
  to	
  it.	
  
Example:	
  	
  Monte	
  Carlo	
  ExpectaHon	
  MaximizaHon	
  (MCEM)	
  
•  Uses	
  MCMC	
  repeatedly	
  on	
  latent	
  states	
  
•  Parameters	
  updated	
  between	
  MCMCs	
  
•  We	
  don't	
  have	
  to	
  use	
  our	
  own	
  MCMC	
  if	
  someone	
  else	
  has	
  a	
  great	
  one	
  
	
  	
  
ConnecHons	
  to	
  other	
  engines	
  
When	
  another	
  system	
  has	
  a	
  great	
  algorithm,	
  we	
  want	
  to	
  wrap	
  access	
  to	
  it.	
  
Example:	
  	
  Monte	
  Carlo	
  ExpectaHon	
  MaximizaHon	
  (MCEM)	
  
•  Uses	
  MCMC	
  repeatedly	
  on	
  latent	
  states	
  
•  Parameters	
  updated	
  between	
  MCMCs	
  
•  We	
  don't	
  have	
  to	
  use	
  our	
  own	
  MCMC	
  if	
  someone	
  else	
  has	
  a	
  great	
  one	
  
	
  	
  
How?	
  	
  	
  
We	
  have	
  high-­‐level	
  representaHon	
  of	
  model	
  structure.	
  
Can	
  generate	
  specificaHons	
  needed	
  for	
  other	
  packages.	
  	
  
Who	
  we	
  think	
  will	
  use	
  NIMBLE	
  
1.	
  Algorithm	
  developers	
  
2.	
  Data	
  analysts	
  
3.	
  Workflow	
  pipelines	
  
Numerical!
Integration of!
Mixture Models for!
Bayesian and !
Likelihood!
Estimation!
Team:!
Perry de Valpine!
Chris Paciorek!
Daniel Turek!
Cliff Anderson-Bergmann!
Ras Bodik!
Duncan Temple Lang!
Funding:!
NSF Advances in !
Biological Informatics!
Common	
  situaHon	
  
model	
  
language	
  
(Black	
  box	
  algorithm)	
  
How	
  we	
  build	
  an	
  MCMC	
  
1.	
  R	
  funcHons	
  use	
  model/graph	
  objects	
  in	
  R	
  to	
  inspect	
  a	
  parHcular	
  model:	
  
	
  -­‐	
  	
  Build	
  list	
  of	
  updaters	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  	
  Can	
  be	
  inspected,	
  modified	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  	
  You	
  can	
  write	
  your	
  own	
  
How	
  we	
  build	
  an	
  MCMC	
  
1.	
  R	
  funcHons	
  use	
  model/graph	
  objects	
  in	
  R	
  to	
  inspect	
  a	
  parHcular	
  model:	
  
	
  -­‐	
  	
  Build	
  list	
  of	
  updaters	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  	
  Can	
  be	
  inspected,	
  modified	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  	
  You	
  can	
  write	
  your	
  own	
  
2.	
  Generate	
  C++	
  code	
  for	
  all	
  updaters.	
  
How	
  we	
  build	
  an	
  MCMC	
  
1.	
  R	
  funcHons	
  use	
  model/graph	
  objects	
  in	
  R	
  to	
  inspect	
  a	
  parHcular	
  model:	
  
	
  -­‐	
  	
  Build	
  list	
  of	
  updaters	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  	
  Can	
  be	
  inspected,	
  modified	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  -­‐	
  	
  You	
  can	
  write	
  your	
  own	
  
2.	
  Generate	
  C++	
  code	
  for	
  all	
  updaters.	
  
3.	
  Compile,	
  load,	
  build	
  and	
  interface	
  to	
  objects.	
  

More Related Content

What's hot

Complete C++ programming Language Course
Complete C++ programming Language CourseComplete C++ programming Language Course
Complete C++ programming Language CourseVivek chan
 
Methods and implementation @ HAMS
Methods and implementation @ HAMSMethods and implementation @ HAMS
Methods and implementation @ HAMSHAMSproject
 
Compiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationCompiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationEelco Visser
 
Megamodeling of Complex, Distributed, Heterogeneous CPS Systems
Megamodeling of Complex, Distributed, Heterogeneous CPS SystemsMegamodeling of Complex, Distributed, Heterogeneous CPS Systems
Megamodeling of Complex, Distributed, Heterogeneous CPS SystemsEugenio Villar
 
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and PerformanceChapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performanceinside-BigData.com
 
Labsheet1 stud
Labsheet1 studLabsheet1 stud
Labsheet1 studrohassanie
 
Programming in java basics
Programming in java  basicsProgramming in java  basics
Programming in java basicsLovelitJose
 
CJPCCS BCA VISNAGAR functions in C language
CJPCCS BCA VISNAGAR  functions in C languageCJPCCS BCA VISNAGAR  functions in C language
CJPCCS BCA VISNAGAR functions in C languageFCSCJCS
 

What's hot (12)

C++ ch1
C++ ch1C++ ch1
C++ ch1
 
Complete C++ programming Language Course
Complete C++ programming Language CourseComplete C++ programming Language Course
Complete C++ programming Language Course
 
Chap 3 c++
Chap 3 c++Chap 3 c++
Chap 3 c++
 
Methods and implementation @ HAMS
Methods and implementation @ HAMSMethods and implementation @ HAMS
Methods and implementation @ HAMS
 
Compiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code GenerationCompiler Construction | Lecture 13 | Code Generation
Compiler Construction | Lecture 13 | Code Generation
 
Megamodeling of Complex, Distributed, Heterogeneous CPS Systems
Megamodeling of Complex, Distributed, Heterogeneous CPS SystemsMegamodeling of Complex, Distributed, Heterogeneous CPS Systems
Megamodeling of Complex, Distributed, Heterogeneous CPS Systems
 
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and PerformanceChapel Comes of Age: a Language for Productivity, Parallelism, and Performance
Chapel Comes of Age: a Language for Productivity, Parallelism, and Performance
 
Lesson 1 introduction to programming
Lesson 1 introduction to programmingLesson 1 introduction to programming
Lesson 1 introduction to programming
 
Course1
Course1Course1
Course1
 
Labsheet1 stud
Labsheet1 studLabsheet1 stud
Labsheet1 stud
 
Programming in java basics
Programming in java  basicsProgramming in java  basics
Programming in java basics
 
CJPCCS BCA VISNAGAR functions in C language
CJPCCS BCA VISNAGAR  functions in C languageCJPCCS BCA VISNAGAR  functions in C language
CJPCCS BCA VISNAGAR functions in C language
 

Viewers also liked

Matt Jones software-interoperability
Matt Jones software-interoperabilityMatt Jones software-interoperability
Matt Jones software-interoperabilityDavid LeBauer
 
Aaron Ellison: Analytic Web
Aaron Ellison: Analytic WebAaron Ellison: Analytic Web
Aaron Ellison: Analytic WebDavid LeBauer
 
Ilkay Altintas: Kepler
Ilkay Altintas: KeplerIlkay Altintas: Kepler
Ilkay Altintas: KeplerDavid LeBauer
 
Aaron Ellison Keynote: Reaching the 99%
Aaron Ellison Keynote: Reaching the 99%Aaron Ellison Keynote: Reaching the 99%
Aaron Ellison Keynote: Reaching the 99%David LeBauer
 
Andrew Thomas OpenBUGS
Andrew Thomas OpenBUGSAndrew Thomas OpenBUGS
Andrew Thomas OpenBUGSDavid LeBauer
 
Janine Illian R-INLA
Janine Illian R-INLAJanine Illian R-INLA
Janine Illian R-INLADavid LeBauer
 
Jeroen Steenbeek Ecopath with Ecosim
Jeroen Steenbeek Ecopath with EcosimJeroen Steenbeek Ecopath with Ecosim
Jeroen Steenbeek Ecopath with EcosimDavid LeBauer
 
Sii. .Cz.Prezentace.2010.Small
Sii. .Cz.Prezentace.2010.SmallSii. .Cz.Prezentace.2010.Small
Sii. .Cz.Prezentace.2010.SmallJerryFishlet
 
电子商务教程2 0
电子商务教程2 0电子商务教程2 0
电子商务教程2 0yanzhenginfo
 
电子商务网站情报信息搜集工具与方法入门篇
电子商务网站情报信息搜集工具与方法入门篇电子商务网站情报信息搜集工具与方法入门篇
电子商务网站情报信息搜集工具与方法入门篇yanzhenginfo
 
信息检索系统评价
信息检索系统评价信息检索系统评价
信息检索系统评价yanzhenginfo
 
Presentation1 biotechnology and forestri
Presentation1 biotechnology and forestriPresentation1 biotechnology and forestri
Presentation1 biotechnology and forestriManohar Kapoor
 
关联数据应用研究-数字图书馆课堂发言
关联数据应用研究-数字图书馆课堂发言关联数据应用研究-数字图书馆课堂发言
关联数据应用研究-数字图书馆课堂发言yanzhenginfo
 
专利分析报告作业 武汉、长沙、郑州2010年专利申请分析报告
专利分析报告作业 武汉、长沙、郑州2010年专利申请分析报告专利分析报告作业 武汉、长沙、郑州2010年专利申请分析报告
专利分析报告作业 武汉、长沙、郑州2010年专利申请分析报告yanzhenginfo
 

Viewers also liked (20)

Matt Jones software-interoperability
Matt Jones software-interoperabilityMatt Jones software-interoperability
Matt Jones software-interoperability
 
Mike Dietze PEcAn
Mike Dietze PEcAnMike Dietze PEcAn
Mike Dietze PEcAn
 
Aaron Ellison: Analytic Web
Aaron Ellison: Analytic WebAaron Ellison: Analytic Web
Aaron Ellison: Analytic Web
 
Ed Ionides POMP
Ed Ionides POMPEd Ionides POMP
Ed Ionides POMP
 
Yiqi Luo EcoPAD
Yiqi Luo EcoPADYiqi Luo EcoPAD
Yiqi Luo EcoPAD
 
Ilkay Altintas: Kepler
Ilkay Altintas: KeplerIlkay Altintas: Kepler
Ilkay Altintas: Kepler
 
Aaron Ellison Keynote: Reaching the 99%
Aaron Ellison Keynote: Reaching the 99%Aaron Ellison Keynote: Reaching the 99%
Aaron Ellison Keynote: Reaching the 99%
 
Andrew Thomas OpenBUGS
Andrew Thomas OpenBUGSAndrew Thomas OpenBUGS
Andrew Thomas OpenBUGS
 
Janine Illian R-INLA
Janine Illian R-INLAJanine Illian R-INLA
Janine Illian R-INLA
 
Jeroen Steenbeek Ecopath with Ecosim
Jeroen Steenbeek Ecopath with EcosimJeroen Steenbeek Ecopath with Ecosim
Jeroen Steenbeek Ecopath with Ecosim
 
Sii. .Cz.Prezentace.2010.Small
Sii. .Cz.Prezentace.2010.SmallSii. .Cz.Prezentace.2010.Small
Sii. .Cz.Prezentace.2010.Small
 
电子商务教程2 0
电子商务教程2 0电子商务教程2 0
电子商务教程2 0
 
电子商务网站情报信息搜集工具与方法入门篇
电子商务网站情报信息搜集工具与方法入门篇电子商务网站情报信息搜集工具与方法入门篇
电子商务网站情报信息搜集工具与方法入门篇
 
David LeBauer PEcAn
David LeBauer PEcAnDavid LeBauer PEcAn
David LeBauer PEcAn
 
信息检索系统评价
信息检索系统评价信息检索系统评价
信息检索系统评价
 
Presentation1 biotechnology and forestri
Presentation1 biotechnology and forestriPresentation1 biotechnology and forestri
Presentation1 biotechnology and forestri
 
David Kelly SWIFT
David Kelly SWIFTDavid Kelly SWIFT
David Kelly SWIFT
 
Andy Fox DART
Andy Fox DARTAndy Fox DART
Andy Fox DART
 
关联数据应用研究-数字图书馆课堂发言
关联数据应用研究-数字图书馆课堂发言关联数据应用研究-数字图书馆课堂发言
关联数据应用研究-数字图书馆课堂发言
 
专利分析报告作业 武汉、长沙、郑州2010年专利申请分析报告
专利分析报告作业 武汉、长沙、郑州2010年专利申请分析报告专利分析报告作业 武汉、长沙、郑州2010年专利申请分析报告
专利分析报告作业 武汉、长沙、郑州2010年专利申请分析报告
 

Similar to Nimble algorithm programming language for Bayesian modeling

Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentAdaCore
 
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn PipelinesRevolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn PipelinesPhilip Goddard
 
Introduction to MPI
Introduction to MPIIntroduction to MPI
Introduction to MPIyaman dua
 
Introduction to C programming
Introduction to C programmingIntroduction to C programming
Introduction to C programmingRokonuzzaman Rony
 
A Hands-on Intro to Data Science and R Presentation.ppt
A Hands-on Intro to Data Science and R Presentation.pptA Hands-on Intro to Data Science and R Presentation.ppt
A Hands-on Intro to Data Science and R Presentation.pptSanket Shikhar
 
9781285852744 ppt ch01
9781285852744 ppt ch019781285852744 ppt ch01
9781285852744 ppt ch01Terry Yoast
 
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Embarcados
 
Introduction-to-C-Part-1.pdf
Introduction-to-C-Part-1.pdfIntroduction-to-C-Part-1.pdf
Introduction-to-C-Part-1.pdfAnassElHousni
 
ch01_an overview of computers and programming languages
ch01_an overview of computers and programming languagesch01_an overview of computers and programming languages
ch01_an overview of computers and programming languagesLiemLe21
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaGoDataDriven
 
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiNatural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiDatabricks
 
9781285852751 ppt c++
9781285852751 ppt c++9781285852751 ppt c++
9781285852751 ppt c++umair khan
 

Similar to Nimble algorithm programming language for Bayesian modeling (20)

Rcpp
RcppRcpp
Rcpp
 
Bounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise EnvironmentBounded Model Checking for C Programs in an Enterprise Environment
Bounded Model Checking for C Programs in an Enterprise Environment
 
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn PipelinesRevolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
 
Introduction to MPI
Introduction to MPIIntroduction to MPI
Introduction to MPI
 
C++ Homework Help
C++ Homework HelpC++ Homework Help
C++ Homework Help
 
Introduction to C programming
Introduction to C programmingIntroduction to C programming
Introduction to C programming
 
A Hands-on Intro to Data Science and R Presentation.ppt
A Hands-on Intro to Data Science and R Presentation.pptA Hands-on Intro to Data Science and R Presentation.ppt
A Hands-on Intro to Data Science and R Presentation.ppt
 
9781285852744 ppt ch01
9781285852744 ppt ch019781285852744 ppt ch01
9781285852744 ppt ch01
 
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
Webinar: Começando seus trabalhos com Machine Learning utilizando ferramentas...
 
Oops index
Oops indexOops index
Oops index
 
Introduction-to-C-Part-1.pdf
Introduction-to-C-Part-1.pdfIntroduction-to-C-Part-1.pdf
Introduction-to-C-Part-1.pdf
 
ch01_an overview of computers and programming languages
ch01_an overview of computers and programming languagesch01_an overview of computers and programming languages
ch01_an overview of computers and programming languages
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
 
01 c
01 c01 c
01 c
 
C++Basics2022.pptx
C++Basics2022.pptxC++Basics2022.pptx
C++Basics2022.pptx
 
C_Intro.ppt
C_Intro.pptC_Intro.ppt
C_Intro.ppt
 
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali ZaidiNatural Language Processing with CNTK and Apache Spark with Ali Zaidi
Natural Language Processing with CNTK and Apache Spark with Ali Zaidi
 
C++ How to program
C++ How to programC++ How to program
C++ How to program
 
9781285852751 ppt c++
9781285852751 ppt c++9781285852751 ppt c++
9781285852751 ppt c++
 
C intro
C introC intro
C intro
 

More from David LeBauer

Software and data as scaffolds for integrative science
Software and data as scaffolds for integrative scienceSoftware and data as scaffolds for integrative science
Software and data as scaffolds for integrative scienceDavid LeBauer
 
Reusable Software and Open Data To Optimize Agriculture
Reusable Software and Open Data To Optimize AgricultureReusable Software and Open Data To Optimize Agriculture
Reusable Software and Open Data To Optimize AgricultureDavid LeBauer
 
Anders Nielsen AD Model-Builder
Anders Nielsen AD Model-BuilderAnders Nielsen AD Model-Builder
Anders Nielsen AD Model-BuilderDavid LeBauer
 
Anders Nielsen template model-builder
Anders Nielsen template model-builderAnders Nielsen template model-builder
Anders Nielsen template model-builderDavid LeBauer
 
Advancing Software for Ecological Forecasting: Public Sessions
Advancing Software for Ecological Forecasting: Public SessionsAdvancing Software for Ecological Forecasting: Public Sessions
Advancing Software for Ecological Forecasting: Public SessionsDavid LeBauer
 
Advancing software for ecological forecasting
Advancing software for ecological forecastingAdvancing software for ecological forecasting
Advancing software for ecological forecastingDavid LeBauer
 
Advancing Software for Ecological Forecasting: Agenda
Advancing Software for Ecological Forecasting: AgendaAdvancing Software for Ecological Forecasting: Agenda
Advancing Software for Ecological Forecasting: AgendaDavid LeBauer
 

More from David LeBauer (9)

Software and data as scaffolds for integrative science
Software and data as scaffolds for integrative scienceSoftware and data as scaffolds for integrative science
Software and data as scaffolds for integrative science
 
Reusable Software and Open Data To Optimize Agriculture
Reusable Software and Open Data To Optimize AgricultureReusable Software and Open Data To Optimize Agriculture
Reusable Software and Open Data To Optimize Agriculture
 
Martyn Plummer JAGS
Martyn Plummer JAGSMartyn Plummer JAGS
Martyn Plummer JAGS
 
Anders Nielsen AD Model-Builder
Anders Nielsen AD Model-BuilderAnders Nielsen AD Model-Builder
Anders Nielsen AD Model-Builder
 
Daniel Lee STAN
Daniel Lee STANDaniel Lee STAN
Daniel Lee STAN
 
Anders Nielsen template model-builder
Anders Nielsen template model-builderAnders Nielsen template model-builder
Anders Nielsen template model-builder
 
Advancing Software for Ecological Forecasting: Public Sessions
Advancing Software for Ecological Forecasting: Public SessionsAdvancing Software for Ecological Forecasting: Public Sessions
Advancing Software for Ecological Forecasting: Public Sessions
 
Advancing software for ecological forecasting
Advancing software for ecological forecastingAdvancing software for ecological forecasting
Advancing software for ecological forecasting
 
Advancing Software for Ecological Forecasting: Agenda
Advancing Software for Ecological Forecasting: AgendaAdvancing Software for Ecological Forecasting: Agenda
Advancing Software for Ecological Forecasting: Agenda
 

Recently uploaded

Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...Suhani Kapoor
 
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Delhi Call girls
 
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /WhatsappsBeautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsappssapnasaifi408
 
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptxEMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptxthyngster
 
(PARI) Call Girls Wanowrie ( 7001035870 ) HI-Fi Pune Escorts Service
(PARI) Call Girls Wanowrie ( 7001035870 ) HI-Fi Pune Escorts Service(PARI) Call Girls Wanowrie ( 7001035870 ) HI-Fi Pune Escorts Service
(PARI) Call Girls Wanowrie ( 7001035870 ) HI-Fi Pune Escorts Serviceranjana rawat
 
Unveiling Insights: The Role of a Data Analyst
Unveiling Insights: The Role of a Data AnalystUnveiling Insights: The Role of a Data Analyst
Unveiling Insights: The Role of a Data AnalystSamantha Rae Coolbeth
 
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...soniya singh
 
From idea to production in a day – Leveraging Azure ML and Streamlit to build...
From idea to production in a day – Leveraging Azure ML and Streamlit to build...From idea to production in a day – Leveraging Azure ML and Streamlit to build...
From idea to production in a day – Leveraging Azure ML and Streamlit to build...Florian Roscheck
 
VIP High Class Call Girls Bikaner Anushka 8250192130 Independent Escort Servi...
VIP High Class Call Girls Bikaner Anushka 8250192130 Independent Escort Servi...VIP High Class Call Girls Bikaner Anushka 8250192130 Independent Escort Servi...
VIP High Class Call Girls Bikaner Anushka 8250192130 Independent Escort Servi...Suhani Kapoor
 
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdfKantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdfSocial Samosa
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfMarinCaroMartnezBerg
 
Building on a FAIRly Strong Foundation to Connect Academic Research to Transl...
Building on a FAIRly Strong Foundation to Connect Academic Research to Transl...Building on a FAIRly Strong Foundation to Connect Academic Research to Transl...
Building on a FAIRly Strong Foundation to Connect Academic Research to Transl...Jack DiGiovanna
 
代办国外大学文凭《原版美国UCLA文凭证书》加州大学洛杉矶分校毕业证制作成绩单修改
代办国外大学文凭《原版美国UCLA文凭证书》加州大学洛杉矶分校毕业证制作成绩单修改代办国外大学文凭《原版美国UCLA文凭证书》加州大学洛杉矶分校毕业证制作成绩单修改
代办国外大学文凭《原版美国UCLA文凭证书》加州大学洛杉矶分校毕业证制作成绩单修改atducpo
 
定制英国白金汉大学毕业证(UCB毕业证书) 成绩单原版一比一
定制英国白金汉大学毕业证(UCB毕业证书)																			成绩单原版一比一定制英国白金汉大学毕业证(UCB毕业证书)																			成绩单原版一比一
定制英国白金汉大学毕业证(UCB毕业证书) 成绩单原版一比一ffjhghh
 
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Callshivangimorya083
 

Recently uploaded (20)

Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls CP 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...
VIP High Class Call Girls Jamshedpur Anushka 8250192130 Independent Escort Se...
 
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
 
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /WhatsappsBeautiful Sapna Vip  Call Girls Hauz Khas 9711199012 Call /Whatsapps
Beautiful Sapna Vip Call Girls Hauz Khas 9711199012 Call /Whatsapps
 
Decoding Loan Approval: Predictive Modeling in Action
Decoding Loan Approval: Predictive Modeling in ActionDecoding Loan Approval: Predictive Modeling in Action
Decoding Loan Approval: Predictive Modeling in Action
 
꧁❤ Aerocity Call Girls Service Aerocity Delhi ❤꧂ 9999965857 ☎️ Hard And Sexy ...
꧁❤ Aerocity Call Girls Service Aerocity Delhi ❤꧂ 9999965857 ☎️ Hard And Sexy ...꧁❤ Aerocity Call Girls Service Aerocity Delhi ❤꧂ 9999965857 ☎️ Hard And Sexy ...
꧁❤ Aerocity Call Girls Service Aerocity Delhi ❤꧂ 9999965857 ☎️ Hard And Sexy ...
 
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptxEMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM  TRACKING WITH GOOGLE ANALYTICS.pptx
EMERCE - 2024 - AMSTERDAM - CROSS-PLATFORM TRACKING WITH GOOGLE ANALYTICS.pptx
 
(PARI) Call Girls Wanowrie ( 7001035870 ) HI-Fi Pune Escorts Service
(PARI) Call Girls Wanowrie ( 7001035870 ) HI-Fi Pune Escorts Service(PARI) Call Girls Wanowrie ( 7001035870 ) HI-Fi Pune Escorts Service
(PARI) Call Girls Wanowrie ( 7001035870 ) HI-Fi Pune Escorts Service
 
VIP Call Girls Service Charbagh { Lucknow Call Girls Service 9548273370 } Boo...
VIP Call Girls Service Charbagh { Lucknow Call Girls Service 9548273370 } Boo...VIP Call Girls Service Charbagh { Lucknow Call Girls Service 9548273370 } Boo...
VIP Call Girls Service Charbagh { Lucknow Call Girls Service 9548273370 } Boo...
 
Unveiling Insights: The Role of a Data Analyst
Unveiling Insights: The Role of a Data AnalystUnveiling Insights: The Role of a Data Analyst
Unveiling Insights: The Role of a Data Analyst
 
E-Commerce Order PredictionShraddha Kamble.pptx
E-Commerce Order PredictionShraddha Kamble.pptxE-Commerce Order PredictionShraddha Kamble.pptx
E-Commerce Order PredictionShraddha Kamble.pptx
 
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...
High Class Call Girls Noida Sector 39 Aarushi 🔝8264348440🔝 Independent Escort...
 
From idea to production in a day – Leveraging Azure ML and Streamlit to build...
From idea to production in a day – Leveraging Azure ML and Streamlit to build...From idea to production in a day – Leveraging Azure ML and Streamlit to build...
From idea to production in a day – Leveraging Azure ML and Streamlit to build...
 
VIP High Class Call Girls Bikaner Anushka 8250192130 Independent Escort Servi...
VIP High Class Call Girls Bikaner Anushka 8250192130 Independent Escort Servi...VIP High Class Call Girls Bikaner Anushka 8250192130 Independent Escort Servi...
VIP High Class Call Girls Bikaner Anushka 8250192130 Independent Escort Servi...
 
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdfKantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
 
FESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdfFESE Capital Markets Fact Sheet 2024 Q1.pdf
FESE Capital Markets Fact Sheet 2024 Q1.pdf
 
Building on a FAIRly Strong Foundation to Connect Academic Research to Transl...
Building on a FAIRly Strong Foundation to Connect Academic Research to Transl...Building on a FAIRly Strong Foundation to Connect Academic Research to Transl...
Building on a FAIRly Strong Foundation to Connect Academic Research to Transl...
 
代办国外大学文凭《原版美国UCLA文凭证书》加州大学洛杉矶分校毕业证制作成绩单修改
代办国外大学文凭《原版美国UCLA文凭证书》加州大学洛杉矶分校毕业证制作成绩单修改代办国外大学文凭《原版美国UCLA文凭证书》加州大学洛杉矶分校毕业证制作成绩单修改
代办国外大学文凭《原版美国UCLA文凭证书》加州大学洛杉矶分校毕业证制作成绩单修改
 
定制英国白金汉大学毕业证(UCB毕业证书) 成绩单原版一比一
定制英国白金汉大学毕业证(UCB毕业证书)																			成绩单原版一比一定制英国白金汉大学毕业证(UCB毕业证书)																			成绩单原版一比一
定制英国白金汉大学毕业证(UCB毕业证书) 成绩单原版一比一
 
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
꧁❤ Greater Noida Call Girls Delhi ❤꧂ 9711199171 ☎️ Hard And Sexy Vip Call
 

Nimble algorithm programming language for Bayesian modeling

  • 1. NIMBLE    (First  release  by  summer)   model   language   (BUGS)   Algorithm   language  
  • 2. Why  algorithm  programmability?   •  Simple  advanced  MCMC:  block  updaters,  mulHple  updaters,  mulHple  scales,   modularity   •  Advanced  advanced  MCMC:  bridge  sampling,  reversible  jump,  adapHve   MCMC,  tempering,  approximaHng  models   •  ParHcle  filtering   •  Importance  sampling   •  Laplace  approximaHon,  adapHve  Gaussian  quadrature   •  Kalman  Filtering,  Unscented  KF,  extended  KF   •  Prior  sensiHvity  analysis  by  reweighHng   •  Monte  Carlo  ExpectaHon  MaximizaHon  (MCEM)   •  Data  cloning   •  Approximate  Bayesian  ComputaHon   •  Posterior  predicHve  checks  (without  re-­‐running  MCMC)   •  Normalizing  constants:  bridge  sampling;    see  above   •  CombinaHon  algorithms:  PF  +  MCMC,  MCMC  +  Laplace     Algorithm  developers  need  a  system  for  model-­‐flexibility  and  distribuHon.  
  • 3. What  we    do  with  BUGS  models   model  {      mu  ~  dnorm(0,  10)      logit(p)  ~  dnorm(mu,  sigma)      y  ~  dbin(N,  p)   }  
  • 4. What  we    do  with  BUGS  models   model  {      mu  ~  dnorm(0,  10)      logit(p)  ~  dnorm(mu,  sigma)      y  ~  dbin(N,  p)   }   Extract  all  semanHc  relaHonships.   Build  a  graphical  model  object  R  (igraph).   Generate  C++  code   Compile,  load,  and  provide  interface  objects.  
  • 5. What  we    do  with  BUGS  models   model  {      mu  ~  dnorm(0,  10)      logit(p)  ~  dnorm(mu,  sigma)      y  ~  dbin(N,  p)   }   Extract  all  semanHc  relaHonships.   Build  a  graphical  model  object  R  (igraph).   Generate  C++  code   Compile,  load,  and  provide  interface  objects.   mymodel$mu  <-­‐  5   toCalc  <-­‐  getDependencies(mymodel,  "mu")   calculate(mymodel,  toCalc)  
  • 6. What  we    do  with  BUGS  models   Some  "automaHc"  extensions  of  BUGS   1.  Expressions  as  arguments   2.  MulHple  parameterizaHons  for  distribuHons  (e.g.  precision  or  std.  deviaHon)   3.  Compile-­‐Hme  if-­‐then-­‐else   4.  Single-­‐line  moHfs:    y[1:10]  ~  glmm(X  *  A  +  (1  |  Group),  family  =  "binomial")   model  {      mu  ~  dnorm(0,  10)      logit(p)  ~  dnorm(mu,  sigma)      y  ~  dbin(N,  p)   }   Extract  all  semanHc  relaHonships.   Build  a  graphical  model  object  R  (igraph).   Generate  C++  code   Compile,  load,  and  provide  interface  objects.   mymodel$mu  <-­‐  5   toCalc  <-­‐  getDependencies(mymodel,  "mu")   calculate(mymodel,  toCalc)  
  • 7. How  we  write  algorithms   Random-­‐walk  MCMC  updater   1.  setup  arguments:  model,  targetNode  
  • 8. How  we  write  algorithms   Random-­‐walk  MCMC  updater   1.  setup  arguments:  model,  targetNode   2.  setup  code:      use  model  structure  to  query  targetNode  dependencies   Processed  ONCE,   in  R  
  • 9. How  we  write  algorithms   Random-­‐walk  MCMC  updater   1.  setup  arguments:  model,  targetNode   2.  setup  code:      use  model  structure  to  query  targetNode  dependencies   Processed  ONCE,   in  R   3.  run-­‐Hme  code:              (i)      put  a  proposal  value  in  the  targetNode              (ii)    calculate  needed  log  likelihoods              (iii)  accept  or  reject   Becomes  C++  code,   compiled  &  interfaced  
  • 10. How  we  write  algorithms   Random-­‐walk  MCMC  updater   1.  setup  arguments:  model,  targetNode   2.  setup  code:      use  model  structure  to  query  targetNode  dependencies   Processed  ONCE,   in  R   3.  run-­‐Hme  code:              (i)      put  a  proposal  value  in  the  targetNode              (ii)    calculate  needed  log  likelihoods              (iii)  accept  or  reject   Becomes  C++  code,   compiled  &  interfaced   Building  a  program  with  many  funcHons:   •  model  structure  (setup  arguments)  processed  in  R   •  algorithm  executed  in  C++  
  • 11. How  we  write  algorithms   Random-­‐walk  MCMC  updater   1.  setup  arguments:  model,  targetNode   2.  setup  code:      use  model  structure  to  query  targetNode  dependencies   Processed  ONCE,   in  R   3.  run-­‐Hme  code:              (i)      put  a  proposal  value  in  the  targetNode              (ii)    calculate  needed  log  likelihoods              (iii)  accept  or  reject   Becomes  C++  code,   compiled  &  interfaced   Building  a  program  with  many  funcHons:   •  model  structure  (setup  arguments)  processed  in  R   •  algorithm  executed  in  C++   We  provide  data  structures  for  sets  of  model  values  (e.g.  MCMC  output)  
  • 12. ConnecHons  to  other  engines   When  another  system  has  a  great  algorithm,  we  want  to  wrap  access  to  it.  
  • 13. ConnecHons  to  other  engines   When  another  system  has  a  great  algorithm,  we  want  to  wrap  access  to  it.   Example:    Monte  Carlo  ExpectaHon  MaximizaHon  (MCEM)   •  Uses  MCMC  repeatedly  on  latent  states   •  Parameters  updated  between  MCMCs   •  We  don't  have  to  use  our  own  MCMC  if  someone  else  has  a  great  one      
  • 14. ConnecHons  to  other  engines   When  another  system  has  a  great  algorithm,  we  want  to  wrap  access  to  it.   Example:    Monte  Carlo  ExpectaHon  MaximizaHon  (MCEM)   •  Uses  MCMC  repeatedly  on  latent  states   •  Parameters  updated  between  MCMCs   •  We  don't  have  to  use  our  own  MCMC  if  someone  else  has  a  great  one       How?       We  have  high-­‐level  representaHon  of  model  structure.   Can  generate  specificaHons  needed  for  other  packages.    
  • 15. Who  we  think  will  use  NIMBLE   1.  Algorithm  developers   2.  Data  analysts   3.  Workflow  pipelines  
  • 16. Numerical! Integration of! Mixture Models for! Bayesian and ! Likelihood! Estimation! Team:! Perry de Valpine! Chris Paciorek! Daniel Turek! Cliff Anderson-Bergmann! Ras Bodik! Duncan Temple Lang! Funding:! NSF Advances in ! Biological Informatics!
  • 17.
  • 18. Common  situaHon   model   language   (Black  box  algorithm)  
  • 19. How  we  build  an  MCMC   1.  R  funcHons  use  model/graph  objects  in  R  to  inspect  a  parHcular  model:    -­‐    Build  list  of  updaters                    -­‐    Can  be  inspected,  modified                    -­‐    You  can  write  your  own  
  • 20. How  we  build  an  MCMC   1.  R  funcHons  use  model/graph  objects  in  R  to  inspect  a  parHcular  model:    -­‐    Build  list  of  updaters                    -­‐    Can  be  inspected,  modified                    -­‐    You  can  write  your  own   2.  Generate  C++  code  for  all  updaters.  
  • 21. How  we  build  an  MCMC   1.  R  funcHons  use  model/graph  objects  in  R  to  inspect  a  parHcular  model:    -­‐    Build  list  of  updaters                    -­‐    Can  be  inspected,  modified                    -­‐    You  can  write  your  own   2.  Generate  C++  code  for  all  updaters.   3.  Compile,  load,  build  and  interface  to  objects.