Машинное обучение 2 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Теоретические задания)
(Практические задания)
 
(не показаны 104 промежуточные версии 10 участников)
Строка 9: Строка 9:
 
'''Лектор:''' [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
 
'''Лектор:''' [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
  
Лекции проходят по пятницам, 10:30 - 11:50, ауд. 317.
+
Лекции проходят по пятницам, 11:10 - 12:30, в zoom (https://zoom.us/j/96365799994?pwd=U0lJTXJxbmtpMjAvQWxDVVM4TnNtdz09).
  
  
Строка 18: Строка 18:
 
=== Полезные ссылки ===
 
=== Полезные ссылки ===
  
[https://www.hse.ru/edu/courses/205514318 Карточка курса и программа]
+
[https://www.hse.ru/edu/courses/339563174 Карточка курса и программа]
  
 
[https://github.com/esokolov/ml-course-hse Репозиторий с материалами на GitHub]
 
[https://github.com/esokolov/ml-course-hse Репозиторий с материалами на GitHub]
  
Почта для сдачи домашних заданий: hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+151@gmail.com)
+
Почта для сдачи домашних заданий (на самом деле задания сдаются в AnyTask, но если он не работает, то присылайте на почту): hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+161@gmail.com)
  
Канал в telegram для объявлений: https://telegram.me/hse_cs_ml_2_course_2017
+
Канал в telegram для объявлений: https://t.me/hse_cs_ml_2
  
Чат в telegram для обсуждений: https://t.me/joinchat/A5rlQEQ7r16nvyHbyXtjNA
+
Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/joinchat/E8grJC7Gn4nLuEv2
  
[https://docs.google.com/spreadsheets/d/16wj3eH2crdGY-MFqiMMUoy1E7uo80nYT2MYfz3Y7gx4/edit?usp=sharing Таблица с оценками]
+
Ссылка на курс в Anytask: https://anytask.org/course/797
 +
 
 +
[https://docs.google.com/spreadsheets/d/1vJYgN5-cSNeBtpxXJIT1ZqBJdx3pRTsQGF1NqY0ac5Q/edit?usp=sharing Таблица с оценками]
 +
 
 +
Плейлист с записями занятий: https://www.youtube.com/playlist?list=PLEwK9wdS5g0p7A6gXsuXnLZpfrMyqrJKP
  
 
Оставить отзыв на курс: [https://goo.gl/forms/5CddG0gc75VZvqi52 форма]
 
Оставить отзыв на курс: [https://goo.gl/forms/5CddG0gc75VZvqi52 форма]
Строка 39: Строка 43:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Группа !! Преподаватель !! Расписание
+
! Группа !! Преподаватель !! Учебный ассистент
 
|-
 
|-
| 151 (МОП) || [https://www.hse.ru/org/persons/165212870 Зиннурова Эльвира Альбертовна] || пятница, 12:10 - 13:30, ауд. ??
+
| 181 (МОП) || [https://www.hse.ru/org/persons/165212870 Зиннурова Эльвира Альбертовна] || [https://t.me/Bitchert Лёша Биршерт], [https://t.me/poly_nomial Илья Анищенко]
 
|-
 
|-
| 152 (МОП) || [https://www.hse.ru/org/persons/191263008 Неклюдов Кирилл Олегович] || пятница, 12:10 - 13:30, ауд. ??
+
| 182 (МОП) || [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич] || [http://t.me/isadrtdinov Ильдус Садртдинов]
 +
|-
 +
| Курс по выбору для ПМИ || [https://www.hse.ru/org/persons/209813459 Каюмов Эмиль Марселевич] || [http://t.me/bigbluebutterfly Игорь Федоров]
 +
|-
 +
| Межампус || [https://www.hse.ru/org/persons/190919554 Трошин Сергей Дмитриевич] || [http://t.me/treacker Шабалин Евгений]
 
|-
 
|-
 
|}
 
|}
 
=== Консультации ===
 
 
Консультации с преподавателями и учебными ассистентами по курсу проводятся по предварительной договорённости.
 
  
 
=== Правила выставления оценок ===
 
=== Правила выставления оценок ===
  
 
В курсе предусмотрено несколько форм контроля знания:
 
В курсе предусмотрено несколько форм контроля знания:
* Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций и выполнение теоретических домашних заданий
+
* Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций
* Теоретические домашние задания
+
 
* Практические домашние работы на Python
 
* Практические домашние работы на Python
* Соревнования по анализу данных
+
* Письменная контрольная работа
* Письменный коллоквиум в конце 3-го модуля
+
 
* Письменный экзамен
 
* Письменный экзамен
  
 
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
 
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
  
O<sub>итоговая</sub> = 0.7 * O<sub>накопленная</sub> + 0.3 * О<sub>экз</sub>
+
Итог = Округление(0.4 * ДЗ + 0.2 * К + 0.1 * ПР + 0.3 * Э)
  
Оценка за работу в семестре вычисляется по формуле
+
ПР — средняя оценка за самостоятельные работы на семинарах
  
O<sub>накопленная</sub> = 0.2 * O<sub>самостоятельные</sub> + 0.2 * O<sub>теоретические дз</sub> + 0.4 * О<sub>практические дз</sub> + 0.2 * О<sub>контрольная</sub>
+
ДЗ — средняя оценка за практические домашние работы на Python
  
Оценка за самостоятельную работу вычисляется как среднее по всем самостоятельным, оценка за домашнюю работу как среднее по всем практическим заданиям и соревнованиям.
+
К — оценка за коллоквиум
 +
 
 +
Э оценка за экзамен
 +
 
 +
Округление арифметическое.
  
 
=== Правила сдачи заданий ===
 
=== Правила сдачи заданий ===
  
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются.
+
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опоздании на одну секунду. Сдавайте заранее. Есть исключения, о них написано ниже.
  
 
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
 
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
  
При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён (при этом получить дополнительные баллы за призовые места на конкурсе можно только при участии в общий срок). Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
+
При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
  
 
== Лекции ==
 
== Лекции ==
  
'''Лекция 14''' (12 января). Двойственные представления для линейной регрессии и SVM. Ядра. Теорема Мерсера. Способы построения ядер. Полиномиальные и гауссовы ядра.  [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/lecture-notes/lecture14-kernels.pdf Конспект]]
+
Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!
  
'''Лекция 15''' (19 января). Условная оптимизация, двойственные задачи, теорема Куна-Таккера. Двойственная задача SVM. Типы объектов в SVM. Kernel trick. Связь SVM с RBF-ядром и kNN.  [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/lecture-notes/lecture15-kernels.pdf Конспект]]
+
'''Лекция 1''' (22 января). Двойственные представления для линейной регрессии и SVM. Ядра. Теорема Мерсера. Способы построения ядер. Полиномиальные и гауссовы ядра.  [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture13-kernels.pdf Конспект]] [[https://www.youtube.com/watch?v=nXQY4f4ce0g Запись лекции]]
  
'''Лекция 16''' (26 января). RKHS и теорема о представлении. Аппроксимация ядер, метод случайных признаков Фурье. Ядровой метод главных компонент. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/lecture-notes/lecture16-kernels.pdf Конспект]]
+
'''Лекция 2''' (29 января). Двойственная задача SVM. Типы объектов в SVM. Kernel trick. Аппроксимации ядер. Метод случайных признаков Фурье. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture14-kernels.pdf Конспект]] [[https://www.youtube.com/watch?v=Vo8VFT5aADk Запись лекции]]
  
'''Лекция 17''' (2 февраля). Смеси распределений. Модели со скрытыми переменными. KL-дивергения. EM-алгоритм в общем виде, его сходимость. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/lecture-notes/lecture17-em.pdf Конспект]]
+
'''Лекция 3''' (5 февраля). Смеси распределений. Модели со скрытыми переменными. KL-дивергенция. EM-алгоритм в общем виде, его сходимость. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture15-em.pdf Конспект]] [[https://www.youtube.com/watch?v=DK5yBB7jXtI Запись лекции]]
 
+
'''Лекция 18''' (9 февраля). Работа с несбалансированными выборками. Одноклассовые методы и обнаружение аномалий: статистический и метрический подходы. Одноклассовый SVM. Isolation forest. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/lecture-notes/lecture18-anomaly.pdf Конспект]]
+
  
 
== Семинары ==
 
== Семинары ==
'''Семинар 12''' (12 января). Ядра, спрямляющие пространства. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/seminars/sem12-kernels.pdf Конспект]]
 
  
'''Семинар 13''' (19 января). Решение задач условной оптимизации. Условия Куна-Таккера. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/seminars/sem13-kernels.pdf Конспект]]
+
'''Семинар 1'''. Задачи условной оптимизации и теорема Куна-Таккера. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem13-kkt.pdf Конспект]]
  
'''Семинар 14''' (26 января). Двойственная задача метода опорных векторов. All-subsequences kernel. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/seminars/sem14-kernels.pdf Конспект]]
+
'''Семинар 2'''. Задачи на построение ядер. Задачи на прямую и двойственную формулировки метода опорных векторов. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem14-kernels.pdf Конспект]]
  
'''Семинар 15''' (2 февраля). Линейный дискриминант Фишера. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/seminars/sem15-kernels.pdf Конспект]]
+
'''Семинар 3'''. Задачи на EM-алгоритм. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem15-em.pdf Конспект]]
 
+
'''Семинар 16''' (9 февраля). EM-алгоритм. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/seminars/sem16-em.pdf Конспект]]
+
 
+
'''Семинар 17''' (2 марта). EM-алгоритм для метода главных компонент. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/seminars/sem17-em.pdf Конспект]]
+
 
+
'''Семинар 18''' (16 марта). Параметрические методы восстановления плотности распределения. Байесовские классификаторы. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/seminars/sem18-bayes.pdf Конспект]]
+
 
+
'''Семинар 19''' (23 марта). Спектральная кластеризация. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/seminars/sem19-unsupervised.pdf Конспект]]
+
  
 
== Теоретические задания ==
 
== Теоретические задания ==
Все дедлайны жёсткие. До дедлайна необходимо сдать фотографии/сканы решений либо решение, набранное в TeX. Если у проверяющих возникнут вопросы к решениям, то студента могут пригласить на защиту домашней работы. За полностью правильную работу, набранную в TeX, выставляется 1 бонусный балл (если работа набирает меньше баллов, то и бонусы пропорционально уменьшаются).
 
  
Оценки: https://docs.google.com/spreadsheets/d/1yLf9KChFzLrJgY_Dj0cydaz4ivFnPXw4Gi93mExWm-I/edit?usp=sharing (если в графе def стоит 0 — студент вызван на защиту).
+
== Практические задания ==
  
'''ДЗ №9'''
+
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются, но есть исключение. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна — в этом случае за каждый день просрочки продолжает вычитаться по одному баллу (если не оговорено иное).
  
[[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/homeworks-theory/homework-theory-09-kernels.pdf Условие]]
+
'''Задание 8.''' Метод опорных векторов и аппроксимация ядер
 +
 +
Мягкий дедлайн: 21.02.2021 01:59.  
  
Дата выдачи: 14.02.2018
+
Жесткий дедлайн: 24.02.2021 01:59.
  
Срок отправки решений: 01.03.2018 23:59MSK
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-08-random-features.ipynb Ноутбук с заданием]]
  
Защита: 06.04.2018 12:10 (ауд. 505)
+
'''Задание 9.''' ЕМ-алгоритм
 +
 +
Мягкий дедлайн: 09.03.2021 01:59
  
'''ДЗ №10'''
+
Жесткий дедлайн: 13.03.2021 01:59
  
[[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/homeworks-theory/homework-theory-10-unsupervised.pdf Условие]]
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-09-em/homework-practice-09-em.ipynb Ноутбук с заданием]]
 
+
Дата выдачи: 11.04.2018
+
 
+
Срок отправки решений: 29.04.2018 23:59MSK
+
 
+
== Практические задания ==
+
 
+
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются.
+
 
+
'''Задание 1.''' Графы вычислений и обратное распространение ошибки
+
 
+
Дата выдачи: 10.03.2018
+
 
+
Мягкий дедлайн: 28.03.2018 23:59MSK
+
 
+
Жесткий дедлайн: 04.04.2018 23:59MSK
+
 
+
[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/homeworks-practice/homework-practice-04/homework-practice-04.ipynb Условие]
+
  
 
== Соревнования ==
 
== Соревнования ==
Строка 150: Строка 130:
 
В соревновании по анализу данных вам предлагается по имеющимся данным решить некоторую задачу, оптимизируя указанную метрику, и отправить ответы для заданного тестового множества. Максимальное количество посылок в сутки ограничено (как правило, разрешается сделать 2 посылки), ближе к концу соревнования вам будем необходимо выбрать 2 посылки, которые вы считаете лучшими. Тестовые данные делятся на публичные и приватные в некотором соотношении, на основе которых строятся публичный и приватный лидерборды соответственно, при этом публичный лидерборд доступен в течение всего соревнования, а приватный строится после его окончания для выбранных вами посылок.
 
В соревновании по анализу данных вам предлагается по имеющимся данным решить некоторую задачу, оптимизируя указанную метрику, и отправить ответы для заданного тестового множества. Максимальное количество посылок в сутки ограничено (как правило, разрешается сделать 2 посылки), ближе к концу соревнования вам будем необходимо выбрать 2 посылки, которые вы считаете лучшими. Тестовые данные делятся на публичные и приватные в некотором соотношении, на основе которых строятся публичный и приватный лидерборды соответственно, при этом публичный лидерборд доступен в течение всего соревнования, а приватный строится после его окончания для выбранных вами посылок.
  
 +
В лидербордах каждого из соревнований присутствуют несколько базовых решений (бейзлайнов), каждое из которых соответствует определённой оценке. Например, для получения оценки не ниже 8 баллов необходимо, чтобы ваше решение на '''приватном''' лидерборде оказалось лучше соответствующего бейзлайна. Далее для студента, преодолевшего бейзлайн на N_1 баллов, но не преодолевшего бейзлайн на N_2 балла, итоговая оценка за соревнование рассчитывается по равномерной сетке среди всех таких студентов в зависимости от места в приватном лидерборде среди них; если быть точными, то по следующей формуле:
  
В лидербордах каждого из соревнований присутствуют 3 базовых решения (бенчмарка), для получения оценки не ниже 4, 6 и 8 баллов соответственно, необходимо, чтобы ваше решение на '''приватном''' лидерборде оказалось лучше соответствующего бенчмарка. Далее для студента, преодолевшего бенчмарк на N баллов, но не преодолевшего бенчмарк на N+2 балла, итоговая оценка за соревнование рассчитывается по равномерной сетке среди всех таких студентов в зависимости от места в приватном лидерборде среди них; если быть точными, то по следующей формуле:
+
N_2 - (N_2 - N_1) * i  / M,
  
N + 2 - 2 * (i - [N = 8]) / M,
+
где M — количество студентов (из всех студентов, изучающих курс), преодолевших бейзлайн на N_1 баллов, но не преодолевших бейзлайн на N_2 балла;
 
+
где M — количество студентов (из всех студентов, изучающих курс), преодолевших бенчмарк на N баллов, но не преодолевших бенчмарк на N+2 балла;
+
  
 
i — место (начиная с 1) студента в приватном лидерборде среди всех таких студентов.  
 
i — место (начиная с 1) студента в приватном лидерборде среди всех таких студентов.  
  
 +
Единственное исключение из формулы — студенты, преодолевшие самый сильный бейзлайн, получают прибавку 1/M к своей оценке.
 +
 +
Чтобы вас не пропустили при проверке решений соревнования, '''необходимо''' использовать следующий формат для имени команды (вкладка Team):
 +
 +
«Имя Фамилия номер_группы»
  
В течение 3 суток после окончания соревнования на почту курса необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. При оформлении кода предполагайте, что данные лежат рядом с ним в папке data, а в результате выполнения кода ответы должны быть записаны в файл solution-N-Username.csv, где N — номер соревнования, Username — ваша фамилия. У нас должна быть возможность запустить код и получить те же ответы, что и в вашей посылке, — в частности, это означает, что:
+
В течение 3 суток после окончания соревнования в соответствующее задание на anytask необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. При оформлении кода предполагайте, что данные лежат рядом с ним в папке data, а в результате выполнения кода ответы должны быть записаны в файл solution-N-Username.csv, где N — номер соревнования, Username — ваша фамилия. У нас должна быть возможность запустить код и получить те же ответы, что и в вашей посылке, — в частности, это означает, что:
  
 
1. Если вы отправляете файл *.py, мы будем запускать его при помощи команды python *.py в вышеуказанном предположении о местонахождении данных.
 
1. Если вы отправляете файл *.py, мы будем запускать его при помощи команды python *.py в вышеуказанном предположении о местонахождении данных.
Строка 168: Строка 152:
 
3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами.  
 
3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами.  
  
В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-5 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде.
+
В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-5 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях '''запрещено'''. Под внешними данными понимаются размеченные данные, где разметка имеет прямое отношение к решаемой задаче. Грубо говоря, сборник текстов с википедии не считается внешними данными.
 
+
=== Соревнование 1: Система рекомендаций для интернет-магазина ===
+
 
+
Дата выдачи: 21.03.2018
+
 
+
Срок окончания соревнования: 21.04.2018 23:59MSK
+
 
+
Срок отправки кода: 24.04.2018 23:59MSK
+
 
+
[https://www.kaggle.com/t/1de924dddc0b40c9aa32925325bfc4be Ссылка на участие в соревновании]
+
 
+
== Контрольная работа ==
+
  
 +
== Коллоквиум ==
  
 
== Экзамен ==
 
== Экзамен ==
 
 
  
 
== Полезные материалы ==
 
== Полезные материалы ==
Строка 199: Строка 170:
 
* [http://www.machinelearning.ru/wiki/index.php?title=Машинное_обучение_%28курс_лекций%2C_К.В.Воронцов%29 Курс по машинному обучению К.В. Воронцова]
 
* [http://www.machinelearning.ru/wiki/index.php?title=Машинное_обучение_%28курс_лекций%2C_К.В.Воронцов%29 Курс по машинному обучению К.В. Воронцова]
 
* [https://yandexdataschool.ru/edu-process/courses/machine-learning Видеозаписи лекций курса Школы Анализа Данных, К.В. Воронцов]
 
* [https://yandexdataschool.ru/edu-process/courses/machine-learning Видеозаписи лекций курса Школы Анализа Данных, К.В. Воронцов]
 +
* [https://www.coursera.org/specializations/machine-learning-from-statistics-to-neural-networks Coursera: Машинное обучение от статистики до нейросетей (специализация)]
 
* [https://www.coursera.org/specializations/machine-learning-data-analysis Coursera: Машинное обучение и анализ данных (специализация)]
 
* [https://www.coursera.org/specializations/machine-learning-data-analysis Coursera: Машинное обучение и анализ данных (специализация)]
 
* [https://www.coursera.org/learn/introduction-machine-learning Coursera: Введение в машинное обучение, К.В. Воронцов]
 
* [https://www.coursera.org/learn/introduction-machine-learning Coursera: Введение в машинное обучение, К.В. Воронцов]
  
 
== Страницы предыдущих лет ==
 
== Страницы предыдущих лет ==
 +
 +
[[Машинное_обучение_2/2019_2020 | 2019/2020 учебный год]]
 +
 +
[[Машинное_обучение_2/2018_2019 | 2018/2019 учебный год]]
 +
 +
[[Машинное_обучение_2/2017_2018 | 2017/2018 учебный год]]
  
 
[[Машинное_обучение_2/2016_2017 | 2016/2017 учебный год]]
 
[[Машинное_обучение_2/2016_2017 | 2016/2017 учебный год]]

Текущая версия на 13:35, 24 февраля 2021

О курсе

borderless

Курс читается для студентов 3-го курса ПМИ ФКН ВШЭ в 3-4 модулях.

Проводится с 2016 года.

Лектор: Соколов Евгений Андреевич

Лекции проходят по пятницам, 11:10 - 12:30, в zoom (https://zoom.us/j/96365799994?pwd=U0lJTXJxbmtpMjAvQWxDVVM4TnNtdz09).




Полезные ссылки

Карточка курса и программа

Репозиторий с материалами на GitHub

Почта для сдачи домашних заданий (на самом деле задания сдаются в AnyTask, но если он не работает, то присылайте на почту): hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+161@gmail.com)

Канал в telegram для объявлений: https://t.me/hse_cs_ml_2

Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/joinchat/E8grJC7Gn4nLuEv2

Ссылка на курс в Anytask: https://anytask.org/course/797

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

Плейлист с записями занятий: https://www.youtube.com/playlist?list=PLEwK9wdS5g0p7A6gXsuXnLZpfrMyqrJKP

Оставить отзыв на курс: форма

Вопросы по курсу можно задавать на почту курса, а также в телеграм лектору (esokolov@) или семинаристу. Вопросы по материалам лекций/семинаров и по заданиям лучше всего оформлять в виде Issue в github-репозитории курса.

Семинары

Группа Преподаватель Учебный ассистент
181 (МОП) Зиннурова Эльвира Альбертовна Лёша Биршерт, Илья Анищенко
182 (МОП) Соколов Евгений Андреевич Ильдус Садртдинов
Курс по выбору для ПМИ Каюмов Эмиль Марселевич Игорь Федоров
Межампус Трошин Сергей Дмитриевич Шабалин Евгений

Правила выставления оценок

В курсе предусмотрено несколько форм контроля знания:

  • Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций
  • Практические домашние работы на Python
  • Письменная контрольная работа
  • Письменный экзамен

Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:

Итог = Округление(0.4 * ДЗ + 0.2 * К + 0.1 * ПР + 0.3 * Э)

ПР — средняя оценка за самостоятельные работы на семинарах

ДЗ — средняя оценка за практические домашние работы на Python

К — оценка за коллоквиум

Э — оценка за экзамен

Округление арифметическое.

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

За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опоздании на одну секунду. Сдавайте заранее. Есть исключения, о них написано ниже.

При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.

При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.

Лекции

Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!

Лекция 1 (22 января). Двойственные представления для линейной регрессии и SVM. Ядра. Теорема Мерсера. Способы построения ядер. Полиномиальные и гауссовы ядра. [Конспект] [Запись лекции]

Лекция 2 (29 января). Двойственная задача SVM. Типы объектов в SVM. Kernel trick. Аппроксимации ядер. Метод случайных признаков Фурье. [Конспект] [Запись лекции]

Лекция 3 (5 февраля). Смеси распределений. Модели со скрытыми переменными. KL-дивергенция. EM-алгоритм в общем виде, его сходимость. [Конспект] [Запись лекции]

Семинары

Семинар 1. Задачи условной оптимизации и теорема Куна-Таккера. [Конспект]

Семинар 2. Задачи на построение ядер. Задачи на прямую и двойственную формулировки метода опорных векторов. [Конспект]

Семинар 3. Задачи на EM-алгоритм. [Конспект]

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

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

За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются, но есть исключение. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна — в этом случае за каждый день просрочки продолжает вычитаться по одному баллу (если не оговорено иное).

Задание 8. Метод опорных векторов и аппроксимация ядер

Мягкий дедлайн: 21.02.2021 01:59.

Жесткий дедлайн: 24.02.2021 01:59.

[Ноутбук с заданием]

Задание 9. ЕМ-алгоритм

Мягкий дедлайн: 09.03.2021 01:59

Жесткий дедлайн: 13.03.2021 01:59

[Ноутбук с заданием]

Соревнования

Правила участия и оценивания

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

В лидербордах каждого из соревнований присутствуют несколько базовых решений (бейзлайнов), каждое из которых соответствует определённой оценке. Например, для получения оценки не ниже 8 баллов необходимо, чтобы ваше решение на приватном лидерборде оказалось лучше соответствующего бейзлайна. Далее для студента, преодолевшего бейзлайн на N_1 баллов, но не преодолевшего бейзлайн на N_2 балла, итоговая оценка за соревнование рассчитывается по равномерной сетке среди всех таких студентов в зависимости от места в приватном лидерборде среди них; если быть точными, то по следующей формуле:

N_2 - (N_2 - N_1) * i / M,

где M — количество студентов (из всех студентов, изучающих курс), преодолевших бейзлайн на N_1 баллов, но не преодолевших бейзлайн на N_2 балла;

i — место (начиная с 1) студента в приватном лидерборде среди всех таких студентов.

Единственное исключение из формулы — студенты, преодолевшие самый сильный бейзлайн, получают прибавку 1/M к своей оценке.

Чтобы вас не пропустили при проверке решений соревнования, необходимо использовать следующий формат для имени команды (вкладка Team):

«Имя Фамилия номер_группы»

В течение 3 суток после окончания соревнования в соответствующее задание на anytask необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. При оформлении кода предполагайте, что данные лежат рядом с ним в папке data, а в результате выполнения кода ответы должны быть записаны в файл solution-N-Username.csv, где N — номер соревнования, Username — ваша фамилия. У нас должна быть возможность запустить код и получить те же ответы, что и в вашей посылке, — в частности, это означает, что:

1. Если вы отправляете файл *.py, мы будем запускать его при помощи команды python *.py в вышеуказанном предположении о местонахождении данных.

2. Если вы отправляете ноутбук *.ipynb, мы последовательно запустим все ячейки ноутбука и будем ожидать в результате его работы формирование файла с ответами.

3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами.

В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-5 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях запрещено. Под внешними данными понимаются размеченные данные, где разметка имеет прямое отношение к решаемой задаче. Грубо говоря, сборник текстов с википедии не считается внешними данными.

Коллоквиум

Экзамен

Полезные материалы

Книги

  • Hastie T., Tibshirani R, Friedman J. The Elements of Statistical Learning (2nd edition). Springer, 2009.
  • Bishop C. M. Pattern Recognition and Machine Learning. Springer, 2006.
  • Mohri M., Rostamizadeh A., Talwalkar A. Foundations of Machine Learning. MIT Press, 2012.
  • Murphy K. Machine Learning: A Probabilistic Perspective. MIT Press, 2012.
  • Mohammed J. Zaki, Wagner Meira Jr. Data Mining and Analysis. Fundamental Concepts and Algorithms. Cambridge University Press, 2014.
  • Willi Richert, Luis Pedro Coelho. Building Machine Learning Systems with Python. Packt Publishing, 2013.

Курсы по машинному обучению и анализу данных

Страницы предыдущих лет

2019/2020 учебный год

2018/2019 учебный год

2017/2018 учебный год

2016/2017 учебный год