воронцов курс лекций по машинному обучению

Воронцов. Курс «Машинное обучение» 2019 (Школа анализа данных)

Воронцов Константин Вячеславович — профессор кафедры интеллектуальных систем факультета управления и прикладной математики МФТИ, доктор физико-математических наук, доцент кафедры математических методов прогнозирования факультета ВМиК МГУ, преподаватель Школы анализа данных Яндекса, профессор ВШЭ.

Школа анализа данных (ШАД) — это бесплатная двухгодичная программа для тех, кто хочет стать продвинутым датасаентистом или архитектором систем хранения и обработки больших данных. Лекции и семинары в ШАДе проводят сотрудники Яндекса, преподаватели ведущих университетов.

Вводная лекция


В первой половине лекции вводятся обозначения и понятия, которые будут использоваться на протяжении всего курса: объекты, признаки, функция потерь, предсказательная модель, минимизация эмпирического риска, обучающая выборка, тестовая выборка, переобучение, скользящий контроль. Во второй половине лекции приводятся примеры прикладных задач классификации, регрессии, ранжирования. В конце кратко обсуждаются некоторые вопросы методологии машинного обучения: особенности реальных данных, межотраслевой стандарт CRISP-DM, организация вычислительных экспериментов.

Линейная модель играет фундаментальную роль в теории машинного обучения. Это простейшая модель нейрона и основной строительный блок для нейронных сетей. Обучать её можно с помощью метода стохастического градиента. На практике он нуждается в различных эвристических усовершенствованиях. Одно из важнейших – регуляризация. Она делает решение устойчивым в случае мультиколлинеарных признаков и уменьшает переобучение. Постановка задачи построения разделяющей поверхности в терминах теории вероятности приводит к пониманию регуляризатора через априорное распределение параметров модели. В конце рассматривается логистическая регрессия – метод классификации, способный не только классифицировать объекты, но и давать оценки вероятностей классов.

Метод ближайшего соседа является, пожалуй, самым простым методом классификации. Разбирая один за другим его недостатки, мы приходим к методам взвешенных ближайших соседей, парзеновского окна, потенциальных функций… и осознаём, что снова пришли к линейному классификатору. Отбор эталонных объектов в ленивом обучении в некоторых задачах позволяет радикально уменьшить объём хранимых данных, а, если повезёт, то и улучшить качество классификации. Идея, что схожим объектам должны соответствовать схожие ответы, в регрессии приводит к непараметрическим методам типа ядерного сглаживания. Выводы на удивление те же, что и для классификации: подбор ширины окна принципиально важен для оптимизации качества модели, а выбор ядра сглаживания отвечает лишь за её гладкость. В конце рассматривается проблема обнаружения и отсева выбросов.

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

Классический способ обучения линейной модели регрессии – это метод наименьших квадратов. Сингулярное разложение матрицы признаковых описаний объектов позволяет изящно записать классическое решение МНК. Мультиколлинеарность или скрытые линейные зависимости между признаками приводит к неустойчивости решения и переобучению. Гребневая регрессия с помощью L2-регуляризации делает решение немного смещённым, но намного более устойчивым. Сингулярное разложение и в этом случае позволяет записать решение. Более того, оно позволяет эффективно оптимизировать параметр регуляризации. Метод LASSO или L1-регуляризация решает проблему мультиколлинеарности по-другому – отбрасывая лишние признаки. Третье решение – линейный переход от большого числа исходных признаков к малому числу новых признаков, но так, чтобы исходные по новым можно было восстановить как можно точнее. Это приводит к методу главных компонент, который оказывается обобщением всё того же сингулярного разложения.

Что делать, если модель регрессии не линейная или функция потерь не квадратичная? Общий рецепт такой: применение метода Ньютона-Рафсона приводит к итерационному процессу, на каждом шаге которого решается задача линейной регрессии. Смысл её сводится к тому, чтобы поточнее настроиться на тех объектах, на которых модель в текущем её приближении работает недостаточно хорошо. В этот общий сценарий неплохо вписывается серия важных частных случаев. Нелинейная регрессия с квадратичной функцией потерь. Логистическая регрессия. Обобщённая линейная модель (GLM), в которой прогнозируемая величина описывается экспоненциальным семейством распределений. Логистическая регрессия является частным случаем GLM, и, благодаря этому факту, мы теперь понимаем, почему вероятность классов выражается через сигмоиду от дискриминантной функции. В конце немного про неквадратичные функции потерь: метод наименьших модулей, квантильная регрессия, робастная регрессия и SVM-регрессия.

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

Лекция состоит из двух слабо связанных частей. В первой части рассматриваются критерии качества классификации, от простейшего «числа ошибок» до правдоподобия, AUC и PR-AUC. Каждый из них имеет свои границы применимости и противопоказания. От них мы переходим к критериям, характеризующим обобщающую способность моделей. От скользящего контроля до разного рода штрафов за сложность модели: AIC, BIC, VC-bound и прочие. Во второй части рассматривается задача отбора признаков, имеющая экспоненциальную вычислительную сложность, и эвристические методы сокращения полного перебора. Жадные алгоритмы. Поиск в глубину и в ширину. Эволюционные алгоритмы. Случайный поиск с адаптацией.

Логическая закономерность в задаче классификации – это предикат с простой интерпретируемой формулой, выделяющий много объектов одного класса и мало объектов всех остальных классов. Самый распространённый вид предикатов – конъюнкции небольшого числа пороговых условий на признаки. Алгоритмы поиска информативных конъюнкций очень похожи на алгоритмы отбора признаков из предыдущей лекции. Специальный вариант – методы индукции решающих деревьев. Недостаток деревьев в том, что они не устойчивы к составу обучающей выборки и ошибкам в данных. Справиться с переобучением деревьев помогает процедура усечения (pruning) либо ансамблирование – разного рода решающие леса, в том числе очень известный метод случайного леса.

Специальный случай поиска логических закономерностей в форме правил «если выполняется конъюнкция признаков X, то выполняется также конъюнкция признаков Y». Это обучение без учителя, поскольку целевой признак-класс изначально не задан для объектов. Задача пришла из анализа рыночных корзин в конце 90х годов, но быстро нашла массу применений в других областях. Есть простой классический алгоритм APriori, но на больших данных он не эффективен. Большая часть лекции посвящена алгоритму FP-growth, основанному на построении очень эффективной структуры данных – префиксного дерева, позволяющего сохранить в оперативной памяти полную информацию о всех часто встречающихся наборах признаков за один линейный проход по всем объектам выборки.

Восстановление плотности распределения по выборке – важный класс задач машинного обучения. В частности, к ним сводится построение байесовского классификатора. Рассматриваются три подхода к восстановлению плотности. Самый простой – непараметрический, это оценка плотности Парзена-Розенблатта. Классическим считается параметрический подход, и мы рассматриваем его подробно на примере восстановления плотности многомерного нормального распределения. Третий подход – восстановление смеси вероятностных распределений. Познакомимся с ЕМ-алгоритмом в общем виде и в одном частном случае, когда компонентами смеси являются сферические гауссианы. В байесовском классификаторе это приводит к конструкции, одновременно похожей на метод потенциальных функций, SVM с гауссовским ядром и двухслойную нейронную сеть с радиальными базисными функциями.

Задача кластеризации – это обучение без учителя. Требуется разбить конечное множество объектов на кластеры по их взаимной близости. Если для части объектов, обычно очень небольшой, классификации всё же известны, то это задача с частичным обучением. Самый известный метод кластеризации – k-средних, если внимательно присмотреться, является сильно упрощённым вариантом ЕМ-алгоритма для разделения смеси сферических гауссиан. Метод DBSCAN более удобен в тех задачах, где нельзя делать предположение о сферичности кластеров. Если требуется иерархически объединять мелкие кластеры в более крупные, используется алгоритм Ланса-Уильямса. Все методы кластеризации очень легко приспосабливаются для частичного обучения. Есть и противоположный подход – приспосабливать методы классификации с учителем. Кроме простых эвристических методов, существует трансдуктивный SVM и различные подходы на основе регуляризаторов.

Любую непрерывную функцию можно приблизить многослойной нейронной сетью с любой заданной точностью. Теоретически, двух слоёв для этого достаточно. На практике для обучения искусственных нейронных сетей чаще всего используется метод BackPropagation – обратное распространение ошибок. Он позволяет эффективно вычислять градиент функции потерь по вектору параметров сети. Чтобы этот метод действительно работал, приходится использовать совокупность эвристик для ускорения сходимости, выбора начального приближения, градиентного шага и регуляризации. Методы разреживания сети позволяют радикально сокращать число нейронов и связей.

Современный бум искусственных нейронных сетей обязан своим появлением конкурсу по классификации изображений ImageNet. Свёрточные нейронные сети осуществили прорыв в компьютерном зрении, впервые обеспечив высокое качество распознавания при обучении по большим данным. Свёрточные слои осуществляют обучаемое преобразование сырого представления объекта в векторное представление фиксированной размерности, с которым далее работает полносвязная сеть, как правило, из небольшого числа слоёв. Для обработки сигналов и текстов используются рекуррентные нейронные сети, для которых есть свой вариант метода BackPropagation. Одна из самых известных рекуррентных сетей – LSTM, а также её упрощённый вариант GRU. Вкратце рассматриваются важнейшие нейросетевые техники – автокодировщики, перенос обучения, самостоятельное обучение, генеративные состязательные сети.

Композиционные методы машинного обучения дают положительный конструктивный ответ на вопрос, возможно ли из большого числа ненадёжных алгоритмов построить один надёжный. Алгоритм AdaBoost строит последовательность алгоритмов так, чтобы каждый следующий стремился исправлять ошибки предыдущих. В AdaBoost используется экспоненциальная аппроксимация пороговой функции потерь и дискретно-значные базовые классификаторы. Градиентный бустинг обобщает эту идею и позволяет использовать произвольную функцию потерь и вещественно-значные базовые алгоритмы. С помощью градиентного бустинга можно решать задачи регрессии и ранжирования. Алгоритмы MatrixNet и CatBoost, разработанные в Яндексе, представляют собой градиентный бустинг над решающими деревьями специального вида.

Бэггинг похож на бустинг, но использует простое голосование вместо взвешенного, бутстрепинг объектов обучающей выборки вместо их перевзвешивания, независимое параллельное построение базовых алгоритмов вместо строго последовательного. По критерию качества бустинг, бэггинг и случайные леса, как правило, сопоставимы. Во многих приложениях базовые алгоритмы проще обучать на отдельных частях признакового пространства, называемых областями компетенции. Такие методы похожи на восстановление смеси распределений и используют ЕМ-подобные алгоритмы для поочерёдной оптимизации базовых алгоритмов и их областей компетенции.

Задача ранжирования отличается от классификации и регрессии тем, что вместо правильных ответов на объектах обучающей выборке задаётся отношение частичного порядка. Модель ранжирования – это функция от объекта (как и в задаче регрессии), с помощью которой можно отранжировать произвольное множество объектов. Задачи ранжирования решаются в информационно-поисковых, рекламных и рекомендательных системах. Критерии качества ранжирования весьма разнообразны, наиболее важные из них рассматриваются в лекции. Методы обучения ранжированию делятся на три большие группы: поточеченые, попарные и списочные. Поточечные являются незначительными модификациями методов классификации или регрессии. Попарные оптимизируют критерии, представляющие собой сумму по парам объектов, а не по отдельным объектам. Для оптимизации часто используется метод стохастического градиента. Списочные методы приближённо оптимизируют качество ранжирования в списках поисковой выдачи.

Имеются транзакционные данные о предпочтениях объектов клиентами. Требуется для заданного клиента спрогнозировать, какие объекты для него наиболее предпочтительны. Простые и уже устаревшие методы коллаборативной фильтрации основаны на поиске схожих клиентов, которые предпочитают схожие множества объектов. Более современные методы основаны на поиске латентных векторов интересов клиентов и объектов. Для этого используются методы матричных разложений. Качество рекомендаций измеряется многими критериями: это не только точность предсказания известных предпочтений, но и разнообразие, новизна, покрытие, догадливость. Кроме того, рекомендательная система должна обеспечивать адекватность рекомендаций даже в условиях «холодного старта», когда по объекту или по клиенту не хватает информации о предпочтениях.

Имеется коллекция текстовых документов. Требуется выявить тематическую кластерную структуру коллекции и оценить, к каким темам относится каждый документ, и какими словами описывается каждая тема. Как и в рекомендательных системах, задача сводится к построению низкорангового неотрицательного матричного разложения. Данная задача является многокритериальной и некорректно поставленной, поскольку имеет бесконечное множество решений. Для нахождения устойчивого решения вводятся дополнительные критерии-регуляризаторы и используется регуляризованный ЕМ-алгоритм. В лекции рассматриваются регуляризаторы для учёта дополнительной информации, ограничений и требований к тематической модели.

Процесс обучения представляется в виде игры агента со средой, в которой агент совершает действия, среда в ответ даёт премии, и агент должен корректировать свою стратегию принятия решений таким образом, чтобы максимизировать суммарную будущую премию. Задача имеет черты классификации и прогнозирования. В простейшем случае это задача выбора действия по накопленной статистике премий, называемая задачей о многоруком бандите. В более сложном случае на каждом шаге известно, в каком из состояний находится среда. Если состояние среды описывается вектором признаков, то для принятия решений возможно приспособить инкрементные методы классификации, а для оптимизации стратегии агента применять градиентные методы. Во всех случаях основным вопросом обучения с подкреплением остаётся компромисс «exploration-exploitation» между изучающими действиями и действиями, непосредственно нацеленными на получение премий.

Активное обучение используется в тех случаях, когда получение ответа от учителя стоит дорого, но есть возможность выбирать, какой объект предъявить учителю следующим. Активное обучение позволяет сокращать объём обучающей выборки по сравнению с пассивным случайным выбором. Для сэмплирования объектов используются различные стратегии: по неуверенности, по ожидаемому изменению модели, по ожидаемому сокращению ошибки, по уменьшению дисперсии параметров модели. Как и в обучении с подкреплением, здесь также имеется компромисс «exploration-exploitation» и методы для введения изучающих действий.

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

Источник

Как самостоятельно выучиться на дата-саентиста — адаптированная подборка

Меня зовут Айра, я веду блог про математику, продукты и ML, делаю проекты в DS/ML, а также курсы по созданию ML-проектов. От своей аудитории блога и знакомых часто получаю вопросы в духе «Cтоит ли тратить деньги на тот или иной дорогой курс с codename «Стань DS за два месяца» или все же выучиться на дата-саентиста самостоятельно и бесплатно, и в таком случае, с чего начать?»

Недавно собрала ответ на этот вопрос достаточно развернуто, на мой взгляд, чтобы поделиться им с широкой аудиторией. Не все платные курсы плохие (хотя большинство — да — из-за механизмов отбора, продаж и слабой программы), но о них напишу отдельно. Мне кажется, нужно учитывать больше персонализированных параметров для того, чтобы грамотно выбирать хороший курс за деньги.

Во-первых, в список вошли бесплатные онлайн-курсы и ресурсы для самостоятельного обучения, которые проходила сама или советует профессиональное сообщество аналитиков и дата-саентистов (часто упоминающиеся в ODS.ai), где не нужно проходить какой-то отбор или быть ограниченным офлайн-посещением.

Во-вторых, конечно, это далеко не полный список онлайн-курсов, который вы можете встретить, зато в него попали лучшие курсы от сильных математических и Computer Science-школ мир и другие распространенные ресурсы среди профи из того, что я смогла отфильтровать на свой вкус.

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

С чего советую начать, чтобы тратить время эффективно?

Предполагая, что начинающий дата-саентист уже прошел подготовительные курсы а-ля гарвардский CS50 по основам программирования, pythontutor.ru или курс на Stepik от Института Биоинформатики, посоветую несколько шагов, которые должны стать твердой базой. Далее ссылки все полные, чтобы было легче копировать:

Зарегистрироваться в самом популярном в СНГ профессиональном slack-сообществе Open Data Science ODS.ai, вступить в как можно больше чатов, в том числе про менторство, обучение и карьеру и общаться с местными, чтобы расширить свой кругозор относительно работодателей, требований к прохождению интервью, к позиции и их различиях в разных компаниях и др, найти хороших наставников, тк. такие в сообществе есть!

Пройти вводный курс «Математика и Python для анализа данных» на Coursera — платный, недорогой и хороший. www.coursera.org/learn/mathematics-and-python

По программированию — пройти в leetcode.com все релевантные упражнения: это бесплатные или недорогие в премиальной версии в соотношении цена/качество тренажеры (в нем есть в том числе упражнения на интервью в FAANG).

Пройти mlcourse.ai — это открытый курс машинного обучения от ODS. Авторы смогли разработать курс машинного обучения с балансом между теорией и практикой, когда в лекции вы разбираете достаточно подробно математику, а затем упражняетесь сначала в блокноте, затем на Kaggle.

Для обучения решению разнообразных задач и оптимизации кода — участвовать в соревнованиях по анализу данных и машинному обучению на платформе kaggle.com.

Математика для DS/ML

Приятный курс Стэнфорда по DS «Introduction to Statistics» www.coursera.org/learn/stanford-statistics

Коротенький интерактивный курс по теории вероятностей и математической статистике «Seeing Theory» seeing-theory.brown.edu/

Хороший вводный курс по математике для анализа данных, более объёмный «Специализация Математика для анализа данных:. Можно послушать только интересную тему: дискретная математика / линейная алгебра / математический анализ / теория вероятностей. www.coursera.org/specializations/maths-for-data-analysis

Довольно подробная и читаемая книга по теорверу и матстату «Dekking, A Modern Introduction to Probability and Statistics» cis.temple.edu/

Python&SQL для DS/ML

Упомянутый выше бесплатный тренажер по Python с нуля: pythontutor.ru/

Отличный курс по инструментам по DS от IBM «Специализация Data Science Fundamentals with Python and SQL» www.coursera.org/specializations/data-science-fundamentals-python-sql

Упомянутый выше русский курс по питону и математике (платный, недорогой и хороший) «Математика и Python для анализа данных (Coursera)» www.coursera.org/learn/mathematics-and-python

Упомянутый выше https://leetcode.com/: пройти все релевантные упражнения, это бесплатные или недорогие в премиальной версии в соотношении цена/качество тренажеры (в нем есть в том числе упражнения на интервью в FAANG).

Начальные курсы по ML

Как бы этот курс не ругали из-за устаревшего языка программирования Octave (на котором пишут на Matlab), на мой вкус — это пока что самый простой и понятный курс по ML. Машинное обучение (Coursera) https://www.coursera.org/learn/machine-learning — стэнфордский курс по машинному обучению от Andrew Ng

mlcourse.ai — это открытый курс машинного обучения от ODS. Авторы смогли разработать курс машинного обучения с балансом между теорией и практикой, когда в лекции вы разбираете достаточно подробно математику, а затем упражняетесь сначала в блокноте, затем на Kaggle.

Более продвинутые курсы по ML

Если хочется погрузиться в математические доказательства методов машинного обучения, то есть прекрасные ШАДовские лекции К.В. Воронцова: плейлист «Курс «Машинное обучение» 2019” на YouTube-канале “Компьютерные науки», www.youtube.com/watc? v=SZkrxWhI5qM&list=PLJOzdkh8T5krxc4HsHbB8g8f0hu7973fK&index=2

Также хорош ежегодный гарвардский курс «Advanced Topics in Data Science CS109B». harvard-iacs.github.io/2020-CS109B/

Или курс по углубленным алгоритмам Advanced ML от ВШЭ: «Специализация Продвинутое машинное обучение» www.coursera.org/specializations/aml

Deep learning

(Мне кажется, можно пройти один курс из списка, а остальные смотреть на предмет дополнений)

Рекомендованный Стэнфордовский курс по DL «CS231n: Convolutional Neural Networks for Visual Recognition» cs231n.github.io/

Хороший курс от Университета Карнеги—Меллон «11-785 Introduction to Deep Learning» deeplearning.cs.cmu.edu/F21/index.html

Курс от MIT: «Practical Deep Learning for Coders» https://course.fast.ai/

ШАДовский курс по глубокому обучению доступен в github: «Practical_DL» github.com/yandexdataschool/Practical_DL

Бесплатные классные курсы от МФТИ: dlschool.org/

Также есть курс по DL у ODS.ai, который тоже советуют проходить в самом сообществе: «Deep Learning на пальцах» dlcourse.ai/

А еще есть курс у Samsung AI Research Center на Stepik.org stepik.org/course/50352/info

Natural Language Processing

Стэнфордовский «CS224n: Natural Language Processing with Deep Learning » web.stanford.edu/class/cs224n/

Второй курс у Samsung AI Research Center на Stepik.org https://stepik.org/course/54098/promo

Reinforcement Learning & Self-driving cars

От Deepmind «RL Course by David Silver» www.youtube.com/watc? v=2pWv7GOvuf0

Австралийский курс StarAi «Deep Reinforcement Learning Course » www.starai.io/course/

Data Engineering & MLOps

Бесплатный курс по DE от Дмитрия Аношина, дата-инженера из Microsoft, ex-Amazon: Getting start with Data Engineering and Analytics https://datalearn.ru/ (курс готовится in progress)

Соревнования

Ну, и для обучения решению разнообразных задач и оптимизации кода — участвуйте в Kaggle. https://kaggle.com/

Кроме Kaggle, есть еще несколько соревнований:

Источник

Курс по машинному обучению на Coursera от Яндекса и ВШЭ

Когда-то мы публиковали на Хабре курс по машинному обучению от Константина Воронцова из Школы анализа данных. Нам тогда предлагали сделать из этого полноценный курс с домашними заданиями и разместить его на Курсере.

И сегодня мы хотим сказать, что наконец можем выполнить все эти пожелания. В январе на Курсере пройдёт курс, организованный совместно Яндексом (Школой анализа данных) и ВШЭ. Записаться на него можно уже сейчас: 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. Машинное обучение в прикладных задачах
В этом модуле мы подведем итоги курса, вспомним основные этапы решения задачи анализа данных. Также мы разберем несколько задач из прикладных областей, чтобы подготовиться к выполнению финального проекта.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *