Class Information
- Instructor: Edgar SIMO-SERRA
- Dates: Apr, 2024〜Jul, 2024
- Lectures: Monday, 5th Period (17:00〜18:40)
- Room: 53-B01教室
- 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.
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
- Learn the theoretical foundations of a large variety of optimization algorithms
- Be able to express real applications as optimization problems
- Ability to solve either exactly or approximately optimization problems
- 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.
Class Schedule
- Introduction slides CO Chapter 1 NO Chapter 1
- Line Search slides NO Chapter 2+3
- Convex Optimization slides CO Chapter 2+3+4+5
- Unconstrained Minimization slides CO Chapter 9 NO Chapter 2+6
- Derivatives slides NO Chapter 8
- Linear Programming slides NO Chapter 13
- Interior-point Methods slides CO Chapter 11 NO Chapter 14
- Metaheuristics slides EM
- Recent Trends I slides
- Recent Trends II slides
- Recent Trends III slides
- Recent Trends IV slides
- Recent Trends V slides
- Group Work Presentation slides
Jupyter Notebooks
- CGO 01-1: Introduction to Jupyter
- CGO 02-1: Least Squares Homework
- CGO 02-2: Timing Numpy
- CGO 03-1: Colorization using Optimization Homework
- CGO 04-1: Quadratic Problem in R^2 Homework
- CGO 04-2: Style Transfer
- CGO 05-1: Automatic Differentiation
- CGO 06-1: Non-Quadratic Problem in R^2
- CGO 09-1: Meta-heuristics
- CGO 10-1: Pytorch Introduction
- CGO 10-2: Computing Spatial Support Homework
- CGO 10-3: Colorization Homework
- CGO 13-2: Generative Adversarial Network (GAN) Homework
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