Машинное обучение 1/2023 2024
Содержание
О курсе
Курс читается для студентов 3-го курса ПМИ ФКН ВШЭ в 1-2 модулях.
Проводится с 2016 года.
Лектор: Соколов Евгений Андреевич
Лекции проходят по вторникам, 10:30 - 11:50, ауд. 317.
Полезные ссылки
Репозиторий с материалами на GitHub
Почта для сдачи домашних заданий: hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+141@gmail.com)
Канал в telegram для объявлений: https://telegram.me/hse_cs_ml_course
Оставить отзыв на курс: форма
Вопросы по курсу можно задавать на почту курса, а также в телеграм лектору (esokolov@) или семинаристу. Вопросы по материалам лекций/семинаров и по заданиям лучше всего оформлять в виде Issue в github-репозитории курса.
Семинары
Группа | Преподаватель | Учебный ассистент | Страница | Расписание |
---|---|---|---|---|
141 (МОП) | Зиннурова Эльвира Альбертовна | Козловская Наталия | вторник, 12:10 - 13:30, ауд. 513 | |
142 (МОП) | Неклюдов Кирилл Олегович | Егоров Евгений | вторник, 12:10 - 13:30, ауд. 503 | |
143 (АПР) | Яшков Даниил Дмитриевич | Потапенко Анна | вторник, 12:10 - 13:30, ауд. 505 | |
144 (АДИС) | Чиркова Надежда Александровна | Сафин Александр | семинары | вторник, 13:40 - 15:00, ауд. 503 |
145 (РС) | Умнов Алексей Витальевич | Грачев Артем | семинары | пятница, 12:10 - 13:30, ауд. 501 |
Консультации
Консультации с преподавателями и учебными ассистентами (если иное не оговорено на странице семинаров конкретной группы) по курсу проводятся по предварительной договорённости ввиду невостребованности регулярных консультаций.
Правила выставления оценок
В курсе предусмотрено несколько форм контроля знания:
- Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций и выполнение теоретических домашних заданий
- Практические домашние работы на Python
- Соревнования по анализу данных
- Устный коллоквиум в конце 1-го модуля
- Устный экзамен
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
Oитоговая = 0.7 * Oнакопленная + 0.3 * Оэкз
Оценка за работу в семестре вычисляется по формуле
Oнакопленная = 0.2 * Oсамостоятельные + 0.6 * Одз + 0.2 * Околлоквиум
Оценка за самостоятельную работу вычисляется как среднее по всем самостоятельным, оценка за домашнюю работу — как среднее по всем практическим заданиям и соревнованиям.
Также за каждое практическое задание и соревнование можно получить дополнительные баллы, которые влияют на выставление оценки за курс автоматом. Необходимым условием для получения автомата является накопленная оценка, равная 8 или выше.
Правила сдачи заданий
Дедлайны по всем домашним заданиям являются жёсткими, то есть после срока работа не принимаются.
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён (при этом получить дополнительные баллы за призовые места на конкурсе можно только при участии в общий срок). Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
Лекции
Лекция 1 (6 сентября). Введение в машинное обучение. Основные термины, постановки задач и примеры применения. [Конспект]
Лекция 2 (13 сентября). Линейная регрессия. Метрики качества регрессии. Градиентный спуск и способы оценивания градиента. Переобучение и регуляризация. [Конспект]
Лекция 3 (20 сентября). Переобучение и регуляризация. Разреженные линейные модели. Квантильная регрессия. Подготовка признаков. [Конспект]
Лекция 4 (27 сентября). Линейная классификация. Отступ и верхние оценки на пороговую функцию потерь. Метрики качества классификации. [Конспект]
Лекция 5 (4 октября). Линейная классификация. Логистическая регрессия и оценки вероятности классов. Метод опорных векторов. [Конспект]
Лекция 6 (11 октября). Многоклассовая классификация, сведение к бинарным задачам. Многоклассовая логистическая регрессия. Классификация с пересекающимися классами. Метрики качества многоклассовой классификации. Категориальные признаки: хэширование и счётчики. [Конспект]
Лекция 7 (18 октября). Решающие деревья. Жадный алгоритм построения. Выбор лучшего разбиения с помощью критерия информативности. Критерии информативности для регрессии и классификации. Учёт пропусков в деревьях. Решающие деревья и категориальные признаки. [Конспект]
Лекция 8 (1 ноября). Бутстрап и бэггинг. Разложение ошибки на смещение и разброс (bias-variance decomposition). Случайный лес. Вычисление расстояний с помощью лесов. [Конспект]
Лекция 9 (8 ноября). Градиентный бустинг. Регуляризация. Особенности бустинга над деревьями. Взвешивание объектов в градиентном бустинге. [Конспект]
Лекция 10 (15 ноября). Оптимизация второго порядка в градиентном бустинге. Регуляризация деревьев. XGBoost. Стекинг. [Конспект]
Лекция 11 (22 ноября). Графы вычислений, их обучение и метод обратного распространения ошибки. Полносвязные, свёрточные и рекуррентные слои. Возможности аппроксимации. Transfer learning. Глубинное обучение. [Конспект]
Лекция 12 (29 ноября). Обучение без учителя. Кластеризация: метрики качества, K-Means, иерархический и графовый подходы. Визуализация, t-SNE. Обучение представлений. word2vec. [Конспект]
Лекция 13 (20 декабря). Ядровые методы. Теорема Мерсера и способы построения ядер. Полиномиальные и гауссовские ядра. Метод главных компонент. [Конспект]
Семинары
Семинар 1. Библиотеки для анализа данных: numpy, pandas, matplotlib. [Notebook]
Семинар 2. Векторное дифференцирование. Линейная регрессия, аналитическое и численное решение. Scikit-learn. [Notebook] [Домашнее задание]
Семинар 3. Подготовка признаков (масштабирование, категориальные признаки, нелинейные признаки, заполнение пропусков). Выбросы и устойчивые к ним модели. Квантильная регрессия. Vowpal Wabbit. [Notebook] [Домашнее задание]
Семинар 4. Линейная классификация. Обучение линейных классификаторов в scikit-learn. Метрики качества классификации. Особенности кросс-валидации, стратификация. [Notebook] [Домашнее задание]
Семинар 5. Линейная классификация. Построение ROC-кривых. Явная формула для AUC-ROC. Интерпретации AUC-ROC. Функции потерь, корректно оценивающие вероятности классов. Метод опорных векторов и его гиперпараметры. [Конспект] [Notebook] [Домашнее задание]
Семинар 6. Разреженные матрицы и их форматы. Работа с текстами, их предобработка. Векторизация. Классификация текстов. [Notebook]
Семинар 7. Критерии информативности и их свойства. Неустойчивость деревьев. Подбор гиперпараметров. Краткое введение в композиции деревьев. Калибровка вероятностей. [Notebook] [Домашнее задание]
Семинар 8. Разложение ошибки на смещение и разброс для линейных моделей. Бэггинг. Композиции с простым голосованием. [Конспект] [Домашнее задание]
Семинар 9. Градиентный бустинг. Примеры использования. [Конспект] [Домашнее задание]
Семинар 10. Градиентный бустинг над деревьями. Особенности решающих деревьев и композиций над ними. XGBoost. [Notebook] [Домашнее задание]
Семинар 11. Метод обратного распространения ошибки. Полносвязные слои. Операция свёртки, примеры фильтров. Свёрточные слои. VGG19 и TensorFlow. [Notebook] [Домашнее задание]
Семинар 12. Визуализация данных. [Notebook] [Домашнее задание]
Семинар 13. Методы понижения размерности. Метод главных компонент. Ядра. [Конспект] [Notebook] [Домашнее задание]
Практические задания
Задание 1. Numpy, pandas, scikit-learn и градиентный спуск.
Дата выдачи: 16.09.2016
Дедлайн: 30.09.2016 23:59MSK
Задание 2. Линейная классификация, категориальные и текстовые данные.
Дата выдачи: 11.10.2016
Дедлайн: 24.10.2016 23:59MSK
Задание 3. Разложение ошибки на смещение и разброс, решающие деревья и случайные леса.
Дата выдачи: 14.11.2016
Дедлайн: 28.11.2016 05:59MSK
Задание 4. Обучение без учителя.
Дата выдачи: 06.12.2016
Дедлайн: 18.12.2016 05:59MSK (продлён до 18.12.2016 23:59MSK)
Соревнования
Правила участия в соревнованиях зависят от специализации:
1. Для студентов специализации МОП участие обязательное, оценка учитывается в накопленной наряду с остальными домашними заданиями.
2. Для студентов других специализаций участие является опциональным. Баллы, заработанные за соревнование, можно добавить к баллам за самостоятельную работу или за практическое домашнее задание (при этом сумма не должна превышать 10 баллов).
В течение недели после окончания соревнования на почту курса необходимо прислать:
- краткий отчёт с описанием решения (достаточно нескольких предложений с описанием использованных признаков и методов);
- код, с помощью которого можно получить ответы, отправленные в качестве решения на Kaggle.
Также студентам, занявшим в рамках пределах группы первые три места, необходимо выступить на семинаре с рассказом о своём решении.
Оценка за соревнование в случае преодоления всех бейзлайнов вычисляется по формуле
10 - 9 * (i - 1) / (n - 1),
где i — номер студента в таблице результатов среди своих одногруппников, n — количество студентов в группе. В противном случае студент получает за соревнование 0 баллов.
Также за первое, второе и третье место в пределах группы студент получет 3, 2 или 1 дополнительный балл соответственно. За лучшие места в общем рейтинге также могут быть выставлены дополнительные баллы. Напоминаем, что дополнительные баллы не влияют на накопленную оценку, однако влияют на возможность получения оценки автоматом по курсу.
Если решения всех участников окажутся тривиальными или участников будет слишком мало, то преподаватели имеют право снизить максимальную оценку или сделать шкалу более разреженной.
Студент, набравший менее 6 баллов (но при этом преодолевший бейзлайны), имеет право написать подробный отчёт по итогам соревнования и повысить свою оценку до 6 баллов (при выполнении всех требований к отчёту).
Регистрируясь на соревнование, выбирайте осмысленное имя. Рекомендованный формат: Иванов Иван (ПМИ ФКН ВШЭ, группа 141).
Соревнование 1: Оценка вероятности победы в матче Dota 2
Дата выдачи: 09.10.2016
Дедлайн: 06.11.2016 (на самом деле 07.11.2016 03:00 MSK)
Соревнование на Kaggle InClass: https://inclass.kaggle.com/c/hse-dota2-win-prediction
Ссылка для участия: https://kaggle.com/join/cshse161
Ограничение: можно использовать только линейные модели для построения предсказаний
Альтернативное соревнование: Sberbank Data Science Contest
Соревнование: https://sdsj.ru/contest.html
Дедлайн: 06.11.2016, 23:59 MSK
Если вам неинтересно участвовать в учебных контестах, то в качестве альтернативы можно заняться соревнованием от Сбербанка. Никаких ограничений на методы и подходы нет, главное — решить задачу как можно лучше.
Правила оценивания такие же, как и в учебных соревнованиях. Если решения всех участников окажутся тривиальными или участников будет слишком мало, то преподаватели имеют право снизить максимальную оценку или сделать шкалу более разреженной. Данное соревнование можно засчитать вместо любого из учебных. За высокие места в соревновании могут быть выданы очень большие бонусы!
Коллоквиум
Дата: 12.11.2016
Коллоквиум устный. Каждому студенту задаётся несколько вопросов из теоретического минимума (за незнание ответа на любой из них выставляется оценка 0), несколько вопросов из основной части, а также даются задачи по темам семинаров и домашних заданий.
Общее начало в 15:00, сбор в аудитории 509. Группам рекомендуется подходить по следующему расписанию:
Время начала | Группы |
---|---|
15:00 | 143, 144 |
16:30 | 141, 142 |
17:30-18:00 | 145 |
Экзамен
Дата: 26.12.2016
Место: ауд. 509
Во время ответа студент сдаёт три части: теоретический минимум, теорию и задачи. За теоретический минимум можно набрать до 2 баллов, за теорию до 4 баллов, за задачи — до 4 баллов. За отсутствие ответа на хотя бы один вопрос из теоретического минимума студент получает 0 баллов за экзамен. Если у студента не менее 4 дополнительных баллов, то он освобождается от задач и получает баллы за них автоматически (при условии успешной сдачи теоретического минимума).
Время начала | Группы |
---|---|
10:30 | 145 |
12:30 | 142 |
14:30 | 141 |
16:00 | 143, 144 |
Полезные материалы
Книги
- 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.