Practical Optimization Methods

Optimization is the core operation of many algorithms in modern applications and fields: Machine Learning, Deep Learning, Computer Vision, Signal and Image Processing, Economic Models, etc…

Optimization is about the ability to formulate and a problem in a manner which allows us to employ an efficient computational framework to solve the problem.

As such, Optimization is a fundamental skill to any algorithm developer in the modern fields.
Learning the ecosystem of modern optimization is the way to gain this ability in order to build efficient systems.

The course deals with practical and modern Optimization methods. It focuses on solving real world problems which are common in Signal and Image Processing, Estimation, Computer Vision and Machine Learning.
The course is accompanied with JuPyteR Notebooks with real world data examples.

Overview

This is a 6 days course for developers (Software Engineers, Algorithm Engineers, Data Engineers, Data Scientists) which introduces them to practical methods, algorithms, tools, frameworks, concepts and strategies in the optimization world.

The course:
${\color{lime}\surd}$ Gives a deep understanding of the concepts and building blocks of algorithms of optimization.
${\color{lime}\surd}$ Introduces some key tools, algorithms and approaches of modern optimizations.
${\color{lime}\surd}$ Demonstrates through Hands On exercises how to formulate and solve real world problems.
${\color{lime}\surd}$ Includes 50 interactive notebooks to exercise the material.

The course will accompanied with a GitHub repository where all notebooks / scripts will be available to the participant.

Main Topics

${\color{lime}\surd}$ Fundamentals: Linear Algebra, Probability, Calculus.
${\color{lime}\surd}$ Convex and Non Convex optimization.
${\color{lime}\surd}$ Smooth and Non Smooth optimization.
${\color{lime}\surd}$ Linear and Non Linear optimization.
${\color{lime}\surd}$ Tools, Frameworks: DCP, CVXPY, CVX, Convex.jl, Optimizers and Solvers.
${\color{lime}\surd}$ Demonstrates results on real world data using battlefield learned tricks with Jupyter Notebooks and hands on approach.

Fundamentals Linear Algebra, Probability, Calculus
Convex and Non Convex Optimization Sets, Functions, Epigraph
Problem Formulation Atom Operations, Disciplined Convex Optimization (DCP)
Smooth and Non Smooth Optimization Sub Gradient, Proximal Operator, Composition Model
Linear and Non Linear optimization Acceleration Methods, Non Linear Least Squares
Tools & Frameworks DCP, CVXPY, CVX, Convex.jl, Optimizers and Solvers
Real World Problems Super Resolution, Clustering, Smoothing, Piece Wise Linear Least Squares

Goals

  • The participants will be able to implement advanced algorithms in optimization.
  • The participants will be able to formulate and solve real world problems.
  • The participants will be able to classify the type of the problem: Continuous / Integer, Smooth / Non Smooth, Linear / Non Linear.

Pre Built Syllabus

We have been given this course in various lengths, targeting different audiences.
The final syllabus will be decided and customized according to audience, allowed time and other needs.

Day Subject Details
1 Optimization Overview Motivation, Problems, Problem Types, The $\arg \min$ Operator
Math Fundamentals - Linear Algebra Vector Space, Distance Function, Norm Function, Inner Product, The Matrix Operator
Notebook 001 The ${L}^{p}$ Norm
Math Fundamentals - Probability Probability Space, Discrete & Continuous Random Variable, PMF, PDF, CDF, Expectation, Correlation
Math Fundamentals - Estimation The Likelihood Function, ML Estimator, Bayesian Estimation, MMSE Estimator, MAP Estimator
Notebook 002 The Maximum A Posteriori (MAP) Estimator
Math Fundamentals - Matrix Calculus The Derivative, The Gradient, Directional Derivative, Calculating the Gradient
Notebook 003 Auto Differentiation (Python)
Notebook 004 Numerical Differentiation
Objective Functions Loss functions, Norm induced, Probability Induced, Types of Problems
Notebook 005 Loss Functions, Gradients
2 Convex Optimization - Foundations Convex Set, Balls, Convex Function, Convex Problem, Convex Patterns, The Projection Operator
Convex Optimization - Smooth Optimization Gradient Descent, Steepest Descent (Different Norms), Coordinate Descent, Step Size, 1D Methods
Notebook 006 Gradient Descent for Quadratic Objective
Notebook 007 Local Quadratic Interpolation
Notebook 008 Coordinate Descent for Linear Least Squares
Notebook 009 Logistic Regression
3 Convex Optimization - Constrained Optimization Lagrangian, MinMax Theorem, Duality, KKT, DCP, Linear Programming, Quadratic Programming
Notebook 010 DCP Solver - Bounding Sphere
Notebook 011 Projected Gradient Descent for LS with Linear Equality
Notebook 012 Data Fitting with ${L}_{1}$ Norm as Linear Programming
Notebook 013 Data Fitting with ${L}_{\infty}$ Norm as Linear Programming
Notebook 014 Least Squares on the Probabilistic Unit Ball
Convex Optimization - Non Smooth Optimization The Sub Gradient, The Composition Model, The Proximal Operator
Notebook 015 Sub Gradient Method - Minimizing the Maximum of a Set of Functions
Notebook 016 Least Squares with ${L}_{1}$ regularization (LASSO Model)
Notebook 017 Least Squares with ${L}_{\infty}$ regularization
Notebook 018 Least Squares with ${L}_{0}$ regularization (Sparse Model)
4 Convex Optimization - Modern Algorithms & Solvers Projected Gradient Descent, Proximal Gradient Descent, Acceleration (FISTA), ADMM, PD3O, DCP Solvers
Notebook 019 Total Variation Denoising 1D - FISTA Acceleration
Notebook 020 Total Variation Denoising 1D - ADMM (Compared to FISTA)
Notebook 021 Projection Feasibility (Consensus Trick) - Projection onto Intersection of Sets
Notebook 022 Total Variation Deblurring 1D
Notebook 023 Piece Wise Linear Model with Auto Knot Selection
Three Operators Composition Problem 3 Terms ADMM, PD3O, Large Scale Problems, Linear Operators
Notebook 024 Total Variation Deblurring 2D
5 The SVD and Linear Least Squares The Normal Equations, The SVD, Sensitivity, Weighted LS, Regularized LS, Total Least Squares
Notebook 025 Image Compression using the SVD (Rank)
Notebook 026 The SVD and Pseudo Inverse
Notebook 027 Linear Least Squares with Multiple Inputs
Notebook 028 Weighted Least Squares for Trigonometric Polynomials
Notebook 029 Regularized Least Squares - Overfitting
Notebook 030 Sequential LS
Notebook 031 Sequential Solution to ${L}_{2}$ Regularized LS
Notebook 032 Total Least Squares for Model Robust Regression
Non Linear Least Squares Formulation, Problems, Challenges, Methods: First Order, Second Order, Line Search, Combined Methods
Notebook 033 Estimation of Harmonic Signal Parameters
Notebook 034 Estimation of Sum of Harmonic Signals Parameters
6 Loss Functions Smooth, Non Smooth, Sparse Promoting, Regularization, Priors (Probabilistic Point of View)
Notebook 035 Frequency Super Resolution 001
Notebook 036 Frequency Super Resolution 002
Extended Methods - Robust Regression Robust Regression Methods, RANSAC
Notebook 037 Robust Regression Using RANSAC
Extended Methods - Large Scale Matrix Inversion Free Methods (CG), Operators, Stochastic Gradient Descent, Momentum Methods
Notebook 038 Momentum and Adam Methods for Stochastic Gradient Descent
OPT Extended Methods - Majorization Minimization Definition, Generalization of EM
Notebook 039 Multidimensional Scaling (MDS) for Dimensionality Reduction
OPT Extended Methods - IRLS Fixed Point Methods, Iterative Reweighted Least Squares
Notebook 040 Linear Equation with ${L}_{\infty}$ Norm
Notebook 041 LASSO: IRLS vs. Coordinate Descent
OPT Extended Methods - Non Negative Matrix Factorization Problem Definition, Approaches
Notebook 042 Recommendation System by NNMF
OPT Dynamic Programming Introduction, Examples
Notebook 043 Segmented Linear Least Squares by Dynamic Programming
OPT Extended Methods - Global Optimization Local vs. Global, Grid Search, Random Search, Multi Resolution & Fine Tuning
Notebook 044 Non Linear Least Squares for Localization with Coarse to Fine Multi Scale
OPT Intro to Discrete Optimization Definition, Convexification, Relaxation, Solvers
Notebook 045 Solving Sudoku Using Binary Linear Programming
Notebook 046 Clustering using Non Continuous Optimization
OPT Harmonic Signals Parameter Estimation Real case, Complex case, Maximum Likelihood, Initialization, Estimators
Notebook 047 Solving composition of 1, 2, 3 and 5 components
OPT Dictionary Learning Problem definition, Sparsity measures, Solvers: Matching Pursuit (MP), OMP, K-SVD
Notebook 048 Dictionary Learning for signal classification
Notebook 049 Online dictionary learning
OPT Laplacian Eigenmaps for Dimensionality Reduction Graph, Distance on Graph, Min Cut / Max Flow, Relaxation, The Laplacian Graph
Notebook 050 Dimensionality reduction using Laplacian Eigenmaps
Notebook 051 Bio Signals clustering using Laplacian Eigenmaps

Items marked as OPT are optional for customization of the course.

Audience

Algorithm Developers: Machine Learning, Signal Processing, Image Processing, Computer Vision, RF, Data Scientists, Statisticians.

Prerequisites

We can offer this course in MATLAB, Julia or Python.

  • Linear Algebra (Basic).
  • Probability / Statistics (Basic).
  • MATLAB / Python / Julia.

In any case any of the prerequisites are not met, we can offer 1-2 days sprint on: Linear Algebra, Probability and MATLAB / Julia / Python.