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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Экзамен)
(Экзамен)
 
(не показана одна промежуточная версия 2 участников)
Строка 8: Строка 8:
  
 
'''Лектор:''' [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
 
'''Лектор:''' [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
 
Лекции проходят по пятницам, 12:10 - 13:30, ауд. 317.
 
  
  
Строка 18: Строка 16:
 
=== Полезные ссылки ===
 
=== Полезные ссылки ===
  
[https://www.hse.ru/ba/ami/courses/219874286.html Карточка курса и программа]
+
[https://www.hse.ru/edu/courses/292675363 Карточка курса и программа]
  
 
[https://github.com/esokolov/ml-course-hse Репозиторий с материалами на GitHub]
 
[https://github.com/esokolov/ml-course-hse Репозиторий с материалами на GitHub]
Строка 24: Строка 22:
 
Почта для сдачи домашних заданий (на самом деле задания сдаются в AnyTask, но если он не работает, то присылайте на почту): hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+161@gmail.com)
 
Почта для сдачи домашних заданий (на самом деле задания сдаются в AnyTask, но если он не работает, то присылайте на почту): hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+161@gmail.com)
  
Канал в telegram для объявлений: https://t.me/joinchat/AAAAAFhaKwm7kIqKGeAojA
+
Канал в telegram для объявлений: https://t.me/joinchat/AAAAAE5SoOZ7xcP42p_G-Q
 +
 
 +
Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/joinchat/A5rlQBUrWTeXl7eBbnyBcQ
  
Чат в telegram для обсуждений: https://t.me/joinchat/A5rlQE2eFY0LN0AWcGH3qA
+
Ссылка на курс в Anytask: https://anytask.org/course/686
  
[https://docs.google.com/spreadsheets/d/1u832G7b9aRyayoncaKXr7XPD6WisDr85AYRBKSVCMq0/edit?usp=sharing Таблица с оценками]
+
[https://docs.google.com/spreadsheets/d/1QIUMUkjzHfRqNIkYHVb4jsi3Pkq7URAQWSW8c9UwE-g/edit?usp=sharing Таблица с оценками]
  
 
Оставить отзыв на курс: [https://goo.gl/forms/5CddG0gc75VZvqi52 форма]
 
Оставить отзыв на курс: [https://goo.gl/forms/5CddG0gc75VZvqi52 форма]
Строка 39: Строка 39:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Группа !! Преподаватель !! Расписание
+
! Группа !! Преподаватель  
 
|-
 
|-
| 161 (МОП) || [https://www.hse.ru/org/persons/165212870 Зиннурова Эльвира Альбертовна] ||
+
| 171 (МОП) || [https://www.hse.ru/org/persons/165212870 Зиннурова Эльвира Альбертовна]  
 
|-
 
|-
| 162 (МОП) || [https://www.hse.ru/org/persons/137283751 Атанов Андрей Игоревич] ||
+
| 172 (МОП) || [https://www.hse.ru/org/persons/209813459 Каюмов Эмиль Марселевич]  
 
|-
 
|-
| Курс по выбору || [https://www.hse.ru/org/persons/209813459 Каюмов Эмиль Марселевич] ||
+
| Курс по выбору || [https://www.hse.ru/org/persons/? Рысьмятова Анастасия Александровна]
 
|-
 
|-
 
|}
 
|}
  
=== Консультации ===
+
=== Правила выставления оценок ===
  
Консультации с преподавателями и учебными ассистентами по курсу проводятся по предварительной договорённости.
+
В курсе предусмотрено несколько форм контроля знания:
 +
* Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций
 +
* Практические домашние работы на Python
 +
* Проект
 +
* Письменная контрольная работа
 +
* Письменный экзамен
  
 
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
 
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
  
O<sub>итоговая</sub> = 0.7 * O<sub>накопленная</sub> + 0.3 * О<sub>экз</sub>
+
Итог = Округление(0.3 * ДЗ + 0.15 * П + 0.2 * К + 0.1 * ПР + 0.25 * Э)
  
Оценка за работу в семестре вычисляется по формуле
+
ПР — средняя оценка за самостоятельные работы на семинарах
  
O<sub>накопленная</sub> = 0.2 * O<sub>самостоятельные</sub> + 0.6 * О<sub>практические дз</sub> + 0.2 * О<sub>коллоквиум</sub>
+
ДЗ — средняя оценка за практические домашние работы на Python
  
Оценка за самостоятельную работу вычисляется как среднее по всем самостоятельным, оценка за домашнюю работу — как среднее по всем практическим заданиям и соревнованиям.
+
П — оценка за проект
  
Накопленная, экзаменационная и итоговая оценки округляются арифметически.
+
К — оценка за коллоквиум
 +
 
 +
Э — оценка за экзамен
 +
 
 +
Округление арифметическое.
  
 
=== Правила сдачи заданий ===
 
=== Правила сдачи заданий ===
  
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются.
+
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опоздании на одну секунду. Сдавайте заранее. Есть исключения, о них написано ниже.
  
 
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
 
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
  
При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён (при этом получить дополнительные баллы за призовые места на конкурсе можно только при участии в общий срок). Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
+
При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
  
 
== Лекции ==
 
== Лекции ==
  
'''Лекция 13''' (18 января). Двойственные представления для линейной регрессии и SVM. Ядра. Теорема Мерсера. Способы построения ядер. Полиномиальные и гауссовы ядра.  [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/lecture-notes/lecture13-kernels.pdf Конспект]]
+
Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!
  
'''Лекция 14''' (1 февраля). Аппроксимация ядер, метод случайных признаков Фурье. Ядра для строк, all-subsequences kernel. Ядровой метод главных компонент. [[https://github.com/esokolov/ml-course-hse/blob/master/2017-spring/lecture-notes/lecture14-kernels.pdf Конспект]]
+
'''Лекция 13''' (24 января). Двойственные представления для линейной регрессии и SVM. Ядра. Теорема Мерсера. Способы построения ядер. Полиномиальные и гауссовы ядра. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture13-kernels.pdf Конспект]]
  
'''Лекция 15''' (8 февраля). Смеси распределений. Модели со скрытыми переменными. KL-дивергения. EM-алгоритм в общем виде, его сходимость. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/lecture-notes/lecture15-em.pdf Конспект]]
+
'''Лекция 14''' (28 января). Двойственная задача SVM. Типы объектов, связь между решениями прямой и двойственной задач. Аппроксимация ядер. Метод случайных признаков Фурье. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture14-kernels.pdf Конспект]]
  
'''Лекция 16''' (15 февраля). Работа с несбалансированными выборками. Одноклассовые методы и обнаружение аномалий: статистический и метрический подходы. Одноклассовый SVM. Isolation forest. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/lecture-notes/lecture16-anomaly.pdf Конспект]]
+
'''Лекция 15''' (7 февраля). Смеси распределений. Модели со скрытыми переменными. KL-дивергения. EM-алгоритм в общем виде, его сходимость. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture15-em.pdf Конспект]]
  
'''Лекция 17''' (1 марта). Обучение без учителя. DBSCAN. Спектральная кластеризация. Supervised-метрики кластеризации.  
+
'''Лекция 16''' (14 февраля). Одноклассовые методы и поиск аномалий. Восстановление плотности. Одноклассовый метод опорных векторов. Isolation forest. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture16-anomaly.pdf Конспект]]
  
'''Лекция 18''' (15 марта). Частичное обучение. Self-training. Генеративные модели. Semi-supervised SVM. Частичное обучение и графовые методы.
+
'''Лекция 17''' (21 февраля). Спектральная кластеризация и лапласиан графа. Внешние метрики качества кластеризации.
  
'''Лекция 19''' (22 марта). Рекомендательные системы. Коллаборативные модели: memory-based, матричные разложения, факторизационные машины. Контентные модели. Метрики качества. Архитектура рекомендательных систем. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/lecture-notes/lecture19-recommender.pdf Конспект]]
+
'''Лекция 18''' (28 февраля). Частичное обучение. Self-training. Вероятностные методы. S3VM. Графовые методы частичного обучения. [[http://pages.cs.wisc.edu/~jerryzhu/pub/sslicml07.pdf презентация по теме]]
  
'''Лекция 20''' (5 апреля). Метрические методы. Метод k ближайших соседей для классификации и регрессии, его оптимальность. Измерение расстояний между текстами с помощью их внутренних представлений. Приближенные методы поиска соседей и locality sensitive hashing. Композиции хэш-функций, LSH forest. Обучение метрик, методы NCA и LMNN. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/lecture-notes/lecture20-knn.pdf Конспект]]
+
'''Лекция 19''' (6 марта). Рекомендательные системы. Модели со скрытыми переменными. Implicit ALS. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture19-recommender.pdf Конспект]]
  
'''Лекция 21''' (12 апреля). Метрические методы. Метрики качества кластеризации (unsupervised и supervised). Быстрый поиск ближайших соседей: методы NSW и HNSW.
+
'''Лекция 20''' (13 марта). Рекомендательные системы. Метрики качества рекомендаций. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture20-recommender.pdf Конспект]]
  
'''Лекция 22''' (19 апреля). Обучение ранжированию. Метрики качества ранжирования. Примеры факторов в ранжировании: BM25 и PageRank. Поточечный, попарный и списочный подходы. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/lecture-notes/lecture22-ranking.pdf Конспект]]
+
'''Лекция 21''' (20 марта). Метрические методы. Метрики для текстов, WMD. Быстрый поиск ближайших соседей. Locality-sensitive hashing. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture21-knn.pdf Конспект]] [[https://www.youtube.com/watch?v=vfWrWIDN4_E Запись вебинара]]
 +
 
 +
'''Лекция 22''' (27 марта). Locality-sensitive hashing. Композиции хэш-функций. Хэш-функции для косинусного и евклидова расстояний. NSW и HNSW. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture21-knn.pdf Конспект]] [[https://www.youtube.com/watch?v=xpSz7tWWyQ0 Запись вебинара]] [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture22-knn-notes.pdf Конспект с вебинара]]
 +
 
 +
'''Лекция 23''' (10 апреля). Краудсорсинг: агрегация оценок, incremental relabeling, performance-based pricing (Валентина Фёдорова, Яндекс.Толока). [[https://www.dropbox.com/s/fyrfn21d6sjlr3v/hse_crowdsourcing_aggregation.pptx?dl=0 Слайды 1]] [[https://www.dropbox.com/s/zoztakvbhhs5rc2/hse_crowdsourcing_IRL%26PBP.pptx?dl=0 Слайды 2]] [[https://www.youtube.com/watch?v=KVjbuT5g7eg Запись вебинара]]
 +
 
 +
'''Лекция 24''' (17 апреля). Ранжирование. Метрики качества ранжирования, позиционные и каскадные метрики. PageRank. Методы ранжирования. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture24-ranking.pdf Конспект]] [[https://www.youtube.com/watch?v=UIFdbJB7IGc Запись вебинара]] [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture24-ranking-notes.pdf Конспект с вебинара]]
 +
 
 +
'''Лекция 25''' (24 апреля). Ранжирование. Списочные методы и прямая оптимизация метрик качества ранжирования. Обобщённые линейные модели. [[https://www.youtube.com/watch?v=YvbC8oUXnbc Запись вебинара]] [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture25-ranking-glm-notes.pdf Конспект с вебинара]]
  
 
== Семинары ==
 
== Семинары ==
  
'''Семинар 14'''. Решение задач условной оптимизации. Условия Куна-Таккера. Двойственная задача SVM. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/seminars/sem14-svm.pdf Конспект]]
+
'''Семинар 13'''. Решение задач условной оптимизации. Условия Куна-Таккера. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem13-svm.pdf Конспект]]
  
'''Семинар 15'''. Решение задач на ядра. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/seminars/sem15-kernels.pdf Конспект]]
+
'''Семинар 14'''. Задачи на построение ядер. Задачи на прямую и двойственную формулировки метода опорных векторов. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem14-kernels.pdf Конспект]]
  
'''Семинар 16'''. EM-алгоритм. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/seminars/sem16-em.pdf Конспект]]
+
'''Семинар 15'''. Задачи на вывод шагов EM-алгоритма. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem15-em.pdf Конспект]]
  
'''Семинар 17'''. Оценки максимального правдоподобия на параметры многомерного нормального распределения. Байесовские классификаторы. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/seminars/sem17-bayes.pdf Конспект]]
+
'''Семинар 16'''. Задачи на вывод шагов EM-алгоритма. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem15-em.pdf Конспект]]
  
'''Семинар 18'''. Спектральная кластеризация. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/seminars/sem18-unsupervised.pdf Конспект]]
+
'''Семинар 17'''. Байесовский подход. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem17-bayes.pdf Конспект]]
  
'''Семинар 19'''. Multi-label классификация, focal loss. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/seminars/sem19-multilabel.pdf Конспект]]
+
'''Семинар 18'''. Спектральная кластеризация. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem18-unsupervised.pdf Конспект]]
  
'''Семинар 20'''. Вывод ALS и HALS для LFM. Факторизационные машины. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/seminars/sem20-recommendations.pdf Конспект]]
+
'''Семинар 19'''. Матричные разложения, ALS и HALS. Факторизационные машины. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem19-recommendations.pdf Конспект]]
  
'''Семинар 21'''. Метод k ближайших соседей. Способы задания расстояния на различных типах признаков. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/seminars/sem21-knn.pdf Конспект]]
+
'''Семинар 20'''. Метод k ближайших соседей. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem20-knn.pdf Конспект]]
  
'''Семинар 22'''. Тематическое моделирование. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/seminars/sem22-tm.pdf Конспект]]
+
'''Семинар 21'''. Генерация и отбор признаков. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem21-features-part1.pdf Конспект]]
 +
 
 +
'''Семинар 22'''. Интерпретация моделей. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem22-interpreting.pdf Конспект]]
 +
 
 +
'''Семинар 23'''. Обучение попарных соотношений. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem23-ranking.pdf Конспект]]
 +
 
 +
'''Семинар 24'''. Обобщённые линейные модели. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem24-glm.pdf Конспект]]
  
 
== Теоретические задания ==
 
== Теоретические задания ==
  
'''Теоретическое домашнее задание 1''': ядровые методы [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/homeworks-theory/homework-theory-05-kernels.pdf ссылка]]
+
'''Теоретическое домашнее задание 5''': ядровые методы [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-theory/homework-theory-05-kernels.pdf ссылка]]
 +
 
 +
'''Теоретическое домашнее задание 6''': EM-алгоритм [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-theory/homework-theory-06-em.pdf ссылка]]
  
'''Теоретическое домашнее задание 2''': обучение без учителя [[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/homeworks-theory/homework-theory-06-unsupervised.pdf ссылка]]
+
'''Теоретическое домашнее задание 7''': одноклассовые методы, частичное обучение, рекомендательные системы [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-theory/homework-theory-07.pdf ссылка]]
  
 
== Практические задания ==
 
== Практические задания ==
  
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна.
+
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются, но есть исключение. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна — в этом случае за каждый день просрочки продолжает вычитаться по одному баллу (если не оговорено иное).
  
'''Задание 8.''' Кластеризация.
+
'''Задание 8.''' Метод опорных векторов и аппроксимация ядер.
 
   
 
   
Мягкий дедлайн: 24.03.2019 05:59 MSK
+
Мягкий дедлайн: 30.03.2020 02:59
  
Жесткий дедлайн: 28.03.2019 05:59 MSK
+
Жесткий дедлайн: 03.04.2020 23:59
  
[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/homeworks-practice/homework-practice-08.ipynb Условие]
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-practice/homework-practice-08-random-features.ipynb Ноутбук с заданием]]
  
 
'''Задание 9.''' EM-алгоритм.
 
'''Задание 9.''' EM-алгоритм.
 
   
 
   
Мягкий дедлайн: 14.04.2019 07:59 MSK
+
Мягкий дедлайн: 30.04.2020 07:00
  
Жесткий дедлайн: 16.04.2019 23:59 MSK
+
Жесткий дедлайн: 03.05.2020 07:00
  
[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/homeworks-practice/homework-practice-09/homework-practice-09.ipynb Условие]
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-practice/homework-practice-09-em/homework-practice-09-em.ipynb Ноутбук с заданием]]
 +
[[https://contest.yandex.ru/contest/17827/ Контест для сдачи решений]]
  
'''Задание 10.''' Тематическое моделирование.
+
'''Задание 10.''' Рекомендательные системы.
 
   
 
   
Мягкий дедлайн: 12.05.2019 08:00 MSK
+
Мягкий дедлайн: 25.05.2020 23:59
  
Жесткий дедлайн: 14.05.2019 23:59 MSK
+
Жесткий дедлайн: 28.05.2020 23:59
  
[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/homeworks-practice/homework-practice-10/homework-practice-10.ipynb Условие]
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-practice/homework-practice-10-recommendations.ipynb Ноутбук с заданием]]
  
'''Задание 11.''' Обобщённые линейные модели.
+
'''Задание 11.''' Поиск ближайших соседей (бонусное задание).
 
   
 
   
Жесткий дедлайн: 16.06.2019 07:59 MSK
+
Жесткий дедлайн: 12.06.2020 07:00
  
[https://github.com/esokolov/ml-course-hse/blob/master/2018-spring/homeworks-practice/homework-practice-11.ipynb Условие]
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-practice/homework-practice-11-knn.ipynb Ноутбук с заданием]]
 +
 
 +
'''Задание 12.''' Обобщённые линейные модели (бонусное задание).
 +
 +
Жесткий дедлайн: 09.06.2020 23:59
 +
 
 +
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-practice/homework-practice-12-glm.ipynb Ноутбук с заданием]]
 +
 
 +
== Проект ==
 +
 
 +
Одной из форм контроля является проект. Результатом выполнения проекта должен быть отчёт, содержащий в себе:
 +
* Описание задачи
 +
* Описание методов
 +
* Описание данных, на которых проводились эксперименты
 +
* Подробное описание экспериментов и результатов
 +
* Анализ результатов и выводы
 +
 
 +
Не нужно писать формальный текст — будет здорово, если у вас получится интересная и доступная обзорная статья.
 +
 
 +
Темы проектов: https://docs.google.com/spreadsheets/d/1CR-uRp-USdjk-AeJD0Dm0rr99puA4oG4uMh6kNDk23k/edit?usp=sharing
 +
 
 +
Можно предлагать свои темы — их нужно вписать в ту же табличку. Такие темы нужно согласовать с лектором.
 +
 
 +
По умолчанию каждую тему может взять одна команда из 2-3 студентов. По согласованию с лектором одну тему может взять несколько команд.
 +
 
 +
Дедлайн сдачи отчёта и кода: 4 июня 23:59.
  
 
== Соревнования ==
 
== Соревнования ==
Строка 182: Строка 233:
 
3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами.  
 
3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами.  
  
В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-5 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях '''запрещено'''.
+
В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-5 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях '''запрещено'''. Под внешними данными понимаются размеченные данные, где разметка имеет прямое отношение к решаемой задаче. Грубо говоря, сборник текстов с википедии не считается внешними данными.
 
+
=== Соревнование 4: Рекомендательная система ===
+
 
+
Дата выдачи: 24.04.2019
+
 
+
Срок окончания соревнования: 28.05.2019 23:59MSK
+
 
+
Срок отправки кода: 30.05.2019 23:59MSK
+
 
+
[https://www.kaggle.com/t/f2aa63ee305d45219df1ca48f242263c Ссылка на участие в соревновании]
+
  
 
== Коллоквиум ==
 
== Коллоквиум ==
  
Коллоквиум пройдёт 18 мая.
+
* [https://docs.google.com/document/d/16yWpULTcMGxcEDQPwjTsZAWHDWMTsfUbBUWOKsbuPiE/edit?usp=sharing Вопросы]
 +
* [https://docs.google.com/document/d/1Nmmhli86_UbDDHhTWJMAYUYLiJWHoLm3-sRHb186bCM/edit?usp=sharing Теоретический минимум]
  
* [https://docs.google.com/document/d/1pSRySGMbE-oTr1HAOCKeAr6OdutPV2huCEC5fBct74Y/edit?usp=sharing Вопросы] для подготовки
+
Коллоквиум пройдёт 16 мая в zoom. Понадобится камера.
* [https://docs.google.com/document/d/1iJ_Q5hBiKpPd3MQ3OhBA6SzyIaTiLuuOKphjAi_fIlU/edit?usp=sharing Теоретический минимум]
+
  
 
Схема опроса на коллоквиуме:
 
Схема опроса на коллоквиуме:
# Разрешается принести с собой один лист А4, где от руки написано что угодно. Можно будет пользоваться этим листом в любом момент, кроме опроса по теоретическому минимуму.
+
# Разрешается принести с собой один лист А4, где от руки написано что угодно (его нужно будет показать преподавателю). Можно будет пользоваться этим листом в любом момент, кроме опроса по теоретическому минимуму.
 
# В начале студенту задаётся три вопроса из теоретического минимума. Отсутствие полного ответа на хотя бы один из них сразу же гарантирует нулевую оценку за коллоквиум. Если на все вопросы ответы полные и правильные, то студент получает 2 балла. Если при дальнейшем опросе студент демонстрирует ненулевые знания, то он получает ещё 2 балла за теоретический минимум.
 
# В начале студенту задаётся три вопроса из теоретического минимума. Отсутствие полного ответа на хотя бы один из них сразу же гарантирует нулевую оценку за коллоквиум. Если на все вопросы ответы полные и правильные, то студент получает 2 балла. Если при дальнейшем опросе студент демонстрирует ненулевые знания, то он получает ещё 2 балла за теоретический минимум.
 
# Далее студенту даётся вопрос из списка вопросов (первая ссылка выше). Ответ на него оценивается максимум в 4 балла.
 
# Далее студенту даётся вопрос из списка вопросов (первая ссылка выше). Ответ на него оценивается максимум в 4 балла.
# Далее студенту даётся ещё один вопрос из списка или задача. Ответ оценивается максимум в 4 балла.
+
# Далее студенту даётся ещё один вопрос из списка или задача на усмотрение преподавателя. Ответ оценивается максимум в 7 баллов (столько можно получить, если попросить дать и доп. вопрос, и задачу, и справиться с ними).
 
# Все баллы суммируются, больше 10 баллов получить нельзя. Избыток баллов уходит в бонусы.
 
# Все баллы суммируются, больше 10 баллов получить нельзя. Избыток баллов уходит в бонусы.
  
 
== Экзамен ==
 
== Экзамен ==
  
Вопросы: https://docs.google.com/document/d/1sOSePDjuunPk_OiVW8-VgWEuF-ZCCtE92NPl1hkbIbo/edit?usp=sharing
+
Вопросы для подготовки: https://docs.google.com/document/d/13iV1XEM9jyosByTe1FsNCacUNKyILUrQ66VQwoGjAQM/edit?usp=sharing
  
 
== Полезные материалы ==
 
== Полезные материалы ==
Строка 228: Строка 269:
  
 
== Страницы предыдущих лет ==
 
== Страницы предыдущих лет ==
 +
 +
[[Машинное_обучение_2/2018_2019 | 2018/2019 учебный год]]
  
 
[[Машинное_обучение_2/2017_2018 | 2017/2018 учебный год]]
 
[[Машинное_обучение_2/2017_2018 | 2017/2018 учебный год]]
  
 
[[Машинное_обучение_2/2016_2017 | 2016/2017 учебный год]]
 
[[Машинное_обучение_2/2016_2017 | 2016/2017 учебный год]]

Текущая версия на 23:03, 9 июня 2020

О курсе

borderless

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

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

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




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

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

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

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

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

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

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

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

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

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

Семинары

Группа Преподаватель
171 (МОП) Зиннурова Эльвира Альбертовна
172 (МОП) Каюмов Эмиль Марселевич
Курс по выбору Рысьмятова Анастасия Александровна

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

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

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

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

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

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

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

П — оценка за проект

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

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

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

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

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

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

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

Лекции

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

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

Лекция 14 (28 января). Двойственная задача SVM. Типы объектов, связь между решениями прямой и двойственной задач. Аппроксимация ядер. Метод случайных признаков Фурье. [Конспект]

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

Лекция 16 (14 февраля). Одноклассовые методы и поиск аномалий. Восстановление плотности. Одноклассовый метод опорных векторов. Isolation forest. [Конспект]

Лекция 17 (21 февраля). Спектральная кластеризация и лапласиан графа. Внешние метрики качества кластеризации.

Лекция 18 (28 февраля). Частичное обучение. Self-training. Вероятностные методы. S3VM. Графовые методы частичного обучения. [презентация по теме]

Лекция 19 (6 марта). Рекомендательные системы. Модели со скрытыми переменными. Implicit ALS. [Конспект]

Лекция 20 (13 марта). Рекомендательные системы. Метрики качества рекомендаций. [Конспект]

Лекция 21 (20 марта). Метрические методы. Метрики для текстов, WMD. Быстрый поиск ближайших соседей. Locality-sensitive hashing. [Конспект] [Запись вебинара]

Лекция 22 (27 марта). Locality-sensitive hashing. Композиции хэш-функций. Хэш-функции для косинусного и евклидова расстояний. NSW и HNSW. [Конспект] [Запись вебинара] [Конспект с вебинара]

Лекция 23 (10 апреля). Краудсорсинг: агрегация оценок, incremental relabeling, performance-based pricing (Валентина Фёдорова, Яндекс.Толока). [Слайды 1] [Слайды 2] [Запись вебинара]

Лекция 24 (17 апреля). Ранжирование. Метрики качества ранжирования, позиционные и каскадные метрики. PageRank. Методы ранжирования. [Конспект] [Запись вебинара] [Конспект с вебинара]

Лекция 25 (24 апреля). Ранжирование. Списочные методы и прямая оптимизация метрик качества ранжирования. Обобщённые линейные модели. [Запись вебинара] [Конспект с вебинара]

Семинары

Семинар 13. Решение задач условной оптимизации. Условия Куна-Таккера. [Конспект]

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

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

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

Семинар 17. Байесовский подход. [Конспект]

Семинар 18. Спектральная кластеризация. [Конспект]

Семинар 19. Матричные разложения, ALS и HALS. Факторизационные машины. [Конспект]

Семинар 20. Метод k ближайших соседей. [Конспект]

Семинар 21. Генерация и отбор признаков. [Конспект]

Семинар 22. Интерпретация моделей. [Конспект]

Семинар 23. Обучение попарных соотношений. [Конспект]

Семинар 24. Обобщённые линейные модели. [Конспект]

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

Теоретическое домашнее задание 5: ядровые методы [ссылка]

Теоретическое домашнее задание 6: EM-алгоритм [ссылка]

Теоретическое домашнее задание 7: одноклассовые методы, частичное обучение, рекомендательные системы [ссылка]

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

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

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

Мягкий дедлайн: 30.03.2020 02:59

Жесткий дедлайн: 03.04.2020 23:59

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

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

Мягкий дедлайн: 30.04.2020 07:00

Жесткий дедлайн: 03.05.2020 07:00

[Ноутбук с заданием] [Контест для сдачи решений]

Задание 10. Рекомендательные системы.

Мягкий дедлайн: 25.05.2020 23:59

Жесткий дедлайн: 28.05.2020 23:59

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

Задание 11. Поиск ближайших соседей (бонусное задание).

Жесткий дедлайн: 12.06.2020 07:00

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

Задание 12. Обобщённые линейные модели (бонусное задание).

Жесткий дедлайн: 09.06.2020 23:59

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

Проект

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

  • Описание задачи
  • Описание методов
  • Описание данных, на которых проводились эксперименты
  • Подробное описание экспериментов и результатов
  • Анализ результатов и выводы

Не нужно писать формальный текст — будет здорово, если у вас получится интересная и доступная обзорная статья.

Темы проектов: https://docs.google.com/spreadsheets/d/1CR-uRp-USdjk-AeJD0Dm0rr99puA4oG4uMh6kNDk23k/edit?usp=sharing

Можно предлагать свои темы — их нужно вписать в ту же табличку. Такие темы нужно согласовать с лектором.

По умолчанию каждую тему может взять одна команда из 2-3 студентов. По согласованию с лектором одну тему может взять несколько команд.

Дедлайн сдачи отчёта и кода: 4 июня 23: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 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях запрещено. Под внешними данными понимаются размеченные данные, где разметка имеет прямое отношение к решаемой задаче. Грубо говоря, сборник текстов с википедии не считается внешними данными.

Коллоквиум

Коллоквиум пройдёт 16 мая в zoom. Понадобится камера.

Схема опроса на коллоквиуме:

  1. Разрешается принести с собой один лист А4, где от руки написано что угодно (его нужно будет показать преподавателю). Можно будет пользоваться этим листом в любом момент, кроме опроса по теоретическому минимуму.
  2. В начале студенту задаётся три вопроса из теоретического минимума. Отсутствие полного ответа на хотя бы один из них сразу же гарантирует нулевую оценку за коллоквиум. Если на все вопросы ответы полные и правильные, то студент получает 2 балла. Если при дальнейшем опросе студент демонстрирует ненулевые знания, то он получает ещё 2 балла за теоретический минимум.
  3. Далее студенту даётся вопрос из списка вопросов (первая ссылка выше). Ответ на него оценивается максимум в 4 балла.
  4. Далее студенту даётся ещё один вопрос из списка или задача на усмотрение преподавателя. Ответ оценивается максимум в 7 баллов (столько можно получить, если попросить дать и доп. вопрос, и задачу, и справиться с ними).
  5. Все баллы суммируются, больше 10 баллов получить нельзя. Избыток баллов уходит в бонусы.

Экзамен

Вопросы для подготовки: https://docs.google.com/document/d/13iV1XEM9jyosByTe1FsNCacUNKyILUrQ66VQwoGjAQM/edit?usp=sharing

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

Книги

  • 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.

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

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

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

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

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