March 24, 2025 — Support my next blog post, buy me a coffee ☕.
In this post, I talk about a course I just finished teaching at École Polytechnique on scientific machine learning.
The course was aimed at third-year students at École Polytechnique, who had completed two years of classes préparatoires, making the material equivalent to a graduate-level course in the UK or US. This Scientific Machine Learning (SciML) course bridged the gap between Scientific Computing and Machine Learning. SciML, an emerging field, enables efficient methods for solving complex problems in science and engineering, like partial differential equations (PDEs). This course offered a new, valuable specialization, helping students stand out in the evolving job market, where demand for ML experts with specialized skills is growing.
Scientific Computing and Numerical Analysis are branches of applied mathematics that focus on the development and analysis of numerical algorithms for solving problems in continuous mathematics, such as PDEs.
When a PDE is linear, we first discretize it on a grid or mesh and then solve it using linear algebra. This creates a natural connection between PDEs and Numerical Linear Algebra (NLA).
Sometimes, when an energy functional exists for a problem (e.g., PDEs with coercive bilinear forms like the Laplace equation), we can also apply optimization techniques to solve it effectively.
A typical approach to solving nonlinear PDEs involves transforming the problem into a sequence of linear problems, through linearization and iteration. In this way, nonlinear PDEs are reduced to linear algebra problems.
SciML is a recent research field based on both machine learning and scientific computing. Its goal is the development of robust, efficient, and interpretable methods to solve problems in science and engineering, such as PDEs, parameter identification, or inverse problems.
In SciML, a common approach to solving nonlinear PDEs starts with generating training data, typically using standard numerical solvers, where the training data consists of reference solutions. This data is then used to construct a cost function that quantifies the training error, while the solution or solution operator is discretized using a neural network. The goal is to minimize this cost function through optimization to learn the optimal network weights.
This brings optimization back to the core of the numerical solutions of PDEs.
Throughout the course, we touched upon all major fields of Scientific Computing and Numerical Analysis, including Numerical Linear Algebra, PDEs, and Optimization, with a ML flavor. Each method discussed was implemented in Python, and every tutorial provided hands-on experience through notebooks. This ensured that students not only understood the theoretical aspects but also gained practical experience in implementing and using these methods. Check out my lecture notes!