Методы оптимизации (курс лекций)

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Литература)
 
(41 промежуточная версия не показана)
Строка 1: Строка 1:
-
{{stop| Страница курса находится в стадии формирования}}
 
-
 
__NOTOC__
__NOTOC__
-
Настройка модели алгоритмов по данным — это задача оптимизации, от эффективности решения которой зависит практическая применимость метода машинного обучения. В эпоху больших данных многие классические алгоритмы оптимизации становятся неприменимы, т.к. здесь требуется решать задачи оптимизации функций за время меньшее, чем необходимо для вычисления значения функции в одной точке. Таким требованиям можно удовлетворить в случае грамотного комбинирования известных подходов в оптимизации с учётом конкретной специфики решаемой задачи. Курс посвящен изучению классических и современных методов решения задач непрерывной оптимизации (в том числе невыпуклой), а также особенностям применения этих методов в задачах оптимизации, возникающих в машинном обучении. Наличие у слушателей каких-либо предварительных знаний по оптимизации не предполагается, все необходимые понятия разбираются в ходе занятий. Основной акцент в изложении делается на практические аспекты реализации и использования методов. Целью курса является выработка у слушателей навыков по подбору подходящего метода для своей задачи, наиболее полно учитывающего её особенности.
+
Методы оптимизации лежат в основе решения многих задач компьютерных наук. Например, в машинном обучении задачу оптимизации необходимо решать каждый раз при настройке какой-то модели алгоритмов по данным. Причём от эффективности решения соответствующей задачи оптимизации зависит практическая применимость самого метода машинного обучения. Данный курс посвящен изучению классических и современных методов решения задач непрерывной оптимизации (в том числе невыпуклой), а также особенностям применения этих методов в задачах оптимизации, возникающих в машинном обучении. Основной акцент в изложении делается на практические аспекты реализации и использования методов. Целью курса является выработка у слушателей навыков по подбору подходящего метода для своей задачи, наиболее полно учитывающего её особенности.
-
Курс рассчитан на студентов старших курсов и аспирантов. Знание основ машинного обучения приветствуется, но не является обязательным — все необходимые понятия вводятся в ходе лекций.
+
Занятия проходят на ФКН ВШЭ.
Занятия проходят на ФКН ВШЭ.
Строка 11: Строка 8:
'''Семинаристы''':
'''Семинаристы''':
{| class="standard"
{| class="standard"
-
! Группа !! Семинарист !! Расписание
+
! Группа !! Семинарист !! Расписание !! Почта для ДЗ
|-
|-
-
| 141 (МОП) || Родоманов Антон Олегович || вторник, 15:10 – 16:30, ауд. 513
+
| 141 (МОП) || Родоманов Антон Олегович || вторник, 15:10 – 16:30, ауд. 513 || opt.homework+141@gmail.com
|-
|-
-
| 142 (МОП) || Хальман Михаил Анатольевич || вторник, 15:10 – 16:30, ауд. 501
+
| 142 (МОП) || Хальман Михаил Анатольевич || вторник, 15:10 – 16:30, ауд. 501 || opt.homework+142@gmail.com
|-
|-
-
| 145 (РС) || Дойков Никита Владимирович || вторник, 15:10 – 16:30, ауд. 503
+
| 145 (РС) || Дойков Никита Владимирович || вторник, 15:10 – 16:30, ауд. 503 || opt.homework+145@gmail.com
|-
|-
|}
|}
-
== Система выставления оценок по курсу ==
+
[https://docs.google.com/spreadsheets/d/10ThdXos3CHqErNLCGKr05GC6ndCiBrJFNb9VQFjfbls/edit?usp=sharing Таблица с оценками]
-
В рамках курса предполагается четыре практических задания, несколько домашних заданий и экзамен. Каждое задание и экзамен оцениваются по пятибалльной шкале. В итоговой оценке 45% составляют баллы за практические задания, 25% — баллы за домашние задания и 30% — оценка за экзамен. Для получения финального результата (0, 3, 4, 5) итоговая оценка по курсу округляется в большую сторону. За каждый день просрочки при сдаче практического задания начисляется штраф 0.1 балла, но суммарно не более 3 баллов.
+
 +
[[Media:MO17_Exam_Questions_.pdf‎|'''Вопросы к коллоквиуму''']]
 +
== Система выставления оценок по курсу в 3-м модуле ==
 +
# В рамках курса в 3-м модуле (непрерывная оптимизация) предполагается три практических задания, четыре домашних заданий и коллоквиум. Каждое задание и коллоквиум оцениваются по десятибалльной шкале.
 +
# В оценке за модуль 50% составляют баллы за домашние задания и 50% – баллы за практические задания. Для получения финального результата (0–10) оценка округляется в большую сторону.
 +
# Сдача коллоквиума является необязательной и позволяет получить до 2 дополнительных баллов в оценку за модуль (оценка за коллоквиум берётся с весом 0.2).
 +
# Оценка за модуль не может быть больше, чем 10 баллов.
 +
 +
== Формирование итоговой оценки по курсу по итогам 3-го и 4-го модулей ==
 +
# За 3-й модуль выставляется оценка «Накопленная_непрерывная» как описано выше.
 +
# За 4-й модуль выставляется оценка «Накопленная_дискретная» и проводится экзамен. На экзамене будет спрашиваться только материал 4-го модуля (дискретная оптимизация).
 +
# Итоговая оценка по курсу вычисляется по формуле:
 +
#* «Накопленная_итоговая» = 0.625 * «Накопленная_непрерывная» + 0.375 * «Накопленная_дискретная»
 +
#* «Итоговая_оценка» = 0.8 * «Накопленная_итоговая» + 0.2 * «Экзамен»
 +
# При вычислении итоговой оценки проводится округление к ближайшему целому (.5 округляется к единице)
 +
--------------------------------
 +
 +
== Правила сдачи заданий ==
 +
В рамках курса предполагается сдача нескольких домашних и практических заданий. Домашнее задание сдаётся к началу очередного семинара на листочках или (по согласованию с семинаристом) по почте в виде скана или pdf-файла. Домашние задания после срока сдачи не принимаются. Практические задания сдаются по почте. Эти задания могут быть присланы после срока сдачи, при этом начисляется штраф из расчёта 0.2 балла в день, но суммарно не более 6 баллов.
 +
 +
Все домашние и практические задания выполняются самостоятельно. Если задание выполнялось сообща или использовались какие-либо сторонние коды и материалы, то об этом должно быть написано в отчёте. В противном случае «похожие» решения считаются плагиатом и все задействованные студенты (в том числе те, у кого списали) будут сурово наказаны.
== Лекции ==
== Лекции ==
Строка 80: Строка 96:
|}
|}
-
== Программа курса ==
+
== Семинары ==
-
 
+
{| class = "standard"
-
=== Основные понятия и примеры задач ===
+
|+
-
 
+
! № п/п
-
* Градиент и гессиан функции многих переменных, их свойства, необходимые и достаточные условия безусловного экстремума;
+
! Дата
-
* Матричные разложения, их использование для решения СЛАУ;
+
! Занятие
-
* Структура итерационного процесса в оптимизации, понятие оракула, критерии останова;
+
! Материалы
-
* Глобальная и локальная оптимизация, скорости сходимости итерационных процессов оптимизации.
+
|-
-
 
+
| align="center"|1
-
=== Методы одномерной оптимизации ===
+
| 10 января 2017
-
 
+
| Скорости сходимости. Матричные вычисления. || [[Media:MO17_seminar1.pdf|Конспект]]
-
* Минимизация функции без производной: метод золотого сечения, метод парабол;
+
|-
-
* Гибридный метод минимизации Брента;
+
| align="center"|2
-
* Методы решения уравнения <tex>f^\prime(x)=0</tex>: метод деления отрезка пополам, метод секущей;
+
| 17&nbsp;января&nbsp;2017
-
* Минимизация функции с известной производной: кубическая аппроксимация и модифицированный метод Брента;
+
| Производные и условия оптимальности. Теория || [[Media:MO17_seminar2.pdf|Конспект]]
-
* Поиск ограничивающего сегмента;
+
|-
-
* Условия Армихо и Вольфа для неточного решения задачи одномерной оптимизации;
+
| align="center"|3
-
* Неточные методы одномерной оптимизации, backtracking.
+
| 24&nbsp;января&nbsp;2017
-
 
+
| Производные и условия оптимальности. Решение задач || [[Media:MO17_seminar3.pdf|Конспект]]
-
=== Методы многомерной оптимизации ===
+
|-
-
 
+
| align="center"|4
-
* Методы линейного поиска и доверительной области;
+
| 31&nbsp;января&nbsp;2017
-
* Метод градиентного спуска: наискорейший спуск, спуск с неточной одномерной оптимизацией, скорость сходимости метода для сильно-выпуклых функций с липшицевым градиентом, зависимость от шкалы измерений признаков;
+
| Методы градиентного спуска и Ньютона || [[Media:MO17_seminar4.pdf|Конспект]]
-
* Метод Ньютона: схема метода, скорость сходимости для выпуклых функций с липшицевым гессианом, подбор длины шага, способы коррекции гессиана до положительно-определённой матрицы;
+
|-
-
* Метод сопряженных градиентов для решения систем линейных уравнений, скорость сходимости метода, предобуславливание;
+
| align="center"|5
-
* Метод сопряженных градиентов для оптимизации неквадратичных функций, стратегии рестарта, зависимость от точной одномерной оптимизации;
+
| 7&nbsp;февраля&nbsp;2017
-
* Неточный (безгессианный) метод Ньютона: схема метода, способы оценки произведения гессиана на вектор через вычисление градиента;
+
| Методы градиентного спуска, Ньютона и сопряженных градиентов. Подготовка к практическому заданию 1 || [[Media:MO17_seminar5.pdf|Презентация]]
-
* Квазиньютоновские методы оптимизации: SR1, BFGS и L-BFGS.
+
|-
-
 
+
| align="center"|6
-
=== Методы внутренней точки ===
+
| 14&nbsp;февраля&nbsp;2017
 +
| Выпуклые множества и функции || [[Media:MO17_seminar6.pdf|Конспект]]
 +
|-
 +
| align="center"|7
 +
| 21&nbsp;февраля&nbsp;2017
 +
| Усеченный метод Ньютона. Квазиньютоновские методы || [[Media:MO17_seminar7.pdf|Конспект]]
 +
|-
 +
|-
 +
| align="center"|8
 +
| 28&nbsp;февраля&nbsp;2017
 +
| Условная оптимизация. Условия ККТ. Эквивалентные преобразования задач. || [[Media:MO17_seminar8.pdf|Конспект]]
 +
|-
 +
|-
 +
| align="center"|9
 +
| 7&nbsp;марта&nbsp;2017
 +
| Стандартные классы выпуклых задач и двойственность. || [[Media:MO17_seminar9.pdf|Конспект]]
 +
|-
 +
|-
 +
| align="center"|10
 +
| 14&nbsp;марта&nbsp;2017
 +
| Методы внутренней точки. || -
 +
|-
 +
|-
 +
| align="center"|11
 +
| 21&nbsp;марта&nbsp;2017
 +
| Субградиенты и проксимальные операторы. || -
 +
|-
 +
|}
-
* Необходимые и достаточные условия оптимальности в задачах условной оптимизации, условия Куна-Таккера;
+
== Домашние задания ==
-
* Выпуклые задачи условной оптимизации, двойственная функция Лагранжа, двойственная задача оптимизации;
+
-
* Решение задач условной оптимизации с линейными ограничениями вида равенство, метод Ньютона;
+
-
* Прямо-двойственный метод Ньютона, неточный вариант метода;
+
-
* Метод логарифмических барьерных функций;
+
-
* Прямо-двойственный метод внутренней точки;
+
-
* Методы первой фазы.
+
-
=== Разреженные методы машинного обучения ===
+
Задание 1. [[Media:MO17_homework1_correct.pdf‎‎|Скорости сходимости и матричные вычисления]]. Срок сдачи: '''17 января 2017 (на семинаре)'''.
-
* Модели линейной/логистической регрессии с регуляризациями L1 и L1/L2;
+
Задание 2. [[Media:MO17_homework2.pdf‎‎|Производные и условия оптимальности]]. Срок сдачи: '''31 января 2017 (на семинаре)'''.
-
* Понятие субградиента выпуклой функции, его связь с производной по направлению, необходимое и достаточное условие экстремума для выпуклых негладких задач безусловной оптимизации;
+
-
* Метод наискорейшего субградиентного спуска;
+
-
* Проксимальный метод, вычисление prox-оператора для L1- и L1/L2-регуляризаторов.
+
-
=== Стохастическая оптимизация ===
+
Задание 3. [[Media:MO17_homework3.pdf‎‎|Выпуклые множества и функции]]. Срок сдачи: '''22 февраля 2017 (23:59)'''.
-
* Задачи минимизации среднего и эмпирического риска;
+
Задание 4. [[Media:MO17_homework4.pdf‎‎|Условная оптимизация]]. Срок сдачи: '''22 марта 2017 (23:59)'''.
-
* Метод стохастического градиентного спуска, две фазы итерационного процесса, использование инерции;
+
-
* Метод SAG;
+
-
* Комбинирование стохастической оптимизации и проксимального метода.
+
-
=== Суррогатная оптимизация ===
+
== Практические задания ==
-
* Вероятностная модель логистической регрессии;
+
Задание 1. [[Media:MO17_practice1.pdf‎‎|Методы градиентного спуска и Ньютона]]. Срок сдачи: '''22 февраля 2017 (23:59)'''.
-
* Общая идея метода суррогатной оптимизации;
+
-
* Применение метода для стохастической оптимизации: метод MISO;
+
-
* Пример применения метода для обучения LASSO;
+
-
* Построение глобальных оценок с помощью неравенства Йенсена, ЕМ-алгоритм, его применение для вероятностной модели логистической регрессии;
+
-
* Построение оценок с помощью касательных и замены переменной;
+
-
* Оценка Jaakkola-Jordan для логистической функции, её применение для обучения вероятностной модели логистической регрессии;
+
-
* Выпукло-вогнутая процедура, примеры использования.
+
-
=== Методы оптимизации для глубинного обучения ===
+
Задание 2. [[Media:MO17_practice2.pdf‎‎| Продвинутые методы безусловной оптимизации]]. Срок сдачи: '''9 марта 2017 (23:59)'''.
-
* Адаптивная стратегия Левенберга-Марквардта для задачи минимизации суммы квадратов;
+
Задание 3. [[Media:MO17_practice3.pdf‎‎| Негладкая и условная оптимизация]]. Срок сдачи: '''7 апреля 2017 (23:59)'''.
-
* Модель глубинного автокодировщика;
+
-
* Алгоритм обратного распространения ошибки и его обобщения для быстрого умножения гессиана на произвольный вектор;
+
-
* Неточный метод Ньютона с предобуславливанием через L-BFGS.
+
== Литература ==
== Литература ==

Текущая версия

Методы оптимизации лежат в основе решения многих задач компьютерных наук. Например, в машинном обучении задачу оптимизации необходимо решать каждый раз при настройке какой-то модели алгоритмов по данным. Причём от эффективности решения соответствующей задачи оптимизации зависит практическая применимость самого метода машинного обучения. Данный курс посвящен изучению классических и современных методов решения задач непрерывной оптимизации (в том числе невыпуклой), а также особенностям применения этих методов в задачах оптимизации, возникающих в машинном обучении. Основной акцент в изложении делается на практические аспекты реализации и использования методов. Целью курса является выработка у слушателей навыков по подбору подходящего метода для своей задачи, наиболее полно учитывающего её особенности.

Занятия проходят на ФКН ВШЭ.

Лектор: Кропотов Дмитрий Александрович. Лекции проходят по вторникам в ауд. 622 с 13:40 до 15:00.

Семинаристы:

Группа Семинарист Расписание Почта для ДЗ
141 (МОП) Родоманов Антон Олегович вторник, 15:10 – 16:30, ауд. 513 opt.homework+141@gmail.com
142 (МОП) Хальман Михаил Анатольевич вторник, 15:10 – 16:30, ауд. 501 opt.homework+142@gmail.com
145 (РС) Дойков Никита Владимирович вторник, 15:10 – 16:30, ауд. 503 opt.homework+145@gmail.com

Таблица с оценками

Вопросы к коллоквиуму

Система выставления оценок по курсу в 3-м модуле

  1. В рамках курса в 3-м модуле (непрерывная оптимизация) предполагается три практических задания, четыре домашних заданий и коллоквиум. Каждое задание и коллоквиум оцениваются по десятибалльной шкале.
  2. В оценке за модуль 50% составляют баллы за домашние задания и 50% – баллы за практические задания. Для получения финального результата (0–10) оценка округляется в большую сторону.
  3. Сдача коллоквиума является необязательной и позволяет получить до 2 дополнительных баллов в оценку за модуль (оценка за коллоквиум берётся с весом 0.2).
  4. Оценка за модуль не может быть больше, чем 10 баллов.

Формирование итоговой оценки по курсу по итогам 3-го и 4-го модулей

  1. За 3-й модуль выставляется оценка «Накопленная_непрерывная» как описано выше.
  2. За 4-й модуль выставляется оценка «Накопленная_дискретная» и проводится экзамен. На экзамене будет спрашиваться только материал 4-го модуля (дискретная оптимизация).
  3. Итоговая оценка по курсу вычисляется по формуле:
    • «Накопленная_итоговая» = 0.625 * «Накопленная_непрерывная» + 0.375 * «Накопленная_дискретная»
    • «Итоговая_оценка» = 0.8 * «Накопленная_итоговая» + 0.2 * «Экзамен»
  4. При вычислении итоговой оценки проводится округление к ближайшему целому (.5 округляется к единице)

Правила сдачи заданий

В рамках курса предполагается сдача нескольких домашних и практических заданий. Домашнее задание сдаётся к началу очередного семинара на листочках или (по согласованию с семинаристом) по почте в виде скана или pdf-файла. Домашние задания после срока сдачи не принимаются. Практические задания сдаются по почте. Эти задания могут быть присланы после срока сдачи, при этом начисляется штраф из расчёта 0.2 балла в день, но суммарно не более 6 баллов.

Все домашние и практические задания выполняются самостоятельно. Если задание выполнялось сообща или использовались какие-либо сторонние коды и материалы, то об этом должно быть написано в отчёте. В противном случае «похожие» решения считаются плагиатом и все задействованные студенты (в том числе те, у кого списали) будут сурово наказаны.

Лекции

№ п/п Дата Занятие Материалы
1 10 января 2017 Введение в курс. Необходимое условие экстремума. Оракулы, скорости сходимости итерационных процессов.
2 17 января 2017 Точная одномерная оптимизация.
3 24 января 2017 Неточная одномерная оптимизация. Классы функций для оптимизации. Метод градиентного спуска.
4 31 января 2017 Матричные разложения и их использование для решения СЛАУ. Метод Ньютона для выпуклых и невыпуклых задач.
5 7 февраля 2017 Линейный метод сопряжённых градиентов.
6 14 февраля 2017 Неточный метод Ньютона. Разностные производные.
7 21 февраля 2017 Квазиньютоновские методы. Метод L-BFGS.
8 28 февраля 2017 Задачи условной оптимизации: условия ККТ.
9 7 марта 2017 Выпуклые задачи оптимизации. Двойственность. Метод барьеров.
10 14 марта 2017 Негладкая безусловная оптимизация. Субградиентный метод. Проксимальные методы.
11 21 марта 2017 Стохастическая оптимизация.

Семинары

№ п/п Дата Занятие Материалы
1 10 января 2017 Скорости сходимости. Матричные вычисления. Конспект
2 17 января 2017 Производные и условия оптимальности. Теория Конспект
3 24 января 2017 Производные и условия оптимальности. Решение задач Конспект
4 31 января 2017 Методы градиентного спуска и Ньютона Конспект
5 7 февраля 2017 Методы градиентного спуска, Ньютона и сопряженных градиентов. Подготовка к практическому заданию 1 Презентация
6 14 февраля 2017 Выпуклые множества и функции Конспект
7 21 февраля 2017 Усеченный метод Ньютона. Квазиньютоновские методы Конспект
8 28 февраля 2017 Условная оптимизация. Условия ККТ. Эквивалентные преобразования задач. Конспект
9 7 марта 2017 Стандартные классы выпуклых задач и двойственность. Конспект
10 14 марта 2017 Методы внутренней точки. -
11 21 марта 2017 Субградиенты и проксимальные операторы. -

Домашние задания

Задание 1. Скорости сходимости и матричные вычисления. Срок сдачи: 17 января 2017 (на семинаре).

Задание 2. Производные и условия оптимальности. Срок сдачи: 31 января 2017 (на семинаре).

Задание 3. Выпуклые множества и функции. Срок сдачи: 22 февраля 2017 (23:59).

Задание 4. Условная оптимизация. Срок сдачи: 22 марта 2017 (23:59).

Практические задания

Задание 1. Методы градиентного спуска и Ньютона. Срок сдачи: 22 февраля 2017 (23:59).

Задание 2. Продвинутые методы безусловной оптимизации. Срок сдачи: 9 марта 2017 (23:59).

Задание 3. Негладкая и условная оптимизация. Срок сдачи: 7 апреля 2017 (23:59).

Литература

  1. J. Nocedal, S. Wright. Numerical Optimization, Springer, 2006.
  2. S. Boyd, L. Vandenberghe. Convex Optimization, Cambridge University Press, 2004.
  3. S. Sra et al.. Optimization for Machine Learning, MIT Press, 2011.
  4. A. Ben-Tal, A. Nemirovski. Optimization III. Lecture Notes, 2013.
  5. Б. Поляк. Введение в оптимизацию, Наука, 1983.
  6. Y. Nesterov. Introductory Lectures on Convex Optimization: A Basic Course, Springer, 2003.
  7. R. Fletcher. Practical Methods of Optimization, Wiley, 2000.
  8. A. Antoniou, W.-S. Lu. Practical Optimization: Algorithms and Engineering Applications, Springer, 2007.
  9. W. Press et al.. Numerical Recipes. The Art of Scientific Computing, Cambridge University Press, 2007.
Личные инструменты