Scientific machine learning combines differentiable programming, scientific simulation (differential equations, nonlinear solvers, etc.), and machine learning (deep learning) in order impose physical constraints on machine learning and automatically learn biological models. Given the composibility of Julia, many have noted that it is positioned as the best language for this set of numerical techniques, but how to do actually "do" SciML? This workshop gets your hands dirty.
In this workshop we'll dive into some of the latest techniques in scientific machine learning, including Universal Differential Equations (Universal Differential Equations for Scientific Machine Learning), Physics-Informed Neural Networks (Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations), and Sparse Identification of Nonlinear Dynamics (SInDy, Discovering governing equations from data by sparse identification of nonlinear dynamical systems). The goal is to get those in the workshop familiar with what these methods are, what kinds of problems they solve, and know how to use Julia packages to implement them.
The workshop will jump right into how to model the missing part of a physical simulation, describe how universal approximators (neural networks) can be used in this context, and show how to transform such problems into an optimization problem which is then accelerated by specializing automatic differentiation. The set of packages that is involved in this is somewhat intense, using many tools from JuliaDiffEq (DiffEqFlux.jl, DifferentialEquations.jl, DiffEqSensitivity.jl, ModelingToolkit.jl, NeuralPDE.jl, DataDrivenDiffEq.jl, Surrogates.jl, etc.) combined with machine learning tools (Flux.jl), differentiation tooling (SparseDiffTools.jl, Zygote.jl, ForwardDiff.jl, ReverseDiff.jl, etc.), and optimization tooling (JuMP, Optim.jl, Flux.jl, NLopt.jl, etc.) all spun together in a glorious soup that automatically discovers physical laws at the end of the day. Thus this workshop has something different to offer for everyone: new users of Julia will get a nice overview of the unique composibility of the Julia package ecosystem, while experienced Julia users will learn how to bridge some area that they are comfortable with (such as machine learning) to a whole new set of phenomena. Meanwhile, even though who are only knee deep in coding can gain a lot from learning these new mathematical advances, meaning that even a casual observer likely has a lot to learn!
Slides: [ Ссылка ]
Torchdiffeq benchmarks: [ Ссылка ]
Neural ODE training benchmarks: [ Ссылка ]
torchsde benchmarks: [ Ссылка ]
![](https://s2.save4k.ru/pic/QwVO0Xh2Hbg/maxresdefault.jpg)