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

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

О курсе

borderless

Курс читается для студентов 3-го курса ПМИ ФКН ВШЭ в 1-2 модулях.

Проводится с 2016 года.

Лектор: Соколов Евгений Андреевич

Лекции проходят по пятницам, 11:10 - 12:30, в zoom (https://us06web.zoom.us/j/89165579433?pwd=Y1poSzZjZzN0TEFFTjdLQkxqRUxDZz09).




Полезные ссылки

Карточка курса и программа

Репозиторий с материалами на GitHub

Видеозаписи лекций 18/19 года

Почта для сдачи домашних заданий (на самом деле задания сдаются в AnyTask, но если он не работает, то присылайте на почту): hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+171@gmail.com)

Канал в telegram для объявлений: https://t.me/+oI2qh44oQj82MDEy

Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/+3BLmxzv63VM0OGMy

Ссылка на курс в Anytask: https://anytask.org/course/970

Таблица с оценками

Оставить отзыв на курс: форма

Вопросы по курсу можно задавать в телеграм лектору (esokolov@) или семинаристу. Вопросы по материалам лекций/семинаров и по заданиям лучше всего задавать на форуме.

Семинары

Группа Преподаватель
201 (МОП) Шабалин Александр Михайлович
202 (МОП) Соколов Евгений Андреевич
203 (МОП) Биршерт Алексей Дмитриевич
204 (ТИ) Морозов Никита Витальевич
205 (РС) Ульянкин Филипп Валерьевич
206 (РС) Еленик Константин Ильич
207 (АПР) Миша Баранов
208 (АДИС) Аким Цвигун
209 (МИ) Сусла Диана Михайловна
2010 (ПР) Щербинин Артем Андреевич
ФЭН Зехов Матвей Сергеевич

Ассистенты

Группа Ассистент
201 (МОП) Артем Присяжнюк, Александр Плахин
202 (МОП) Олег Петров, Максим Абрахам
203 (МОП) Никита Киселев, Сергей Герасимов
204 (ТИ) Юлия Василевская
205 (РС) Семен Иванов, Сергей Пилипенко
206 (РС) Никита Андреев, Анастасия Безрукова
207 (АПР) Алексей Панков
208 (АДИС) Анна Степочкина, Александр Орлов
209 (МИ) Арина Косовская
2010 (ПР) Сергей Пилипенко
ФЭН Жанту Жуматаев, Антон Макаров

Правила выставления оценок

В курсе предусмотрено несколько форм контроля знания:

  • Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций и семинаров
  • Практические домашние работы на Python
  • Письменная контрольная работа
  • Письменный экзамен

Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:

Итог = Округление(0.15 * ПР + 0.4 * ДЗ + 0.15 * КР + 0.3 * Э)

ПР — средняя оценка за самостоятельные работы на семинарах

ДЗ — средняя оценка за практические домашние работы на Python

КР — оценка за контрольную работу

Э — оценка за экзамен

Округление арифметическое.

Правила сдачи заданий

За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опоздании на одну секунду. Сдавайте заранее.

Два раза студент может сдать домашнее задание после мягкого дедлайна (но до жёсткого) без штрафов.

При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.

При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.

Лекции

Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!

Записи с доски можно найти [здесь]


Лекция 1 (2 сентября). Введение в машинное обучение. Основные термины, постановки задач и примеры применения. [Конспект] [Запись лекции]

Лекция 2 (9 сентября). Линейная регрессия, функции потерь в регрессии. [Конспект] [Запись лекции]

Лекция 3 (16 сентября). Обобщающая способность, градиентные методы обучения. [Конспект] [Запись лекции]

Лекция 4 (23 сентября). Градиентные методы, регуляризация. [Конспект] [Запись лекции]

Лекция 5 (1 октября). Регуляризация, линейная классификация. [Конспект] [Запись лекции]

Лекция 6 (7 октября). Метрики качества классификации, логистическая регрессия. [Конспект] [Запись лекции]

Лекция 7 (14 октября). Логистическая регрессия, метод опорных векторов. [Конспект] [Запись лекции]

Лекция 8 (22 октября). Многоклассовая классификация, решающие деревья. [Конспект] [Запись лекции]

Лекция 9 (6 ноября). Решающие деревья, разложение ошибки на смещение и разброс. [Конспект] [Запись лекции]

Лекция 10 (14 ноября). Бэггинг, случайные леса. [Конспект] [Запись лекции]

Лекция 11 (22 ноября). Градиентный бустинг. [Конспект] [Запись лекции]

Лекция 12 (24 ноября). Градиентный бустинг. [Конспект] [Запись лекции]

Лекция 13 (13 декабря). Кластеризация. [Конспект] [Запись лекции]

Лекция 14 (16 декабря). Кластеризация и визуализация. [Конспект] [Запись лекции]

Семинары

Семинар 1. pandas. [Ноутбук]

Семинар 2. sklearn и линейная регрессия. [Ноутбук]

Семинар 3. Матрично-векторное диффернцирование. [Конспект]

Семинар 4. Работа с данными и признаками. [Ноутбук]

Семинар 5. Метрики классификации. [Конспект]

Семинар 6. Калибровка вероятностей. [Ноутбук][Конспект]

Семинар 7. Решающие деревья. [Ноутбук][Конспект]

Семинар 8. Разложение ошибки на смещение и разброс. [Конспект]

Семинар 9. Градиентный бустинг. [Конспект]

Семинар 10. Виды градиентного бустинга: XGB, LightGBM, CatBoost. [Конспект]

Семинар 11. Кластеризация. [Ноутбук]

Семинар 12. Методы понижения размерности: PCE, tSNE. [Конспект][Ноутбук]

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

Задание 1. Pandas и распределение студентов ПМИ по элективам.

Мягкий дедлайн: 22.09.2022 23:59 MSK.

Жесткий дедлайн: 29.09.2022 23:59 MSK.

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

Также вы можете скачать ноутбук с заданием (если у вас установлен Wget) командой wget <ссылка на ноутбук> (скопируйте ссылку) или из Google Colab:

[Open In Colab]

Задание 2. Exploratory Data Analysis и линейная регрессия (садитесь заранее плиз).

Дата выдачи: 25.09.2022

Мягкий дедлайн: 23:59MSK 10.10.2022

Жесткий дедлайн: 23:59MSK 18.10.2022

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

[Open In Colab]

Задание 3. Градиентный спуск своими руками.

Дата выдачи: 12.10.2022

Мягкий дедлайн: 23:59MSK 01.11.2022

Жесткий дедлайн: 23:59MSK 08.11.2022

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

Задание 4. Линейная классификация, калибровка, категориальные признаки и отбор признаков.

Дата выдачи: 04.11.2022

Мягкий дедлайн: 23:59MSK 16.11.2022

Жесткий дедлайн: 23:59MSK 23.11.2022

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

Задание 5. Решающие деревья.

Дата выдачи: 18.11.2022

Мягкий дедлайн: 23:59MSK 30.11.2022

Жесткий дедлайн: 23:59MSK 06.12.2022

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

Задание 6. Разложение ошибки на смещение и разброс.

Дата выдачи: 01.12.2022

Мягкий дедлайн: 23:59MSK 11.12.2022

Жесткий дедлайн: 23:59MSK 15.12.2022

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

Задание 7. Бустинговое.

Дата выдачи: 13.12.2022

Жесткий дедлайн: 23:59MSK 20.12.2022

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

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

Теоретическое ДЗ 1. Линейные модели. [Задания]

Теоретическое ДЗ 2. Матрично-векторное дифференцирование и градиентный спуск. [Задания]

Теоретическое ДЗ 3. Логистическая регрессия и метрики классификации. [Часть 1][Часть 2]

Теоретическое ДЗ 4. Разложение ошибки на смещение и разброс. [Задания]

Соревнования

Правила участия и оценивания

В соревновании по анализу данных вам предлагается по имеющимся данным решить некоторую задачу, оптимизируя указанную метрику, и отправить ответы для заданного тестового множества. Максимальное количество посылок в сутки ограничено (как правило, разрешается сделать 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 в качестве оценки за соревнование. Студенты, попавшие в топ-3 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования сдадут в anytask отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях запрещено. Под внешними данными понимаются размеченные данные, где разметка имеет прямое отношение к решаемой задаче. Грубо говоря, сборник текстов с википедии не считается внешними данными.

В некоторых соревнованиях данные взяты из завершившегося соревнования на Kaggle. Категорически запрещено использовать данные из оригинального соревнования для восстановления целевой переменной на тестовой выборке.

Соревнование 1

Задача: классификация отзывов

Это соревнование на бонусные баллы, оно не является обязательным.

Ссылка для участия: https://www.kaggle.com/t/eb20383504ce4d85ba27c5b12e7767ec

Дедлайн: 10.12.2022 17:00MSK

В задании всего один бейзлайн, ненулевые баллы получают решения, преодолевшие его на приватном лидерборде. Все решения выше этого бейзлайна оцениваются по равномерной шкале от 0 до 5.

Важно: в соревновании запрещено использовать глубинное обучение (как свои архитектуры, так и результаты предобученных моделей вроде w2v, fasttext, bert ит.д.).

Бонусы за соревнования

За успешное участие в соревнованиях по анализу данных могут быть выставлены бонусные баллы, которые можно прибавить к оценке за любое практическое или теоретическое домашнее задание, а также за самостоятельную работу. Под успешным участием понимается попадание в топ-10% мест; если соревнование особо сложное и крупное, может рассматриваться и попадание в топ-20% мест. Конкретное число баллов определяется преподавателями и зависит от сложности соревнования и занятого места. За одно соревнование можно получить не более 5 баллов. Для получения оценки необходимо предоставить краткий отчёт о решении задачи.

Контрольная работа

Контрольная работа состоится 2 декабря на лекции. Продолжительность — 80 минут.

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

Нулевой вариант

Нулевой вариант с майнора ИАД (попроще, но всё равно полезно прорешать)

Экзамен

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

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

Книги

  • Учебник по машинному обучению от ШАД
  • 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.

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

Страницы предыдущих лет

2021/2022 учебный год

2020/2021 учебный год

2019/2020 учебный год

2018/2019 учебный год

2017/2018 учебный год

2016/2017 учебный год