воронцов машинное обучение pdf
bashkirtsevich / reading.md
Для тех, кто хочет на русском языке почитать:
Джеймс Г., Уиттон Д., Хасти Т., Тибширани Р. Введение в статистическое обучение с примерами на языке R источник, Оглавление и отрывки из глав
Себастьян Рашка Python и машинное обучение источник
Хенрик Бринк, Джозеф Ричардс Машинное обучение источник
Хараламбос Марманис, Дмитрий Бабенко Алгоритмы интеллектуального Интернета. Передовые методики сбора, анализа и обработки данных источник
К. В. Воронцов. Математические методы обучения по прецедентам (теория обучения машин) источник
Мерков А.Б. Введение в методы статистического обучения источник
Аркадий Гелиг, Алексей Матвеев Введение в математическую теорию обучаемых распознающих систем и нейронных сетей. Учебное пособие источник
Мерков А.Б. Построение и обучение вероятностных моделей источник
Ричарт В., Коэльо П.Л. Построение систем машинного обучения на языке Python источник, Оглавление и отрывки из глав (тут больше практика по машинному обучению)
Вьюгин В. Математические основы машинного обучения и прогнозирования источник
Червоненкис А.Я. Теория обучения машин
Ричард С. Саттон, Эндрю Г. Барто Обучение с подкреплением источник
Андреас Мюллер, Сара Гвидо Введение в машинное обучение с помощью Python. Руководство для специалистов по работе с данными источник
Дэви Силен, Арно Мейсман Основы Data Science и Big Data. Python и наука о данных источник
Лепский А.Е., Броневич А.Г. Математические методы распознавания образов: Курс лекций источник
В. И. Донской Алгоритмические модели обучения классификации:обоснование, сравнение, выбор источник
Местецкий Л.М. Математические методы распознавания образов Курс лекций источник
Кристофер Д. Маннинг, Прабхакар Рагхаван Введение в информационный поиск источник
Юре Лесковец, Ананд Раджараман Анализ больших наборов данных источник, оглавление и отрывки из глав
Шлезингер М.И. Десять лекций по статистическому и структурному распознаванию образов источник
Для тех, кто хочет на русском языке посмотреть:
Высшая школа экономики «Введение в машинное обучение» источник Coursera
Специализация Машинное обучение и анализ данных включающая себя 6 курсов : источник Coursera
Видеолекции курса «Машинное обучение» от Школы анализа данных Яндекса источник на яндексе или источник на ютубе
Специализация Анализ Данных от Stepik (часть курсов из этой специализации отображена тут)
Курс от Stepik Нейронные сети источник
Видеолекциии (13шт.) Введение в анализ данных источник Mail.ru
Видеолекциии (1 семестр) Data Minig источник Mail.ru
Видеолекциии (2 семестр) Data Minig источник Mail.ru
Computer Science Center Машинное обучение, часть 1 (осень 2016) источник ютуб
Computer Science Center Машинное обучение, часть 2 (весна 2017) источник ютуб
Data Mining in Action 10 лекций по ML источник ютуб
Компьютерные науки Тренировки Machine Learning источник ютуб здесь люди делятся своим реальным опытом в ML
Высшая школа экономики, курс Линейная алгебра источник Coursera
Лекториум Линейная алгебра и аналитическая геометрия источник ютуб
МФТИ, курс Теория вероятностей для начинающих источник Coursera
МФТИ, курс Математика для всех источник Coursera
Курс от Stepik Основы статистики часть1,часть2, часть3
Курс от Stepik Математическая статистика источник
Курс от Stepik Введение в дискретную математику источник
Курс от Stepik Ликбез по дискретной математике источник
Курс от Stepik Введение в математический анализ источник
Курс от Stepik Математический анализ часть1, часть2
Курс от Stepik Анализ данных в R часть1, часть2
Computer Science Center Анализ данных на R в примерах и задачах (весна 2016) источник ютуб
Computer Science Center Анализ данных на R в примерах и задачах, часть 2 (весна 2017) источник ютуб
Канал на ютубе Основы анализа данных источник
KhanAcademyRussian Теор. вероятн-ей и комбинаторика источник ютуб
Прежде чем заниматься конкретно машинным обучением, рекомендую всё же ознакомится с книгами
С_тюарт Рассел, Питер Норвиг_ Искусственный интеллект. Современный подход источник
Джордж Ф. Люгер Искусственный интеллект. Стратегии и методы
решения сложных проблем источник
таким образом у вас сформируется более четкое понимание предметной области машинного обучения и сильно расширит ваш кругозор. Нейронные сети занимают важную позицию в машинном обучении, поэтому стоит ознакомится с книгой
Так же вы должны уметь производить предварительный анализ данных, что бы понять, какие методы машинного обучения можно применить к вашему набору данных или как его лучше подготовить, в этом вам помогут следующие книги:
Борис Миркин Введение в анализ данных. Учебник и практикум источник
Марина Архипова, Татьяна Дуброва Анализ данных. Учебник источник
Загоруйко Н.Г. Прикладные методы анализа данных и знаний источник
Мостеллер Ф., Тьюки Дж. Анализ данных и регрессия источник
Рубан А.И. Методы анализа данных
Уэс Маккинни Python и анализ данных источник (практика)
Роберт И. Кабаков R в действии. Анализ и визуализация данных на языке R источник (практика)
Вы должны знать хорошо математику (в особенности линейную алгебру), статистику, теорию вероятностей, дискретную математику. Я например неважно знаю математику и мне очень тяжело читать стандартные учебники, рассчитанные на то, что преподаватель сможет разжевать скупое описание формулы, поэтому для легкого порога вхождения рекомендую следующие книги (от основ и выше):
Стивен Х. Строгац Удовольствие от x. Увлекательная экскурсия в мир математики от одного из лучших преподавателей в мире источник
Юрий Шиханович Введение в современную математику. Начальные понятия источник
Рональд Л. Грэхем, Дональд Эрвин Кнут Конкретная математика. Математические основы информатики источник
Юрий Пухначев Математика без формул книга1, книга2
Риxард Курант, Герберт Роббинс Что такое математика? источник
Тарасов Л.В. Азбука математического анализа. Беседы об основных понятиях. Учебное пособие источник
Потом уже можно браться за стандартный учебник математического анализа
Статистика, теория вероятностей:
Гнеденко Б.В., Хинчин А.Я. Элементарное введение в теорию вероятностей источник
Сара Бослаф Статистика для всех источник
Чарльз Уилан Голая статистика. Самая интересная книга о самой скучной науке источник
Перечень будет дополнятся только если появится действительно стоящий курс или книга.
Воронцов. Курс «Машинное обучение» 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» и методы для введения изучающих действий.
В заключительной лекции даётся беглый обзор курса, выделяются многочисленные сходства и взаимосвязи между различными методами машинного обучения, обсуждаются идеи разнообразных гибридных подходов.