We will revisit classical scientific computing from a statistical learning viewpoint. In this new computing paradigm, differential equations, conservation laws, and data act as complementary agents in a predictive modeling pipeline. This course aims explore the potential of modern machine learning as a unifying computational tool that enables learning models from experimental data, inferring solutions to differential equations, blending information from a hierarchy of models quantifying uncertainty in computations, and efficiently optimizing complex engineering systems.
Specific topics to be covered span recent developments in supervised and unsupervised learning: nonlinear regression/classification with deep neural networks, multi-fidelity modeling and computation under uncertainty using Gaussian processes, Bayesian optimization, convolutional and recurrent neural networks, model reduction using principal component analysis, variational auto-encoders, and probabilistic latent variable models. The effectiveness of these tools will be demonstrated through several engineering applications including examples in fluid dynamics, heat transfer, design optimization, and modeling of cardiovascular flows.
- Basic Calculus and Linear Algebra (MATH 240 or MATH 513 or ENM 240)
- Basic Statistics and Probability (MATH 430 or ENM 321 or ENM 503)
- Scientific computing in Python
- A Python 3 distribution configured for scientific computing. The simplest way to set this up is by installing the Anaconda distribution.
- JAX. Composable transformations of Python+NumPy programs: differentiate, vectorize, JIT to GPU/TPUs, and more.
- Jupyter notebook. You will need this in order to follow some of the in-class tutorials.
- Git. You will need this in order to download and stay in sync with the latest code we will develop in class.
- Google Colab. Sign in with your Penn Gmail account. Provides free access to GPU and TPU cloud computing resources.
Students will leave this course with experience in:
- Analyzing and synthesizing data towards enhancing their understanding and ability to model physical, biological, and engineering systems.
- Hands-on skills on a broad class of machine learning tools enabling them to construct structured prediction models, propagate and quantify uncertainty, perform sensitivity analysis, and optimize systems of realistic complexity.
- Applications of these tools spanning a diverse set of engineering disciplines, including fluid dynamics, heat transfer, mechanical design, and biomedical engineering.
Please consult the TA regarding issues related to setting up your computing enviroment, code design, implementation, and execution.
TA: Cyril Palathinkal
- Office Hours: TBD
- Email: [email protected]
Grader: TBD
This syllabus is a work in progress. The lesson plan is subject to change depending on the progress and overall class performance.