This is an old revision of the document!


Convex and Nonlinear Numerical Optimization (MM25)

Content

The lecture is organized into two parts.

Part 1 is devoted to convex analysis and programming which play a key role in computational data analysis and also provide the basis for nonconvex problems (Part 2). Keywords: smooth and nonsmooth convex analysis, conjugation and duality, conic programs, operator splitting, deterministic and stochastic convex optimization.

Part 2 is devoted to nonconvex problems with additional structure that enables to design convergent algorithms. Keywords: elementary Riemannian manifolds, retractions, nonpositive curvature, Riemannian means, Kurdyka-Lojasiewicz property and global proximal optimization.

Basic problems from machine learning and computational data analysis illustrate the application of these concepts.

Organization

Place & Time

  • Lecture: Tuesday and Friday from 11-13 in seminar room 6 in the Mathematikon (INF 205)
  • Exercise class: Thursday 9-11 in seminar room 7 in the Mathematikon (INF 205), the first exercise class will be on 24th of October.

Language

English or German, as the audience requests.

Target Audience

Students of mathematics and scientific computing that are interested numerical optimization, with a focus on applications to data analysis and machine learning.

Prerequisites

Mandatory undergraduate courses on analysis and linear algebra.

Registration

If you wish to attend the lecture and the exercises, please sign up using MÜSLI.

Exercises

Each week there will be an exercise sheet you can voluntarily work on. The exercises will not be collected and corrected, but the solutions will be presented in the exercise class.

Some exercise sheets contain (voluntary) programming exercises, which also will be discussed in the exercise class. We recommend programming the exercises with Python and numpy. A basic understanding of Python and numpy should be sufficient for most exercises.

Using Mathematica

Go to the Wolfram Programming Lab and click on the orange button. This brings you to a tutorial notebook. With the file menu in the light grey bar you can create an empty notebook. In the notebook you can paste the code from the code files below. Execute the code with Shift+Enter.

Lecture Notes

Exercise Sheets