SlideShare a Scribd company logo
R packages Potts model Bayesian computation Conclusion
bayesImageS: a case study in Bayesian
computation using Rcpp and OpenMP
Matt Moores
OxWaSP mini-symposium
December 2, 2016
R packages Potts model Bayesian computation Conclusion
Outline
1 R packages
Performance of BLAS
2 Potts model
3 Bayesian computation
Chequerboard Gibbs sampler
Pseudolikelihood
Thermodynamic integration
Exchange algorithm
Approximate Bayesian Computation (ABC)
R packages Potts model Bayesian computation Conclusion
Why write an R package?
Portability
Test bed for new statistical methods
Build on existing code
Research impact
Kudos
Hadley Wickham (2015) R packages
R packages Potts model Bayesian computation Conclusion
Why C++?
Most statistical algorithms are iterative
Markov chain Monte Carlo
Scalability for large datasets
Rcpp
OpenMP
Eigen or Armadillo
Dirk Eddelbuettel (2013) Seamless R and C++ integration with Rcpp
R packages Potts model Bayesian computation Conclusion
Inline
One function at a time:
§
library ( i n l i n e )
sum_logs ← cxxfunction ( signature ( log_vec = "numeric") , plugin = "RcppArmadillo" , body=’
arma::vec log_prob = Rcpp::as<arma::vec>(log_vec);
double suml = 0.0;
double maxl = log_prob.max();
for (unsigned i=0; i < log_prob.n_elem; i++)
{
if (arma::is_finite(log_prob(i)))
suml += exp(log_prob(i) - maxl);
}
return Rcpp::wrap(log(suml) + maxl);
’)
R packages Potts model Bayesian computation Conclusion
Package Skeleton
Create a new R package:
package.skeleton("myPackage", path=".")
Specific skeletons for each C++ library:
Rcpp.package.skeleton("myRcppPackage")
RcppArmadillo.package.skeleton("MyArmadilloPackage")
RcppEigen.package.skeleton("MyEigenPackage")
R packages Potts model Bayesian computation Conclusion
Annotations
Rcpp wrappers generated automatically:
compileAttributes("myRcppPackage")
R package documentation generated automatically:
roxygenize("myRcppPackage")
§
/ / ’ Compute the effective sample size (ESS) of the particles.
/ / ’
/ / ’ The ESS is a ‘‘rule of thumb’’ for assessing the degeneracy of
/ / ’’ the importance distribution:
/ / ’  deqn {ESS =  frac { (  sum_ { q=1}^Q w_q ) ^ 2 } {  sum_ { q=1}^Q w_q ^2}}
/ / ’
/ / ’’ @param log_weights logarithms of the importance weights of each particle.
/ / ’’ @return the effective sample size, a scalar between 0 and Q
/ / ’’ @references
/ / ’’ Liu, JS (2001) "Monte Carlo Strategies in Scientific Computing." Springer’
/ / [ [ Rcpp : : export ] ]
double effectiveSampleSize ( NumericVector log_weights )
{
double sum_wt = sum_logs ( log_weights ) ;
double sum_sq = sum_logs ( log_weights + log_weights ) ;
double res = exp (sum_wt + sum_wt − sum_sq ) ;
i f ( std : : i s f i n i t e ( res ) ) return res ;
else return 0;
}
R packages Potts model Bayesian computation Conclusion
Common Problems
Rcpp parameters are passed by reference (not copied):
Can rely on R for garbage collection
Memory allocation is slower
Can crash R (and Rstudio (and your OS))
R is not thread safe
Cannot call any R functions (even indirectly)
within parallel code!
Drew Schmidt (@wrathematics, 2015) Parallelism, R, and OpenMP
R packages Potts model Bayesian computation Conclusion
Performance
A simple performance comparison:
§
library ( RcppEigen )
library ( RcppArmadillo )
library (RcppGSL)
library ( rbenchmark )
source ( system . f i l e ("examples" , "lmBenchmark.R" ,
package ="RcppEigen" ) )
Fitting a linear regression model
(by default, n=100000 rows × p=40 columns,
with 20 repeat measurements)
R packages Potts model Bayesian computation Conclusion
Results with default R BLAS
Table: lm benchmark for Mac OS X with reference R BLAS
test relative elapsed user.self sys.self
3 LDLt 1.000 3.611 3.448 0.164
7 QR 1.356 4.896 4.801 0.077
8 LLt 1.421 5.130 5.007 0.123
11 gpuLm.fit 2.634 9.510 8.332 0.395
1 lm.fit 3.760 13.576 13.550 0.025
6 SymmEig 5.475 19.770 19.634 0.126
2 PivQR 5.517 19.923 19.760 0.162
9 arma 20.416 73.723 73.459 0.255
4 GESDD 24.815 89.607 89.429 0.175
10 GSL 198.975 718.500 718.157 0.272
5 SVD 201.717 728.401 727.958 0.423
matrix dimensions:1650 × 875
R packages Potts model Bayesian computation Conclusion
Accelerate Umbrella Framework
Table: lm benchmark for Mac OS X with vecLib
test relative elapsed user.self sys.self
3 LDLt 1.000 3.682 3.517 0.165
7 QR 1.330 4.898 4.809 0.088
8 LLt 1.413 5.204 5.081 0.121
1 lm.fit 1.832 6.745 6.702 0.024
9 arma 2.396 8.821 20.572 1.229
11 gpuLm.fit 2.655 9.776 8.757 0.344
4 GESDD 3.313 12.199 22.120 0.884
6 SymmEig 5.405 19.902 19.775 0.127
2 PivQR 5.506 20.273 20.095 0.159
10 GSL 195.244 718.889 718.565 0.273
5 SVD 198.514 730.930 730.403 0.495
Iacus, Urbanek, Goedman & Ripley (2016) R for Mac OS X FAQ, §10.5
R packages Potts model Bayesian computation Conclusion
Nested Models
β ← 0
Hidden MRF
θ : scale
D > 1 : dimension
∂i : neighbourhood
ψ : noise param.
p (yi | zi, ψ)
p zi | zi, θ
p (θ | z)
p(ψ) p(θ)
y, z, θ, ψ
Hidden Ising/Potts
z ∈ {1 . . . k}
θ = β : inverse
temperature
p zi | zi, β
p (β | z) p(β)
Mixture of Gaussians
λ = {λ1, . . . , λk} :
k
j=1 λj = 1
ψ = µ, σ2
: noise param.
p yi | zi, µj, σ2
j
p (λ | z) p(λ)
R packages Potts model Bayesian computation Conclusion
Hidden Markov Random Field
Joint distribution of observed pixel intensities y = {yi}n
i=1
and latent labels z = {zi}n
i=1:
p(y, z|µ, σ2
, β) = p(y|µ, σ2
, z)p(z|β) (1)
Additive Gaussian noise:
yi|zi =j
iid
∼ N µj, σ2
j (2)
Potts model:
π(zi|zi, β) =
exp {β i∼ δ(zi, z )}
k
j=1 exp {β i∼ δ(j, z )}
(3)
Potts (1952) Proceedings of the Cambridge Philosophical Society 48(1)
R packages Potts model Bayesian computation Conclusion
Inverse Temperature
R packages Potts model Bayesian computation Conclusion
Doubly-intractable likelihood
p(β|z) ∝ C(β)−1
π(β) exp {β S(z)} (4)
The normalising constant has computational complexity O(nkn):
C(β) =
z∈Z
exp {β S(z)} (5)
S(z) is the sufficient statistic of the Potts model:
S(z) =
i∼ ∈L
δ(zi, z ) (6)
where L is the set of all unique neighbour pairs.
R packages Potts model Bayesian computation Conclusion
Chequerboard Gibbs
A 2D or 3D regular lattice with first-order neighbourhood ∂i:
◦ ◦ ◦ ◦ ◦
◦ ◦ • ◦ ◦
◦ • × • ◦
◦ ◦ • ◦ ◦
◦ ◦ ◦ ◦ ◦
can be partitioned into 2 blocks:
• ◦ • ◦ • ◦ • ◦ • ◦
◦ • ◦ • ◦ • ◦ • ◦ •
• ◦ • ◦ • ◦ • ◦ • ◦
◦ • ◦ • ◦ • ◦ • ◦ •
• ◦ • ◦ • ◦ • ◦ • ◦
◦ • ◦ • ◦ • ◦ • ◦ •
• ◦ • ◦ • ◦ • ◦ • ◦
◦ • ◦ • ◦ • ◦ • ◦ •
• ◦ • ◦ • ◦ • ◦ • ◦
◦ • ◦ • ◦ • ◦ • ◦ •
so that z◦ are conditionally independent, given z•
Roberts & Sahu (1997) JRSS B 59(2): 291–317
Winkler (2nd
ed., 2003) Image analysis, random fields and MCMC methods
R packages Potts model Bayesian computation Conclusion
Chequerboard Gibbs II
Algorithm 1 Chequerboard sampling for z
1: for all blocks b do
2: for all pixels i ∈ b do
3: for all labels j ∈ 1 . . . k do
4: Compute λj ← p(yi | zi = j)π(zi = j | zi∼ , β)
5: end for
6: Draw zi ∼ Multinomial(λ1, . . . , λk)
7: end for
8: end for
R packages Potts model Bayesian computation Conclusion
Gibbs sampler in C++
§
void gibbsLabels ( const arma : : umat & neigh , const std : : vector <arma : : uvec> & blocks ,
arma : : umat & z , arma : : umat & alloc , const double beta ,
const arma : : mat & log_ x f i e l d )
{
const Rcpp : : NumericVector randU = Rcpp : : r u n i f ( neigh . n_rows ) ;
for ( unsigned b=0; b < blocks . size ( ) ; b++)
{
const arma : : uvec block = blocks [ b ] ;
arma : : vec log_prob ( z . n_cols ) ;
#pragma omp p a r a l l e l for private ( log_prob )
for ( unsigned i =0; i < block . size ( ) ; i ++)
{
for ( unsigned j =0; j < z . n_cols ; j ++)
{
unsigned sum_neigh = 0;
for ( unsigned k=0; k < neigh . n_cols ; k++)
{
sum_neigh += z ( neigh ( block [ i ] , k ) , j ) ;
}
log_prob [ j ] = log_ x f i e l d ( block [ i ] , j ) + beta∗sum_neigh ;
}
double t o t a l _ l l i k e = sum_logs ( log_prob ) ;
double cumProb = 0.0;
z . row ( block [ i ] ) . zeros ( ) ;
for ( unsigned j =0; j < log_prob . n_elem ; j ++)
{
cumProb += exp ( log_prob [ j ] − t o t a l _ l l i k e ) ;
i f ( randU [ block [ i ] ] < cumProb )
{
z ( block [ i ] , j ) = 1;
a l l o c ( block [ i ] , j ) += 1;
break ;
R packages Potts model Bayesian computation Conclusion
Pseudolikelihood (PL)
Algorithm 2 Metropolis-Hastings with PL
1: Draw proposal β ∼ q(β |β◦)
2: Approximate p(β |z) and p(β◦|z) using equation (7):
ˆpPL(β|z) ≈
n
i=1
exp{β i∼ δ(zi, z )}
k
j=1 exp{β i∼ δ(j, z )}
(7)
3: Calculate the M-H ratio ρ = ˆpPL(β |z)π(β )q(β◦|β )
ˆpPL(β◦|z)π(β◦)q(β |β◦)
4: Draw u ∼ Uniform[0, 1]
5: if u < min(1, ρ) then
6: β ← β
7: else
8: β ← β◦
9: end if
Rydén & Titterington (1998) JCGS 7(2): 194–211
R packages Potts model Bayesian computation Conclusion
Pseudolikelihood in C++
§
double pseudolike ( const arma : : mat & ne , const arma : : uvec & e , const double b ,
const unsigned n , const unsigned k )
{
double num = 0.0;
double denom = 0.0;
#pragma omp p a r a l l e l for reduction ( + :num, denom)
for ( unsigned i =0; i < n ; i ++)
{
num=num+ne ( e [ i ] , i ) ;
double tdenom =0.0;
for ( unsigned j =0; j < k ; j ++)
{
tdenom=tdenom+exp ( b∗ne ( j , i ) ) ;
}
denom=denom+log ( tdenom ) ;
}
return b∗num−denom ;
}
R packages Potts model Bayesian computation Conclusion
Approximation Error
PL for n = 12, k = 3 in comparison to the exact likelihood
calculated using a brute force method:
0 1 2 3 4
6810121416
β
µ
exact
pseudolikelihood
(a) Expectation
0 1 2 3 4
0.00.51.01.52.02.5
β
σ
exact
pseudolikelihood
(b) Standard deviation
R packages Potts model Bayesian computation Conclusion
Thermodynamic Integration (TI)
Path sampling identity:
log
C(β◦)
C(β )
=
β◦
β
E z|β [S(z)] dβ (8)
0.0 0.5 1.0 1.5 2.0
500000100000015000002000000
ϕ
S(x)
Gelman & Meng (1998) Stat. Sci. 13(2): 163–185.
R packages Potts model Bayesian computation Conclusion
TI algorithm
Algorithm 3 Random walk Metropolis with TI
1: Draw random walk proposal β ∼ q(β |β◦)
2: Estimate S(z|β◦) and S(z|β ) by interpolation
3: Evaluate the definite integral in equation (8)
4: Calculate the log M-H acceptance ratio:
log{ρ} = log
C(β◦)
C(β )
+ (β − β◦
)S(z) (9)
5: Draw u ∼ Uniform[0, 1]
6: if u < min(1, ρ) then
7: β ← β
8: else
9: β ← β◦
10: end if
R packages Potts model Bayesian computation Conclusion
TI in C++
§
unsigned pathBeta ( const arma : : umat & neigh , const std : : vector <arma : : uvec> & blocks ,
const arma : : mat & path , const arma : : umat & z , double & beta ,
const double p r i o r _beta [ 2 ] , const double bw)
{
double bprime = rwmh( beta , bw, p r i o r _beta ) ; / / truncated Gaussian
/ / approximate log (Z( bprime ) / Z( beta ) )
double log_ r a t i o = quadrature ( bprime , beta , path )
+ ( bprime−beta ) ∗ sum_ ident ( z , neigh , blocks ) ;
/ / accept / r e j e c t
i f ( u n i f _rand ( ) < exp ( log_ r a t i o ) )
{
beta = bprime ;
return 1;
}
return 0;
}
R packages Potts model Bayesian computation Conclusion
Approximate Exchange Algorithm (AEA)
Algorithm 4 AEA
1: Draw random walk proposal β ∼ q(β |β◦)
2: Generate w|β by sampling from eq. (3)
3: Calculate the M-H acceptance ratio according to eq. (4):
ρ =
π(β ) exp {β S(z)} C(β◦)
π(β◦) exp {β◦S(z)} C(β )
exp {β◦S(w)} C(β )
exp {β S(w)} C(β◦)
(10)
4: Draw u ∼ Uniform[0, 1]
5: if u < min(1, ρ) then
6: β ← β
7: else
8: β ← β◦
9: end if
Murray, Ghahramani & MacKay (2006) Proc. 22nd
Conf. UAI, 359–366
R packages Potts model Bayesian computation Conclusion
AEA in C++
§
unsigned exchangeBeta ( const arma : : umat & neigh , const std : : vector <arma : : uvec> & blocks ,
const arma : : uvec & slice , const arma : : umat & z , double & beta ,
const double p r i o r _beta [ 2 ] , const unsigned aux , const bool useSW,
const bool swapAux , const double bw)
{
double bprime = rwmh( beta , bw, p r i o r _beta ) ;
arma : : umat a l l o c = arma : : zeros <arma : : umat >(z . n_rows−1, z . n_cols ) ;
arma : : umat w;
i f ( swapAux ) w = z ;
else w = randomIndices ( z . n_rows−1, z . n_cols ) ;
for ( unsigned i =0; i <aux ; i ++)
{
i f (useSW)
{
swLabelsNoData ( neigh , blocks , bprime , w. n_cols , w, a l l o c ) ;
}
else
{
gibbsLabelsNoData ( neigh , blocks , w, alloc , bprime ) ;
}
}
double sum_z = sum_ ident ( z , neigh , blocks ) ;
double sum_w = sum_ ident (w, neigh , blocks ) ;
double log_ r a t i o = ( bprime−beta )∗sum_z + ( beta−bprime )∗sum_w;
/ / accept / r e j e c t
i f ( u n i f _rand ( ) < exp ( log_ r a t i o ) )
{
beta = bprime ;
return 1;
}
return 0;
}
R packages Potts model Bayesian computation Conclusion
Approximate Bayesian Computation
Algorithm 5 ABC rejection sampler
1: Draw independent proposal β ∼ π(β)
2: Generate w|β by sampling from eq. (3)
3: if S(w) − S(z) < then
4: β ← β
5: else
6: β ← β◦
7: end if
Grelaud, Robert, Marin, Rodolphe & Taly (2009) Bayesian Analysis 4(2)
Marin & Robert (2014) Bayesian Essentials with R §8.3
R packages Potts model Bayesian computation Conclusion
ABC with Metropolis-Hastings
Algorithm 6 ABC-MCMC
1: Draw proposal β ∼ q(β |β◦)
2: Generate w|β by sampling from eq. (3)
3: Draw u ∼ Uniform[0, 1]
4: if u < π(β )q(β◦|β )
π(β◦)q(β |β◦) and S(w) − S(z) < then
5: β ← β
6: else
7: β ← β◦
8: end if
Marjoram, Molitor, Plagnol & Tavaré (2003) PNAS 100(26): 15324–28
R packages Potts model Bayesian computation Conclusion
ABC-MCMC in C++
§
unsigned abcBeta ( const arma : : umat & neigh , const std : : vector <arma : : uvec> & blocks ,
const arma : : umat & z , double & beta , const double p r i o r _beta [ 2 ] ,
const unsigned aux , const bool useSW, const bool swapAux ,
const double bw, const double epsilon )
{
double bprime = rwmh( beta , bw, p r i o r _beta ) ;
arma : : umat a l l o c = arma : : zeros <arma : : umat >(z . n_rows−1, z . n_cols ) ;
arma : : umat w;
i f ( swapAux ) w = z ;
else w = randomIndices ( z . n_rows−1, z . n_cols ) ;
for ( unsigned i =0; i <aux ; i ++)
{
i f (useSW)
{
swLabelsNoData ( neigh , blocks , bprime , w. n_cols , w, a l l o c ) ;
}
else
{
gibbsLabelsNoData ( neigh , blocks , w, alloc , bprime ) ;
}
}
double sum_z = sum_ ident ( z , neigh , blocks ) ;
double sum_w = sum_ ident (w, neigh , blocks ) ;
double delta = fabs (sum_w − sum_z ) ;
i f ( delta < epsilon )
{
beta = bprime ;
return 1;
}
return 0;
}
R packages Potts model Bayesian computation Conclusion
Summary
bayesImageS supports methods for updating the latent labels:
Chequerboard Gibbs sampling (Winkler 2003)
Swendsen-Wang (1987)
and also methods for updating the inverse temperature β:
Pseudolikelihood (Rydén & Titterington 1998)
Thermodynamic integration (Gelman & Meng 1998)
Exchange algorithm (Murray, Ghahramani & MacKay 2006)
Approximate Bayesian computation (Grelaud et al. 2009)
Sequential Monte Carlo (ABC-SMC) with pre-computation
(Del Moral, Doucet & Jasra 2012; Moores et al. 2015)
Appendix
Acknowledgements
Principal supervisor: Kerrie Mengersen
Associate supervisor: Fiona Harden
Radiation Oncology Mater Centre (ROMC), Queensland Health:
Cathy Hargrave
Mike Poulsen
Tim Deegan
Other co-authors:
Christopher Drovandi (QUT)
Anthony N. Pettitt (QUT)
Christian Robert
(University of Warwick & Université Paris Dauphine)
PyMCMC team at QUT:
Clair Alston
Christopher Strickland
Appendix
For Further Reading I
D. Eddelbuettel
Seamless R and C++ integration with Rcpp
Springer-Verlag, 2013.
H. Wickham
R packages
O’Reilly, 2015.
D. Bates & D. Eddelbuettel
Fast and elegant numerical linear algebra using the RcppEigen
package.
J. Stat. Soft. 52(5): 1–24, 2013.
D. Eddelbuettel & C. Sanderson
RcppArmadillo: Accelerating R with high-performance C++ linear
algebra.
Comput. Stat. Data Anal. 71: 1054–63, 2014.
Appendix
For Further Reading II
M. Moores & K. Mengersen
bayesImageS: Bayesian methods for image segmentation using a
hidden Potts model.
R package version 0.3-3
https://CRAN.R-project.org/package=bayesImageS
M. Moores, A. N. Pettitt & K. Mengersen
Scalable Bayesian inference for the inverse temperature of a hidden
Potts model.
arXiv:1503.08066 [stat.CO], 2015.
M. Moores, C. C. Drovandi, K. Mengersen & C. P. Robert
Pre-processing for approximate Bayesian computation in image
analysis.
Statistics & Computing 25(1): 23–33, 2015.
M. Moores & K. Mengersen
Bayesian approaches to spatial inference: modelling and computational
challenges and solutions.
In Proc. 33rd Int. Wkshp MaxEnt, AIP Conf. Proc. 1636: 112–117, 2014.
Appendix
For Further Reading III
G. Winkler
Image analysis, random fields and Markov chain Monte Carlo methods
2nd
ed., Springer-Verlag, 2003.
J.-M. Marin & C. P. Robert
Bayesian Essentials with R
Springer-Verlag, 2014.
G. O. Roberts & S. K. Sahu
Updating Schemes, Correlation Structure, Blocking and
Parameterization for the Gibbs Sampler
J. R. Stat. Soc. Ser. B 59(2): 291–317, 1997.
T. Rydén & D. M. Titterington
Computational Bayesian Analysis of Hidden Markov Models.
J. Comput. Graph. Stat., 7(2): 194–211, 1998.
Appendix
For Further Reading IV
A. Gelman & X.-L. Meng
Simulating normalizing constants: from importance sampling to bridge
sampling to path sampling.
Statist. Sci., 13(2): 163–185, 1998.
I. Murray, Z. Ghahramani & D. J. C. MacKay
MCMC for Doubly-intractable Distributions.
Proc. 22nd
Conf. UAI, 359–366, 2006.
A. Grelaud, C. P. Robert, J.-M. Marin, F. Rodolphe & J.-F. Taly
ABC likelihood-free methods for model choice in Gibbs random fields.
Bayesian Analysis 4(2): 317–336, 2009.
R. H. Swendsen & J.-S. Wang
Nonuniversal critical dynamics in Monte Carlo simulations.
Physical Review Letters, 58: 86–8, 1987.

More Related Content

What's hot

A Note on TopicRNN
A Note on TopicRNNA Note on TopicRNN
A Note on TopicRNN
Tomonari Masada
 
Metodo Monte Carlo -Wang Landau
Metodo Monte Carlo -Wang LandauMetodo Monte Carlo -Wang Landau
Metodo Monte Carlo -Wang Landau
angely alcendra
 
Multilayer Neural Networks
Multilayer Neural NetworksMultilayer Neural Networks
Multilayer Neural Networks
ESCOM
 
A Note on Latent LSTM Allocation
A Note on Latent LSTM AllocationA Note on Latent LSTM Allocation
A Note on Latent LSTM Allocation
Tomonari Masada
 
Graph Kernelpdf
Graph KernelpdfGraph Kernelpdf
Graph Kernelpdf
pratik shukla
 
Graph kernels
Graph kernelsGraph kernels
Graph kernels
Luc Brun
 
Graph Edit Distance: Basics & Trends
Graph Edit Distance: Basics & TrendsGraph Edit Distance: Basics & Trends
Graph Edit Distance: Basics & Trends
Luc Brun
 
A nonlinear approximation of the Bayesian Update formula
A nonlinear approximation of the Bayesian Update formulaA nonlinear approximation of the Bayesian Update formula
A nonlinear approximation of the Bayesian Update formula
Alexander Litvinenko
 
Triggering patterns of topology changes in dynamic attributed graphs
Triggering patterns of topology changes in dynamic attributed graphsTriggering patterns of topology changes in dynamic attributed graphs
Triggering patterns of topology changes in dynamic attributed graphs
INSA Lyon - L'Institut National des Sciences Appliquées de Lyon
 
Research Project Primus
Research Project PrimusResearch Project Primus
Research Project Primus
Predrag Terzic
 
Feedback Vertex Set
Feedback Vertex SetFeedback Vertex Set
Feedback Vertex Set
Mag-Stellon Nadarajah
 
Convex Optimization Modelling with CVXOPT
Convex Optimization Modelling with CVXOPTConvex Optimization Modelling with CVXOPT
Convex Optimization Modelling with CVXOPT
andrewmart11
 
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHMADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ijfls
 
Lecture9 xing
Lecture9 xingLecture9 xing
Lecture9 xing
Tianlu Wang
 
Ee693 sept2014midsem
Ee693 sept2014midsemEe693 sept2014midsem
Ee693 sept2014midsem
Gopi Saiteja
 
The all-electron GW method based on WIEN2k: Implementation and applications.
The all-electron GW method based on WIEN2k: Implementation and applications.The all-electron GW method based on WIEN2k: Implementation and applications.
The all-electron GW method based on WIEN2k: Implementation and applications.
ABDERRAHMANE REGGAD
 
Low-rank tensor approximation (Introduction)
Low-rank tensor approximation (Introduction)Low-rank tensor approximation (Introduction)
Low-rank tensor approximation (Introduction)
Alexander Litvinenko
 
Hyperparameter optimization with approximate gradient
Hyperparameter optimization with approximate gradientHyperparameter optimization with approximate gradient
Hyperparameter optimization with approximate gradient
Fabian Pedregosa
 
Solving the energy problem of helium final report
Solving the energy problem of helium final reportSolving the energy problem of helium final report
Solving the energy problem of helium final report
JamesMa54
 

What's hot (19)

A Note on TopicRNN
A Note on TopicRNNA Note on TopicRNN
A Note on TopicRNN
 
Metodo Monte Carlo -Wang Landau
Metodo Monte Carlo -Wang LandauMetodo Monte Carlo -Wang Landau
Metodo Monte Carlo -Wang Landau
 
Multilayer Neural Networks
Multilayer Neural NetworksMultilayer Neural Networks
Multilayer Neural Networks
 
A Note on Latent LSTM Allocation
A Note on Latent LSTM AllocationA Note on Latent LSTM Allocation
A Note on Latent LSTM Allocation
 
Graph Kernelpdf
Graph KernelpdfGraph Kernelpdf
Graph Kernelpdf
 
Graph kernels
Graph kernelsGraph kernels
Graph kernels
 
Graph Edit Distance: Basics & Trends
Graph Edit Distance: Basics & TrendsGraph Edit Distance: Basics & Trends
Graph Edit Distance: Basics & Trends
 
A nonlinear approximation of the Bayesian Update formula
A nonlinear approximation of the Bayesian Update formulaA nonlinear approximation of the Bayesian Update formula
A nonlinear approximation of the Bayesian Update formula
 
Triggering patterns of topology changes in dynamic attributed graphs
Triggering patterns of topology changes in dynamic attributed graphsTriggering patterns of topology changes in dynamic attributed graphs
Triggering patterns of topology changes in dynamic attributed graphs
 
Research Project Primus
Research Project PrimusResearch Project Primus
Research Project Primus
 
Feedback Vertex Set
Feedback Vertex SetFeedback Vertex Set
Feedback Vertex Set
 
Convex Optimization Modelling with CVXOPT
Convex Optimization Modelling with CVXOPTConvex Optimization Modelling with CVXOPT
Convex Optimization Modelling with CVXOPT
 
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHMADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
ADAPTIVE FUZZY KERNEL CLUSTERING ALGORITHM
 
Lecture9 xing
Lecture9 xingLecture9 xing
Lecture9 xing
 
Ee693 sept2014midsem
Ee693 sept2014midsemEe693 sept2014midsem
Ee693 sept2014midsem
 
The all-electron GW method based on WIEN2k: Implementation and applications.
The all-electron GW method based on WIEN2k: Implementation and applications.The all-electron GW method based on WIEN2k: Implementation and applications.
The all-electron GW method based on WIEN2k: Implementation and applications.
 
Low-rank tensor approximation (Introduction)
Low-rank tensor approximation (Introduction)Low-rank tensor approximation (Introduction)
Low-rank tensor approximation (Introduction)
 
Hyperparameter optimization with approximate gradient
Hyperparameter optimization with approximate gradientHyperparameter optimization with approximate gradient
Hyperparameter optimization with approximate gradient
 
Solving the energy problem of helium final report
Solving the energy problem of helium final reportSolving the energy problem of helium final report
Solving the energy problem of helium final report
 

Similar to R package 'bayesImageS': a case study in Bayesian computation using Rcpp and OpenMP

A Parallel Branch And Bound Algorithm For The Quadratic Assignment Problem
A Parallel Branch And Bound Algorithm For The Quadratic Assignment ProblemA Parallel Branch And Bound Algorithm For The Quadratic Assignment Problem
A Parallel Branch And Bound Algorithm For The Quadratic Assignment Problem
Mary Calkins
 
PVS-Studio team experience: checking various open source projects, or mistake...
PVS-Studio team experience: checking various open source projects, or mistake...PVS-Studio team experience: checking various open source projects, or mistake...
PVS-Studio team experience: checking various open source projects, or mistake...
Andrey Karpov
 
sheet6.pdf
sheet6.pdfsheet6.pdf
sheet6.pdf
aminasouyah
 
doc6.pdf
doc6.pdfdoc6.pdf
doc6.pdf
aminasouyah
 
paper6.pdf
paper6.pdfpaper6.pdf
paper6.pdf
aminasouyah
 
lecture5.pdf
lecture5.pdflecture5.pdf
lecture5.pdf
aminasouyah
 
reservoir-modeling-using-matlab-the-matalb-reservoir-simulation-toolbox-mrst.pdf
reservoir-modeling-using-matlab-the-matalb-reservoir-simulation-toolbox-mrst.pdfreservoir-modeling-using-matlab-the-matalb-reservoir-simulation-toolbox-mrst.pdf
reservoir-modeling-using-matlab-the-matalb-reservoir-simulation-toolbox-mrst.pdf
RTEFGDFGJU
 
Codes and Isogenies
Codes and IsogeniesCodes and Isogenies
Codes and Isogenies
Priyanka Aash
 
Steven Duplij, "Polyadic rings of p-adic integers"
Steven Duplij, "Polyadic rings of p-adic integers"Steven Duplij, "Polyadic rings of p-adic integers"
Steven Duplij, "Polyadic rings of p-adic integers"
Steven Duplij (Stepan Douplii)
 
Python for Scientific Computing -- Ricardo Cruz
Python for Scientific Computing -- Ricardo CruzPython for Scientific Computing -- Ricardo Cruz
Python for Scientific Computing -- Ricardo Cruz
rpmcruz
 
Graphical Model Selection for Big Data
Graphical Model Selection for Big DataGraphical Model Selection for Big Data
Graphical Model Selection for Big Data
Alexander Jung
 
parameterized complexity for graph Motif
parameterized complexity for graph Motifparameterized complexity for graph Motif
parameterized complexity for graph Motif
AMR koura
 
論文紹介:Towards Robust Adaptive Object Detection Under Noisy Annotations
論文紹介:Towards Robust Adaptive Object Detection Under Noisy Annotations論文紹介:Towards Robust Adaptive Object Detection Under Noisy Annotations
論文紹介:Towards Robust Adaptive Object Detection Under Noisy Annotations
Toru Tamaki
 
Approximate Bayesian computation for the Ising/Potts model
Approximate Bayesian computation for the Ising/Potts modelApproximate Bayesian computation for the Ising/Potts model
Approximate Bayesian computation for the Ising/Potts model
Matt Moores
 
R Language Introduction
R Language IntroductionR Language Introduction
R Language Introduction
Khaled Al-Shamaa
 
FPGA based BCH Decoder
FPGA based BCH DecoderFPGA based BCH Decoder
FPGA based BCH Decoder
ijsrd.com
 
Subquad multi ff
Subquad multi ffSubquad multi ff
Subquad multi ff
Fabian Velazquez
 
Gate Computer Science Solved Paper 2007
Gate Computer Science Solved Paper 2007 Gate Computer Science Solved Paper 2007
Gate Computer Science Solved Paper 2007
Rohit Garg
 
Quantum espresso G Vector distributon
Quantum espresso G Vector distributonQuantum espresso G Vector distributon
Quantum espresso G Vector distributon
Eric Pascolo
 
Number theoretic-rsa-chailos-new
Number theoretic-rsa-chailos-newNumber theoretic-rsa-chailos-new
Number theoretic-rsa-chailos-new
Christos Loizos
 

Similar to R package 'bayesImageS': a case study in Bayesian computation using Rcpp and OpenMP (20)

A Parallel Branch And Bound Algorithm For The Quadratic Assignment Problem
A Parallel Branch And Bound Algorithm For The Quadratic Assignment ProblemA Parallel Branch And Bound Algorithm For The Quadratic Assignment Problem
A Parallel Branch And Bound Algorithm For The Quadratic Assignment Problem
 
PVS-Studio team experience: checking various open source projects, or mistake...
PVS-Studio team experience: checking various open source projects, or mistake...PVS-Studio team experience: checking various open source projects, or mistake...
PVS-Studio team experience: checking various open source projects, or mistake...
 
sheet6.pdf
sheet6.pdfsheet6.pdf
sheet6.pdf
 
doc6.pdf
doc6.pdfdoc6.pdf
doc6.pdf
 
paper6.pdf
paper6.pdfpaper6.pdf
paper6.pdf
 
lecture5.pdf
lecture5.pdflecture5.pdf
lecture5.pdf
 
reservoir-modeling-using-matlab-the-matalb-reservoir-simulation-toolbox-mrst.pdf
reservoir-modeling-using-matlab-the-matalb-reservoir-simulation-toolbox-mrst.pdfreservoir-modeling-using-matlab-the-matalb-reservoir-simulation-toolbox-mrst.pdf
reservoir-modeling-using-matlab-the-matalb-reservoir-simulation-toolbox-mrst.pdf
 
Codes and Isogenies
Codes and IsogeniesCodes and Isogenies
Codes and Isogenies
 
Steven Duplij, "Polyadic rings of p-adic integers"
Steven Duplij, "Polyadic rings of p-adic integers"Steven Duplij, "Polyadic rings of p-adic integers"
Steven Duplij, "Polyadic rings of p-adic integers"
 
Python for Scientific Computing -- Ricardo Cruz
Python for Scientific Computing -- Ricardo CruzPython for Scientific Computing -- Ricardo Cruz
Python for Scientific Computing -- Ricardo Cruz
 
Graphical Model Selection for Big Data
Graphical Model Selection for Big DataGraphical Model Selection for Big Data
Graphical Model Selection for Big Data
 
parameterized complexity for graph Motif
parameterized complexity for graph Motifparameterized complexity for graph Motif
parameterized complexity for graph Motif
 
論文紹介:Towards Robust Adaptive Object Detection Under Noisy Annotations
論文紹介:Towards Robust Adaptive Object Detection Under Noisy Annotations論文紹介:Towards Robust Adaptive Object Detection Under Noisy Annotations
論文紹介:Towards Robust Adaptive Object Detection Under Noisy Annotations
 
Approximate Bayesian computation for the Ising/Potts model
Approximate Bayesian computation for the Ising/Potts modelApproximate Bayesian computation for the Ising/Potts model
Approximate Bayesian computation for the Ising/Potts model
 
R Language Introduction
R Language IntroductionR Language Introduction
R Language Introduction
 
FPGA based BCH Decoder
FPGA based BCH DecoderFPGA based BCH Decoder
FPGA based BCH Decoder
 
Subquad multi ff
Subquad multi ffSubquad multi ff
Subquad multi ff
 
Gate Computer Science Solved Paper 2007
Gate Computer Science Solved Paper 2007 Gate Computer Science Solved Paper 2007
Gate Computer Science Solved Paper 2007
 
Quantum espresso G Vector distributon
Quantum espresso G Vector distributonQuantum espresso G Vector distributon
Quantum espresso G Vector distributon
 
Number theoretic-rsa-chailos-new
Number theoretic-rsa-chailos-newNumber theoretic-rsa-chailos-new
Number theoretic-rsa-chailos-new
 

More from Matt Moores

bayesImageS: an R package for Bayesian image analysis
bayesImageS: an R package for Bayesian image analysisbayesImageS: an R package for Bayesian image analysis
bayesImageS: an R package for Bayesian image analysis
Matt Moores
 
Exploratory Analysis of Multivariate Data
Exploratory Analysis of Multivariate DataExploratory Analysis of Multivariate Data
Exploratory Analysis of Multivariate Data
Matt Moores
 
R package bayesImageS: Scalable Inference for Intractable Likelihoods
R package bayesImageS: Scalable Inference for Intractable LikelihoodsR package bayesImageS: Scalable Inference for Intractable Likelihoods
R package bayesImageS: Scalable Inference for Intractable Likelihoods
Matt Moores
 
Importing satellite imagery into R from NASA and the U.S. Geological Survey
Importing satellite imagery into R from NASA and the U.S. Geological SurveyImporting satellite imagery into R from NASA and the U.S. Geological Survey
Importing satellite imagery into R from NASA and the U.S. Geological Survey
Matt Moores
 
Accelerating Pseudo-Marginal MCMC using Gaussian Processes
Accelerating Pseudo-Marginal MCMC using Gaussian ProcessesAccelerating Pseudo-Marginal MCMC using Gaussian Processes
Accelerating Pseudo-Marginal MCMC using Gaussian Processes
Matt Moores
 
Bayesian modelling and computation for Raman spectroscopy
Bayesian modelling and computation for Raman spectroscopyBayesian modelling and computation for Raman spectroscopy
Bayesian modelling and computation for Raman spectroscopy
Matt Moores
 
Final PhD Seminar
Final PhD SeminarFinal PhD Seminar
Final PhD Seminar
Matt Moores
 
Precomputation for SMC-ABC with undirected graphical models
Precomputation for SMC-ABC with undirected graphical modelsPrecomputation for SMC-ABC with undirected graphical models
Precomputation for SMC-ABC with undirected graphical models
Matt Moores
 
Intro to ABC
Intro to ABCIntro to ABC
Intro to ABC
Matt Moores
 
Pre-computation for ABC in image analysis
Pre-computation for ABC in image analysisPre-computation for ABC in image analysis
Pre-computation for ABC in image analysis
Matt Moores
 
Variational Bayes
Variational BayesVariational Bayes
Variational Bayes
Matt Moores
 
Parallel R
Parallel RParallel R
Parallel R
Matt Moores
 
Informative Priors for Segmentation of Medical Images
Informative Priors for Segmentation of Medical ImagesInformative Priors for Segmentation of Medical Images
Informative Priors for Segmentation of Medical Images
Matt Moores
 

More from Matt Moores (13)

bayesImageS: an R package for Bayesian image analysis
bayesImageS: an R package for Bayesian image analysisbayesImageS: an R package for Bayesian image analysis
bayesImageS: an R package for Bayesian image analysis
 
Exploratory Analysis of Multivariate Data
Exploratory Analysis of Multivariate DataExploratory Analysis of Multivariate Data
Exploratory Analysis of Multivariate Data
 
R package bayesImageS: Scalable Inference for Intractable Likelihoods
R package bayesImageS: Scalable Inference for Intractable LikelihoodsR package bayesImageS: Scalable Inference for Intractable Likelihoods
R package bayesImageS: Scalable Inference for Intractable Likelihoods
 
Importing satellite imagery into R from NASA and the U.S. Geological Survey
Importing satellite imagery into R from NASA and the U.S. Geological SurveyImporting satellite imagery into R from NASA and the U.S. Geological Survey
Importing satellite imagery into R from NASA and the U.S. Geological Survey
 
Accelerating Pseudo-Marginal MCMC using Gaussian Processes
Accelerating Pseudo-Marginal MCMC using Gaussian ProcessesAccelerating Pseudo-Marginal MCMC using Gaussian Processes
Accelerating Pseudo-Marginal MCMC using Gaussian Processes
 
Bayesian modelling and computation for Raman spectroscopy
Bayesian modelling and computation for Raman spectroscopyBayesian modelling and computation for Raman spectroscopy
Bayesian modelling and computation for Raman spectroscopy
 
Final PhD Seminar
Final PhD SeminarFinal PhD Seminar
Final PhD Seminar
 
Precomputation for SMC-ABC with undirected graphical models
Precomputation for SMC-ABC with undirected graphical modelsPrecomputation for SMC-ABC with undirected graphical models
Precomputation for SMC-ABC with undirected graphical models
 
Intro to ABC
Intro to ABCIntro to ABC
Intro to ABC
 
Pre-computation for ABC in image analysis
Pre-computation for ABC in image analysisPre-computation for ABC in image analysis
Pre-computation for ABC in image analysis
 
Variational Bayes
Variational BayesVariational Bayes
Variational Bayes
 
Parallel R
Parallel RParallel R
Parallel R
 
Informative Priors for Segmentation of Medical Images
Informative Priors for Segmentation of Medical ImagesInformative Priors for Segmentation of Medical Images
Informative Priors for Segmentation of Medical Images
 

Recently uploaded

Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero WaterSharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Texas Alliance of Groundwater Districts
 
Compexometric titration/Chelatorphy titration/chelating titration
Compexometric titration/Chelatorphy titration/chelating titrationCompexometric titration/Chelatorphy titration/chelating titration
Compexometric titration/Chelatorphy titration/chelating titration
Vandana Devesh Sharma
 
Basics of crystallography, crystal systems, classes and different forms
Basics of crystallography, crystal systems, classes and different formsBasics of crystallography, crystal systems, classes and different forms
Basics of crystallography, crystal systems, classes and different forms
MaheshaNanjegowda
 
aziz sancar nobel prize winner: from mardin to nobel
aziz sancar nobel prize winner: from mardin to nobelaziz sancar nobel prize winner: from mardin to nobel
aziz sancar nobel prize winner: from mardin to nobel
İsa Badur
 
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
Sérgio Sacani
 
SAR of Medicinal Chemistry 1st by dk.pdf
SAR of Medicinal Chemistry 1st by dk.pdfSAR of Medicinal Chemistry 1st by dk.pdf
SAR of Medicinal Chemistry 1st by dk.pdf
KrushnaDarade1
 
8.Isolation of pure cultures and preservation of cultures.pdf
8.Isolation of pure cultures and preservation of cultures.pdf8.Isolation of pure cultures and preservation of cultures.pdf
8.Isolation of pure cultures and preservation of cultures.pdf
by6843629
 
Equivariant neural networks and representation theory
Equivariant neural networks and representation theoryEquivariant neural networks and representation theory
Equivariant neural networks and representation theory
Daniel Tubbenhauer
 
The cost of acquiring information by natural selection
The cost of acquiring information by natural selectionThe cost of acquiring information by natural selection
The cost of acquiring information by natural selection
Carl Bergstrom
 
Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...
Leonel Morgado
 
Eukaryotic Transcription Presentation.pptx
Eukaryotic Transcription Presentation.pptxEukaryotic Transcription Presentation.pptx
Eukaryotic Transcription Presentation.pptx
RitabrataSarkar3
 
Randomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNERandomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNE
University of Maribor
 
ESA/ACT Science Coffee: Diego Blas - Gravitational wave detection with orbita...
ESA/ACT Science Coffee: Diego Blas - Gravitational wave detection with orbita...ESA/ACT Science Coffee: Diego Blas - Gravitational wave detection with orbita...
ESA/ACT Science Coffee: Diego Blas - Gravitational wave detection with orbita...
Advanced-Concepts-Team
 
NuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyerNuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyer
pablovgd
 
Mending Clothing to Support Sustainable Fashion_CIMaR 2024.pdf
Mending Clothing to Support Sustainable Fashion_CIMaR 2024.pdfMending Clothing to Support Sustainable Fashion_CIMaR 2024.pdf
Mending Clothing to Support Sustainable Fashion_CIMaR 2024.pdf
Selcen Ozturkcan
 
Shallowest Oil Discovery of Turkiye.pptx
Shallowest Oil Discovery of Turkiye.pptxShallowest Oil Discovery of Turkiye.pptx
Shallowest Oil Discovery of Turkiye.pptx
Gokturk Mehmet Dilci
 
Applied Science: Thermodynamics, Laws & Methodology.pdf
Applied Science: Thermodynamics, Laws & Methodology.pdfApplied Science: Thermodynamics, Laws & Methodology.pdf
Applied Science: Thermodynamics, Laws & Methodology.pdf
University of Hertfordshire
 
Sciences of Europe journal No 142 (2024)
Sciences of Europe journal No 142 (2024)Sciences of Europe journal No 142 (2024)
Sciences of Europe journal No 142 (2024)
Sciences of Europe
 
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
hozt8xgk
 
The debris of the ‘last major merger’ is dynamically young
The debris of the ‘last major merger’ is dynamically youngThe debris of the ‘last major merger’ is dynamically young
The debris of the ‘last major merger’ is dynamically young
Sérgio Sacani
 

Recently uploaded (20)

Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero WaterSharlene Leurig - Enabling Onsite Water Use with Net Zero Water
Sharlene Leurig - Enabling Onsite Water Use with Net Zero Water
 
Compexometric titration/Chelatorphy titration/chelating titration
Compexometric titration/Chelatorphy titration/chelating titrationCompexometric titration/Chelatorphy titration/chelating titration
Compexometric titration/Chelatorphy titration/chelating titration
 
Basics of crystallography, crystal systems, classes and different forms
Basics of crystallography, crystal systems, classes and different formsBasics of crystallography, crystal systems, classes and different forms
Basics of crystallography, crystal systems, classes and different forms
 
aziz sancar nobel prize winner: from mardin to nobel
aziz sancar nobel prize winner: from mardin to nobelaziz sancar nobel prize winner: from mardin to nobel
aziz sancar nobel prize winner: from mardin to nobel
 
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
EWOCS-I: The catalog of X-ray sources in Westerlund 1 from the Extended Weste...
 
SAR of Medicinal Chemistry 1st by dk.pdf
SAR of Medicinal Chemistry 1st by dk.pdfSAR of Medicinal Chemistry 1st by dk.pdf
SAR of Medicinal Chemistry 1st by dk.pdf
 
8.Isolation of pure cultures and preservation of cultures.pdf
8.Isolation of pure cultures and preservation of cultures.pdf8.Isolation of pure cultures and preservation of cultures.pdf
8.Isolation of pure cultures and preservation of cultures.pdf
 
Equivariant neural networks and representation theory
Equivariant neural networks and representation theoryEquivariant neural networks and representation theory
Equivariant neural networks and representation theory
 
The cost of acquiring information by natural selection
The cost of acquiring information by natural selectionThe cost of acquiring information by natural selection
The cost of acquiring information by natural selection
 
Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...Authoring a personal GPT for your research and practice: How we created the Q...
Authoring a personal GPT for your research and practice: How we created the Q...
 
Eukaryotic Transcription Presentation.pptx
Eukaryotic Transcription Presentation.pptxEukaryotic Transcription Presentation.pptx
Eukaryotic Transcription Presentation.pptx
 
Randomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNERandomised Optimisation Algorithms in DAPHNE
Randomised Optimisation Algorithms in DAPHNE
 
ESA/ACT Science Coffee: Diego Blas - Gravitational wave detection with orbita...
ESA/ACT Science Coffee: Diego Blas - Gravitational wave detection with orbita...ESA/ACT Science Coffee: Diego Blas - Gravitational wave detection with orbita...
ESA/ACT Science Coffee: Diego Blas - Gravitational wave detection with orbita...
 
NuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyerNuGOweek 2024 Ghent programme overview flyer
NuGOweek 2024 Ghent programme overview flyer
 
Mending Clothing to Support Sustainable Fashion_CIMaR 2024.pdf
Mending Clothing to Support Sustainable Fashion_CIMaR 2024.pdfMending Clothing to Support Sustainable Fashion_CIMaR 2024.pdf
Mending Clothing to Support Sustainable Fashion_CIMaR 2024.pdf
 
Shallowest Oil Discovery of Turkiye.pptx
Shallowest Oil Discovery of Turkiye.pptxShallowest Oil Discovery of Turkiye.pptx
Shallowest Oil Discovery of Turkiye.pptx
 
Applied Science: Thermodynamics, Laws & Methodology.pdf
Applied Science: Thermodynamics, Laws & Methodology.pdfApplied Science: Thermodynamics, Laws & Methodology.pdf
Applied Science: Thermodynamics, Laws & Methodology.pdf
 
Sciences of Europe journal No 142 (2024)
Sciences of Europe journal No 142 (2024)Sciences of Europe journal No 142 (2024)
Sciences of Europe journal No 142 (2024)
 
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
快速办理(UAM毕业证书)马德里自治大学毕业证学位证一模一样
 
The debris of the ‘last major merger’ is dynamically young
The debris of the ‘last major merger’ is dynamically youngThe debris of the ‘last major merger’ is dynamically young
The debris of the ‘last major merger’ is dynamically young
 

R package 'bayesImageS': a case study in Bayesian computation using Rcpp and OpenMP

  • 1. R packages Potts model Bayesian computation Conclusion bayesImageS: a case study in Bayesian computation using Rcpp and OpenMP Matt Moores OxWaSP mini-symposium December 2, 2016
  • 2. R packages Potts model Bayesian computation Conclusion Outline 1 R packages Performance of BLAS 2 Potts model 3 Bayesian computation Chequerboard Gibbs sampler Pseudolikelihood Thermodynamic integration Exchange algorithm Approximate Bayesian Computation (ABC)
  • 3. R packages Potts model Bayesian computation Conclusion Why write an R package? Portability Test bed for new statistical methods Build on existing code Research impact Kudos Hadley Wickham (2015) R packages
  • 4. R packages Potts model Bayesian computation Conclusion Why C++? Most statistical algorithms are iterative Markov chain Monte Carlo Scalability for large datasets Rcpp OpenMP Eigen or Armadillo Dirk Eddelbuettel (2013) Seamless R and C++ integration with Rcpp
  • 5. R packages Potts model Bayesian computation Conclusion Inline One function at a time: § library ( i n l i n e ) sum_logs ← cxxfunction ( signature ( log_vec = "numeric") , plugin = "RcppArmadillo" , body=’ arma::vec log_prob = Rcpp::as<arma::vec>(log_vec); double suml = 0.0; double maxl = log_prob.max(); for (unsigned i=0; i < log_prob.n_elem; i++) { if (arma::is_finite(log_prob(i))) suml += exp(log_prob(i) - maxl); } return Rcpp::wrap(log(suml) + maxl); ’)
  • 6. R packages Potts model Bayesian computation Conclusion Package Skeleton Create a new R package: package.skeleton("myPackage", path=".") Specific skeletons for each C++ library: Rcpp.package.skeleton("myRcppPackage") RcppArmadillo.package.skeleton("MyArmadilloPackage") RcppEigen.package.skeleton("MyEigenPackage")
  • 7. R packages Potts model Bayesian computation Conclusion Annotations Rcpp wrappers generated automatically: compileAttributes("myRcppPackage") R package documentation generated automatically: roxygenize("myRcppPackage") § / / ’ Compute the effective sample size (ESS) of the particles. / / ’ / / ’ The ESS is a ‘‘rule of thumb’’ for assessing the degeneracy of / / ’’ the importance distribution: / / ’ deqn {ESS = frac { ( sum_ { q=1}^Q w_q ) ^ 2 } { sum_ { q=1}^Q w_q ^2}} / / ’ / / ’’ @param log_weights logarithms of the importance weights of each particle. / / ’’ @return the effective sample size, a scalar between 0 and Q / / ’’ @references / / ’’ Liu, JS (2001) "Monte Carlo Strategies in Scientific Computing." Springer’ / / [ [ Rcpp : : export ] ] double effectiveSampleSize ( NumericVector log_weights ) { double sum_wt = sum_logs ( log_weights ) ; double sum_sq = sum_logs ( log_weights + log_weights ) ; double res = exp (sum_wt + sum_wt − sum_sq ) ; i f ( std : : i s f i n i t e ( res ) ) return res ; else return 0; }
  • 8. R packages Potts model Bayesian computation Conclusion Common Problems Rcpp parameters are passed by reference (not copied): Can rely on R for garbage collection Memory allocation is slower Can crash R (and Rstudio (and your OS)) R is not thread safe Cannot call any R functions (even indirectly) within parallel code! Drew Schmidt (@wrathematics, 2015) Parallelism, R, and OpenMP
  • 9. R packages Potts model Bayesian computation Conclusion Performance A simple performance comparison: § library ( RcppEigen ) library ( RcppArmadillo ) library (RcppGSL) library ( rbenchmark ) source ( system . f i l e ("examples" , "lmBenchmark.R" , package ="RcppEigen" ) ) Fitting a linear regression model (by default, n=100000 rows × p=40 columns, with 20 repeat measurements)
  • 10. R packages Potts model Bayesian computation Conclusion Results with default R BLAS Table: lm benchmark for Mac OS X with reference R BLAS test relative elapsed user.self sys.self 3 LDLt 1.000 3.611 3.448 0.164 7 QR 1.356 4.896 4.801 0.077 8 LLt 1.421 5.130 5.007 0.123 11 gpuLm.fit 2.634 9.510 8.332 0.395 1 lm.fit 3.760 13.576 13.550 0.025 6 SymmEig 5.475 19.770 19.634 0.126 2 PivQR 5.517 19.923 19.760 0.162 9 arma 20.416 73.723 73.459 0.255 4 GESDD 24.815 89.607 89.429 0.175 10 GSL 198.975 718.500 718.157 0.272 5 SVD 201.717 728.401 727.958 0.423 matrix dimensions:1650 × 875
  • 11. R packages Potts model Bayesian computation Conclusion Accelerate Umbrella Framework Table: lm benchmark for Mac OS X with vecLib test relative elapsed user.self sys.self 3 LDLt 1.000 3.682 3.517 0.165 7 QR 1.330 4.898 4.809 0.088 8 LLt 1.413 5.204 5.081 0.121 1 lm.fit 1.832 6.745 6.702 0.024 9 arma 2.396 8.821 20.572 1.229 11 gpuLm.fit 2.655 9.776 8.757 0.344 4 GESDD 3.313 12.199 22.120 0.884 6 SymmEig 5.405 19.902 19.775 0.127 2 PivQR 5.506 20.273 20.095 0.159 10 GSL 195.244 718.889 718.565 0.273 5 SVD 198.514 730.930 730.403 0.495 Iacus, Urbanek, Goedman & Ripley (2016) R for Mac OS X FAQ, §10.5
  • 12. R packages Potts model Bayesian computation Conclusion Nested Models β ← 0 Hidden MRF θ : scale D > 1 : dimension ∂i : neighbourhood ψ : noise param. p (yi | zi, ψ) p zi | zi, θ p (θ | z) p(ψ) p(θ) y, z, θ, ψ Hidden Ising/Potts z ∈ {1 . . . k} θ = β : inverse temperature p zi | zi, β p (β | z) p(β) Mixture of Gaussians λ = {λ1, . . . , λk} : k j=1 λj = 1 ψ = µ, σ2 : noise param. p yi | zi, µj, σ2 j p (λ | z) p(λ)
  • 13. R packages Potts model Bayesian computation Conclusion Hidden Markov Random Field Joint distribution of observed pixel intensities y = {yi}n i=1 and latent labels z = {zi}n i=1: p(y, z|µ, σ2 , β) = p(y|µ, σ2 , z)p(z|β) (1) Additive Gaussian noise: yi|zi =j iid ∼ N µj, σ2 j (2) Potts model: π(zi|zi, β) = exp {β i∼ δ(zi, z )} k j=1 exp {β i∼ δ(j, z )} (3) Potts (1952) Proceedings of the Cambridge Philosophical Society 48(1)
  • 14. R packages Potts model Bayesian computation Conclusion Inverse Temperature
  • 15. R packages Potts model Bayesian computation Conclusion Doubly-intractable likelihood p(β|z) ∝ C(β)−1 π(β) exp {β S(z)} (4) The normalising constant has computational complexity O(nkn): C(β) = z∈Z exp {β S(z)} (5) S(z) is the sufficient statistic of the Potts model: S(z) = i∼ ∈L δ(zi, z ) (6) where L is the set of all unique neighbour pairs.
  • 16. R packages Potts model Bayesian computation Conclusion Chequerboard Gibbs A 2D or 3D regular lattice with first-order neighbourhood ∂i: ◦ ◦ ◦ ◦ ◦ ◦ ◦ • ◦ ◦ ◦ • × • ◦ ◦ ◦ • ◦ ◦ ◦ ◦ ◦ ◦ ◦ can be partitioned into 2 blocks: • ◦ • ◦ • ◦ • ◦ • ◦ ◦ • ◦ • ◦ • ◦ • ◦ • • ◦ • ◦ • ◦ • ◦ • ◦ ◦ • ◦ • ◦ • ◦ • ◦ • • ◦ • ◦ • ◦ • ◦ • ◦ ◦ • ◦ • ◦ • ◦ • ◦ • • ◦ • ◦ • ◦ • ◦ • ◦ ◦ • ◦ • ◦ • ◦ • ◦ • • ◦ • ◦ • ◦ • ◦ • ◦ ◦ • ◦ • ◦ • ◦ • ◦ • so that z◦ are conditionally independent, given z• Roberts & Sahu (1997) JRSS B 59(2): 291–317 Winkler (2nd ed., 2003) Image analysis, random fields and MCMC methods
  • 17. R packages Potts model Bayesian computation Conclusion Chequerboard Gibbs II Algorithm 1 Chequerboard sampling for z 1: for all blocks b do 2: for all pixels i ∈ b do 3: for all labels j ∈ 1 . . . k do 4: Compute λj ← p(yi | zi = j)π(zi = j | zi∼ , β) 5: end for 6: Draw zi ∼ Multinomial(λ1, . . . , λk) 7: end for 8: end for
  • 18. R packages Potts model Bayesian computation Conclusion Gibbs sampler in C++ § void gibbsLabels ( const arma : : umat & neigh , const std : : vector <arma : : uvec> & blocks , arma : : umat & z , arma : : umat & alloc , const double beta , const arma : : mat & log_ x f i e l d ) { const Rcpp : : NumericVector randU = Rcpp : : r u n i f ( neigh . n_rows ) ; for ( unsigned b=0; b < blocks . size ( ) ; b++) { const arma : : uvec block = blocks [ b ] ; arma : : vec log_prob ( z . n_cols ) ; #pragma omp p a r a l l e l for private ( log_prob ) for ( unsigned i =0; i < block . size ( ) ; i ++) { for ( unsigned j =0; j < z . n_cols ; j ++) { unsigned sum_neigh = 0; for ( unsigned k=0; k < neigh . n_cols ; k++) { sum_neigh += z ( neigh ( block [ i ] , k ) , j ) ; } log_prob [ j ] = log_ x f i e l d ( block [ i ] , j ) + beta∗sum_neigh ; } double t o t a l _ l l i k e = sum_logs ( log_prob ) ; double cumProb = 0.0; z . row ( block [ i ] ) . zeros ( ) ; for ( unsigned j =0; j < log_prob . n_elem ; j ++) { cumProb += exp ( log_prob [ j ] − t o t a l _ l l i k e ) ; i f ( randU [ block [ i ] ] < cumProb ) { z ( block [ i ] , j ) = 1; a l l o c ( block [ i ] , j ) += 1; break ;
  • 19. R packages Potts model Bayesian computation Conclusion Pseudolikelihood (PL) Algorithm 2 Metropolis-Hastings with PL 1: Draw proposal β ∼ q(β |β◦) 2: Approximate p(β |z) and p(β◦|z) using equation (7): ˆpPL(β|z) ≈ n i=1 exp{β i∼ δ(zi, z )} k j=1 exp{β i∼ δ(j, z )} (7) 3: Calculate the M-H ratio ρ = ˆpPL(β |z)π(β )q(β◦|β ) ˆpPL(β◦|z)π(β◦)q(β |β◦) 4: Draw u ∼ Uniform[0, 1] 5: if u < min(1, ρ) then 6: β ← β 7: else 8: β ← β◦ 9: end if Rydén & Titterington (1998) JCGS 7(2): 194–211
  • 20. R packages Potts model Bayesian computation Conclusion Pseudolikelihood in C++ § double pseudolike ( const arma : : mat & ne , const arma : : uvec & e , const double b , const unsigned n , const unsigned k ) { double num = 0.0; double denom = 0.0; #pragma omp p a r a l l e l for reduction ( + :num, denom) for ( unsigned i =0; i < n ; i ++) { num=num+ne ( e [ i ] , i ) ; double tdenom =0.0; for ( unsigned j =0; j < k ; j ++) { tdenom=tdenom+exp ( b∗ne ( j , i ) ) ; } denom=denom+log ( tdenom ) ; } return b∗num−denom ; }
  • 21. R packages Potts model Bayesian computation Conclusion Approximation Error PL for n = 12, k = 3 in comparison to the exact likelihood calculated using a brute force method: 0 1 2 3 4 6810121416 β µ exact pseudolikelihood (a) Expectation 0 1 2 3 4 0.00.51.01.52.02.5 β σ exact pseudolikelihood (b) Standard deviation
  • 22. R packages Potts model Bayesian computation Conclusion Thermodynamic Integration (TI) Path sampling identity: log C(β◦) C(β ) = β◦ β E z|β [S(z)] dβ (8) 0.0 0.5 1.0 1.5 2.0 500000100000015000002000000 ϕ S(x) Gelman & Meng (1998) Stat. Sci. 13(2): 163–185.
  • 23. R packages Potts model Bayesian computation Conclusion TI algorithm Algorithm 3 Random walk Metropolis with TI 1: Draw random walk proposal β ∼ q(β |β◦) 2: Estimate S(z|β◦) and S(z|β ) by interpolation 3: Evaluate the definite integral in equation (8) 4: Calculate the log M-H acceptance ratio: log{ρ} = log C(β◦) C(β ) + (β − β◦ )S(z) (9) 5: Draw u ∼ Uniform[0, 1] 6: if u < min(1, ρ) then 7: β ← β 8: else 9: β ← β◦ 10: end if
  • 24. R packages Potts model Bayesian computation Conclusion TI in C++ § unsigned pathBeta ( const arma : : umat & neigh , const std : : vector <arma : : uvec> & blocks , const arma : : mat & path , const arma : : umat & z , double & beta , const double p r i o r _beta [ 2 ] , const double bw) { double bprime = rwmh( beta , bw, p r i o r _beta ) ; / / truncated Gaussian / / approximate log (Z( bprime ) / Z( beta ) ) double log_ r a t i o = quadrature ( bprime , beta , path ) + ( bprime−beta ) ∗ sum_ ident ( z , neigh , blocks ) ; / / accept / r e j e c t i f ( u n i f _rand ( ) < exp ( log_ r a t i o ) ) { beta = bprime ; return 1; } return 0; }
  • 25. R packages Potts model Bayesian computation Conclusion Approximate Exchange Algorithm (AEA) Algorithm 4 AEA 1: Draw random walk proposal β ∼ q(β |β◦) 2: Generate w|β by sampling from eq. (3) 3: Calculate the M-H acceptance ratio according to eq. (4): ρ = π(β ) exp {β S(z)} C(β◦) π(β◦) exp {β◦S(z)} C(β ) exp {β◦S(w)} C(β ) exp {β S(w)} C(β◦) (10) 4: Draw u ∼ Uniform[0, 1] 5: if u < min(1, ρ) then 6: β ← β 7: else 8: β ← β◦ 9: end if Murray, Ghahramani & MacKay (2006) Proc. 22nd Conf. UAI, 359–366
  • 26. R packages Potts model Bayesian computation Conclusion AEA in C++ § unsigned exchangeBeta ( const arma : : umat & neigh , const std : : vector <arma : : uvec> & blocks , const arma : : uvec & slice , const arma : : umat & z , double & beta , const double p r i o r _beta [ 2 ] , const unsigned aux , const bool useSW, const bool swapAux , const double bw) { double bprime = rwmh( beta , bw, p r i o r _beta ) ; arma : : umat a l l o c = arma : : zeros <arma : : umat >(z . n_rows−1, z . n_cols ) ; arma : : umat w; i f ( swapAux ) w = z ; else w = randomIndices ( z . n_rows−1, z . n_cols ) ; for ( unsigned i =0; i <aux ; i ++) { i f (useSW) { swLabelsNoData ( neigh , blocks , bprime , w. n_cols , w, a l l o c ) ; } else { gibbsLabelsNoData ( neigh , blocks , w, alloc , bprime ) ; } } double sum_z = sum_ ident ( z , neigh , blocks ) ; double sum_w = sum_ ident (w, neigh , blocks ) ; double log_ r a t i o = ( bprime−beta )∗sum_z + ( beta−bprime )∗sum_w; / / accept / r e j e c t i f ( u n i f _rand ( ) < exp ( log_ r a t i o ) ) { beta = bprime ; return 1; } return 0; }
  • 27. R packages Potts model Bayesian computation Conclusion Approximate Bayesian Computation Algorithm 5 ABC rejection sampler 1: Draw independent proposal β ∼ π(β) 2: Generate w|β by sampling from eq. (3) 3: if S(w) − S(z) < then 4: β ← β 5: else 6: β ← β◦ 7: end if Grelaud, Robert, Marin, Rodolphe & Taly (2009) Bayesian Analysis 4(2) Marin & Robert (2014) Bayesian Essentials with R §8.3
  • 28. R packages Potts model Bayesian computation Conclusion ABC with Metropolis-Hastings Algorithm 6 ABC-MCMC 1: Draw proposal β ∼ q(β |β◦) 2: Generate w|β by sampling from eq. (3) 3: Draw u ∼ Uniform[0, 1] 4: if u < π(β )q(β◦|β ) π(β◦)q(β |β◦) and S(w) − S(z) < then 5: β ← β 6: else 7: β ← β◦ 8: end if Marjoram, Molitor, Plagnol & Tavaré (2003) PNAS 100(26): 15324–28
  • 29. R packages Potts model Bayesian computation Conclusion ABC-MCMC in C++ § unsigned abcBeta ( const arma : : umat & neigh , const std : : vector <arma : : uvec> & blocks , const arma : : umat & z , double & beta , const double p r i o r _beta [ 2 ] , const unsigned aux , const bool useSW, const bool swapAux , const double bw, const double epsilon ) { double bprime = rwmh( beta , bw, p r i o r _beta ) ; arma : : umat a l l o c = arma : : zeros <arma : : umat >(z . n_rows−1, z . n_cols ) ; arma : : umat w; i f ( swapAux ) w = z ; else w = randomIndices ( z . n_rows−1, z . n_cols ) ; for ( unsigned i =0; i <aux ; i ++) { i f (useSW) { swLabelsNoData ( neigh , blocks , bprime , w. n_cols , w, a l l o c ) ; } else { gibbsLabelsNoData ( neigh , blocks , w, alloc , bprime ) ; } } double sum_z = sum_ ident ( z , neigh , blocks ) ; double sum_w = sum_ ident (w, neigh , blocks ) ; double delta = fabs (sum_w − sum_z ) ; i f ( delta < epsilon ) { beta = bprime ; return 1; } return 0; }
  • 30. R packages Potts model Bayesian computation Conclusion Summary bayesImageS supports methods for updating the latent labels: Chequerboard Gibbs sampling (Winkler 2003) Swendsen-Wang (1987) and also methods for updating the inverse temperature β: Pseudolikelihood (Rydén & Titterington 1998) Thermodynamic integration (Gelman & Meng 1998) Exchange algorithm (Murray, Ghahramani & MacKay 2006) Approximate Bayesian computation (Grelaud et al. 2009) Sequential Monte Carlo (ABC-SMC) with pre-computation (Del Moral, Doucet & Jasra 2012; Moores et al. 2015)
  • 31. Appendix Acknowledgements Principal supervisor: Kerrie Mengersen Associate supervisor: Fiona Harden Radiation Oncology Mater Centre (ROMC), Queensland Health: Cathy Hargrave Mike Poulsen Tim Deegan Other co-authors: Christopher Drovandi (QUT) Anthony N. Pettitt (QUT) Christian Robert (University of Warwick & Université Paris Dauphine) PyMCMC team at QUT: Clair Alston Christopher Strickland
  • 32. Appendix For Further Reading I D. Eddelbuettel Seamless R and C++ integration with Rcpp Springer-Verlag, 2013. H. Wickham R packages O’Reilly, 2015. D. Bates & D. Eddelbuettel Fast and elegant numerical linear algebra using the RcppEigen package. J. Stat. Soft. 52(5): 1–24, 2013. D. Eddelbuettel & C. Sanderson RcppArmadillo: Accelerating R with high-performance C++ linear algebra. Comput. Stat. Data Anal. 71: 1054–63, 2014.
  • 33. Appendix For Further Reading II M. Moores & K. Mengersen bayesImageS: Bayesian methods for image segmentation using a hidden Potts model. R package version 0.3-3 https://CRAN.R-project.org/package=bayesImageS M. Moores, A. N. Pettitt & K. Mengersen Scalable Bayesian inference for the inverse temperature of a hidden Potts model. arXiv:1503.08066 [stat.CO], 2015. M. Moores, C. C. Drovandi, K. Mengersen & C. P. Robert Pre-processing for approximate Bayesian computation in image analysis. Statistics & Computing 25(1): 23–33, 2015. M. Moores & K. Mengersen Bayesian approaches to spatial inference: modelling and computational challenges and solutions. In Proc. 33rd Int. Wkshp MaxEnt, AIP Conf. Proc. 1636: 112–117, 2014.
  • 34. Appendix For Further Reading III G. Winkler Image analysis, random fields and Markov chain Monte Carlo methods 2nd ed., Springer-Verlag, 2003. J.-M. Marin & C. P. Robert Bayesian Essentials with R Springer-Verlag, 2014. G. O. Roberts & S. K. Sahu Updating Schemes, Correlation Structure, Blocking and Parameterization for the Gibbs Sampler J. R. Stat. Soc. Ser. B 59(2): 291–317, 1997. T. Rydén & D. M. Titterington Computational Bayesian Analysis of Hidden Markov Models. J. Comput. Graph. Stat., 7(2): 194–211, 1998.
  • 35. Appendix For Further Reading IV A. Gelman & X.-L. Meng Simulating normalizing constants: from importance sampling to bridge sampling to path sampling. Statist. Sci., 13(2): 163–185, 1998. I. Murray, Z. Ghahramani & D. J. C. MacKay MCMC for Doubly-intractable Distributions. Proc. 22nd Conf. UAI, 359–366, 2006. A. Grelaud, C. P. Robert, J.-M. Marin, F. Rodolphe & J.-F. Taly ABC likelihood-free methods for model choice in Gibbs random fields. Bayesian Analysis 4(2): 317–336, 2009. R. H. Swendsen & J.-S. Wang Nonuniversal critical dynamics in Monte Carlo simulations. Physical Review Letters, 58: 86–8, 1987.