Как мы делаем новый учебник ШАДа по машинному обучению

Блог компании Яндекс Математика Машинное обучение Учебный процесс в IT Читальный зал
Привет! Это снова Стас Федотов, я руковожу Школой анализа данных и несколькими университетскими проектами Яндекса в Москве. Совсем недавно на YaC on Education мы запустили учебник по машинному обучению от ШАДа и открыли первые несколько глав. Я бы хотел рассказать, что нас к этому подтолкнуло и каких принципов мы придерживаемся в написании учебника.


Я очень люблю очные офлайн-лекции, когда ты погружён в атмосферу, сразу даёшь преподавателю обратную связь, можешь что-то спросить у соседа и так далее. Но в такие занятия надо уходить с головой на несколько часов и откладывать другие дела — даже в тех случаях, когда самостоятельно освоить тему удалось бы гораздо быстрее. Я неизбежно задумывался о том, как облегчить таким, как я, изучение data science.

Мы пробовали разные подходы к адаптации лекционных материалов ШАДа в онлайн-формат:


Записываем на видео все лекции ШАДа и выкладываем некоторые курсы в открытый доступ — буквально вчера на YouTube появились лекции Виктора Лемпицкого по глубинному обучению:


Смотреть


Конечно, делали и подход к производству онлайн-курсов для разных платформ.

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

Чувствовалось, что можно сделать лучше и создать источник, который обладал бы несколькими свойствами:


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

А из такого описания вполне явно проступают контуры учебника! Но мы долго не брались за него, потому что нам казалось, что будущее всё-таки за живым общением с преподавателем, а текстовый учебник — это что-то сухое. Но потом Лена Войта создала замечательный NLP Course | For You , и я увидел, что учебник тоже может быть живым и интерактивным. Помню, прочитав первую главу For You, я сказал себе: хочу, чтобы все курсы ШАДа были такими! Насчёт всех я, конечно, погорячился, но той же осенью стал искать единомышленников для создания учебника по ML.

А единомышленников было нужно немало. Машинное обучение как область разрослось, и один человек вряд ли может написать обо всём, особенно если речь про достаточно продвинутые разделы: теорию глубинного обучения, графовые сетки, обучение с подкреплением. Очень здорово, что выпускники, преподаватели и друзья ШАДа отзываются и помогают. У нас подобралась отличная команда, с нами даже такие ветераны ML-образования, как Виктор Кантор vkantor и Евгений Соколов.

Время от времени возникают споры по поводу структуры. Хочется сделать её максимально ясной, не смешивая разные сущности, чтобы читателю не надо было гадать, где искать, к примеру, логистическую регрессию (ответ: конечно, в линейных моделях). Но это иной раз непросто. Показательный пример — многоклассовая классификация. Выделять её в отдельную главу было бы странно: в ней нет таких теоретических концепций, которые важно понять для усвоения курса машинного обучения. Совсем не рассказывать про неё тоже неправильно: она встречается на практике слишком часто.

Поэтому мы решили декомпозировать эту тему на две части:


Метрики классификации, которые отлично легли в главу про измерение качества моделей.
Построение многоклассовой модели, которая нашла своё место в разделе про линейные модели.

Обучение без учителя тоже заставило нас задуматься над тем, как мы вообще привыкли воспринимать ML. Мы привыкли, что бывает обучение с учителем и без, но когда начинаешь перечислять задачи обучения без учителя, быстро приходит в голову кластеризация — а что дальше? Допустим, оценивание плотности (правда, зачем, но оставим пока этот вопрос). Очень важное место в современном ML занимает обучение представлений — но если отбросить матричные разложения, как, начиная с word2vec, обучаются представления? Решается синтетическая задача (предсказания контекста, поиска по ключам и так далее) — то есть обучение не то чтобы без учителя, просто разметка берётся из самих данных. Так что пора уже в первую очередь говорить про self-supervised, а про обучение без учителя — мелким шрифтом.

Конечно, то, что доступно сейчас — это лишь начало. Немало глав пока доступны только для студентов ШАДа и откроются в ближайшие несколько месяцев, другие только создаются, а про некоторые мы ещё даже не успели подумать. Машинное обучение меняется каждый год, и я понимаю, что задуманный нами учебник будет полезным, только если он будет постоянно обновляться, отражая эти перемены. Какие-то главы через пару лет предстоит переписывать с нуля. И в этом нам будет нужна и ваша помощь. Если у вас есть идеи, чего не хватает, или желание помочь людям осознать какую-то тему — пишите на shadmlhandbook@yandex.ru и присоединяйтесь к нашей команде.)
Теги:
Хабы: