Машинное обучение 2/2023 2024
Содержание
О курсе
Курс читается для студентов 3-го курса ПМИ ФКН ВШЭ в 3-4 модулях.
Проводится с 2016 года.
Лектор: Соколов Евгений Андреевич
Лекции проходят по пятницам, 10:30 - 11:50, ауд. 317.
Полезные ссылки
Репозиторий с материалами на GitHub
Почта для сдачи домашних заданий: hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+151@gmail.com)
Канал в telegram для объявлений: https://telegram.me/hse_cs_ml_2_course_2017
Чат в telegram для обсуждений: https://t.me/joinchat/A5rlQEQ7r16nvyHbyXtjNA
Оставить отзыв на курс: форма
Вопросы по курсу можно задавать на почту курса, а также в телеграм лектору (esokolov@) или семинаристу. Вопросы по материалам лекций/семинаров и по заданиям лучше всего оформлять в виде Issue в github-репозитории курса.
Семинары
Группа | Преподаватель | Расписание |
---|---|---|
151 (МОП) | Зиннурова Эльвира Альбертовна | пятница, 12:10 - 13:30, ауд. ?? |
152 (МОП) | Неклюдов Кирилл Олегович | пятница, 12:10 - 13:30, ауд. ?? |
Консультации
Консультации с преподавателями и учебными ассистентами по курсу проводятся по предварительной договорённости.
Правила выставления оценок
В курсе предусмотрено несколько форм контроля знания:
- Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций и выполнение теоретических домашних заданий
- Теоретические домашние задания
- Практические домашние работы на Python
- Соревнования по анализу данных
- Письменный коллоквиум в конце 3-го модуля
- Письменный экзамен
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
Oитоговая = 0.7 * Oнакопленная + 0.3 * Оэкз
Оценка за работу в семестре вычисляется по формуле
Oнакопленная = 0.2 * Oсамостоятельные + 0.2 * Oтеоретические дз + 0.4 * Опрактические дз + 0.2 * Оконтрольная
Оценка за самостоятельную работу вычисляется как среднее по всем самостоятельным, оценка за домашнюю работу — как среднее по всем практическим заданиям и соревнованиям.
Правила сдачи заданий
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются.
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён (при этом получить дополнительные баллы за призовые места на конкурсе можно только при участии в общий срок). Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
Лекции
Лекция 14 (12 января). Двойственные представления для линейной регрессии и SVM. Ядра. Теорема Мерсера. Способы построения ядер. Полиномиальные и гауссовы ядра. [Конспект]
Лекция 15 (19 января). Условная оптимизация, двойственные задачи, теорема Куна-Таккера. Двойственная задача SVM. Типы объектов в SVM. Kernel trick. Связь SVM с RBF-ядром и kNN. [Конспект]
Лекция 16 (26 января). RKHS и теорема о представлении. Аппроксимация ядер, метод случайных признаков Фурье. Ядровой метод главных компонент. [Конспект]
Лекция 17 (2 февраля). Смеси распределений. Модели со скрытыми переменными. KL-дивергения. EM-алгоритм в общем виде, его сходимость. [Конспект]
Лекция 18 (9 февраля). Работа с несбалансированными выборками. Одноклассовые методы и обнаружение аномалий: статистический и метрический подходы. Одноклассовый SVM. Isolation forest. [Конспект]
Лекция 19 (16 февраля). Рекомендательные системы. Коллаборативные модели: memory-based, матричные разложения, факторизационные машины. Контентные модели. Метрики качества. Архитектура рекомендательных систем. [Конспект]
Лекция 22 (13 апреля). Метрические методы. Метод k ближайших соседей для классификации и регрессии, его оптимальность. Измерение расстояний между текстами с помощью их внутренних представлений. Приближенные методы поиска соседей и locality sensitive hashing. Композиции хэш-функций, LSH forest. Обучение метрик, методы NCA и LMNN. [Конспект]
Лекция 23 (27 апреля). Обучение ранжированию. Метрики качества ранжирования. Примеры факторов в ранжировании: BM25 и PageRank. Поточечный, попарный и списочный подходы. [Конспект]
Семинары
Семинар 12 (12 января). Ядра, спрямляющие пространства. [Конспект]
Семинар 13 (19 января). Решение задач условной оптимизации. Условия Куна-Таккера. [Конспект]
Семинар 14 (26 января). Двойственная задача метода опорных векторов. All-subsequences kernel. [Конспект]
Семинар 15 (2 февраля). Линейный дискриминант Фишера. [Конспект]
Семинар 16 (9 февраля). EM-алгоритм. [Конспект]
Семинар 17 (2 марта). EM-алгоритм для метода главных компонент. [Конспект]
Семинар 18 (16 марта). Параметрические методы восстановления плотности распределения. Байесовские классификаторы. [Конспект]
Семинар 19 (23 марта). Спектральная кластеризация. [Конспект]
Теоретические задания
Все дедлайны жёсткие. До дедлайна необходимо сдать фотографии/сканы решений либо решение, набранное в TeX. Если у проверяющих возникнут вопросы к решениям, то студента могут пригласить на защиту домашней работы. За полностью правильную работу, набранную в TeX, выставляется 1 бонусный балл (если работа набирает меньше баллов, то и бонусы пропорционально уменьшаются).
Оценки: https://docs.google.com/spreadsheets/d/1yLf9KChFzLrJgY_Dj0cydaz4ivFnPXw4Gi93mExWm-I/edit?usp=sharing (если в графе def стоит 0 — студент вызван на защиту).
ДЗ №9
[Условие]
Дата выдачи: 14.02.2018
Срок отправки решений: 01.03.2018 23:59MSK
Защита: 06.04.2018 12:10 (ауд. 505)
ДЗ №10
[Условие]
Дата выдачи: 11.04.2018
Срок отправки решений: 29.04.2018 23:59MSK
Практические задания
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются.
Задание 1. Графы вычислений и обратное распространение ошибки
Дата выдачи: 10.03.2018
Мягкий дедлайн: 28.03.2018 23:59MSK
Жесткий дедлайн: 04.04.2018 23:59MSK
Задание 2. Частичное обучение и поиск аномалий
Дата выдачи: 07.05.2018
Мягкий дедлайн: 23.05.2018 23:59MSK
Жесткий дедлайн: 30.05.2018 23:59MSK
Соревнования
Правила участия и оценивания
В соревновании по анализу данных вам предлагается по имеющимся данным решить некоторую задачу, оптимизируя указанную метрику, и отправить ответы для заданного тестового множества. Максимальное количество посылок в сутки ограничено (как правило, разрешается сделать 2 посылки), ближе к концу соревнования вам будем необходимо выбрать 2 посылки, которые вы считаете лучшими. Тестовые данные делятся на публичные и приватные в некотором соотношении, на основе которых строятся публичный и приватный лидерборды соответственно, при этом публичный лидерборд доступен в течение всего соревнования, а приватный строится после его окончания для выбранных вами посылок.
В лидербордах каждого из соревнований присутствуют 3 базовых решения (бенчмарка), для получения оценки не ниже 4, 6 и 8 баллов соответственно, необходимо, чтобы ваше решение на приватном лидерборде оказалось лучше соответствующего бенчмарка. Далее для студента, преодолевшего бенчмарк на N баллов, но не преодолевшего бенчмарк на N+2 балла, итоговая оценка за соревнование рассчитывается по равномерной сетке среди всех таких студентов в зависимости от места в приватном лидерборде среди них; если быть точными, то по следующей формуле:
N + 2 - 2 * (i - [N = 8]) / M,
где M — количество студентов (из всех студентов, изучающих курс), преодолевших бенчмарк на N баллов, но не преодолевших бенчмарк на N+2 балла;
i — место (начиная с 1) студента в приватном лидерборде среди всех таких студентов.
В течение 3 суток после окончания соревнования в соответствующее задание на anytask необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. При оформлении кода предполагайте, что данные лежат рядом с ним в папке data, а в результате выполнения кода ответы должны быть записаны в файл solution-N-Username.csv, где N — номер соревнования, Username — ваша фамилия. У нас должна быть возможность запустить код и получить те же ответы, что и в вашей посылке, — в частности, это означает, что:
1. Если вы отправляете файл *.py, мы будем запускать его при помощи команды python *.py в вышеуказанном предположении о местонахождении данных.
2. Если вы отправляете ноутбук *.ipynb, мы последовательно запустим все ячейки ноутбука и будем ожидать в результате его работы формирование файла с ответами.
3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами.
В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-5 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде.
Соревнование 1: Система рекомендаций для интернет-магазина
Дата выдачи: 21.03.2018
Срок окончания соревнования: 21.04.2018 23:59MSK
Срок отправки кода: 24.04.2018 23:59MSK
Ссылка на участие в соревновании
Соревнование 2: Cryptocurrency trading
Дата выдачи: 06.05.2018
Срок окончания соревнования: 03.06.2018 23:59MSK
Срок отправки кода: 06.06.2018 23:59MSK
Ссылка на участие в соревновании
Контрольная работа
Экзамен
Полезные материалы
Книги
- 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: Введение в машинное обучение, К.В. Воронцов