24 лекции за 48 часов


Занимаясь машинным обучением в России, редкий человек избежал искушения обучиться базовым навыкам посредством знаменитого курса от Воронцова. Многие пытались использовать его как первый и единственный доступный материал и убегали в страхе, раздавленные сложностию уже первой лекции. Те из многих, кто имел достаточную математическую подготовку и небольшой практический опыт боготворили лекции как единственное верное учение и подход к подаче материала. Кто-то, имеющий большой практический опыт и некоторый опыт преподавания осуждал сугубую академичность изложения и отсутствие практических примеров (видимо, на scikit-learn). Но практически все, с кем я обсуждал прохождение этого курса, сходятся в том, что существует такое фундаментальное явление, как два семестра машобуча, мимо которых пройти мимо сложно и влияние на индустрию и методику преподавания оказано огромное.

Давайте поподробнее разберёмся в этом феномене и ответим на несколько возникающих перед каждым смотрящим сии лекции вопросами.

Первые два блина комом, а вот третий - колобком.

Об этом курсе заговорили в моем окружении на рубеже 2012-2013 годов в связи с ростом популярности ШАДа в узких кругах выпускников матфака ОмГУ/НГУ. Изначально звучала лишь название курса и “дикая сложность” оного, без фамилии создателя и изредка проскальзывало суждение, что наилучшая информация по ML может быть найдена на http://www.machinelearning.ru, вокруг которого и будет формироваться русское сообщество ученых и практиков машобуча.

Лекции в открытом доступе появились позднее и тогда же я предпринял первую попытку их поглядеть. К тому моменту, я уже обладал всеми необходимыми математическими знаниями для овладевания материала, но отпечаток университетской скамьи еще был свеж, а перспектива потратить десятки часов на формулы в Техе, не увеличивающие стоимость на рынке труда, меня совершенно не прельщала. Открытых материалов на русском языке в 2014 году было откровенно мало, посему я сжал волю в кулак, посмотрел две первых лекции и благополучно забросил.

Следующую попытку ознакомления с контентом я предпринял в 2016 году, когда был выпущен курс на Coursera “птенцов гнезда Воронцовского” и самого мэтра. В этом курсе была сделана попытка построить более практический курс, и в то же время дать “наш ответ Чемберлену” (мистеру Ыну с его невообразимыми примерами на Octave).

В итоге исходный курс был уменьшен втрое по времени (но не по сложности), к нему были добавлены практические задания на работу с фреймворками pandas, numpy, scikit-learn, добавлены квизы (довольно легкие). Я прошел половину этого курса и бросил его в недоумении. Уменьшенные втрое лекции стали несвязными, многие моменты были упущены, при этом лекторы не пытались упростить материал или построить новую, более простую систему изложения. Домашние работы были просто из другой вселенной и не слишком хорошо были сбалансированы по сложности.

Прошло еще три года, тонны видео утекли с тех пор в Лету памяти, и готовясь к выступлению на “почти научной” конференции Hydra (рассказывал о том как адаптировать классические ML алгоритмы к распределенной среде), я осознал, что нуждаюсь в четких формулировках и простом понятийном аппарате, чтобы за 5-7 минут дать постановки задач и перейти непосредственно к распределенным версиям алгоритмов.

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

Спустя два месяца и 48 часов, потраченных на просмотр видео на 1.5 скорости и чтения доп.материалов я почувствовал себя другим ML-человеком. Весь мой опыт, мои знания, практические кейсы как по нотам легли в систему и разверзлась “бездна звезд полна”. Сие меня так воодушевило, что сподвигло на написание данной простыни, а вас, я надеюсь на чтение ея, дабы синхронизовать свои и мои ощущения.

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

Давайте поподробнее разберёмся в этом феномене и ответим на несколько возникающих перед каждым смотрящим сии лекции вопросами.

Можно ли быть Дата Сатанистом без лекций Воронцова?

Молодые дата-сатанисты задаются вопросом, а можно ли, а вместно ли, а честно ли зваться дата-сатанистом, не растратив десятков вечеров на то, что не любо и пахнет задней партой в старинной лекционной аудитории. Мне приходилось сталкиваться с людьми, зачем-то вравшими, что курс они смотрели со словами: "да, тяжеловато, но всем надо поглядеть". Почему-то стыдно сказать, что не осилил и просто прошел мимо, сделав эдакий камин-аут в сфере ML.

Русское программирование черезвычайно токсично, маскулинно, а заквашенное на бывших олимпиадниках, миновавших аутсорс и упавших прямиком с ACM-ной сиськи в Yandex, токсично вдвойне. Читая комментарии к видео курса я смеялся и плакал многократно, так как я сам плоть от плоти этой среды (хоть и вовремя прозревший и теперь втройне возгордившийся сим фактом).

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

Живут же Дата-Сатанисты Запада, не вкусившие плода хардкора и матана, сочащегося из богоспасенных видео. Живут и зарабатывают и делают все более и более democratizing ML courses для того, чтобы народные массы, без налета эгалитарности, могли овладеть базовым искусством предсказания, сделав его частью своих приложений, заработав свои первые инвестиции.

Кишочки и доказательства оценок оставлены в Эльфии ученым и разработчикам библиотек машинного обучения. Да и я сам заработал свои первые k МРОТ-ов, применяя машобуч на проектах без глубокого знакомства с кишками алгоритмов и понимания того, как именно строится решающее дерево или для чего именно нужна регуляризация (О, Боги, я хотя бы знал такое слово, в отличие от своих иностранных коллег).

Подытожим: если вы планируете мигрировать на Запад, можно перебиться, если планируете работать в РФ и в русском коллективе, вас скорее всего съедят с потрохами, лучше потратить время на этот курс.

Как правильно смотреть эти лекции?

О, бандерлоги, слушайте сюда, я поделюсь с вами секретом. К 3 видео я пришел к идеальному рецепту просмотра. Опытным EM-путем я пришел к следующим принципам.

  1. Открытых пабликов по ML
  2. Никаких других открытых пабликов
  3. Видео должно быть скачано или закешено, а Интернет отрублен
  4. Презентация к курсу и ключевые слова должны быть заранее выгуглены
  5. Презентация к лекции должна быть просмотрена по диагонали заранее (минут 15)
  6. Надо пойти и вырубить роутер
  7. Ребенок должен быть дальше 1 км от меня
  8. Жена должна быть где-то в радиусе 1 м от ребенка
  9. За окном должна быть или жаркая неизбежность или холодная обреченность
  10. Рабочие вопросы должны быть решены с вечера
  11. Чашка кофе, орешки, медитативный шарик в руках - необходимые артефакты для удержания внимания
  12. Не надо делать перерыв и напротив, не надо смотреть 2 лекции за один присест
Слушайте, даже если у вас очень хорошо с концентрацией и вы недавно были студентом, то в целом 1 семестр Воронцова = 2 семестра хорошего матана, причем много придется дочитать дополнительно.

Обязательно пишите заметки, в которых отдельно отмечайте как озарения или новые моменты. Отмечайте и то, что вам показалось слабым или неинтересным. Потом, на основе заметок, вы сможете скорретировать свой Learning Path в сфере ML.


Что полезнее - курсы с Coursera, прикладные курсы от тех, кто уже прошел Воронцова или сам курс Воронцова?

Отмечу, что на Coursera много курсов и пара специализаций “птенцов гнезда Воронцовского”, которые объединяет общая любовь к сложным формулам и постановкам задач из ML, и одновременно облегченной практикой на знание scikit-learn, pandas и так далее.

В отличие от западного эталонного курса по ML, где есть немного математики, много поэтических примеров, немного кода на Python (часто без использования библиотек, ну максимум numpy), отечественные курсы на Coursera пытаются остаться “сложными” и в то же время угодить спонсору и заказчику - Его Величеству Бизнесу, который оплачивает банкет. Именно бизнес диктует необходимость использования с первой же минуты промышленных библиотек, вместо написания логистической регрессии с нуля или вращения тензоров своими руками.

Однако, я к этим курсам не отношусь негативно, напротив, в этой вилке между зубцами интереса к математике и попытке заработать денег поденным анализом данных находится практически каждый Дата Сатанист или человек, мечтающий им стать. Как следствие такой образовательный материал может помочь, сэкономить время, дать насладиться академической первоосновой, и получить минимальные практические навыки, чтобы закинуть их в резюме.

В 2016 я прошел курс ВШЭ, где лекции начитывает сам Воронцов и сделал половину домашних заданий, полгода спустя эти познания позволили дальше работать со Spark ML и понимать классику, заимплеменченную в этой библиотеке.

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

Проект МФТИ, несмотря на звездный состав создателей и их несомненно высокий уровень подготовки, был представлен в виде размазанного курса из пяти или шести частей, именуемого “специализацией”. Многие части этой специализации вялые и не цельные, полноценным образованием это назвать нельзя, домашки там пободрее, но при этом как-то теряется фокус на том, что именно мы учим и в итоге, учимся - как-то всему подряд.

Впрочем, начальные части специализации хорошо подойдут студентам 1-2 курса, внезапно осознавшим в себе “зов анализа данных”. Все-таки, это курсы хоть с какой-то практикой, в отличие от яндексовского плей-листа, где нет и не будет записей семинаров.

Если вы не собираетесь с понедельника собеседоваться на junior data science master, то моя рекомендация для - потратить несколько недель своей жизни и посадить этот курс себе в голову и двигаться дальше по кривой дороженьке изучения ML.

Роль MachineLearning.ru wiki (жива или при смерти?)

В эпоху создания этого курса активно велась работа над MachineLearning.ru. Это отдельный от Википедии сайт, на wiki-движке, который все годы контролировало небольшое количество людей, структурирующее его согласно своим представлениям о преподавании ML. Я впервые попал на этот сайт почти 10 лет назад и с тех пор неоднократно на него возвращался. По качеству и количеству материала о собственно ML, его уже давно обогнала англоязычная wiki в разделе ML, но в том, что касается информации о конференциях, публикациях, какой-то ML движухе, это было самой главной точкой доступа до появления слака ODS community, которое вообще является отдельным феноменом.

К примеру, главная страница Воронцовского курса была просмотрена более 700 000 раз.

Я рекомендую вам этот сайт с 1000 статей для пристального изучения академической мысли в России и также поиска дополнительных материалов по Воронцовскому и смежным курсам.


Самый полезный материал, найденный там, я размещу в таблицах в следующих разделах.

Необходимый математический background для понимания материала

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

Общими знаниями являются как можно более глубокие знания дисциплин уровня типичного матфака типичного госвуза

  1. Методы оптимизации (дискретные и непрерывные)
  2. Основы математического анализа
  3. Основы функционального анализа
  4. Основы теории вероятностей и математической статистики
Читайте отзывы на материалы первого семестра по ссылке.

Комментарии

Популярные сообщения из этого блога

Cassandra, мой первый кластер и первая NoSQL

Big Data on your local machine : How to install Hadoop 2.6.0

10 причин раздражаться при использовании Apache Spark

Big Data on your local machine : Installing Hadoop Cluster (Multi Node regime)

MyBatis и Hibernate на одном проекте. Как подружить?