This course assumes no background in optimization. The focus will be on various classical and modern algorithms, with a view towards applications in economics, finance, machine learning, and statistics. The backdrop will be the classical algorithms: univariate optimization and root finding (Newton, secant, regula falsi, Brent, etc), unconstrained optimization (steepest descent, Newton, quasi-Newton, conjugate gradient, Gauss–Newton, Barzilai–Borwein, etc), constrained optimization (active set, slack variable, penalty, barrier, augmented Lagrangian, primal–dual, etc). We will discuss modern developments like stochastic gradient descent and the incorporation of mirror, momentum, moments, and more. Applications to machine learning and statistics will include robust regression, ridge regression, polynomial regression, logistic regression, support vector machines with hinge/sigmoid loss, etc. Applications in economics will include optimization of Cobb–Douglas and CES production functions, Marshallian demand, shadow prices, flow prediction, etc. Applications in finance will include Markowitz portfolio optimization, Sharpe ratio optimization, Value-at-Risk optimization, portfolio optimization with Kelly criterion, portfolio variance optimization, etc. The mainstay of this course is continuous optimization but we will give a flavor of various specialized topics including combinatorial, convex, discrete, dynamic, integer, multiobjective, nonsmooth, and stochastic optimization problems.
Location: Kent Chem Lab, Room 120
Times: Mon, 6:00–9:00pm
Instructor: Lek-Heng
Lim
Office: Jones 122C
lekheng(at)uchicago.edu
Tel: (773) 702-4263
Office hours: Tue, 3:00–5:00pm.
Course Assistant I:
Feiyu Han
feiyuhan(at)uchicago.edu
Office hours: Thu, 3:30–5:00pm, Math-Stat Library
Course Assistant II:
Sowon Jeong
sowonjeong(at)uchicago.edu
Office hours: Wed, 3:00–4:30pm, Math-Stat Library
This is the first time the class is being offerred. The goal and major topics are as in the course description above. But we will decide on the specifics and focus as we go along depending on student interests and progress.
Collaborations are permitted but you will need to write up your own solutions and declare your collaborators. The problem sets are designed to get progressively more difficult. You will get at least six days for each problem set.
You are required to implement your own programs for problems that require some amount of simple coding (using Matlab, Mathematica, R, or SciPy).
Bug report on the problem sets: lekheng(at)uchicago.edu
Grade composition: Three problem sets and one final exam each accounting for 25% of final grade.
We will not use any specific textbook but will use selected material from the following references, all of which would be accessible to undergraduates.
You may download all these books online from an UChicago IP address or via ProxyIt! if you are off-campus.