ods курс машинное обучение
Материалы открытого курса OpenDataScience и Mail.Ru Group по машинному обучению и новый запуск
Недавно OpenDataScience и Mail.Ru Group провели открытый курс машинного обучения. В прошлом анонсе много сказано о курсе. В этой статье мы поделимся материалами курса, а также объявим новый запуск.
UPD: теперь курс — на английском языке под брендом mlcourse.ai со статьями на Medium, а материалами — на Kaggle (Dataset) и на GitHub.
Кому не терпится: новый запуск курса — 1 февраля, регистрация не нужна, но чтоб мы вас запомнили и отдельно пригласили, заполните форму. Курс состоит из серии статей на Хабре (Первичный анализ данных с Pandas — первая из них), дополняющих их лекций на YouTube-канале, воспроизводимых материалов (Jupyter notebooks в github-репозитории курса), домашних заданий, соревнований Kaggle Inclass, тьюториалов и индивидуальных проектов по анализу данных. Главные новости будут в группе ВКонтакте, а жизнь во время курса будет теплиться в Slack OpenDataScience (вступить) в канале #mlcourse_ai.
План статьи
Чем курс отличается от других
1. Не для новичков
Часто вам будут говорить, что от вас ничего не требуется, через пару месяцев вы станете экспертом анализа данных. Я все еще помню фразу Andrew Ng из его базового курса «Machine Learning»: «вы не обязаны знать, что такое производная, и сейчас вы разберетесь, как работают алгоритмы оптимизации в машинном обучении». Или «вы уже почти что эксперт анализа данных» и т.д. При всем безмерном уважении к профессору — это жесткий маркетинг и желтуха. Вы не разберетесь в оптимизации без знания производных, основ матана и линейной алгебры! Скорее всего вы не станете даже Middle Data Scientist, пройдя пару курсов (включая наш). Легко не будет, и больше половины из вас отвалится примерно на 3-4 неделе. Если вы wannabe, но не готовы с головой погрузиться в математику и программирование, видеть красоту машинного обучения в формулах и добиваться результатов, печатая десятки и сотни строк кода — вам не сюда. Но надеемся, вам все же сюда.
В связи с вышесказанным мы указываем порог вхождения — знание высшей математики на базовом (но не плохом) уровне и владение основами Python. Как подготовиться, если этого у вас пока нет, подробно описано в группе ВКонтакте и тут под спойлером, чуть ниже. В принципе можно пройти курс и без математики, но тогда см. следующую картинку. Конечно, насколько дата саентисту нужно знать математику — это холивар, но мы тут на стороне Андрея Карпатого, Yes you should understand backprop. Ну и вообще без математики в Data Science — это почти как сортировать пузырьком: задачу, может, и решишь, но можно лучше, быстрее и умнее. Ну и без математики, конечно, не добраться до state-of-the-art, а за ним следить очень увлекательно.
Математика
Python
2. Теория vs. Практика Теория и Практика
Курсов по машинному обучению полно, есть действительно классные (как специализация «Машинное обучение и анализ данных»), но многие сваливаются в одну из крайностей: либо слишком много теории (PhD guy), либо, наоборот, практика без понимания основ (data monkey).
Мы ищем оптимальное соотношение: у нас много теории в статьях на Хабре (показательна 4-я статья про линейные модели), мы пытаемся ее преподнести максимально понятно, на лекциях излагаем еще более популярно. Но и практики море — домашние задания, 4 соревнования Kaggle, проекты… и это еще не все.
3. Живое общение
Чего не хватает в большинстве курсов — так это живого общения. Новичкам порой нужен всего один короткий совет, чтобы сдвинуться с места и сэкономить часы, а то и десятки часов. Форумы Coursera обычно к какому-то моменту вымирают. Уникальность нашего курса — активное общение и атмосфера взаимоподдержки. В Slack OpenDataScience при прохождении курса помогут с любым вопросом, чат живет и процветает, возникает свой юмор, кто-то кого-то троллит… Ну а главное, что авторы домашних заданий и статей — там же в чате — всегда готовы помочь.
4. Kaggle в действии
Из паблика ВКонтакте «Мемы про машинное обучение для взрослых мужиков».
Соревнования Kaggle — отличный способ быстро прокачаться в практике анализ данных. Обычно в них начинают участвовать после прохождения базового курса машинного обучения (как правило, курса Andrew Ng, автор, безусловно, харизматичен и прекрасно рассказывает, но курс уже сильно устарел). У нас в течение курса будет предложено поучаствовать аж в 4 соревнованиях, 2 из них — часть домашнего задания, надо просто добиться определенного результата от модели, а 2 других — уже полноценные соревнования, где надо покреативить (придумать признаки, выбрать модели) и обогнать своих товарищей.
5. Бесплатно
Ну тоже немаловажный фактор, чего уж там. Сейчас на волне распространения машинного обучения вы встретите немало курсов, предлагающих обучить вас за весьма кругленькую компенсацию. А тут все бесплатно и, без ложной скромности, на очень достойном уровне.
Материалы курса
Здесь мы вкратце опишем 10 тем курса, чему они посвящены, почему без них не может обойтись курс базового машинного обучения, и что нового мы внесли.
Тема 1. Первичный анализ данных с Pandas. Статья на Хабре
Хочется сразу начать с машинного обучения, увидеть математику в действии. Но 70-80 % времени работы над реальным проектом — это возня с данными, и тут Pandas очень хорош, я его использую в работе практически каждый день. В статье описываются основные методы Pandas для первичного анализа данных. Затем мы анализируем набор данных по оттоку клиентов телеком-оператора и пытаемся «прогнозировать» отток без всякого обучения, просто опираясь на здравый смысл. Недооценивать такой подход ни в коем случае нельзя.
Тема 2. Визуальный анализ данных c Python. Статья на Хабре
Роль визуального анализ данных сложно переоценить — так создаются новые признаки, ищутся закономерности и инсайты в данных. К.В. Воронцов приводит пример, как именно благодаря визуализации догадались, что при бустинге классы продолжают «раздвигаться» по мере добавления деревьев, и потом уже этот факт был доказан теоретически. В лекции мы рассмотрим основные типы картинок, которые обычно строят для анализа признаков. Также обсудим то, как вообще подглядеть в многомерное пространство — c помощью алгоритма t-SNE, который порой помогает рисовать вот такие елочные игрушки.
Тема 3. Классификация, деревья решений и метод ближайших соседей.
Статья на Хабре
Тут мы начнем говорить про машинное обучение и про два простых подхода к решению задачи классификации. Опять же, в реальном проекте надо начинать с самых простых подходов, и именно деревья решений и метод ближайших соседей (а также линейные модели, следующая тема) стоит попробовать в первую очередь после эвристик. Затронем важный вопрос оценки качества моделей и кросс-валидацию. Подробно обсудим плюсы и минусы деревьев и метода ближайших соседей. Статья длинная, но в особенности деревья решений заслуживают внимания — именно на их основе выстроены случайный лес и бустинг — алгоритмы, которые вы наверное будете больше всего использовать на практике.
Тема 4. Линейные модели классификации и регрессии.
Статья на Хабре
Эта статья уже будет размером с небольшую брошюру и недаром: линейные модели — самый широко используемый на практике подход к прогнозированию. Эта статья — как наш курс в миниатюре: много теории, много практики. Мы обсудим, каковы теоретические предпосылки метода наименьших квадратов и логистической регрессии, а также в чем плюсы практического применения линейных моделей. Отметим при этом, что излишнего теоретизирования не будет, подход к линейным моделям в машинном обучении отличается от статистического и эконометрического. На практике мы применим логистическую регрессию уже ко вполне реальной задаче идентификации пользователя по последовательности посещенных сайтов. После четвертого домашнего задания отсеется много народу, но если вы его все-таки сделаете, то будете иметь уже очень неплохое представление о том, какие алгоритмы используются в production-системах.
Тема 5. Композиции: бэггинг, случайный лес. Статья на Хабре
Тут опять и теория интересная, и практика. Мы обсудим то, почему для моделей машинного обучения работает «мудрость толпы», и много моделей работают лучше, чем одна, даже лучшая. А на практике покуртим случайный лес (композицию многих деревьев решений) — то, что стоит попробовать, если вы не знаете, какой алгоритм выбрать. Подробно обсудим многочисленные плюсы случайного леса и области его применения. И, как всегда, не без недостатков: все же есть ситуации, когда линейные модели будут работать лучше и быстрее.
Тема 6. Построение и отбор признаков. Приложения в задачах обработки текста, изображений и геоданных. Статья на Хабре, лекция про регрессию и регуляризацию.
Тут план статей и лекций немного расходится (всего один раз), уж слишком велика четвертая тема линейных моделей. В статье описаны главные подходы к извлечению, преобразованию и построению признаков для моделей машинного обучения. Вообще это занятие, построение признаков, — наиболее творческая часть работы Data Scientist-а. И конечно, важно знать, как работать с различными данными (текстами, картинками, геоданными), а не просто с готовым датафреймом Pandas.
На лекции опять обсудим линейные модели, а также основную технику настройки сложности ML-моделей — регуляризацию. В книге «Deep Learning» даже ссылаются на одного известного товарища (лень лезть за пруф-линком), который утверждает, что вообще «все машинное обучение — суть регуляризация». Это, конечно, преувеличение, но на практике, чтобы модели хорошо работали, их надо настраивать, то есть именно правильно использовать регуляризацию.
Тема 7. Обучение без учителя: PCA, кластеризация. Статья на Хабре
Тут мы переходим к обширной теме обучения без учителя — это когда есть данные, а вот целевого признака, который хотелось бы прогнозировать — вот его нет. Таких неразмеченных данных пруд пруди, и надо уметь и из них извлекать пользу. Мы обсудим только 2 типа задач — кластеризацию и снижение размерности. В домашнем задании вы будете анализировать данные с акселерометров и гироскопов мобильных телефонов и пытаться по ним кластеризовать носителей телефонов, выделять типы активностей.
Тема 8. Обучение на гигабайтах c Vowpal Wabbit. Статья на Хабре
Теория тут — это разбор стохастического градиентного спуска, именно этот метод оптимизации позволил успешно обучать и нейронные сети, и линейные модели на больших обучающих выборках. Тут мы также обсудим, что делать, когда признаков становится уж слишком много (трюк с хэшированием значений признаков) и перейдем к Vowpal Wabbit — утилитке, с помощью которой можно за считанные минуты обучить модель на гигабайтах данных, да порой еще и приемлемого качества. Рассмотрим много приложений в различных задачах — классификации коротких текстов, а также категоризации вопросов на StackOverflow. Пока перевод именно этой статьи (в виде Kaggle Kernel) служит примером того, как мы будем подавать материал на английском на Medium.
Тема 9. Анализ временных рядов с помощью Python. Статья на Хабре
Тут обсудим различные методы работы с временными рядами: какие этапы подготовки данных необходимы для моделей, как получать краткосрочные и долгосрочные прогнозы. Пройдемся по различным типам моделей, начиная от простых скользящих средних и заканчивая градиентным бустингом. Также посмотрим на способы поиска аномалий во временных рядах и поговорим о достоинствах и недостатках этих способов.
Тема 10. Градиентный бустинг. Статья на Хабре
Ну и куда без градиентного бустинга… это и Матрикснет (поисковая машина Яндекса), и Catboost — новое поколение бустинга в Яндексе, и поисковик Mail.Ru. Бустинг решает все три основные задачи обучения с учителем — классификации, регрессии и ранжирования. И вообще его хочется назвать лучшим алгоритмом, и это близко к правде, но лучших алгоритмов не бывает. Но если у вас не слишком много данных (влезает в оперативную память), не слишком много признаков (до нескольких тысяч), и признаки разнородные (категориальные, количественные, бинарные, и т.д.), то, как показывает опыт соревнований Kaggle, почти наверное лучше всего в вашей задаче себя проявит градиентный бустинг. Поэтому недаром появилось столько крутых реализаций — Xgboost, LightGBM, Catboost, H2O.
Опять же, мы не ограничимся мануалом «как тюнить иксжбуст», а подробно разберемся в теории бустинга, а затем рассмотрим его на практике, в лекции дойдем и до Catboost. Тут заданием будет побить бейзлайн в соревновании — это даст неплохое представление о методах, работающих во многих практических задачах.
Подробнее о новом запуске
Курс стартует 5 февраля 2018 года. В течение курса будут:
Как подключиться к курсу?
Формальной регистрации не нужно. Просто делайте домашки, участвуйте в соревнованиях, и мы учтем вас в рейтинге. Тем не менее, заполните этот опрос, оставленный e-mail будет вашим ID во время курса, заодно напомним о старте ближе к делу.
Площадки для обсуждения
Удачи! Напоследок хочу сказать, что все получится, главное — не бросайте! Вот это «не бросайте» вы сейчас пробежали взглядом и скорее всего даже не заметили. Но задумайтесь: именно это главное.
mlcourse.ai
Временно тут еще блог Юры Кашницкого (Yorko в Slack ODS)
Демо-версии домашек (с решениями) – в репозитории курса. Материалы курса также доступны в виде Kaggle Dataset (на английском).
Запись на новую сессию курса (заполняйте на английском), подробней – в репозитории курса.
mlcourse.ai запись закреплена
Возрожденный открытый курс машинного обучения от OpenDataScience «ML-курс ODS» стартует в январе 2022 г.
В Slack ODS в канале #_general сегодня был анонс о возрождении курса. К сожалению, анонс слегка преждевременный, но раз просочился, давайте поправим и все же поделимся хорошей новостью.
Показать полностью.
Открытый курс машинного обучения от сообщества OpenDataScience запустится в январе 2022 года на русском языке. Лидером курса на ближайшие 3 года станет Петр Ермаков (@ermakovpetr) – сооснователь сообщества ODS, Senior Data Scientist в Lamoda, руководитель школы datagym.ru.
Курс в целом будет проводиться в том же формате, что прежние сессии mlcourse.ai (лекции, домашние задания, соревнования, общий рейтинг участников). Отдельно отметим возврат к русскому языку. При этом mlcourse.ai на английском останется в текущем виде (self-paced) и будет фоном по-прежнему поддерживаться Юрием Кашницким. Так что возрожденный курс на русском лучше называть “ML-курс ODS”, жить он будет на платформе ods.ai.
Регистрация на курс откроется в ноябре, примерно в это же время начнут выпускаться подготовительные материалы курса, но старт полноценного курса будет в январе 2022 года. Следите за объявлениями тут в группе и в канале #mlcourse_ai_news Slack OpenDataScience.
Курс делается именно сообществом, так или иначе в создании mlcourse.ai и его переводе на английский поучаствовало >100 членов сообщества. Поэтому позже осенью мы кинем клич в ODS в #_call_4_collaboration, будем рады вашему вкладу в курс сообщества.
PS. Осенью ODS запускает целых 15 открытых курсов, о чем и был пост в #_general, полный список можно посмотреть тут https://datafest.ru/course/
mlcourse.ai запись закреплена
В понедельник 25 октября стартует курс по квантовому машинному обучению https://ods.ai/tracks/qmlcourse, про который я тут уже писал.
Главный вдохновитель и лидер курса – Семён Синченко, вот его вступительное слово:
Показать полностью.
С программой курса можно ознакомиться на сайте трека ods.ai – https://ods.ai/tracks/qmlcourse. Там же Вы найдете простой вступительный тест по Python, математике и машинному обучению. Тест опционален, и успешное его прохождение ничего не гарантирует, а вот если возникли сложности, советуем обратиться ко вводным лекциям курса (правда, придется сказать, что блок по линейной алгебре – пока еще в разработке).
Курс обсуждается в Slack-сообществе ods.ai в канале #quantum_computing. Каждую неделю вас ожидают новые лекции и тесты по материалам лекций. Также, для дополнительно мотивации, в течение курса будет поддерживаться лидерборд.
До встречи в Slack ODS!
mlcourse.ai запись закреплена
Вводная лекция «Машинное обучение как пазл»
Курс квантового машинного обучения https://semyonsinchenko.github.io/qmlcourse/_build/ht.. хочется сделать самодостаточным, поэтому там целые вводные блоки и про Python, и про математику будет. В этом формате написал (еще раз) про машинное обучение. Но это не mlcourse.zip, я решил попробовать другой формат – без математики, с не очень строго определенными терминами, зато я показываю, как многие задачи машинного обучения складываются из «пазлов» (целевой признак, данные, модель и т.д.) и как это неплохо обобщается. Попутно привожу примеры задач с «табличками», NLP и изображениями, заодно упоминая рабочие лошадки в каждом домене (градиентный бустинг, BERT, YOLO) и некоторые детали их валидации.
Очень хотелось бы получить обратную связь от тех, кто очень плохо представляет себе, как это ваше машинное обучение вообще работает.
>Очень хотелось бы получить обратную связь от тех, кто очень плохо представляет себе, как это ваше машинное обучение вообще работает.
mlcourse.ai запись закреплена
Семён Синченко анонсировал запуск открытого курса квантового машинного обучения https://ods.ai/tracks/qmlcourse на Хабре – https://habr.com/ru/company/ods/blog/571012/ Заодно это вводная лекция курса – о том, что сейчас происходит в мире квантовых вычислений, зачем все это нужно, какие задачи будут решаться на квантовых компах и т.д.
Страница курса – https://ods.ai/tracks/qmlcourse, там можно ткнуть «Start track» и таким образом подписаться на оповещения
mlcourse.ai запись закреплена
Вебинар про ML-прототипирование
Давид Дале – коллега Айры по Mathshub, довольно известный представитель нашей области, заметен активностью в NLP https://habr.com/ru/users/cointegrated/posts/
В понедельник, 26 июля 19.00-21.00 мск, Давид и Айра расскажут о том, как от идею перейти к реализации ML-прототипа и как найти первых пользователей продукта.
mlcourse.ai запись закреплена
Математика и Python для Data Science
3.5 года назад одним из первых в этой группе был пост про математику и Python https://vk.com/mlcourse?w=wall-158557357_3, который также описывал 3 варианта погружения в тему – быстрый, основательный и продвинутый. Посмотрел свежим взглядом – могу и сейчас рекомендовать все то же. Неудивительно, такие вещи как программы MIT и МФТИ вряд ли устаревают.
Я бы с удовольствием расширил список (не прошел бы мимо 3blue1brown или Савватеева, скажем), но лучше расскажу о наших друзьях “Ëжик в матане” https://vk.com/mathhedgehog.
В общем, рекомендую подписаться на “Ёжика в матане”!
mlcourse.ai запись закреплена
Вот так пара нейросеток VQGAN-CLIP рисует квантовый мир.
Попался неплохой пост Беркли про эту новую область искусства – neural art https://ml.berkeley.edu/blog/posts/clip-art/. Да и на DataFest уже не первый раз проходит секция https://mlart.org/. Прогресс радует, на выходе уже не просто глюки, как были у DeepDream. Интересно, посмотреть, как все это будет развиваться и как скоро deep learning реально будет помогать художникам и дизайнерам.
А пока юристы решают, кому принадлежат эти образцы народного зодчества, можно погенерить самому подобные – для этого нужно всего лишь. запустить Colab Notebook https://colab.research.google.com/drive/1L8oL-vLJXVcR.., поменять текстовый промпт где-то посередине, например, на «quantum universe» и подождать пару минут, пока нейросетка не сойдётся к стабильной картинке. Ещё помогает добавить “unreal engine”, про эти трюки говорится в посте Беркли.
mlcourse.ai запись закреплена
Курс Venture Deals
От души рекомендую курс Venture Deals https://kftechstars.novoed.com/#!/courses/venture.. (это ссылка на прошедший запуск весной, следующий – осенью 2021): он открывает глаза на то, как устроен мир венчурных капиталистов (VCs), чего стоит стартапам привлечь денег и чем они жертвуют. Домашки очень практические, максимально полезны будут фаундерам, ищущим финансирование, но и в целом тоже.
Показать полностью.
Курс читается VC Kauffman Fellows, авторами одноименной книги Venture Deals. То есть они и с позиции VC про многие детали рассказывают, и встают на сторону предпринимателей и дают советы. Следующий запуск курса – осенью.
В целом, несмотря на разнообразный бэкграунд в нашей команде (почти все уже раньше что-то сами питчили, я только срывал переговоры со стартапами, как понял – не зря), все остались довольны от объема полученных знаний за единицу потраченного времени.
Чтоб не совсем уж восторгаться, из минусов – многовато юридических деталей, хотелось бы большей популяризации. А так скучновато порой, зато понимаешь, что без хорошего адвоката лучше в это дело не лезть – VC все растащат по кускам, как пираньи. Впрочем, обозначенный минус не сильно портит общее впечатление от курса.
PS. мем по устаревшему шаблону с Жириком предполагался как тест, нужно ли вам проходить курс. Типа если вскрылся в голос – то нет.