I am brand new to
machine learning and
sciML so forgive me if I still don’t have the technical jargon.
I have read through Automatically Discover Missing Physics by Embedding Machine Learning into Differential Equations · Overview of Julia's SciML and would like to ask a question regarding UODE’s which I would like to apply to the Lotka-Volterra [predator-prey] system.
In the tutorial, the data is generated for an initial condition
u0 = 5.0f0 * rand(rng, 2) and a set of parameters \alpha, \beta, \gamma, \delta
= [1.3, 0.9, 0.8, 1.8].
Latter we assume only partial knowledge of the physics and try to capture what the physics is missing with a neural network.
Now, my question.
Let us assume that I have data on several types of [predator-prey] populations.
A similar approach to generate the data can be used as in the example.
function lotka!(du, u, p, t) α, β, γ, δ = p du = α * u - β * u * u du = γ * u * u - δ * u end # Define the experimental parameter t_true= LinRange(0.0,5.0,300) tspan = (0.0, 5.0) u0_wolf_rabit = 5.0f0 * rand(rng, 2) p_wolf_rabit = [1.3, 0.9, 0.8, 1.8] prob_wolf_rabit = ODEProblem(lotka!, u0_wolf_rabit, tspan, p_wolf_rabit) solution_wolf_rabit = solve(prob_wolf_rabit, Vern7(), abstol = 1e-12, reltol = 1e-12, saveat = t_true) u0_cat_mouse = 4.0f0 * rand(rng, 2) p_cat_mouse = [1.5, 1.1, 1.0, 2.0] prob_cat_mouse = ODEProblem(lotka!, u0_cat_mouse, tspan, p_cat_mouse) solution_cat_mouse = solve(prob_cat_mouse, Vern7(), abstol = 1e-12, reltol = 1e-12, saveat = t_true) u0_human_mamuth = 3.0f0 * rand(rng, 2) p_human_mamuth = [1.1, 0.7, 0.6, 1.6] prob_human_mamuth = ODEProblem(lotka!, u0_human_mamuth, tspan, p_human_mamuth) solution_human_mamuth = solve(prob_human_mamuth, Vern7(), abstol = 1e-12, reltol = 1e-12, saveat = t_true) plt= plot(solution_wolf_rabit, alpha = 0.75, color = :black, label = ["wolf-rabit" nothing]) plot!(plt,solution_cat_mouse, alpha = 0.75, color = :red, label = ["cat-mouse" nothing] ) plot!(plt,solution_human_mamuth, alpha = 0.75, color = :blue, label = ["human-mamuth" nothing] )
I want to do the same thing as in the post. Given the same limited physical knowledge how can I use these data to train a network? Basically, how can I train the NN with sets of populations?