Автор | Филип Пьекневски
Компиляция | Цзыци Чжан
Благодаря постоянному развитию искусственного интеллекта технология глубокого обучения достигла больших успехов в многоагентном обучении, системах логического вывода и системах рекомендаций.
Для мультиагентов ключевую роль играет возможность прогнозирования. Хорошо обученный агент уже может одурачить людей с нормальным IQ! Вы можете не поверить, что простое изучение 90% команд движения из реактивной системы уже может привести к такому «достижению».
Это достигается совмещением статистики и динамики. Для этой задачи большинство решений решается путем построения вероятностной модели с помощью статистических методов. Это то же самое, что и исследование поведения. но,В этих двух типах исследований применение статистических методов может игнорировать некоторые важные экстремальные значения, и важную важную информацию часто можно получить только в соответствии с распределением этих экстремальных значений.
Филип Пекневски — ветеран-энтузиаст искусственного интеллекта, однажды опубликовал запись в блоге, в которой подробно описал процесс реализации вышеупомянутого мультиагента.
Недавно он опубликовал еще один пост в блоге с подробным описанием:Predictive Vision Model для внедрения парадигм прогнозирования в модели машинного обучения.
Это интересная длинная статья, я надеюсь, что вы найдете время, чтобы прочитать ее. Далее кратко представлена идея и некоторые детали модели визуального прогнозирования.
Смысл
В этой статье строится прогностическая модель, которая принимает сенсорную информацию в качестве входных данных в визуальных условиях.Поскольку уравнение движения сенсорной информации не может быть точно установлено, это можно сделать только с помощью машинного обучения.
Реализация так же проста, как связывание текущего входного значения с будущим эквивалентным значением, что похоже на автоэнкодер, но текущая модель предсказывает не сам сигнал, а следующий кадр сигнала. Как только соответствие установлено, сформированная система может предсказать следующее входное значение.
На самом деле, мы можем обучать и использовать эту систему одновременно. Очевидно, что полученная система не может точно выводить действительное внешнее значение, но может дать приближение, достаточно близкое к реальной ситуации. Во многих случаях таких приближений достаточно для обеспечения надежной работы.
Детали реализации
Создание кодировщика с предсказанием, как описано выше, само по себе довольно просто.Суть проблемы в масштабировании. При построении системы эту проблему иногда можно решить, разбив большую систему на более мелкие части или уменьшив число, а не сразу строя огромное целое. Мы применяем эту идею.
Вместо создания одного крупномасштабного предиктивного кодировщика для обработки больших изображений мы создаем множество мелкомасштабных предиктивных кодировщиков.При работе каждый маленький энкодер вводит и обрабатывает небольшой фрагмент, а рабочий процесс показан на следующей схеме:
Таким образом, мы получаем «распределенную» систему прогнозирования.
Конечно, проблема все еще существует: хотя каждое устройство может делать прогнозы независимо, сигналы, которые они обрабатывают, в некоторой степени согласуются в глобальном масштабе.
Как добиться совместного использования ресурсов для повышения операционной эффективности?
взаимосвязано! Мы можем попытаться соединить эти независимые единицы так, чтобы каждая единица могла сообщить своим соседям о том, что они только что увидели (предсказали).
Звучит довольно хорошо, но если мы теперь отправим несколько наборов копий сигнала каждому устройству, т. е. прогнозируемую информацию для каждого устройства, то количество информации, которое будут принимать эти устройства, значительно возрастет, а давление времени и пространства может представить себе, насколько мы не можем расширить систему дальше.
Как решить эту проблему?
компрессия! Метод сжатия подобен шумоподавляющему автоэнкодеру, заставляющему каждую единицу только прогнозировать и использовать только базовые функции для прогнозирования.
Мы реализуем функцию сжатия, вводя узкое место и сжимая средний слой. Как только эта функция реализована, мы можем использовать «сжатую» информацию представления для подключения к соседним ячейкам, таким образом формируя боковые связи. Рабочий процесс показан на рисунке ниже
На данный момент мы добились: каждый юнит может предсказывать не только свой ввод, но и ввод близлежащих юнитов. Поскольку сенсорные данные обычно имеют характеристики местности, дополнительная информация об этих близлежащих единицах часто очень полезна для прогнозирования.
Важно отметить, что даже несмотря на то, что текущая система редко связана (локально связана), эту систему можно масштабировать до тех пор, пока мы добавляем больше единиц (фактически обрабатывая изображения с более высоким разрешением), и общее время сходимости не будет под влиянием любого воздействия (при условии, что добавленный хешрейт пропорционален добавленным единицам).
Наслоение и обратная связь
Теперь у нас есть только один слой единиц для прогнозирования будущих входных данных, поэтому возникает проблема: для этой системы мы делаем прогнозы в очень мелком масштабе. Однако эта однослойная система прогнозирования бессильна даже при наличии боковой обратной связи при попытке получить закономерности более масштабных сценариев.
Чтобы по-прежнему находить шаблоны в крупномасштабных сценах, мы могли бы подумать об использовании одного устройства, которое могло бы обрабатывать всю сцену, но, поскольку оно не масштабируется, эта идея неосуществима. Но обратите внимание, что мы уже сжали данные, если мы добавим еще один слой для прогнозирования сжатых признаков первого слоя, каждая единица в этом слое получит большее поле зрения (хотя это приведет к потере функциональности, бесполезной для прогнозов более низкого уровня). ). Как показано ниже:
Что ж, теперь, когда у нас есть более высокий слой клеток, мы можем обнаружить регулярность более крупного поля зрения. Мы можем продолжать добавлять слои, пока не получим единицу, которая фиксирует регулярность всей сцены, хотя эта единица может не обрабатывать очень высокие разрешения.
Увеличение количества слоев приводит к увеличению количества блоков. Каждый блок будет генерировать прогнозную информацию. Что может сделать дополнительная прогнозная информация в середине?
Опубликовать в качестве обратной связи! Таким образом, это может помочь единицам нижнего уровня делать более точные прогнозы, как показано на следующем рисунке:
На данный момент мы выполнили задачу построения системы полной модели визуального прогнозирования. Каждый блок имеет свою четкую целевую функцию, ошибка распространяется по системе распределенным образом, а не в виде одной метки обратного распространения, и система по-прежнему масштабируема. В принципе, это общая модель визуального предсказания — без каких-либо искажений, просто расстановка ассоциативных воспоминаний по-новому.
Основная цель модели — делать прогнозы. Если вы построите внутреннюю модель входного сигнала, эта система все еще может выполнять свою работу. Благодаря внутренним контурным соединениям систему можно расширить до очень сложных моделей. Анимация ниже показывает поток информации:
Хорошо, теперь, когда проектирование системы завершено, давайте уточним, что она на самом деле может сделать.Перед этим следует подчеркнуть несколько важных моментов в модели:
PVM использует ассоциативные ячейки памяти для сжатия данных, что может быть достигнуто обратным распространением или другими методами: машины Болтмана, Spiking Networks и т. д. Это также дает системе огромную гибкость с точки зрения аппаратного обеспечения.
Система распределена, и проблема исчезающих градиентов полностью исключена, поскольку обучающий сигнал является локальным, насыщенным и достаточно сильным. Таким образом, нет необходимости в свертках, сложных методах регуляризации и т. д.
PVM можно применять к визуальному аспекту, конечно, можно применять и другие режимы. На самом деле вы можете комбинировать шаблоны так, чтобы они предсказывали друг друга на разных уровнях абстракции.
Обратная связь в PVM может быть организована произвольно. Если сигнал прогностический, то он будет использован, иначе будет проигнорирован (худшее, что может случиться).
Входным сигналом в PVM может быть одиночное изображение (например, кадр в видео) или последовательность. На самом деле, я провел несколько содержательных экспериментов по обработке видеокадров.
-
Если небольшая часть входного сигнала искажена предсказуемым образом (например, битый пиксель на камере), это будет предсказано на нижних уровнях обработки, и чем больше он распространяется на верхние слои, тем больше будет эффект. маленький. В крайних случаях, таких как долговременно недействительные пиксели, они могут быть предсказаны только параноидальными единицами (константами), а их существование может быть полностью проигнорировано более высокими уровнями, подобно слепому пятну в человеческом глазу.
Ошибки сигналов — это в основном аномальные сигналы обнаружения, являющиеся побочным продуктом системы. В разных масштабах могут быть получены разные уровни информации об аномалиях. Эта информация является очень полезным сигналом для распознавания действий, включающим концепцию значимости и механизмов внимания.
Это действительно работает? Мы используем эксперименты, чтобы доказать это!
Обширные эксперименты доказывают, что PVM действительно играет огромную роль в основных задачах прогнозирования, но может ли он делать что-то еще?
С одной стороны, рекомендательные системы используют ошибки прогнозирования, чтобы предоставить пользователям ту информацию, которую они хотят, но это длительный процесс.
С другой стороны, мы решили добавить контролируемую задачу визуального отслеживания объектов и протестировать на ней реальную производительность PVM.
Добавим в PVM несколько мелочей:
Закрываем блок обработки (его собственное предыдущее состояние становится частью контекста). Такой подход делает блок PVM похожим на рекуррентную нейронную сеть с короткими ответами. Конечно, LSTM можно добавить, но мне действительно не нравятся LSTM, потому что они выглядят очень «неестественно».
Во входной вектор мы добавляем несколько «предварительно вычисленных признаков», которые используются только для того, чтобы помочь простому трехслойному персептрону найти соответствующие шаблоны.
Мы также добавляем слой считывания, который при явном обучении с учителем (теперь помеченные как данные, прямоугольники с M) обучает тепловые карты интересующих объектов. Как и остальная часть системы PVM, эта тепловая карта создается распределенным образом всеми устройствами, а затем объединяется для вычисления границ цели.
Процесс создания тепловой карты:
В общем: работает! Подробную информацию можно найти в моей длинной статье.
Часто, обучая эту систему, мы можем использовать ее для стабильного визуального отслеживания объектов, которое превосходит некоторые современные средства отслеживания объектов.
Первая строка слева направо: визуальная входная информация, внутренние сжатые сигналы активации последующих слоев.
Вторая строка: непрерывная информация прогноза. Визуальные предсказания для первого слоя, предсказания второго слоя для активаций первого слоя и т. д.
Третья строка — это информация об ошибке (отклонение между фактической информацией и прогнозом).
Четвертая строка находится под наблюдением на тепловой карте (в нашем эксперименте является «остановка», чувствительна к знакам).
Последний столбец: Визуальная информация для различных трасс.
Ниже приведены примеры других целей слежения в наборе данных (обратите внимание, что мы никогда не оцениваем систему на обучающем наборе, потому что обобщение обученной системы очень плохое), красный прямоугольник представляет реальную наземную цель, помеченную человеком, желтое поле - возврат PVM. В целом, он работает очень хорошо, особенно он по-прежнему работает с видео с низким разрешением (96*96) (хотя этого разрешения достаточно, чтобы люди могли понять объекты в сцене).
в заключении
Все мы знаем, что глубокая сверточная нейронная сеть, предложенная в 1980-х годах, была разработана на основе неврологических знаний 1960-х годов и до сих пор очень популярна.
В отличие от сверточной нейронной сети, PVM представляет собой новый алгоритм, основанный на новой структуре и функции коры головного мозга. PVM может избежать многих проблем, возникающих при машинном обучении, таких как проблемы переобучения и исчезновения градиента. Он также не использует некоторые сложные приемы: такие как свертка и регуляризация, он рассматривает задачу как задачу онлайн-предсказания сигнала.
Хотя PVM нельзя использовать в качестве черного ящика для восприятия чего-либо (никто не знает, существует ли этот черный ящик), он все же очень конкурентоспособен по сравнению с различными методами применения восприятия, здесь мы должны упомянуть метод глубокого обучения, для сравнения, это самая большая проблема. Что отличает PVM, так это то, что он управляется интуицией и заставит робота действительно работать в долгосрочной перспективе.
В настоящее время приобретенные эксперименты на PVM можно найти на GitHub, наслаждайтесь!
использованная литература:
[1]http://blog.piekniewski.info/2016/11/03/reactive-vs-predictive-ai/
[2]http://blog.piekniewski.info/2016/11/04/predictive-vision-in-a-nutshell/
[3]https://arxiv.org/abs/1607.06854
[4]http://blog.piekniewski.info/2016/05/09/deep-nets-and-the-brain/
[5]https://github.com/braincorp/PVM