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

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Экзамен)
(Лекции)
 
(не показана одна промежуточная версия 6 участников)
Строка 8: Строка 8:
  
 
'''Лектор:''' [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
 
'''Лектор:''' [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
 +
 +
Лекции проходят по пятницам, 11:10 - 12:30, в zoom (https://zoom.us/j/96365799994?pwd=U0lJTXJxbmtpMjAvQWxDVVM4TnNtdz09).
  
  
Строка 16: Строка 18:
 
=== Полезные ссылки ===
 
=== Полезные ссылки ===
  
[https://www.hse.ru/edu/courses/292675363 Карточка курса и программа]
+
[https://www.hse.ru/edu/courses/339563174 Карточка курса и программа]
  
 
[https://github.com/esokolov/ml-course-hse Репозиторий с материалами на GitHub]
 
[https://github.com/esokolov/ml-course-hse Репозиторий с материалами на GitHub]
Строка 22: Строка 24:
 
Почта для сдачи домашних заданий (на самом деле задания сдаются в 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/AAAAAE5SoOZ7xcP42p_G-Q
+
Канал в telegram для объявлений: https://t.me/hse_cs_ml_2
 +
 
 +
Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/joinchat/E8grJC7Gn4nLuEv2
  
Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/joinchat/A5rlQBUrWTeXl7eBbnyBcQ
+
Ссылка на курс в Anytask: https://anytask.org/course/797
  
Ссылка на курс в Anytask: https://anytask.org/course/686
+
[https://docs.google.com/spreadsheets/d/1vJYgN5-cSNeBtpxXJIT1ZqBJdx3pRTsQGF1NqY0ac5Q/edit?usp=sharing Таблица с оценками]
  
[https://docs.google.com/spreadsheets/d/1QIUMUkjzHfRqNIkYHVb4jsi3Pkq7URAQWSW8c9UwE-g/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"
 
|-
 
|-
! Группа !! Преподаватель  
+
! Группа !! Преподаватель !! Учебный ассистент
 
|-
 
|-
| 171 (МОП) || [https://www.hse.ru/org/persons/165212870 Зиннурова Эльвира Альбертовна]  
+
| 181 (МОП) || [https://www.hse.ru/org/persons/165212870 Зиннурова Эльвира Альбертовна] || [https://t.me/Bitchert Лёша Биршерт], [https://t.me/poly_nomial Илья Анищенко]
 
|-
 
|-
| 172 (МОП) || [https://www.hse.ru/org/persons/209813459 Каюмов Эмиль Марселевич]  
+
| 182 (МОП) || [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич] || [http://t.me/isadrtdinov Ильдус Садртдинов]
 
|-
 
|-
| Курс по выбору || [https://www.hse.ru/org/persons/? Рысьмятова Анастасия Александровна]
+
| Курс по выбору для ПМИ || [https://www.hse.ru/org/persons/209813459 Каюмов Эмиль Марселевич]  || [http://t.me/bigbluebutterfly Игорь Федоров]
 +
|-
 +
| Межампус || [https://www.hse.ru/org/persons/190919554 Трошин Сергей Дмитриевич] || [http://t.me/treacker Шабалин Евгений]
 
|-
 
|-
 
|}
 
|}
Строка 54: Строка 60:
 
* Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций
 
* Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций
 
* Практические домашние работы на Python
 
* Практические домашние работы на Python
* Проект
 
 
* Письменная контрольная работа
 
* Письменная контрольная работа
 
* Письменный экзамен
 
* Письменный экзамен
Строка 60: Строка 65:
 
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
 
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
  
Итог = Округление(0.3 * ДЗ + 0.15 * П + 0.2 * К + 0.1 * ПР + 0.25 * Э)
+
Итог = Округление(0.4 * ДЗ + 0.2 * К + 0.1 * ПР + 0.3 * Э)
  
 
ПР — средняя оценка за самостоятельные работы на семинарах
 
ПР — средняя оценка за самостоятельные работы на семинарах
  
 
ДЗ — средняя оценка за практические домашние работы на Python
 
ДЗ — средняя оценка за практические домашние работы на Python
 
П — оценка за проект
 
  
 
К — оценка за коллоквиум
 
К — оценка за коллоквиум
Строка 86: Строка 89:
 
Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!
 
Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!
  
'''Лекция 13''' (24 января). Двойственные представления для линейной регрессии и SVM. Ядра. Теорема Мерсера. Способы построения ядер. Полиномиальные и гауссовы ядра.  [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture13-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 Запись лекции]]
  
'''Лекция 14''' (28 января). Двойственная задача SVM. Типы объектов, связь между решениями прямой и двойственной задач. Аппроксимация ядер. Метод случайных признаков Фурье. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture14-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 Запись лекции]]
  
'''Лекция 15''' (7 февраля). Смеси распределений. Модели со скрытыми переменными. KL-дивергения. EM-алгоритм в общем виде, его сходимость. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture15-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 Запись лекции]]
  
'''Лекция 16''' (14 февраля). Одноклассовые методы и поиск аномалий. Восстановление плотности. Одноклассовый метод опорных векторов. Isolation forest. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture16-anomaly.pdf Конспект]]
+
'''Лекция 4''' (12 февраля). Поиск аномалий. Методы на основе восстановления плотности. Local Outlier Factor. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture16-anomaly.pdf Конспект]] [[https://www.youtube.com/watch?v=lPXMRUPIuPw Запись лекции]]
  
'''Лекция 17''' (21 февраля). Спектральная кластеризация и лапласиан графа. Внешние метрики качества кластеризации.
+
'''Лекция 5''' (19 февраля). Поиск аномалий. Одноклассовый SVM. Isolation Forest. Методы кластеризации. DBSCAN. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture16-anomaly.pdf Конспект по аномалиям]] [[https://www.youtube.com/watch?v=jI2EecMVeYc Запись лекции]]
  
'''Лекция 18''' (28 февраля). Частичное обучение. Self-training. Вероятностные методы. S3VM. Графовые методы частичного обучения. [[http://pages.cs.wisc.edu/~jerryzhu/pub/sslicml07.pdf презентация по теме]]
+
'''Лекция 6''' (26 февраля). Методы кластеризации. Иерархическая кластеризация. Графовые методы. Спектральная кластеризация. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture17-clusterization.pdf Конспект]] [[https://www.youtube.com/watch?v=O2YfZNCDmrc Запись лекции]]
  
'''Лекция 19''' (6 марта). Рекомендательные системы. Модели со скрытыми переменными. Implicit ALS. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture19-recommender.pdf Конспект]]
+
'''Лекция 7''' (5 марта). Внешние метрики качества кластеризации. Тематическое моделирование. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture18-topicmodels.pdf Конспект по тематическому моделированию]] [[https://www.youtube.com/watch?v=tGMdCfxbRwc Запись лекции]]
  
'''Лекция 20''' (13 марта). Рекомендательные системы. Метрики качества рекомендаций. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/lecture-notes/lecture20-recommender.pdf Конспект]]
+
'''Лекция 8''' (12 марта). Частичное обучение. Self-training. Вероятностные методы. S3VM. Регуляризация на основе лапласиана графа. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture19-semisupervised.pdf Конспект]] [[https://www.youtube.com/watch?v=KRQ83hE7dTc Запись лекции]]
  
'''Лекция 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 Запись вебинара]]
+
'''Лекция 9''' (19 марта). Метод k ближайших соседей. Расстояния на текстах. Быстрый поиск ближайших соседей. Locality-sensitive hashing. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture20-knn.pdf Конспект]] [[https://www.youtube.com/watch?v=a8lslAYJ6C4 Запись лекции]]
  
'''Лекция 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 Конспект с вебинара]]
+
'''Лекция 10''' (26 марта). Быстрый поиск ближайших соседей. Locality-sensitive hashing. NSW и HNSW. [[https://www.youtube.com/watch?v=Kepw20luLmw Запись лекции]]
  
'''Лекция 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 Запись вебинара]]
+
'''Лекция 11''' (9 апреля). Задача ранжирования. Метрики качества ранжирования. Примеры факторов ранжирования. Поточечный, попарный и списочный подходы. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture22-ranking.pdf Конспект]] [[https://www.youtube.com/watch?v=cqI3bVrFEOQ Запись лекции]]
  
'''Лекция 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 Конспект с вебинара]]
+
'''Лекция 12''' (23 апреля). Рекомендательные системы. Типичная архитектура рекомендательной системы. Memory-based подход. Методы на основе матричных разложений. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture23-recommender.pdf Конспект]] [[https://www.youtube.com/watch?v=VeTMV4E1KAc Запись лекции]]
  
'''Лекция 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 Конспект с вебинара]]
+
'''Лекция 13''' (30 апреля). Рекомендательные системы. Свойства моделей, основанных на матричных разложениях. Неявная информация и iALS. Контентные модели. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture23-recommender.pdf Конспект]] [[https://www.youtube.com/watch?v=NND6TWo4EPA Запись лекции]]
 +
 
 +
'''Лекция 14''' (14 мая, гостевая лекция, Дмитрий Симаков). AutoML. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture25-automl-dsimakov.pdf Слайды]] [[https://www.youtube.com/watch?v=8YxIGdZHcUg Запись лекции]]
 +
 
 +
'''Лекция 15''' (21 мая). Рекомендательные системы. Холодные рекомендации. Метрики качества рекомендаций. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/lecture-notes/lecture24-recommender.pdf Конспект]] [[https://www.youtube.com/watch?v=AnikZ7vsssA Запись лекции]]
 +
 
 +
'''Лекция 16''' (4 июня). Нейросетевые методы для табличных данных. [[https://www.youtube.com/watch?v=TEcHCSEw3nQ Запись лекции]]
  
 
== Семинары ==
 
== Семинары ==
  
'''Семинар 13'''. Решение задач условной оптимизации. Условия Куна-Таккера. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem13-svm.pdf Конспект]]
+
'''Семинар 1'''. Задачи условной оптимизации и теорема Куна-Таккера. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem13-kkt.pdf Конспект]]
  
'''Семинар 14'''. Задачи на построение ядер. Задачи на прямую и двойственную формулировки метода опорных векторов. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem14-kernels.pdf Конспект]]
+
'''Семинар 2'''. Задачи на построение ядер. Задачи на прямую и двойственную формулировки метода опорных векторов. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem14-kernels.pdf Конспект]]
  
'''Семинар 15'''. Задачи на вывод шагов EM-алгоритма. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem15-em.pdf Конспект]]
+
'''Семинар 3'''. Задачи на EM-алгоритм. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem15-em.pdf Конспект]]
  
'''Семинар 16'''. Задачи на вывод шагов EM-алгоритма. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem15-em.pdf Конспект]]
+
'''Семинар 4'''. Основы вероятностного подхода в машинном обучении. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem16-bayes.pdf Конспект]]
  
'''Семинар 17'''. Байесовский подход. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem17-bayes.pdf Конспект]]
+
'''Семинар 5'''. Спектральная кластеризация. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem17-unsupervised.pdf Конспект]]
  
'''Семинар 18'''. Спектральная кластеризация. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem18-unsupervised.pdf Конспект]]
+
'''Семинар 6'''. Отбор признаков. Понижение размерности и PCA. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem18-features.pdf Конспект]] [[https://github.com/esokolov/ml-course-hse/blob/master/2020-fall/lecture-notes/lecture12-factorizations.pdf Конспект по PCA]]
  
'''Семинар 19'''. Матричные разложения, ALS и HALS. Факторизационные машины. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem19-recommendations.pdf Конспект]]
+
'''Семинар 7'''. Особенности метода k ближайших соседей. Метрики. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem19-knn.pdf Конспект]]
  
'''Семинар 20'''. Метод k ближайших соседей. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem20-knn.pdf Конспект]]
+
'''Семинар 8'''. Обучение метрик. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem20-knn.pdf Конспект]]
  
'''Семинар 21'''. Генерация и отбор признаков. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem21-features-part1.pdf Конспект]]
+
'''Семинар 9'''. Multi-label классификация. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem21-multilabel.pdf Конспект]]
  
'''Семинар 22'''. Интерпретация моделей. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem22-interpreting.pdf Конспект]]
+
'''Семинар 10'''. Попарные методы ранжирования. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem22-ranking.pdf Конспект]]
  
'''Семинар 23'''. Обучение попарных соотношений. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem23-ranking.pdf Конспект]]
+
'''Семинар 11'''. Uplift-моделирование.  
  
'''Семинар 24'''. Обобщённые линейные модели. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/seminars/sem24-glm.pdf Конспект]]
+
'''Семинар 12'''. Матричные разложения в рекомендательных системах. Factorization machines. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem24-recommendations.pdf Конспект]]
  
== Теоретические задания ==
+
'''Семинар 13'''. Интерпретация моделей. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem25-interpreting.pdf Конспект]]
  
'''Теоретическое домашнее задание 5''': ядровые методы [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-theory/homework-theory-05-kernels.pdf ссылка]]
+
'''Семинар 14'''. Differential privacy.
 +
 
 +
== Теоретические задания ==
  
'''Теоретическое домашнее задание 6''': EM-алгоритм [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-theory/homework-theory-06-em.pdf ссылка]]
+
'''Теоретическое домашнее задание 5''': ядровые методы [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-theory/homework-theory-05-kernels.pdf ссылка]]
  
'''Теоретическое домашнее задание 7''': одноклассовые методы, частичное обучение, рекомендательные системы [[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-theory/homework-theory-07.pdf ссылка]]
+
'''Теоретическое домашнее задание 6''': EM-алгоритм [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-theory/homework-theory-06-em.pdf ссылка]]
  
 
== Практические задания ==
 
== Практические задания ==
Строка 150: Строка 161:
 
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются, но есть исключение. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна — в этом случае за каждый день просрочки продолжает вычитаться по одному баллу (если не оговорено иное).
 
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются, но есть исключение. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна — в этом случае за каждый день просрочки продолжает вычитаться по одному баллу (если не оговорено иное).
  
'''Задание 8.''' Метод опорных векторов и аппроксимация ядер.
+
'''Задание 8.''' Метод опорных векторов и аппроксимация ядер
 
   
 
   
Мягкий дедлайн: 30.03.2020 02:59
+
Мягкий дедлайн: 21.02.2021 01:59.
  
Жесткий дедлайн: 03.04.2020 23:59
+
Жесткий дедлайн: 24.02.2021 01:59.
  
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-practice/homework-practice-08-random-features.ipynb Ноутбук с заданием]]
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-08-random-features.ipynb Ноутбук с заданием]]
  
'''Задание 9.''' EM-алгоритм.
+
'''Задание 9.''' ЕМ-алгоритм
 
   
 
   
Мягкий дедлайн: 30.04.2020 07:00
+
Мягкий дедлайн: 09.03.2021 01:59
  
Жесткий дедлайн: 03.05.2020 07:00
+
Жесткий дедлайн: 13.03.2021 01:59
  
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-practice/homework-practice-09-em/homework-practice-09-em.ipynb Ноутбук с заданием]]
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-09-em/homework-practice-09-em.ipynb Ноутбук с заданием]]
[[https://contest.yandex.ru/contest/17827/ Контест для сдачи решений]]
+
  
'''Задание 10.''' Рекомендательные системы.
+
'''Задание 10.''' Обучение без учителя
 
   
 
   
Мягкий дедлайн: 25.05.2020 23:59
+
Мягкий дедлайн: 28.03.2021 01:59
  
Жесткий дедлайн: 28.05.2020 23:59
+
Жёсткий дедлайн: 01.04.2021 01:59
  
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-practice/homework-practice-10-recommendations.ipynb Ноутбук с заданием]]
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-10-unsupervised.ipynb Ноутбук с заданием]]
  
'''Задание 11.''' Поиск ближайших соседей (бонусное задание).
+
'''Задание 11.''' Обучение метрик
 
   
 
   
Жесткий дедлайн: 12.06.2020 07:00
+
Мягкий дедлайн: 14.04.2021 00:59
  
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-practice/homework-practice-11-knn.ipynb Ноутбук с заданием]]
+
Жесткий дедлайн: 18.04.2021 00:59
  
'''Задание 12.''' Обобщённые линейные модели (бонусное задание).
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-11-metric-learning/homework-practice-11-metric-learning.ipynb Ноутбук с заданием]]
 +
 
 +
'''Задание 12.''' Несбалансированные задачи
 
   
 
   
Жесткий дедлайн: 09.06.2020 23:59
+
Мягкий дедлайн: 10.05.2021 00:59
  
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-spring/homeworks-practice/homework-practice-12-glm.ipynb Ноутбук с заданием]]
+
Жесткий дедлайн: 14.05.2021 00:59
  
== Проект ==
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-12-imbalanced.ipynb Ноутбук с заданием]]
  
Одной из форм контроля является проект. Результатом выполнения проекта должен быть отчёт, содержащий в себе:
+
'''Задание 13.''' Поиск ближайших соседей
* Описание задачи
+
* Описание методов
+
Жесткий дедлайн: 19.05.2021 05:59
* Описание данных, на которых проводились эксперименты
+
* Подробное описание экспериментов и результатов
+
* Анализ результатов и выводы
+
 
+
Не нужно писать формальный текст — будет здорово, если у вас получится интересная и доступная обзорная статья.
+
 
+
Темы проектов: https://docs.google.com/spreadsheets/d/1CR-uRp-USdjk-AeJD0Dm0rr99puA4oG4uMh6kNDk23k/edit?usp=sharing
+
 
+
Можно предлагать свои темы — их нужно вписать в ту же табличку. Такие темы нужно согласовать с лектором.
+
 
+
По умолчанию каждую тему может взять одна команда из 2-3 студентов. По согласованию с лектором одну тему может взять несколько команд.
+
  
Дедлайн сдачи отчёта и кода: 4 июня 23:59.
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-13-knn.ipynb Ноутбук с заданием]]
  
 
== Соревнования ==
 
== Соревнования ==
Строка 237: Строка 238:
 
== Коллоквиум ==
 
== Коллоквиум ==
  
* [https://docs.google.com/document/d/16yWpULTcMGxcEDQPwjTsZAWHDWMTsfUbBUWOKsbuPiE/edit?usp=sharing Вопросы]
+
Коллоквиум состоится 1 июня (10:00 - 12:30) и 5 июня (11:00 - 15:00). Дату можно будет выбрать (в рамках доступных слотов), формат сдачи (онлайн/оффлайн) тоже.
* [https://docs.google.com/document/d/1Nmmhli86_UbDDHhTWJMAYUYLiJWHoLm3-sRHb186bCM/edit?usp=sharing Теоретический минимум]
+
  
Коллоквиум пройдёт 16 мая в zoom. Понадобится камера.
+
На каждого студента отводится 20 минут. За это время он должен ответить на 3 вопроса из теоретического минимума и решить задачу. Каждый вопрос из теоретического минимума "стоит" 7/3 балла, задача — 3 балла. Время на подготовку не предусмотрено.
  
Схема опроса на коллоквиуме:
+
[https://docs.google.com/document/d/1P-IwYbO52d719-9-agZErow35WZdmFNwBhHQGH2Vky8/edit?usp=sharing Вопросы для подготовки]
# Разрешается принести с собой один лист А4, где от руки написано что угодно (его нужно будет показать преподавателю). Можно будет пользоваться этим листом в любом момент, кроме опроса по теоретическому минимуму.
+
# В начале студенту задаётся три вопроса из теоретического минимума. Отсутствие полного ответа на хотя бы один из них сразу же гарантирует нулевую оценку за коллоквиум. Если на все вопросы ответы полные и правильные, то студент получает 2 балла. Если при дальнейшем опросе студент демонстрирует ненулевые знания, то он получает ещё 2 балла за теоретический минимум.
+
# Далее студенту даётся вопрос из списка вопросов (первая ссылка выше). Ответ на него оценивается максимум в 4 балла.
+
# Далее студенту даётся ещё один вопрос из списка или задача на усмотрение преподавателя. Ответ оценивается максимум в 7 баллов (столько можно получить, если попросить дать и доп. вопрос, и задачу, и справиться с ними).
+
# Все баллы суммируются, больше 10 баллов получить нельзя. Избыток баллов уходит в бонусы.
+
  
 
== Экзамен ==
 
== Экзамен ==
  
Вопросы для подготовки: https://docs.google.com/document/d/13iV1XEM9jyosByTe1FsNCacUNKyILUrQ66VQwoGjAQM/edit?usp=sharing
+
Вопросы для подготовки к экзамену совпадают со списком вопросов к коллоквиуму.
 +
 
 +
Экзамен пройдёт дистанционно в письменном формате 21 июня. Продолжительность — 120 минут. В экзаменационном варианте будет 4 вопроса, из них два по теории, два в формате задач.
  
 
== Полезные материалы ==
 
== Полезные материалы ==
Строка 265: Строка 262:
 
* [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/2018_2019 | 2018/2019 учебный год]]

Текущая версия на 11:30, 26 июня 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-алгоритм в общем виде, его сходимость. [Конспект] [Запись лекции]

Лекция 4 (12 февраля). Поиск аномалий. Методы на основе восстановления плотности. Local Outlier Factor. [Конспект] [Запись лекции]

Лекция 5 (19 февраля). Поиск аномалий. Одноклассовый SVM. Isolation Forest. Методы кластеризации. DBSCAN. [Конспект по аномалиям] [Запись лекции]

Лекция 6 (26 февраля). Методы кластеризации. Иерархическая кластеризация. Графовые методы. Спектральная кластеризация. [Конспект] [Запись лекции]

Лекция 7 (5 марта). Внешние метрики качества кластеризации. Тематическое моделирование. [Конспект по тематическому моделированию] [Запись лекции]

Лекция 8 (12 марта). Частичное обучение. Self-training. Вероятностные методы. S3VM. Регуляризация на основе лапласиана графа. [Конспект] [Запись лекции]

Лекция 9 (19 марта). Метод k ближайших соседей. Расстояния на текстах. Быстрый поиск ближайших соседей. Locality-sensitive hashing. [Конспект] [Запись лекции]

Лекция 10 (26 марта). Быстрый поиск ближайших соседей. Locality-sensitive hashing. NSW и HNSW. [Запись лекции]

Лекция 11 (9 апреля). Задача ранжирования. Метрики качества ранжирования. Примеры факторов ранжирования. Поточечный, попарный и списочный подходы. [Конспект] [Запись лекции]

Лекция 12 (23 апреля). Рекомендательные системы. Типичная архитектура рекомендательной системы. Memory-based подход. Методы на основе матричных разложений. [Конспект] [Запись лекции]

Лекция 13 (30 апреля). Рекомендательные системы. Свойства моделей, основанных на матричных разложениях. Неявная информация и iALS. Контентные модели. [Конспект] [Запись лекции]

Лекция 14 (14 мая, гостевая лекция, Дмитрий Симаков). AutoML. [Слайды] [Запись лекции]

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

Лекция 16 (4 июня). Нейросетевые методы для табличных данных. [Запись лекции]

Семинары

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

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

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

Семинар 4. Основы вероятностного подхода в машинном обучении. [Конспект]

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

Семинар 6. Отбор признаков. Понижение размерности и PCA. [Конспект] [Конспект по PCA]

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

Семинар 8. Обучение метрик. [Конспект]

Семинар 9. Multi-label классификация. [Конспект]

Семинар 10. Попарные методы ранжирования. [Конспект]

Семинар 11. Uplift-моделирование.

Семинар 12. Матричные разложения в рекомендательных системах. Factorization machines. [Конспект]

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

Семинар 14. Differential privacy.

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

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

Теоретическое домашнее задание 6: 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

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

Задание 10. Обучение без учителя

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

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

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

Задание 11. Обучение метрик

Мягкий дедлайн: 14.04.2021 00:59

Жесткий дедлайн: 18.04.2021 00:59

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

Задание 12. Несбалансированные задачи

Мягкий дедлайн: 10.05.2021 00:59

Жесткий дедлайн: 14.05.2021 00:59

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

Задание 13. Поиск ближайших соседей

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

Коллоквиум

Коллоквиум состоится 1 июня (10:00 - 12:30) и 5 июня (11:00 - 15:00). Дату можно будет выбрать (в рамках доступных слотов), формат сдачи (онлайн/оффлайн) тоже.

На каждого студента отводится 20 минут. За это время он должен ответить на 3 вопроса из теоретического минимума и решить задачу. Каждый вопрос из теоретического минимума "стоит" 7/3 балла, задача — 3 балла. Время на подготовку не предусмотрено.

Вопросы для подготовки

Экзамен

Вопросы для подготовки к экзамену совпадают со списком вопросов к коллоквиуму.

Экзамен пройдёт дистанционно в письменном формате 21 июня. Продолжительность — 120 минут. В экзаменационном варианте будет 4 вопроса, из них два по теории, два в формате задач.

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

Книги

  • 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 учебный год