Машинное обучение 1/2023 2024

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

О курсе

borderless

Курс читается для студентов 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.

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