И сегодня мы хотим сказать, что наконец можем выполнить все эти пожелания. В январе на Курсере пройдёт курс, организованный совместно Яндексом (Школой анализа данных) и ВШЭ. Записаться на него можно уже сейчас: www.coursera.org/learn/introduction-machine-learning.
Сооснователь Coursera Дафна Коллер в офисе Яндекса
Курс продлится семь недель. Это означает, что по сравнению с ШАДовским двухсеместровым курсом он будет заметно упрощен. Однако в эти семь недель мы попытались вместить только то, что точно пригодится на практике, и какие-то базовые вещи, которые нельзя не знать. В итоге получился идеальный русскоязычный курс для первого знакомства с машинным обучением.
Кроме того, мы верим, что после прохождения курса у человека должна остаться не только теория в голове, но и скилл «в пальцах». Поэтому все практические задания построены вокруг использования библиотеки scikit-learn (Python). Получается, что после прохождения нашего курса человек сможет сам решать задачи анализа данных, и ему будет проще развиваться дальше.
Под катом можно прочитать подробнее обо всех авторах курса и узнать его примерное содержание.
О преподавателях
Лектор курса – Константин Воронцов. Константин Вячеславович много лет преподает основы машинного обучения студентам ШАД, Вышки, МФТИ и МГУ.
Практическую часть курса подготовили Петр Ромов, Анна Козлова и Евгений Соколов, который также читает несколько лекций. Все трое работают в Яндексе (Женя и Петя в Yandex Data Factory, Аня — в отделе машинного перевода) и применяют машинное обучение в своей ежедневной деятельности. Ребята в курсе происходящего в области анализа данных и постарались подготовить задания так, чтобы их выполнение принесло максимальную пользу слушателям курса.
Программа
Это описание модулей курса в том виде, в котором оно откроется на «Курсере» одновременно со стартом курса.
1. Знакомство с анализом данных и машинным обучением.
В этом модуле мы расскажем о задачах, которые решает машинное обучение, определим базовый набор понятий и введем необходимые обозначения. Также мы расскажем про основные библиотеки языка Python для работы с данными (NumPy, Pandas, Scikit-Learn), которые понадобятся для выполнения практических заданий на протяжении всего курса.
2. Логические методы классификации.
Логические методы делают классификацию объектов на основе простых правил, благодаря чему являются интерпретируемыми и легкими в реализации. При объединении в композицию логические модели позволяют решать многие задачи с высоким качеством. В этом модуле мы изучим основной класс логических алгоритмов — решающие деревья. Также мы поговорим про объединение деревьев в композицию, называемую случайным лесом.
3. Метрические методы классификации.
Метрические методы проводят классификацию на основе сходства, благодаря чему могут работать на данных со сложной структурой — главное, чтобы между объектами можно было измерить расстояние. Мы изучим метод k ближайших соседей, а также способ его обобщения на задачи регрессии с помощью ядерного сглаживания.
4. Линейные методы классификации.
Линейные модели — один из наиболее изученных классов алгоритмов в машинном обучении. Они легко масштабируются и широко применяются для работы с большими данными. В этом модуле мы изучим метод стохастического градиента для настойки линейных классификаторов, познакомимся с регуляризацией и обсудим некоторые тонкости работы с линейными методами.
5. Метод опорных векторов и логистическая регрессия.
Линейные методы имеют несколько очень важных подвидов, о которых пойдет речь в этом модуле. Метод опорных векторов максимизирует отступы объектов, что тесно связано с минимизацией вероятности переобучения. При этом он позволяет очень легко перейти к построению нелинейной разделяющей поверхности благодаря ядровому переходу. Логистическая регрессия позволяет оценивать вероятности принадлежности классам, что оказывается полезным во многих прикладных задачах.
6. Метрики качества классификации.
В машинном обучении существует большое количество метрик качества, каждая из которых имеет свою прикладную интерпретацию и направлена на измерение конкретного свойства решения. В этом модуле мы обсудим, какие бывают метрики качества бинарной и многоклассовой классификации, а также рассмотрим способы сведения многоклассовых задач к двухклассовым.
7. Линейная регрессия.
В этом модуле мы изучим линейные модели для регрессии и обсудим их связь с сингулярным разложением матрицы «объекты-признаки».
8. Понижение размерности и метод главных компонент.
В прикладных задачах часто возникает потребность в уменьшении количества признаков — например, для ускорения работы моделей. В этом модуле мы обсудим подходы к отбору признаков, а также изучим метод главных компонент, один из самых популярных методов понижения размерности.
9. Композиции алгоритмов.
Объединение большого числа моделей в композицию может значительно улучшить итоговое качество за счет того, что отдельные модели будут исправлять ошибки друг друга. В этом модуле мы обсудим основные понятия и постановки задач, связанные с композициями, и обсудим один из наиболее распространенных способов их построения — градиентный бустинг.
10. Нейронные сети.
Нейронные сети позволяют находить сложные нелинейные разделяющие поверхности, благодаря чему широко используются в таких трудных задачах, как распознавание изображений и речи. В этом модуле мы изучим многослойные нейронные сети и их настройку с помощью метода обратного распространения ошибки. Также мы поговорим о глубоких нейросетях, их архитектурах и особенностях.
11. Кластеризация и визуализация.
Этот модуль посвящен новому классу задач в машинном обучении — обучению без учителя. Под этим понимаются ситуации, в которых нужно найти структуру в данных или произвести их «разведку». В этом модуле мы обсудим две таких задачи: кластеризацию (поиск групп схожих объектов) и визуализацию (отображение объектов в двух- или трехмерное пространство).
12. Частичное обучение.
Под частичным обучение понимается задача, находящаяся между обучением с учителем и кластеризацией: дана выборка, в которой значение целевой переменной известно лишь для части объектов. Такие ситуации встречаются, когда разметка объектов является дорогой операцией, но при этом достаточно дешево можно подсчитать признаки для объектов. В этом модуле мы обсудим отличия частичного обучения от рассмотренных ранее постановок, и разберем несколько подходов к решению.
13. Машинное обучение в прикладных задачах
В этом модуле мы подведем итоги курса, вспомним основные этапы решения задачи анализа данных. Также мы разберем несколько задач из прикладных областей, чтобы подготовиться к выполнению финального проекта.
Комментарии (34)
brainick
20.10.2015 20:04+16Давно пора. Хрен вот этим товарищам, (http://newprolab.com/bigdata/ http://bigdata.beeline.digital/ ) а не 100 или 180 тысяч.
jet-black
20.10.2015 20:59С одной стороны, это, безусловно, отличные новости. Но, думаю, по содержанию и глубине подачи материала курс будет сильно уступать курсу ШАДа.
Предполагаю, что для многих было бы огромной радостью, если бы Вы выложили в открытый доступ видеоматериалы+слайды+домашние задания с семинаров по машинному обучению.LiloSEA
20.10.2015 21:04+4Да, Вы правы: курс в ШАДе сильно глубже и нагруженнее, но у этого онлайн-курса все же другая цель.
Не, пока все-все материалы мы публиковать не будем:)jet-black
20.10.2015 21:27Пусть не все, но хоть что-нибудь)
Очень сложно самому придумывать задания после просмотра очередной лекции.brainick
20.10.2015 21:59С другой стороны надо понимать, что ML это круто. Вон на Stepice небольшой 5-тинедельный курс заканчивается «Основы перечислительной комбинаторики». (https://stepic.org/course/Основы-перечислительной-комбинаторики-125/syllabus) Чисто для интереса вы можете посмотреть, сколько человек решили задачи последней недели. Спойлер от 0 до 10. А тут машинное обучение — раздел намного более крутой. Если не облегчить, то запишутся условно говоря 5000, после первой недели останется 1000, после второй 500, после 3 — 100 и после 4 50 человек. Да и те будут студентами ШАДа.
lexnekr
21.10.2015 09:26А почему бы не сделать специализацию и не положить внутрь несколько курсов, чтобы покрыть всю ШАДовскую программу?
LiloSEA
21.10.2015 12:25Пока мы решили начать с одного из основополагающих наших курсов. Мы думаем, продолжать ли, как продолжать и в каком формате.
lexnekr
21.10.2015 13:17Я к тому, что вы написали:
Курс продлится семь недель. Это означает, что по сравнению с ШАДовским двухсеместровым курсом он будет заметно упрощен.
Вот если бы вы весь полноценный курс выложили (пусть и оформив в виде специализации), то было бы полезнее (как мне кажется).LiloSEA
21.10.2015 13:55+1Тут важный момент: курс в ШАДе достаточно сложный, создан он для студентов ШАД, которых мы набираем в школу по конкурсу. Конкурс очень высок, курс начинается во втором семестре — то есть мы можем спокойно рассчитывать на очень высокий уровень слушателей. Все это резко ограничивает аудиторию для онлайн-курса, если просто перекладывать имеющийся курс в формат онлайн. Боюсь, что тогда это был бы не MOOC, а OOC :)
lexnekr
21.10.2015 14:31+1Я думаю, вы недооцениваете аудиторию.
Честно говоря упрощённых курсов на курсере хватает.
Бесит уже отношение «расстилаем пелёночку, присаживаемся, тужимся и и какаем».
Есть же сейчас информер сложности курса, он для большинства курсов висит в позиции простого. Понятно, что это увеличивает аудиторию и возможность заработка для авторов, но ведь цель всего этого немножко иная…
Хотя вам конечно виднее.LiloSEA
21.10.2015 14:39+1Может быть:) И мы будем рады, если много людей пройдет курс успешно и будет жаждать продолжения!
Сейчас тем, кому будет на курсе слишком легко, мы приглашаем поступить в ШАД — учиться у нас можно заочно.
brainick
21.10.2015 16:54Я думаю, вы переоцениваете аудиторию. Выше я привел пример как даже элементарнейший курс не могут закончить 90% из записавшихся.
lexnekr
21.10.2015 17:31Вполне вероятно (я и сам признал это выше).
Но тут немного иные эффекты уже начинают работать. Я, например, не все курсы на курсере закончил, которые начинал, если в процессе становилось «не до того», а потом было очень тяжело лень преодолеть, чтобы вернуться через пару месяцев.
Чем больше курс, тем больше отваливаться будет (и чем он сложнее, тоже).
Но мне кажется, игра стоила бы свеч. Ведь интересно подготовить не 100500 «специалистов», которые знают как установить некую среду разработки, например. А подготовить хотя бы N специалистов, которые могут в ней что-то внятное кодить.
Я лишь высказал идею. И авторы курса вполне обоснованно объяснили почему они сделали иначе. Я их понимаю. Но своя идея всегда кажется «более правильной».
=)
Zenker
20.10.2015 21:28А чем этот курс будет отличаться от каноничного курсеровского? Будет ли что-то за его рамками(помимо scikit)?
brainick
21.10.2015 00:23+3Ну например, тем, что он будет на русском языке ) И будет Python вместо Octave.
LiloSEA
21.10.2015 13:37+3Отличий, на самом деле, довольно много:
1) В стэнфордском курсе больше сосредотачивается на картинках и объяснениях «на пальцах», тогда как мы добавим к этому немного строгости — формулы и их вывод будут, но в том объеме, в котором их может понять студент первого курса университета.
2) В своем курсе Andrew Ng рассказывает базовые алгоритмы — у него нет ничего про бустинг и случайные деревья, а именно эти алгоритмы используются, например, в Яндексе для решения многих задач машинного обучения.
3) Да и сам подход к изложению, терминология и методология в нашем курсе устроены иначе.
Отмечу, что на курсе Воронцова “выросла” большая часть data scientist’-ов, работающих в России, поэтому после нашего курса будет гораздо комфортнее вливаться в любой рабочий коллектив в нашей стране.
amIwho
21.10.2015 11:05+1Небольшое пожелание. Оооочень хотелось бы чтобы примеры были из реальной жизни. То, что можно попробовать самому, неплохой пример с анализом тональности высказываний в твиттере. Или анализ соцсетей. То, к чему есть доступ у всех. Чем интереснее и доступнее челлендж, тем прикольнее учиться.
LiloSEA
21.10.2015 14:13+1Мы обычно используем реальные датасеты, но стараемся выбирать их так, чтобы не сильно упираться в вычислительные возможности и время выполнения. Люди скорее всего не рассчитывают, что они будут в онлайн-курсе обучать что-то 2 часа :)
rzykov
21.10.2015 12:14Я вижу очень большой минус, что курс будет на готовой библиотеке sci-kit. Курс от Andrew лучше тем, что ученик сам пишет алгоритм и видит изнутри, как он работает. Посмотрите первый ответ на quora на вопрос «How do I learn machine learning?»
Xavier (который был директором по аналитике Netflix) пишет:
Get a good ML book (my list below), read the first intro chapters, and then jump to whatever chapter includes an algorithm you are interested. Once you have found that algo, dive into it, understand all the details, and, especially, implement it. In the previous online course you would already have implemented some algorithms in Octave. But, here I am talking about implementing an algorithm from scratch in a «real» programming language. You can still start with an easy one such as L2-regularized Logistic Regression, or k-means, but you should also push yourself to implement more interesting ones such as LDA (Latent Dirichlet Allocation) or SVMs. You can use a reference implementation in one of the many existing libraries to make sure you are getting comparable results, but ideally you don't want to look at the code but actually force yourself to implement it directly from the mathematical formulation in the book.
LiloSEA
21.10.2015 14:11+1Наш курс даёт представление о том как работают изучаемые алгоритмы, но кроме этого мы хотим показать, как правильно их применять на практике. Нашей целью не было сделать курс по программированию, поэтому используем sklearn.
Кроме того, там достаточно удобная среда для проведения исследований, она поможет подготовить человека к тому, как ставить эксперименты.
По факту мы учим тому как подойти к решению задач МО, какие методы бывают, какие достоинства/недостатки, какие подводные камни встречаются.
Научиться правильно реализовать сами алгоритмы — хороший навык, но это уже более углубленная программа, которую наш курс не охватывает.
Dreamastiy
21.10.2015 19:00Последнее время на Курсере все больше и больше курсов, которые нельзя проходить бесплатно.
Этот курс будет бесплатным? Если нет — какая ориентировочная стоимость?Zenker
21.10.2015 19:39+2То, что вы привели в пример — специализация, а не курс. Хотите бесплатно — проходите курсы не в составе специализации, а по отдельности, они были и остаются бесплатными. Насколько я помню, платных курсов там нет и вроде как в принципе быть не может. Есть только опциональные платные подтвержденные сертификаты.
Dreamastiy
21.10.2015 20:57Прошу прощения — ошибся.
Маркетинг курсеры сделал свое дело. Раньше со страницы специализации перейти на бесплатное прохождение одного из курсов было проще.brainick
21.10.2015 22:05Да, ныне надо, посмотрев специализацию, искать курс в каталоге. Гиперссылки из страницы специализации предусмотрительно не работают.
to_climb
22.10.2015 16:25+1Жаль, что нет ничего про отбор признаков. Очень важная тема для задач с большой размерностью (например, анализ текстов).
LiloSEA
23.10.2015 10:34+1Тему отбора признаков мы разбираем в 8 модуле.
8. Понижение размерности и метод главных компонент.
В прикладных задачах часто возникает потребность в уменьшении количества признаков — например, для ускорения работы моделей. В этом модуле мы обсудим подходы к отбору признаков, а также изучим метод главных компонент, один из самых популярных методов понижения размерности.
mird
Как так получается, что если зарегистрироваться на ваш курс, он отображается в текущих курсах, хотя начнется он только 26 января? Что-то не то с настройками курса.
Zalina
Разбираемся.
Zalina
Выяснили, что это особенность курсов on-demand. Подразумевается, что как только вы подписались на курс, так сразу можете приступить к обучению. То, что сами материалы курса еще не открыты, а курс уже в «текущих», можно объяснить еще не до конца доработанными механизмами новой платформы (в том числе касающихся курсов в стадии pre-enrollment), поэтому возможны такие несоответствия. Сама Курсера проводит еще огромное количество доработок, касающихся возможности вывешивания файлов, настройки тестов, систем оценивания и прочего.