Learning Resources

Here we outline some recommended material for 天美传媒 wishing to start on topics related to optimisation, artificial intelligence and dynamic systems from the process systems perspective.

Optimization

Books

  • Numerical Optimization by J. Nocedal and S. Wright
    • Great book to learn continuous optimization algorithms, the suggestion it to implementing pseudo-codes in your language of choice as you traverse through the book.
  • Nonlinear and Mixed-Integer Optimization: Fundamentals and Applications by C. A. Floudas
    • A favorite source to learn convex mixed-integer optimization
  • Algorithms for Optimization by Mykel J. Kochenderfer and Tim A. Wheeler
    • A comprehensive introduction to optimization, focus is on algorithm implementation rather than theoretical background, includes algorithms written in Julia. 

Online Courses

  • and  by S. Boyd
    • Great content allover! Lectures 13-19 of COI and all COII are great, and generally underrated. An online book is also available.
  •  by P. Van Hentenryck and C. Coffrin from Coursera learning platform
    • Interactive and very fun course to learn discrete optimization
  • by  S. Ahmed from edX learning platform
    • A great interactive course which gives an overview to many optimization instances and problems, also accompanied with practical material.

Reinforcement Learning

Books

  •  by R. S. Sutton and A. G. Barto
    • One of the most complete books on the subject, latest version is from 2018. Complements nicely with online courses. Freely available online.
    • The Reinforcement Learning Specialization by Martha White and Adam White from Coursera covers a significant part of this book.

Online Courses

  •  by Sergey Levine at UC Berkeley
    • Great content, including YouTube videos, homework, a subreddit, GitHub repositories, etc. 
  •  by David Silver
    • Nice and easy material to understand
  •  by Martha White and Adam White from Coursera learning platform
    • The course is mostly based on the book "Reinforcement Learning: An Introduction" by Sutton and Barto, making it a more interactive way to go through the book if that suits your learning style.
  •  by by Emma Brunskill at Stanford
    • All videos and asssignments are available, YouTube list .
  • by P. Shvechikov and A. Panin from Coursera learning platform
    • Good overall content and intuitive explanations, includes online quizzes and excercises. 

Applied Statistics

Books

  • Information Theory, Inference, and Learning Algorithms by David MacKay
    • Great all-round book, conceptually clear and at the same time practical when it comes to algorithms. It is great for beginners but also useful for practitioners.
    • Online lectures based on the book also available  or on
    • The book is freely available 

Online Courses

  •  by Herbert Lee from Coursera learning platform
    • A great introduction to Bayesian thinking 
  •  by Matthew Heiner from Coursera learning platform
    • A continuation from the above course 
  • by D. Polykovskiy and Al. Novikov
    • Nice practical examples and intuitive explanations on ML algorithms based on Bayesian thinking. Includes topics such as Variational Autoencoder, Gaussian processes & Bayesian optimization
  •  by David MacKay 
    • Great source to learn information theory, very intuitive and clear explanations. 
    • Based on a freely available 

Dynamic Optimization (Optimal control) and MPC

Books

  • Dynamic Programming and Optimal Control by  D. P. Bertsekas
    • Nice presentation that shows the relations between Dynamic Programming and Optimal Control. Written from a computer science perspective.
  • Predictive Control: With Constraints by J. Maciejowski
    • Good introductory material to Model Predictive Control
  • by M. Diehl and S. Gros
    • Great source on how to solve OC problems numerically, goes very well with his online course
  •  by B. Chachuat
    • This is a great source for a formal and complete description of dynamic optimization problems in engineering practice. It might be slightly more mathematically demanding than the three previous sources.
  • Model Predictive Control: Theory, Computation, and Design by J. B. Rawlings,  D. Q. Mayne and M. M. Diehl
    • Probably the most complete book on linear MPC, although it might be a difficult read for a beginner in the topic.

Online Courses

  •  by M. Diehl
    • Very complete learning material, goes very well with his book
  •  by R. Tedrake, R. Deits and T. Koolen from edX learning platform
    • A nice course which covers topics on Dynamic Programming, Control and Dynamic Optimization (can also be found )
  •  by the Indian Institutes of Technology (IIT) and Indian Institute of Science (IISc)
    • There are great courses on this site, however, those on Control, State Estimation, Model Predictive Control, and Optimal Control seem particularly good.

Linear Algebra

Books

  • Introduction to Linear Algebra by  G. Strang
    • Great presentation and intuition on the topic, goes well with his online video lectures
  • by Jim Hefferon 
    • Freely available online, very enjoyable exercises

Online Courses

  • by M. Myers and R. van de Geijn from edX learning platform
    • Great course, gives mathematical background as well as great practical exercises.  
  •  by  G. Strang
    • Similar to his book, Linear Algebra is presented in a very intuitive and easy to understand fashion. 

Machine Learning

Books

  •  by  I. Goodfellow, Y. Bengio and A. Courville
    • Authored by pioneers on the field, freely available. Probably the best book on Deep Learning.
  • Hands-On Machine Learning with Scikit-Learn and TensorFlow by A. Geron  
    • For people who want to learn ML by doing practical examples

Online Courses

  • by Andrew Ng, K. Katanforoosh and B. Mourri from coursera learning platform
    • A series of 5 courses, that take you from knowing nothing to a very good understanding and practical training on deep learning. Explanations need a minimum mathematical requirement. 
  •  by by Andrew Ng
    • The course that made Andrew Ng famous. A very nice course, although might be slightly outdated. You can also find his course at Stanford .

Prerequisites

This section outlines useful material that can help polish your math and programming skills before (or while) you are learning optimization and/or machine learning.

  • Linear Algebra 
    • Athough there is a whole section about linear algebra, I thought I should emphasize it, as it is one of the pillars for both optimization and machine learning.
  • Python programming  
    • There is a HUGE number of python courses, and even a significant number of online posts ranking the different courses, so a little google search might be the best way to find the best course for you.
    • A course I am confident recommending is  by MIT on the edX learning platform. Very complete course, although it is quite time consuming.
  •  by 天美传媒 
    •  three course specialization, focusing on linear algebramultivariate calculus, and principal component analysis
    • Book freely available 
  •  by Tim Roughgarden from Stanford at the Coursera platform
    •  very nice course that teaches the fundamentals of the design and analysis of algorithms. Focuses particularly on the practical aspects, but also give some theory, and makes thinking algorithmically quite fun. 

Remarks

Note that blogs, GitHub repositories, YouTube symposiums, online classes and tutorials can be excellent learning material. Particularly for ML, RL and DL there are new courses and tutorials coming out everyday! Maybe worthwhile exploring the web on your own :).

You can have a look at our codes section for some code-tutorials developed by the group, or to our additional resources section, where we list some podcasts, blogs, and other sites that might be of interest.