CHE 596 (043): Machine Learning for Chemical Engineers

Instructor: Wentao Tang
Offered: 2025 Fall; 2028 Spring (planned)

This page is created for the information of peer educators on how machine learning is currently taught to chemical engineers by myself at NC State University. If you would like to know more about the course or obtain certain teaching materials from me, please contact me by email.

Course Information

  • Level: Graduate-level elective

  • Programming language: Python

  • Packages loaded: numpy, matplotlib, scipy, pandas, scikit-learn, torch, rdkit (optional)

  • Editor: Visual Studio Code

References

No required textbook. The course draws on the following references:

  • Simeone, O. (2022). Machine learning for engineers. Cambridge University Press.

  • Alpaydın, E. (2020, 4th ed). Introduction to machine learning. MIT Press.

  • Wright, S. J., & Recht, B. (2022). Optimization for data analysis. Cambridge University Press.

  • Shalev-Shwartz, S., & Ben-David, S. (2014). Understanding machine learning: From theory to algorithms. Cambridge University Press.

Grading

  • Homework sets: 6% x 6

  • Take-home exams: 20% x 2

  • Course project: 24%

Contents

Probability and Statistics

  • Random variables, distributions, multivariate distributions

  • Conditional distributions, Bayes formula, independence and correlation

  • Information-theoretic metrics, exponential families

  • Coding practice: functions, classes, numpy package, matplotlib package

  • Parametric inference, point estimation, interval estimation

  • Fisher information (matrix), unbiasedness and consistency

  • Coding practice: scipy package, pandas package

Supervised Learning and Optimization: Basic

  • Least squares regression, logistic regression

  • Convex sets, convex functions, optimality condition

  • From feature engineering to kernel methods, underfitting and overfitting analysis

  • Coding practice: scikit-learn package, scikit-image, rdkit (optional)

  • Regularization and hyperparameter tuning

  • Convex optimization: gradient descent, proximal gradient descent, convergence analysis

  • Coding practice: scikit-learn pipeline

Supervised Learning and Convex Optimization: Intermediate

  • Support vector machine for regression and classification

  • Kernel method from a Lagrangian duality point of view

  • Neural networks, deep learning, backpropagation

  • Coding practice: PyTorch

Unsupervised Learning and Nonconvex Optimization

  • Discriminative vs. generative models, expectation-maximization algorithm

  • Variational techniques, sampling techniques, reparameterization

  • Stochastic gradient descent and Langevin dynamics

  • Coding practice: deep learning, convolutional neural networks in PyTorch

  • Dimensionality reduction, principal component analysis, variational autoencoder

Statistical Learning Theory

  • Concentration inequalities, Rademacher complexity

  • Covering number in parametric learning

  • Hilbert space and reproducing kernel Hilbert space, representer theorem