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

Обучение с учителем полезно в тех случаях, когда свойство (метка) доступно для определенного набора данных (обучающего набора), но отсутствует и требует прогнозирования для других экземпляров. Для этого требуется как минимум два набора данных: обучающий набор, состоящий из входных данных с ожидаемым результатом, и тестовый набор, состоящий из входных данных без ожидаемого результата. Оба этих набора данных должны состоять из помеченных данных, т. е. шаблонов данных, для которых цель заранее известна.

Обучение без учителя полезно в тех случаях, когда задача состоит в том, чтобы обнаружить неявные связи в заданном неразмеченном наборе данных (элементы не назначаются заранее). Это лучше всего работает, если у вас много данных (обычно организованных в наборы данных). Стратегии без учителя обычно используются для обнаружения скрытых структур (таких как скрытые цепи Маркова) в немаркированных данных или преобразования многомерных данных в понятное человеку пространство (2D, 3D) с использованием методов уменьшения размерности.

Обучение с подкреплением находится между этими двумя крайностями: существует некоторая форма обратной связи, доступная для каждого прогнозирующего шага или действия, но нет точной метки или сообщения об ошибке.

Классификация

Классификация — это общий процесс, связанный с категоризацией, процесс, в котором идеи и объекты узнаются, дифференцируются и понимаются. Примеры ниже иллюстрируют визуальные результаты различных алгоритмов обучения с учителем, которые обучаются на одних и тех же данных. Эти алгоритмы пытаются найти границы решений трех разных классов, которые обозначены тремя разными оттенками серого цвета. Края выделены на каждом изображении, чтобы понять, как алгоритм определяет границы своего решения. Изображения генерируются с помощью алгоритмов из Gesture Recognition Toolkit Ника Джиллиана.

1. Оригинальные обучающие примеры, 2. Наивный байесовский алгоритм, 3. Mindist, 4. Модель смеси Гаусса, 5. Дерево решений, 6. k-ближайший сосед, 7. Метод опорных векторов, 8. Adaboost

Я провел сравнение этих алгоритмов на размеченном семантическом аудио в разделе моего оригинального исследовательского блога, чтобы увидеть, как они работают в более реальном сценарии. Упрощенное и простое описание этих методов можно прочитать в NIME paper of ml-lib 2015 года (библиотека программного обеспечения, реализующая набор инструментов распознавания жестов в Pure Data / Max):

Adaboost
AdaBoost (Adaptive Boosting) — это мощный классификатор, который хорошо работает как с базовыми, так и с более сложными задачами распознавания. AdaBoost работает, создавая высокоточный классификатор, комбинируя множество относительно слабых и неточных классификаторов. Таким образом, AdaBoost действует как метаалгоритм, который позволяет использовать его в качестве оболочки для других классификаторов».

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

Гауссова модель смеси
Классификатор модели смеси Гаусса (GMM) — это простой, но полезный алгоритм классификации с контролируемым обучением, который можно использовать для классификации широкого спектра N-мерных сигналов».

k-Nearest Neighbor
'Классификатор K-ближайших соседей (KNN) — это простой классификатор, который хорошо работает с основными задачами распознавания, однако он может быть медленным для прогнозирования в реальном времени, если есть большое количество обучающих примеров и неустойчив к зашумленным данным. В распознавании образов алгоритм k-ближайших соседей (или сокращенно k-NN) представляет собой непараметрический метод, используемый для классификации и регрессии. В обоих случаях вход состоит из k ближайших обучающих примеров в пространстве признаков».

Машина опорных векторов
'В машинном обучении машины опорных векторов (SVM, также поддерживают векторные сети) представляют собой модели обучения с учителем и соответствующими алгоритмами обучения, которые анализируют данные и распознают шаблоны, используемые для классификации и регрессии. анализ. Учитывая набор обучающих примеров, каждый из которых помечен как принадлежащий к одной из двух категорий, обучающий алгоритм SVM строит модель, которая относит новые примеры к той или иной категории, что делает его невероятностным бинарным линейным классификатором. Модель SVM представляет собой представление примеров в виде точек в пространстве, нанесенных на карту таким образом, что примеры отдельных категорий разделены как можно более широким промежутком. Затем новые примеры сопоставляются с тем же пространством, и им предсказывается принадлежность к категории в зависимости от того, на какую сторону разрыва они попадают».

Регрессия

Регрессия — еще один метод контролируемого обучения. Мы можем думать о линейной регрессии как о задаче проведения прямой линии через набор точек. Для этого существует несколько возможных стратегий. В случае линейной регрессии мы можем нарисовать линию, а затем для каждой точки данных измерить расстояние по вертикали между точкой и линией и сложить их; подобранная линия будет той, где эта сумма расстояний будет минимально возможной. Логистическая регрессия аналогична, но вместо линии используется логистическая функция, которая представляет собой кумулятивное логистическое распределение. Регрессию можно использовать для таких случаев, как предсказания, когда важнее знать вероятности, чем находить метки данных.

Обучение без учителя

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

Нейронные сети

Нейронная сеть — это «коннекционистская» вычислительная система. Ежедневные вычислительные системы, которые мы пишем, являются процедурными: программа начинается с первой строки кода, выполняет ее и переходит к следующей, следуя инструкциям линейным образом. Настоящая нейронная сеть не следует линейному пути. Скорее, информация обрабатывается коллективно, параллельно по всей сети узлов (в данном случае узлами являются нейроны).

Наиболее распространенным алгоритмом обучения нейронных сетей является алгоритм обратного распространения ошибки, использующий стохастический градиентный спуск. Обратное распространение состоит из двух этапов: Проход с прямой связью — набор обучающих данных передается через сеть, записываются выходные данные нейронной сети и вычисляется ошибка сети, и Обратное распространение — сигнал ошибки передается обратно через сеть, а веса нейронной сети оптимизируются с помощью градиентного спуска.

Двухслойная нейронная сеть с прямой связью, сверху вниз: выходной слой с 5 единицами, скрытый слой с 4 единицами соответственно. В сети есть 3 входных блока (источник)

Нейронные сети с прямой связью (FFNN)
Нейронная сеть с прямой связью была первым и, возможно, самым простым из изобретенных типов искусственных нейронных сетей. В этой сети информация движется только в одном направлении — вперед: от входных узлов данные проходят через скрытые узлы (если они есть) и к выходным узлам. В сети нет циклов или петель. Сети прямого распространения могут быть построены из различных типов устройств, простейшим примером которых является персептрон. Непрерывные нейроны, часто с сигмоидальной активацией, используются в контексте обратного распространения ошибки.

Сверточные нейронные сети (CNN или ConvNet)
CNN — это тип искусственной нейронной сети с прямой связью, в которой модель связи между ее нейронами основана на Организация зрительной коры животных. Отдельные корковые нейроны реагируют на стимулы в ограниченной области пространства, известной как рецептивное поле. Рецептивные поля разных нейронов частично перекрываются, так что поле зрения мозаично. Реакция отдельного нейрона на стимулы в пределах его рецептивного поля может быть математически аппроксимирована операцией свертки. Сверточные сети были вдохновлены биологическими процессами и представляют собой вариации многослойных персептронов, предназначенных для использования минимального объема предварительной обработки. Они имеют широкое применение в распознавании изображений и видео, рекомендательных системах и обработке естественного языка.

Рекуррентные нейронные сети (RNN)
Это FFNN с завихрением времени: они не не имеют состояния; у них есть связи между проходами, связи во времени. Нейроны получают информацию не только от предыдущего слоя, но и от самих себя с предыдущего прохода. Это означает, что порядок, в котором вы вводите входные данные и обучаете сеть, имеет значение. Одной из больших проблем с RNN является проблема исчезающего (или взрывающегося) градиента, когда, в зависимости от используемых функций активации, информация со временем быстро теряется, точно так же, как очень глубокие FFNN теряют информацию в глубине. Интуитивно это не было бы большой проблемой, потому что это просто веса, а не состояния нейронов, но веса во времени — это то место, где хранится информация из прошлого; если вес достигает значения 0 или 1 000 000, предыдущее состояние будет не очень информативным.

Сети с долговременной/кратковременной памятью (LSTM)
LSTMS пытаются бороться с проблемой исчезающего/взрывающегося градиента, вводя гейты и явно определенную ячейку памяти. Они вдохновлены главным образом схемотехникой, а не столько биологией. Каждый нейрон имеет ячейку памяти и три ворот: вход, выход и забывание. Функция этих ворот состоит в том, чтобы защищать информацию, останавливая или разрешая ее поток. Входной вентиль определяет, сколько информации из предыдущего слоя сохраняется в ячейке. Выходной слой берет на себя работу на другом конце и определяет, какая часть следующего слоя узнает о состоянии этой ячейки.

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

Обучение с подкреплением

RL — это область машинного обучения, вдохновленная бихевиористской психологией и связанная с тем, как программные агенты должны действовать в среде, чтобы максимизировать некоторое понятие кумулятивного вознаграждения. Проблема, благодаря своей общности, изучается во многих других дисциплинах, таких как теория игр, теория управления, исследование операций, теория информации, оптимизация на основе моделирования, многоагентные системы, групповой интеллект, статистика и генетические алгоритмы. В литературе по исследованию операций и контролю область, в которой изучаются методы обучения с подкреплением, называется приближенным динамическим программированием. Техника аналогична обучению с учителем, но вместо того, чтобы обучать их правильным меткам, они должны выяснить, какие функции изучать.

Нейронная сеть может быть подкреплена как отрицательно, так и положительно (источник)

Стратегии обучения с подкреплением состоят из трех компонентов. Политика, которая определяет, как нейронная сеть будет принимать решения, например. использование технических и фундаментальных индикаторов. Функция вознаграждения, которая отличает хорошее от плохого, например. зарабатывание против потери денег. И функция ценности, которая определяет долгосрочную цель. Есть действительно вдохновляющая заметка А. Карпати о том, как сеть может научиться играть в понг на основе необработанных пиксельных данных. Он также показывает разницу между творческим способом обучения человека и тупым, статистическим способом обучения машин.