Машинное обучение 2 — различия между версиями
Esokolov (обсуждение | вклад) (→Практические задания) |
Esokolov (обсуждение | вклад) (→Лекции) |
||
(не показано 68 промежуточных версии 7 участников) | |||
Строка 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/ | + | [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/ | + | Канал в telegram для объявлений: https://t.me/hse_cs_ml_2 |
+ | |||
+ | Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/joinchat/E8grJC7Gn4nLuEv2 | ||
− | + | Ссылка на курс в 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" | ||
|- | |- | ||
− | ! Группа !! Преподаватель | + | ! Группа !! Преподаватель !! Учебный ассистент |
|- | |- | ||
− | | | + | | 181 (МОП) || [https://www.hse.ru/org/persons/165212870 Зиннурова Эльвира Альбертовна] || [https://t.me/Bitchert Лёша Биршерт], [https://t.me/poly_nomial Илья Анищенко] |
|- | |- | ||
− | | | + | | 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. | + | Итог = Округление(0.4 * ДЗ + 0.2 * К + 0.1 * ПР + 0.3 * Э) |
ПР — средняя оценка за самостоятельные работы на семинарах | ПР — средняя оценка за самостоятельные работы на семинарах | ||
ДЗ — средняя оценка за практические домашние работы на Python | ДЗ — средняя оценка за практические домашние работы на Python | ||
− | |||
− | |||
К — оценка за коллоквиум | К — оценка за коллоквиум | ||
Строка 86: | Строка 89: | ||
Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются! | Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются! | ||
− | '''Лекция | + | '''Лекция 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 Запись лекции]] |
− | '''Лекция | + | '''Лекция 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 Запись лекции]] |
− | '''Лекция | + | '''Лекция 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 Запись лекции]] |
− | '''Лекция | + | '''Лекция 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 Запись лекции]] |
− | '''Лекция | + | '''Лекция 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 Запись лекции]] |
− | '''Лекция | + | '''Лекция 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 Запись лекции]] |
− | '''Лекция | + | '''Лекция 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 Запись лекции]] |
− | '''Лекция | + | '''Лекция 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 Запись лекции]] |
+ | |||
+ | '''Лекция 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 Запись лекции]] | ||
+ | |||
+ | '''Лекция 10''' (26 марта). Быстрый поиск ближайших соседей. Locality-sensitive hashing. NSW и HNSW. [[https://www.youtube.com/watch?v=Kepw20luLmw Запись лекции]] | ||
+ | |||
+ | '''Лекция 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 Запись лекции]] | ||
+ | |||
+ | '''Лекция 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 Запись лекции]] | ||
+ | |||
+ | '''Лекция 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 Запись лекции]] | ||
== Семинары == | == Семинары == | ||
− | '''Семинар | + | '''Семинар 1'''. Задачи условной оптимизации и теорема Куна-Таккера. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem13-kkt.pdf Конспект]] |
− | '''Семинар | + | '''Семинар 2'''. Задачи на построение ядер. Задачи на прямую и двойственную формулировки метода опорных векторов. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem14-kernels.pdf Конспект]] |
− | '''Семинар | + | '''Семинар 3'''. Задачи на EM-алгоритм. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem15-em.pdf Конспект]] |
+ | |||
+ | '''Семинар 4'''. Основы вероятностного подхода в машинном обучении. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem16-bayes.pdf Конспект]] | ||
+ | |||
+ | '''Семинар 5'''. Спектральная кластеризация. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem17-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]] | ||
+ | |||
+ | '''Семинар 7'''. Особенности метода k ближайших соседей. Метрики. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem19-knn.pdf Конспект]] | ||
+ | |||
+ | '''Семинар 8'''. Обучение метрик. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem20-knn.pdf Конспект]] | ||
+ | |||
+ | '''Семинар 9'''. Multi-label классификация. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem21-multilabel.pdf Конспект]] | ||
+ | |||
+ | '''Семинар 10'''. Попарные методы ранжирования. [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/seminars/sem22-ranking.pdf Конспект]] | ||
+ | |||
+ | '''Семинар 11'''. Uplift-моделирование. | ||
+ | |||
+ | '''Семинар 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 Конспект]] | ||
+ | |||
+ | '''Семинар 14'''. Differential privacy. | ||
== Теоретические задания == | == Теоретические задания == | ||
− | '''Теоретическое домашнее задание 5''': ядровые методы [[https://github.com/esokolov/ml-course-hse/blob/master/ | + | '''Теоретическое домашнее задание 5''': ядровые методы [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-theory/homework-theory-05-kernels.pdf ссылка]] |
− | '''Теоретическое домашнее задание 6''': EM-алгоритм [[https://github.com/esokolov/ml-course-hse/blob/master/ | + | '''Теоретическое домашнее задание 6''': EM-алгоритм [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-theory/homework-theory-06-em.pdf ссылка]] |
== Практические задания == | == Практические задания == | ||
Строка 120: | Строка 161: | ||
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются, но есть исключение. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна — в этом случае за каждый день просрочки продолжает вычитаться по одному баллу (если не оговорено иное). | За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются, но есть исключение. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна — в этом случае за каждый день просрочки продолжает вычитаться по одному баллу (если не оговорено иное). | ||
− | '''Задание 8.''' Метод опорных векторов и аппроксимация ядер | + | '''Задание 8.''' Метод опорных векторов и аппроксимация ядер |
− | Мягкий дедлайн: | + | Мягкий дедлайн: 21.02.2021 01:59. |
− | Жесткий дедлайн: 03.04.2020 | + | Жесткий дедлайн: 24.02.2021 01:59. |
+ | |||
+ | [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-08-random-features.ipynb Ноутбук с заданием]] | ||
+ | |||
+ | '''Задание 9.''' ЕМ-алгоритм | ||
+ | |||
+ | Мягкий дедлайн: 09.03.2021 01:59 | ||
+ | |||
+ | Жесткий дедлайн: 13.03.2021 01:59 | ||
+ | |||
+ | [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-09-em/homework-practice-09-em.ipynb Ноутбук с заданием]] | ||
+ | |||
+ | '''Задание 10.''' Обучение без учителя | ||
+ | |||
+ | Мягкий дедлайн: 28.03.2021 01:59 | ||
+ | |||
+ | Жёсткий дедлайн: 01.04.2021 01:59 | ||
+ | |||
+ | [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-10-unsupervised.ipynb Ноутбук с заданием]] | ||
+ | |||
+ | '''Задание 11.''' Обучение метрик | ||
+ | |||
+ | Мягкий дедлайн: 14.04.2021 00:59 | ||
+ | |||
+ | Жесткий дедлайн: 18.04.2021 00:59 | ||
+ | |||
+ | [[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.''' Несбалансированные задачи | ||
+ | |||
+ | Мягкий дедлайн: 10.05.2021 00:59 | ||
+ | |||
+ | Жесткий дедлайн: 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://github.com/esokolov/ml-course-hse/blob/master/ | + | [[https://github.com/esokolov/ml-course-hse/blob/master/2020-spring/homeworks-practice/homework-practice-13-knn.ipynb Ноутбук с заданием]] |
== Соревнования == | == Соревнования == | ||
Строка 159: | Строка 238: | ||
== Коллоквиум == | == Коллоквиум == | ||
− | + | Коллоквиум состоится 1 июня (10:00 - 12:30) и 5 июня (11:00 - 15:00). Дату можно будет выбрать (в рамках доступных слотов), формат сдачи (онлайн/оффлайн) тоже. | |
− | + | ||
− | + | На каждого студента отводится 20 минут. За это время он должен ответить на 3 вопроса из теоретического минимума и решить задачу. Каждый вопрос из теоретического минимума "стоит" 7/3 балла, задача — 3 балла. Время на подготовку не предусмотрено. | |
− | + | ||
− | + | [https://docs.google.com/document/d/1P-IwYbO52d719-9-agZErow35WZdmFNwBhHQGH2Vky8/edit?usp=sharing Вопросы для подготовки] | |
− | + | ||
− | + | ||
− | + | ||
== Экзамен == | == Экзамен == | ||
− | Вопросы | + | Вопросы для подготовки к экзамену совпадают со списком вопросов к коллоквиуму. |
+ | |||
+ | Экзамен пройдёт дистанционно в письменном формате 21 июня. Продолжительность — 120 минут. В экзаменационном варианте будет 4 вопроса, из них два по теории, два в формате задач. | ||
== Полезные материалы == | == Полезные материалы == | ||
Строка 185: | Строка 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
Содержание
О курсе
Курс читается для студентов 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.
Курсы по машинному обучению и анализу данных
- Курс по машинному обучению К.В. Воронцова
- Видеозаписи лекций курса Школы Анализа Данных, К.В. Воронцов
- Coursera: Машинное обучение от статистики до нейросетей (специализация)
- Coursera: Машинное обучение и анализ данных (специализация)
- Coursera: Введение в машинное обучение, К.В. Воронцов