Машинное обучение 2/2023 2024 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Практические задания: Добавлено 9-е задание)
м (Ekononova переименовал страницу Машинное обучение 2 в Машинное обучение 2/2023 2024: Прошлогодний курс)
 
(не показана одна промежуточная версия 9 участников)
Строка 9: Строка 9:
 
'''Лектор:''' [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
 
'''Лектор:''' [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
  
Лекции проходят по пятницам, 11:10 - 12:30, в [https://zoom.us/j/97122303621?pwd=aytscC9BY0lBbUo1ZU1QSm05Vzdodz09 zoom].
+
Лекции проходят по пятницам, 11:10 - 12:30, в [https://us06web.zoom.us/j/87309155639?pwd=SUlEQWNaRE1VdVBaeW5Zd0RVekxDdz09 zoom].
  
  
Строка 18: Строка 18:
 
=== Полезные ссылки ===
 
=== Полезные ссылки ===
  
[https://www.hse.ru/edu/courses/339494475 Карточка курса и программа]
+
[https://www.hse.ru/edu/courses/646485502 Карточка курса и программа]
  
 
[https://github.com/esokolov/ml-course-hse Репозиторий с материалами на GitHub]
 
[https://github.com/esokolov/ml-course-hse Репозиторий с материалами на GitHub]
Строка 24: Строка 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/hse_cs_ml_2
+
Канал в telegram для объявлений: https://t.me/+wqFgR0wndUszNGIy
  
Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/+NRpKJ09prtRlMTli
+
Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/+uALHcjfF6mw1NDJi
  
Ссылка на курс в Anytask: https://anytask.org/course/905
+
Ссылка на курс в Anytask:  
  
[https://docs.google.com/spreadsheets/d/1_qMPqgcJZEJaiXZpMbjKM0trw_aGkkulrZG7Lq7kjU8/edit?usp=sharing Таблица с оценками]
+
[https://docs.google.com/spreadsheets/d/1SXEMnqS2aKEeZsAEKPk6Lxxmxm1DHONWmofufe0jvmg/edit?usp=sharing Таблица с оценками]
  
Плейлист с записями занятий: https://www.youtube.com/playlist?list=PLEwK9wdS5g0o_HWWtNffNsBPpNmeuSDYV
+
Плейлист с записями занятий: https://youtube.com/playlist?list=PLEwK9wdS5g0rILWZFPEnw0a1VZgo2e5ax&si=Ctg7z6mZII8_TBeA
  
 
Оставить отзыв на курс: [https://goo.gl/forms/5CddG0gc75VZvqi52 форма]
 
Оставить отзыв на курс: [https://goo.gl/forms/5CddG0gc75VZvqi52 форма]
Строка 45: Строка 45:
 
! Группа                                    !! Преподаватель                                                                                                                              !! Учебный ассистент
 
! Группа                                    !! Преподаватель                                                                                                                              !! Учебный ассистент
 
|-
 
|-
| 191 (МОП)                              || [https://www.hse.ru/org/persons/208533329 Шабалин Александр Михайлович]                 || [https://t.me/ainmukh Мухамбетова Айнур]
+
| 211 (МОП)                              || [Морозов Никита Витальевич] || [https://t.me/zhan2pac Жуматаев Жанту], [https://t.me/pauchara0 Петров Олег]
 
|-
 
|-
| 192 (МОП)                              || [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]                                             || [https://t.me/Birshert Биршерт Леша] [https://t.me/madn_boi Морозов Никита]
+
| 212 (МОП)                              || [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич] || [https://t.me/kemmeritocracy Кеммер Анастасия], [https://t.me/neyudin Юдин Николай], [https://t.me/tgritsaev Грицаев Тимофей]
 
|-
 
|-
| 193 (МОП)                              || [https://www.hse.ru/org/persons/208522505 Садртдинов Ильдус Рустемович]                     ||  [https://t.me/horror_in_black Коган Саша] [https://t.me/sol_arch Андреев Никита]
+
| 213 (МОП)                              || [Баранов Михаил] ||  [https://t.me/kvdmitrieva Дмитриева Екатерина], [https://t.me/aiziks Максутова Айза]
 
|-
 
|-
| Курс по выбору для ПМИ || Каюмов Эмиль Марселевич              || [https://t.me/tamogashev_kv Тамогашев Кирилл] [https://t.me/sol_arch Андреев Никита]
+
| Курс по выбору (онлайн) || [https://www.hse.ru/org/persons/218009880 Ульянкин Филипп] [https://t.me/ppilif @ppilif] || [https://t.me/dogfew Перепелкин Владимир], [https://t.me/mdeil007 Иванов Данил], [https://t.me/lneyronl Трофименко Илья]
 
+
 
|-
 
|-
| Межампус                              ||  [https://www.hse.ru/org/persons/218009880 Ульянкин Филипп] [https://t.me/ppilif @ppilif] || [https://t.me/cherepasska Баранов Миша] [https://t.me/tamogashev_kv Тамогашев Кирилл]
+
| Курс по выбору (очно) ||  [https://t.me/fdrose Абрахам Максим] || [https://t.me/TheDullestPageOnTelegram Петренко Максим], [https://t.me/Dangerio7 Аксенов Антон]
 
|-
 
|-
 
|}
 
|}
Строка 84: Строка 83:
 
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опоздании на одну секунду. Сдавайте заранее.
 
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опоздании на одну секунду. Сдавайте заранее.
  
Два раза студент может сдать домашнее задание после мягкого дедлайна (но до жёсткого) без штрафов. Также разрешается в конце курса написать одну проверочную, пропущенную без уважительной причины.
+
Два раза студент может сдать домашнее задание после мягкого дедлайна (но до жёсткого) без штрафов.
  
 
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
 
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
Строка 94: Строка 93:
 
Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!
 
Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!
  
'''Лекция 1''' (14 января). Двойственные представления для линейной регрессии и SVM. Ядра. Теорема Мерсера. Способы построения ядер. Полиномиальные и гауссовы ядра. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-spring/lecture-notes/lecture13-kernels.pdf Конспект]] [[https://youtu.be/EHolYsWUXNE Запись лекции]]
+
'''Лекция 1''' (12 января). Ядровые методы [[https://github.com/esokolov/ml-course-hse/blob/master/2021-spring/lecture-notes/lecture13-kernels.pdf Конспект]] [[https://youtu.be/LD1HFBO0MIY?si=i8vlvruXyBOSWYoy Запись лекции]]
 
+
'''Лекция 2''' (21 января). Двойственная задача SVM. Типы объектов в SVM. Kernel trick. Аппроксимации ядер. Метод случайных признаков Фурье. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-spring/lecture-notes/lecture14-kernels.pdf Конспект]] [[https://youtu.be/rK-yypS9Soo Запись лекции]]
+
  
 
== Семинары ==
 
== Семинары ==
 
'''Семинар 1'''. Задачи условной оптимизации и теорема Куна-Таккера. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-spring/seminars/sem13-kkt.pdf Конспект]]
 
 
'''Семинар 2'''. Задачи на построение ядер. Задачи на прямую и двойственную формулировки метода опорных векторов. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-spring/seminars/sem14-kernels.pdf Конспект]]
 
  
 
== Теоретические задания ==
 
== Теоретические задания ==
  
[https://github.com/esokolov/ml-course-hse/tree/master/2021-spring/homeworks-theory Теоретические ДЗ] не проверяются, но задачи из них могут войти в проверочные работы на семинарах.
+
[https://github.com/esokolov/ml-course-hse/tree/master/2022-spring/homeworks-theory Теоретические ДЗ] не проверяются, но задачи из них могут войти в проверочные работы на семинарах.
 
+
'''Задание 1.''' Ядра и условия ККТ. [https://github.com/esokolov/ml-course-hse/blob/master/2021-spring/homeworks-theory/homework-theory-05-kernels.pdf Условие]
+
 
+
'''Задание 2.''' ЕМ-алгоритм. [https://github.com/esokolov/ml-course-hse/blob/master/2021-spring/homeworks-theory/homework-theory-06-em.pdf Условие]
+
  
 
== Практические задания ==
 
== Практические задания ==
  
'''Задание 8.''' Метод опорных векторов и аппроксимация ядер
+
== Проект ==
+
Мягкий дедлайн: 14.02.2022 23:59.
+
  
Жесткий дедлайн: 17.02.2022 23:59.
+
Одной из форм контроля является проект. Результатом выполнения проекта должен быть отчёт, содержащий в себе:
 +
* Описание задачи
 +
* Описание методов
 +
* Описание данных, на которых проводились эксперименты
 +
* Подробное описание экспериментов и результатов
 +
* Анализ результатов и выводы
  
[[https://github.com/esokolov/ml-course-hse/blob/master/2021-spring/homeworks-practice/homework-practice-08-random-features.ipynb Ноутбук с заданием]]
+
Не нужно писать формальный текст — будет здорово, если у вас получится интересная и доступная обзорная статья.
  
'''Задание 9.''' EM-алгоритм
+
За проект можно получить до 5 бонусных баллов. Если получится совсем потрясающе — то и до 10 баллов.
+
Мягкий дедлайн: 10.03.2022 23:59.  
+
  
Жесткий дедлайн: 13.03.2022 23:59.
+
Темы проектов: '''будут объявлены позже'''
  
[[https://github.com/esokolov/ml-course-hse/blob/master/2021-spring/homeworks-practice/homework-practice-09-em/homework-practice-09-em.ipynb Ноутбук с заданием]] / [[https://contest.yandex.ru/contest/35552 контест]]
+
Можно предлагать свои темы — их нужно вписать в ту же табличку. Такие темы нужно согласовать с лектором.
  
== Соревнования ==
+
По умолчанию каждую тему может взять одна команда из 2-3 студентов. По согласованию с лектором одну тему может взять несколько команд.
  
===Правила участия и оценивания===
+
Дедлайн сдачи отчёта и кода: 13 июня 23:59.
В соревновании по анализу данных вам предлагается по имеющимся данным решить некоторую задачу, оптимизируя указанную метрику, и отправить ответы для заданного тестового множества. Максимальное количество посылок в сутки ограничено (как правило, разрешается сделать 2 посылки), ближе к концу соревнования вам будем необходимо выбрать 2 посылки, которые вы считаете лучшими. Тестовые данные делятся на публичные и приватные в некотором соотношении, на основе которых строятся публичный и приватный лидерборды соответственно, при этом публичный лидерборд доступен в течение всего соревнования, а приватный строится после его окончания для выбранных вами посылок.
+
  
В лидербордах каждого из соревнований присутствуют несколько базовых решений (бейзлайнов), каждое из которых соответствует определённой оценке. Например, для получения оценки не ниже 8 баллов необходимо, чтобы ваше решение на '''приватном''' лидерборде оказалось лучше соответствующего бейзлайна. Далее для студента, преодолевшего бейзлайн на N_1 баллов, но не преодолевшего бейзлайн на N_2 балла, итоговая оценка за соревнование рассчитывается по равномерной сетке среди всех таких студентов в зависимости от места в приватном лидерборде среди них; если быть точными, то по следующей формуле:
+
== Коллоквиум ==
  
N_2 - (N_2 - N_1) * i  / M,
+
На каждого студента отводится 20 минут. За это время он должен ответить на 3 вопроса из теоретического минимума и решить задачу. Каждый вопрос из теоретического минимума "стоит" 7/3 балла, задача — 3 балла. Время на подготовку не предусмотрено.
  
где M — количество студентов (из всех студентов, изучающих курс), преодолевших бейзлайн на N_1 баллов, но не преодолевших бейзлайн на N_2 балла;
+
[https://docs.google.com/document/d/1lpJwKyjJdFFy0dgfq3_JlK395wjLeC8lBGicCRzqwE8/edit Вопросы для подготовки]
  
i — место (начиная с 1) студента в приватном лидерборде среди всех таких студентов.
+
== Экзамен ==
  
Единственное исключение из формулы — студенты, преодолевшие самый сильный бейзлайн, получают прибавку 1/M к своей оценке.
+
[https://docs.google.com/document/d/1f163jwJRC8sP5XFwd0BGUn2wNUTY3R8xtamEVEjqNfc/edit?usp=sharing Вопросы для подготовки]
 
+
Чтобы вас не пропустили при проверке решений соревнования, '''необходимо''' использовать следующий формат для имени команды (вкладка Team):
+
 
+
«Имя Фамилия номер_группы»
+
 
+
В течение 3 суток после окончания соревнования в соответствующее задание на anytask необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. При оформлении кода предполагайте, что данные лежат рядом с ним в папке data, а в результате выполнения кода ответы должны быть записаны в файл solution-N-Username.csv, где N — номер соревнования, Username — ваша фамилия. У нас должна быть возможность запустить код и получить те же ответы, что и в вашей посылке, — в частности, это означает, что:
+
 
+
1. Если вы отправляете файл *.py, мы будем запускать его при помощи команды python *.py в вышеуказанном предположении о местонахождении данных.
+
 
+
2. Если вы отправляете ноутбук *.ipynb, мы последовательно запустим все ячейки ноутбука и будем ожидать в результате его работы формирование файла с ответами.
+
 
+
3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами.
+
 
+
В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-5 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях '''запрещено'''. Под внешними данными понимаются размеченные данные, где разметка имеет прямое отношение к решаемой задаче. Грубо говоря, сборник текстов с википедии не считается внешними данными.
+
 
+
== Коллоквиум ==
+
 
+
== Экзамен ==
+
  
 
== Полезные материалы ==
 
== Полезные материалы ==
Строка 180: Строка 151:
  
 
== Страницы предыдущих лет ==
 
== Страницы предыдущих лет ==
 +
 +
[[Машинное_обучение_2/2022_2023 | 2022/2023 учебный год]]
 +
 +
[[Машинное_обучение_2/2021_2022 | 2021/2022 учебный год]]
  
 
[[Машинное_обучение_2/2020_2021 | 2020/2021 учебный год]]
 
[[Машинное_обучение_2/2020_2021 | 2020/2021 учебный год]]

Текущая версия на 15:59, 11 сентября 2024

О курсе

borderless

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

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

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

Лекции проходят по пятницам, 11:10 - 12:30, в zoom.




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

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

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

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

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

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

Ссылка на курс в Anytask:

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

Плейлист с записями занятий: https://youtube.com/playlist?list=PLEwK9wdS5g0rILWZFPEnw0a1VZgo2e5ax&si=Ctg7z6mZII8_TBeA

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

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

Семинары

Группа Преподаватель Учебный ассистент
211 (МОП) [Морозов Никита Витальевич] Жуматаев Жанту, Петров Олег
212 (МОП) Соколов Евгений Андреевич Кеммер Анастасия, Юдин Николай, Грицаев Тимофей
213 (МОП) [Баранов Михаил] Дмитриева Екатерина, Максутова Айза
Курс по выбору (онлайн) Ульянкин Филипп @ppilif Перепелкин Владимир, Иванов Данил, Трофименко Илья
Курс по выбору (очно) Абрахам Максим Петренко Максим, Аксенов Антон

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

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

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

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

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

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

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

К — оценка за коллоквиум

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

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

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

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

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

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

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

Лекции

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

Лекция 1 (12 января). Ядровые методы [Конспект] [Запись лекции]

Семинары

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

Теоретические ДЗ не проверяются, но задачи из них могут войти в проверочные работы на семинарах.

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

Проект

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

  • Описание задачи
  • Описание методов
  • Описание данных, на которых проводились эксперименты
  • Подробное описание экспериментов и результатов
  • Анализ результатов и выводы

Не нужно писать формальный текст — будет здорово, если у вас получится интересная и доступная обзорная статья.

За проект можно получить до 5 бонусных баллов. Если получится совсем потрясающе — то и до 10 баллов.

Темы проектов: будут объявлены позже

Можно предлагать свои темы — их нужно вписать в ту же табличку. Такие темы нужно согласовать с лектором.

По умолчанию каждую тему может взять одна команда из 2-3 студентов. По согласованию с лектором одну тему может взять несколько команд.

Дедлайн сдачи отчёта и кода: 13 июня 23:59.

Коллоквиум

На каждого студента отводится 20 минут. За это время он должен ответить на 3 вопроса из теоретического минимума и решить задачу. Каждый вопрос из теоретического минимума "стоит" 7/3 балла, задача — 3 балла. Время на подготовку не предусмотрено.

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

Экзамен

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

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

Книги

  • 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.

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

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

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

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

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

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

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

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

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