|
| 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