Giter VIP home page Giter VIP logo

optimization_course's Introduction

Optimization Methods

This repository contains seminars resources for the course "Optimization methods" for the 3-rd year students of Department of Control and Applied Mathematics. Every seminar presents brief review of necessary part of theory covered in lectures and examples of standard tasks for considered topic.

The main tool in development of efficient optimization methods is numerical linear algebra. To refresh your knowledge, you can use the crash course (ru, en).

Almost all numerical tests in this repository are performed with liboptpy library, where you can find easy to use implementations of different optimization methods. Also we use CVXPY 1.0 for comparison purpose.

Fall term

Questions

The minimum list of questions (ru) on the topics in Fall term.

Spring term

  • Preliminary

    • Disciplined convex programming and autograd with PyTorch (ru Open In Colab, en)
    • Demo of convex optimization power (ru Open In Colab, en)
  • 2017-2019

  • 2020

  • 2021

  • 2022

Questions

The minimum list of questions (ru) on topics of Spring term.

Advanced and additional topics

  1. Nesterov's method and ODE (ru, en)
  2. Sequential quadratic programming
  3. Theory of optimal methods and lower complexity bounds
  4. Mirror descent
  5. Optimization methods on Riemanien manifolds
  6. Structured optimization with sparsity conditions
  7. Submodular optimization

References

Books, lecture notes and blogs

Related courses

Contributing

If you want to send pull-request, please read the following instruction

optimization_course's People

Contributors

alexandrseverinov avatar amkatrutsa avatar antosha417 avatar binpord avatar kirillbobyrev avatar llevcono avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

optimization_course's Issues

Поправка к дифференциальному критерию первого порядка

Возможно, есть ошибка в презентации про выпуклые функции. На 6 слайде в критерии первого порядка должно быть m, а не m/2, по крайней мере, так в Жадане. Либо в определении выпуклой функции должно стоять тоже m/2. Еще, может быть, стоит включить второй критерий первого порядка в презентацию(там где скалярное произведение разности градиентов)?

Seminar6

Слайд 3. В первом определении выделил бы каким нибудь синим цветом части, относящиеся к строгой выпуклости (а не просто в скобках их напиши). В принципе нормально и так, но думаю если выделить цветом будет лучше.

Вогнутая функция --- я понял что там минус.... но... всё таки... я даже не знаю...

В определении выпуклой функции сделай новую строку перед \forall, чтобы строчки формального определения для выпуклой и сильно выпуклой функции шли... ну... параллельно, так проще понять, что изменилось только последнее слагаемое.

В остальном --- норм (ну еще там на слайде 5 используется ri(X), можешь поменять если хочешь).

Seminar3

Слайд 4. Примеры в виде задач в то время как внутри презентаций ничего такого не разбиралось (не было примера с решенной такой задачей). Тебя впору ненавидеть... как по мне --- бесполезные примеры.

Слайд 7. Опять таки... что поясняют эти примеры?

Короче не буду дальше расписывать. Как по мне тут есть методологическая ошибка состоящая в следующем --- как бы не был прост приём, давать на него задачу изначально не продемонстрировав его хоть на каком то примере плохо... как мне кажется.

Seminar 1

Слайд 5. Логичный вопрос о том, являются ли оценки за контрольные более ценными. То есть идет ли усреднение с весами или нет.... ну я бы спросил. Усреднение усреднению рознь:)

Слайд 7. Я сначала не понял что ты хочешь сказать этим слайдом... потом понял.... мммм... я бы назвал его как то иначе, краткость сестра таланта и текущее название ему подходит... но для студентов я бы назвал его как-то без использования слова "методология"... возможно я не прав (либо же перед списком написал еще что-то сродни "Общие этапы решения задач:". Ну вот как то так).

Слайд 8. Вот этот вот пример не очень. Ты написал просто "выбор активов"... ну я как бы понял о чём это всё... но мне кажется без минимальных дополнительных комментариев студент может и не понять... Правда что-то такое у них должно было быть в терминах задач о рюкзаке... наверное.

Слайд 14. Что за магия?

Ошибка в 21 семинаре?

Возможно, в тетрадке про внешние штрафы есть ошибка. Там на слайде с формулой для модифицированной функции Лагранжа в слагаемом для ограничений типа неравенств стоит 1 / (2 \mu) а должно быть \mu / 2

Векторное дифференцирование

Добавить коммутативную диаграмму про переход к поэлементной записи и обратно, тем самым пояснив общую схему вычисления градиентов и гессианов и прочих матриц Якоби.

Семинар 12

Самое начало. Постановка задачи --- все функции из произвольного класса?
Вопросы после общей итеративной схемы: 'Какие критерии основа могут быть?' --- эмм... что (видимо останова)?
Почему вообще останова вместо остановки... останова... как то странно звучит.

Остальное вроде норм.

Dimensionality mismatch

Nit; Seminar 4, Slide 6, Farkas' lemma (both EN and RU versions): second system should contain p^T A \geq 0 instead of p A \geq 0 so that dimensionality matches ([1, m] x [m, n] vs. [m, 1] x [m, n]) as briefly discussed during the seminar.

Unclear symbol

In lecture 6 slide 6 last line, how should I understand symbol \bI?
image

Seminar4

Слайд 6. Применение. Опечатка - "снизу".

А так вроде норм... ну тут одни формулировки.

Seminar7

Слайд 3. Твой ответ на вопрос "Зачем?" вызывает вопрос "Зачем?". В принципе, я думаю, народ уже должен осознавать зачем, но напомнить парой слов им об этом, наверное, не помешает (заодно они может быть подумают о том понимают ли они в данных случаях зачем им нужен такой вектор, может задумаются о чём нибудь).

Слайд 7. Я как то не совсем осознал что происходит вне зон определений на этом слайде... я бы даже сказал не что, а зачем это происходит?

Using scipy's genetic algorithm for initial parameter estimation in gradient descent

I see you are writing Python code for gradient descent optimization. A general problem for gradient descent, particularly for more complex equations, is the choice of initial parameters to start the "descent" in error space. Without good starting parameters, the algorithm will stop in a local error minimum. For this reason the authors of scipy have added a genetic algorithm for initial parameter estimation for use in non-linear optimization. The module is named scipy.optimize.differential_evolution, and it uses the Latin Hypercube algorithm for a thorough search of parameter space.

I have used scipy's Differential Evolution genetic algorithm to determine initial parameters for fitting a double Lorentzian peak equation to Raman spectroscopy of carbon nanotubes and found that the results were excellent. The GitHub project, with a test spectroscopy data file, is:

https://github.com/zunzun/RamanSpectroscopyFit

If you have any questions, please let me know. My background is in nuclear engineering and industrial radiation physics, and I love Python, so I will be glad to help.

James Phillips

Seminar2

Слайд 5. Я бы выделил как то(красным цветом) изменения определений по сравнению с определениями на слайде 3 (там где вводятся определения аффинных множеств) дабы различия сразу были видны (и не надо было крутить назад).

Слайд 6. Кажется аффинное отображение у нас всегда называлось аффинным преобразованием... или ты что то другое имеешь ввиду?

Слайд 7. Примеры чего? Предыдущий слайд о преобразованиях... это точно не примеры преобразований... выпуклых множеств видимо? Или аффинных? Ответ конечно очевиден, но всё же.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.