Глава 11. Заключение
Ух ты, это было быстро! Вы действительно молодцы, если добрались сюда и сумели понять большую часть материала книги.
Если вы посмотрите на номер внизу этой страницы, то увидите, что я превысил лимит бумаги, а значит, название книги было немного вводящим в заблуждение. Надеюсь, вы простите мне этот маленький маркетинговый трюк. В конце концов, если бы я хотел сделать эту книгу ровно стостраничной, я мог бы уменьшить размер шрифта, белые поля и межстрочный интервал или удалить раздел по UMAP и оставить вас один на один с оригинальной статьей. Поверьте мне: вы бы не хотели остаться один на один с оригинальной статьей по UMAP! (Шутка.)
Однако, остановившись сейчас, я уверен, что вы получили все необходимое, чтобы стать отличным современным аналитиком данных или инженером по машинному обучению. Это не значит, что я охватил все, но то, что я изложил на ста с лишним страницах, вы найдете в куче книг, каждая толщиной в тысячу страниц. Многое из того, что я осветил, вообще отсутствует в книгах: типичные книги по машинному обучению консервативны и академичны, в то время как я сделал акцент на тех алгоритмах и методах, которые будут полезны вам в повседневной работе.
Что именно я бы охватил, если бы это была тысячестраничная книга по машинному обучению?
11.1 Что не было рассмотрено
11.1.1 Тематическое моделирование
В анализе текста тематическое моделирование (topic modeling) является распространенной задачей обучения без учителя. У вас есть коллекция текстовых документов, и вы хотели бы обнаружить темы, присутствующие в каждом документе. Латентное размещение Дирихле (Latent Dirichlet Allocation - LDA) — очень эффективный алгоритм обнаружения тем. Вы решаете, сколько тем присутствует в вашей коллекции документов, и алгоритм присваивает тему каждому слову в этой коллекции. Затем, чтобы извлечь темы из документа, вы просто подсчитываете, сколько слов каждой темы присутствует в этом документе.
11.1.2 Гауссовские процессы
Гауссовские процессы (Gaussian processes - GP) — это метод обучения с учителем, который конкурирует с ядерной регрессией. Он имеет некоторые преимущества перед последней. Например, он предоставляет доверительные интервалы для линии регрессии в каждой точке. Я решил не объяснять GP, потому что не смог придумать простого способа их объяснить, но вы определенно могли бы потратить некоторое время на изучение GP. Это будет хорошо потраченное время.
11.1.3 Обобщенные линейные модели
Обобщенная линейная модель (Generalized Linear Model - GLM) — это обобщение линейной регрессии для моделирования различных форм зависимости между входным вектором признаков и целевой переменной. Логистическая регрессия, например, является одной из форм GLM. Если вас интересует регрессия, и вы ищете простые и объяснимые модели, вам определенно стоит подробнее почитать о GLM.
11.1.4 Вероятностные графические модели
Я упоминал один пример вероятностных графических моделей (probabilistic graphical models - PGMs) в Главе 7: условные случайные поля (conditional random fields - CRF). С помощью CRF вы можете моделировать входную последовательность слов и взаимосвязи между признаками и метками в этой последовательности как граф последовательной зависимости. В более общем случае PGM может быть любым графом. Граф — это структура, состоящая из набора узлов (nodes) и ребер (edges), каждое из которых соединяет пару узлов. Каждый узел в PGM представляет некоторую случайную величину (значения которой могут быть наблюдаемыми или ненаблюдаемыми), а ребра представляют условную зависимость одной случайной величины от другой. Например, случайная величина «мокрый тротуар» зависит от случайной величины «погодные условия». Наблюдая значения некоторых случайных величин, алгоритм оптимизации может изучить из данных зависимость между наблюдаемыми и ненаблюдаемыми переменными.
Если вы решите узнать больше о PGM, они также известны как байесовские сети, сети доверия и сети вероятностной независимости.
11.1.5 Цепи Маркова методом Монте-Карло
Если вы работаете с графическими моделями и хотите генерировать выборки из очень сложного распределения, определяемого графом зависимостей, вы можете использовать алгоритмы Цепей Маркова методом Монте-Карло (Markov Chain Monte Carlo - MCMC). MCMC — это класс алгоритмов для выборки из любого математически определенного распределения вероятностей. Помните, когда мы говорили о шумоподавляющих автокодировщиках, мы генерировали шум из нормального распределения. Выборка из стандартных распределений, таких как нормальное или равномерное, относительно проста, поскольку их свойства хорошо известны. Однако задача выборки становится значительно сложнее, когда распределение вероятностей может иметь произвольную форму, определяемую сложной формулой.
11.1.6 Генеративно-состязательные сети
Генеративно-состязательные сети (Generative adversarial networks - GANs) — это класс нейронных сетей, используемых в обучении без учителя. Они реализуются как система из двух нейронных сетей, соревнующихся друг с другом в условиях игры с нулевой суммой (zero-sum game). Самое популярное применение GAN — научиться генерировать фотографии, которые выглядят подлинными для человеческих наблюдателей. Первая из двух сетей принимает случайный вход (обычно гауссовский шум) и учится генерировать изображение в виде матрицы пикселей. Вторая сеть принимает на вход два изображения: одно «реальное» изображение из
некоторой коллекции изображений, а также изображение, сгенерированное первой сетью. Вторая сеть должна научиться распознавать, какое из двух изображений было сгенерировано первой сетью. Первая сеть получает отрицательную потерю, если вторая сеть распознает «поддельное» изображение. Вторая сеть, с другой стороны, получает штраф, если ей не удается распознать, какое из двух изображений является поддельным.
11.1.7 Генетические алгоритмы
Генетические алгоритмы (Genetic algorithms - GA) — это техника численной оптимизации, используемая для оптимизации недифференцируемых целевых функций оптимизации. Они используют концепции из эволюционной биологии для поиска глобального оптимума (минимума или максимума) задачи оптимизации путем имитации эволюционных биологических процессов.
GA работают, начиная с начального поколения возможных решений. Если мы ищем оптимальные значения параметров нашей модели, мы сначала случайным образом генерируем несколько комбинаций значений параметров. Затем мы тестируем каждую комбинацию значений параметров по целевой функции. Представьте каждую комбинацию значений параметров как точку в многомерном пространстве. Затем мы генерируем последующее поколение точек из предыдущего поколения, применяя такие понятия, как «отбор», «скрещивание» и «мутация».
Вкратце, это приводит к тому, что каждое новое поколение сохраняет больше точек, похожих на те точки из предыдущего поколения, которые показали наилучшие результаты по целевой функции. В новом поколении точки, показавшие наихудшие результаты в предыдущем поколении, заменяются «мутациями» и «скрещиваниями» точек, показавших наилучшие результаты. Мутация точки получается путем случайного искажения некоторых атрибутов исходной точки. Скрещивание — это определенная комбинация нескольких точек (например, среднее).
Генетические алгоритмы позволяют находить решения для любых измеримых критериев оптимизации. Например, GA можно использовать для оптимизации гиперпараметров алгоритма обучения. Они обычно намного медленнее, чем методы оптимизации на основе градиентов.
11.1.8 Обучение с подкреплением
Как мы уже обсуждали, обучение с подкреплением (reinforcement learning - RL) решает очень специфический вид проблем, где принятие решений является последовательным. Обычно есть агент, действующий в неизвестной среде. Каждое действие приносит награду и перемещает агента в другое состояние среды (обычно в результате некоторого случайного процесса с неизвестными свойствами). Цель агента — оптимизировать свою долгосрочную награду.
Алгоритмы обучения с подкреплением, такие как Q-обучение, и их аналоги на основе нейронных сетей используются для обучения игре в видеоигры, навигации и координации роботов, управления запасами и цепочками поставок, оптимизации сложных систем электроснабжения (энергосистем) и обучения стратегиям финансовой торговли.
* * *
Книга на этом заканчивается. Не забывайте время от времени посещать сопутствующую вики книги, чтобы быть в курсе новых разработок в каждой рассмотренной в книге области машинного обучения. Как я сказал в предисловии, эта книга, благодаря постоянно обновляемой вики, как хорошее вино, со временем становится только лучше после покупки.
О, и не забывайте, что книга распространяется по принципу «сначала прочитай, потом купи». Это означает, что если, читая эти слова, вы смотрите на PDF-файл и не можете вспомнить, что заплатили за него, вы, вероятно, тот самый человек, которому стоит купить книгу.
11.2 Благодарности
Высокое качество этой книги было бы невозможно без редакторов-волонтеров. Я особенно благодарен следующим читателям за их систематический вклад: Бобу ДюШарму, Мартейну ван Аттекуму, Даниэлю Мараини, Али Азизу, Рэйчел Мак, Кельвину Сундли и Джону Робинсону.
Другие замечательные люди, которым я благодарен за их помощь: Майкл Анузис, Кнут Свердруп, Фредди Дреннан, Карл В. Хэндлин, Абхиджит Кумар, Лассе Веттер, Рикардо Рейс, Даниэль Гросс, Йоханн Фаузи, Акаш Агравал, Натанаэль Вейл, Филип Екич, Абхишек Бабуджи, Луан Виейра, Саяк Пол, Вахейд Уоллетс, Лоренцо Буффони, Эли Фридман, Лукаш Мондры, Хаолан Цинь, Бибек Бехера, Дженнифер Купер, Нишант Тьяги, Денис Ахияров, Арон Янарв, Александр Овчаренко, Рикардо Риос, Майкл Маллен, Мэтью Эдвардс, Дэвид Этлин, Манодж Баладжи Дж, Дэвид Рой, Луан Виейра, Луис Феликс, Ананд Мохан, Хади Сотуде, Чарли Ньюи, Замир Акимбеков, Хесус Ренеро, Каран Гадия, Мустафа Аныл Дербент, Дж. К. Венстра, Жолт Крейс, Иан Келли, Лукаш Завада, Роберт Уэрехам, Томас Босман, Лв Стивен, Ариэль Россаниго, Майкл Лампкинс, Сесиль Созуер, Борис Куамбо, И Чжеён, Тим Флоке, Мохамед Бехери, Ана Фотина, Самин Иштьяк, Алексей Шматов, Кристиан Йенш и Лучано Сегура.