|
| 1 | +using Pkg |
| 2 | +Pkg.activate("/sftwr/user-pkg/m1cak00/julia/dev/AdvancedPS/examples/gaussian-process") |
| 3 | + |
1 | 4 | # # Gaussian Process State-Space Model (GP-SSM) |
2 | 5 | using LinearAlgebra |
3 | 6 | using Random |
|
25 | 28 | function SSMProblems.simulate( |
26 | 29 | rng::AbstractRNG, dyn::GaussianProcessDynamics, step::Int, state |
27 | 30 | ) |
28 | | - dyn.proc = posterior(dyn.proc(step:step), [state]) |
| 31 | + dyn.proc = posterior(dyn.proc(step:step, 0.1), [state]) |
29 | 32 | μ, σ = mean_and_cov(dyn.proc, [step]) |
30 | 33 | return rand(rng, Normal(μ[1], sqrt(σ[1]))) |
31 | 34 | end |
32 | 35 |
|
33 | 36 | function SSMProblems.logdensity(dyn::GaussianProcessDynamics, step::Int, state, prev_state) |
34 | 37 | μ, σ = mean_and_cov(dyn.proc, [step]) |
35 | | - return logpdf(Normal(μ, sqrt(σ)), state) |
| 38 | + return logpdf(Normal(μ[1], sqrt(σ[1])), state) |
36 | 39 | end |
37 | 40 |
|
38 | 41 | # Linear Gaussian dynamics used for simulation |
@@ -79,7 +82,7 @@ _, x, y = sample(rng, true_model, 100); |
79 | 82 | gpssm = GaussianProcessStateSpaceModel(0.5, SqExponentialKernel()) |
80 | 83 | model = gpssm(y) |
81 | 84 | pg = AdvancedPS.PGAS(20) |
82 | | -chains = sample(rng, model, pg, 250) |
| 85 | +chains = sample(rng, model, pg, 50) |
83 | 86 | #md nothing #hide |
84 | 87 |
|
85 | 88 | particles = hcat([chain.trajectory.model.X for chain in chains]...) |
|
0 commit comments