Computer Graphics Optimization

Class Information

  • Instructor: Edgar SIMO-SERRA
  • Dates: Apr, 2022〜Jul, 2022
  • Lectures: Monday, 5th Period (17:00〜18:40)
  • Room: online
  • E-mail: ess@waseda.jp

Overview

この授業のスライドと講義は主に英語ですが、必要に応じて日本語でも説明します。または、日本語の講義資料もあります。
The class slides, materials, and explanations are primarily in English, however, additional explanations will be given in Japanese as needed.
Due to the effect of the ongoing corona virus, the course has been changed to focus on the final project as there will be no final exam. Furthermore, video explanations will be provided in an "ondemand"-format (videos viewable anytime) and Q&A will be done using Moodle functionality.
Depending on the evolution of the corona virus, details are subject to change.

This courses focuses on different optimization approaches and their relationship with computer graphics optimization, such as colorization, texture synthesis, or shape manipulation. The course covers both convex and non-linear optimization, including discussion on recent developments such as deep learning. Each lecture will attempt to explain the theoretical foundations of a particular algorithm, and then explain real research examples based on the explained techniques.

The course will be evaluated mainly based on a large project and a final exam. The project will be done in small groups and consist of putting into practice the techniques learned in the class.

The programming assignments and project will be done in python using Jupyter notebooks. While the basics of python will be taught in this class, it is highly recommended that students complement this with self-study using the additional resources.

Objectives

  1. Learn the theoretical foundations of a large variety of optimization algorithms
  2. Be able to express real applications as optimization problems
  3. Ability to solve either exactly or approximately optimization problems
  4. Knowledge of a diversity of computer graphics optimization applications

Preparation

The following are slides that are meant to refresh basic concepts that are used throughout the lessons. Students are advised to review the following concepts before starting the class.

  1. Python Crash Course slides A Whirlwind Tour of Python
  2. Mathematics Refresher slides CO Appendix A

Class Schedule

  1. Overview, Introduction, Least-Squares slides CO Chapter 1 NO Chapter 1
  2. Line Search slides NO Chapter 2+3
  3. Convex Optimization I: Definitions slides CO Chapter 2+3+4
  4. Convex Optimization II: Duality slides CO Chapter 5
  5. Unconstrained Minimization slides CO Chapter 9 NO Chapter 2
  6. Newton and Quasi-Newton Methods slides NO Chapter 6
  7. Derivatives slides NO Chapter 8
  8. Linear Programming: The Simplex Method slides NO Chapter 13
  9. Linear Programming: Interior-point Methods slides CO Chapter 11 NO Chapter 14
  10. Review slides
  11. Metaheuristics slides EM
  12. Deep Learning I: Data, Models slides
  13. Deep Learning II: Advanced Techniques slides
  14. Paper Review slides
  15. Group Work Presentation slides

Jupyter Notebooks

Textbook

  • CO Stephen Boyd, Convex Optimization, Cambridge University Press, 2004. ISBN: 978-0521833783 website PDF
  • NO Jorge Nocedal and Stephen Wright, Numerical Optimization (2nd Edition), Springer, 2006. ISBN: 978-0387303031
  • EM Sean Luke. Essentials of Metaheuristics. lulu.com, 2013. ISBN: 978-1300549628 website
  • Additional Resources
    • Aharon Ben-Tal and Arkadi Nemirovski, Lectures on Modern Convex Optimization PDF
    • Sébastian Bubeck, Convex Optimization: Algorithms and Complexity PDF
    • Jake VanderPlas, A Whirlwind Tour of Python, O’Reilly Media, 2016. ISBN: 978-1492037859 website
    • Jake VanderPlas, Python Data Science Handbook, O’Reilly Media, 2016. ISBN: 978-1491912058 website
    • Charles R. Severance, Python for Everybody: Exploring Data Using Python 3, Createspace Independent Pub, 2016. ISBN: 978-1530051120 website
    • Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola, Dive into Deep Learning, 2019. website