Написано Виченцо Ломанко, приглашенным научным сотрудником Numenta

Меня зовут Винченцо Ломонако, и я работаю постдокторантом в Болонском университете, где в начале 2019 года я получил докторскую степень в области компьютерных наук, работая над Непрерывным обучением с помощью глубоких архитектур. в попытке сделать существующие системы ИИ более автономными и адаптивными. Лично я всегда был очарован и заинтригован научными открытиями, полученными за более чем 15 лет исследований Numenta на стыке биологического и машинного интеллекта. Теперь, будучи приглашенным ученым-исследователем в Numenta, я, наконец, получил возможность более подробно ознакомиться со всеми его увлекательными исследованиями.

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

Прежде чем углубляться в детали алгоритма HTM и его сходство с современными алгоритмами машинного обучения, возможно, стоит упомянуть теорию, которая охватывает исследования Numenta за последние 15 с лишним лет: Теория тысячи мозгов. интеллекта. Теория тысячи мозгов — это биологически ограниченная теория интеллекта, построенная путем обратного проектирования неокортекса. HTM - это алгоритмическая реализация и эмпирическая проверка ключевых компонентов теории в кремнии. Итак, давайте кратко рассмотрим их обоих ниже.

Теория интеллекта тысячи мозгов

Теория тысячи мозгов — это базовая сенсомоторная концепция интеллекта, основанная на моделях, объединяющая исследования в области неврологии, разработанные за почти два десятилетия исследований в Numenta и >Институт неврологии Редвуда (основан в 2002 году Джеффом Хокинсом). Несмотря на существенные анатомические и функциональные неврологические данные, он дает уникальную интерпретацию высокоуровневых вычислений, которые, как считается, происходят в неокортексе и приводят к разумному поведению.

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

Если вы хотите узнать больше о теории, я предлагаю начать с недавней статьи 2019 года Frontiers in Neural Circuits A Framework for Intelligence and Cortical Function Based on Grid Cells in the Neocortex. Я думаю, что временной, основанный на местоположении и композиционный характер фреймворка, наряду с революционным переосмыслением мультимодальной интеграции и иерархии, могут дать бесценную информацию для будущих разработок машинного обучения.

Дополнительная литература и интересные ресурсы, связанные с теорией, которая мне очень понравилась:

Алгоритм HTM

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

Даже если они существенно отличаются с точки зрения алгоритмического подхода и правил обучения, на более высоком уровне можно связать Иерархические временные воспоминания с Рекуррентными нейронными сетями. Фактически, HTM особенно подходят для моделирования обучения последовательности в качестве последнего воплощения RNN, такого как LSTM или GRU.

Однако основные отличия RNN заключаются в следующем: i) HTM имеют более сложную модель нейронов; ii) HTM используют не обратное распространение, а простое (и локальное) неконтролируемое правило обучения по Хеббиану; iii)HTM основаны на очень редких активациях и связях нейронов; iv)HTM основаны на двоичных единицах измерения и весах. С одной стороны, это означает, что HTM могут быть реализованы невероятно эффективным способом. С другой стороны, в случае многомерных входных шаблонов они могут стремиться решить проблему присвоения кредита, если сложены многоуровневым образом, как многослойные LSTM или Сверточные LSTM.

Тем не менее, алгоритм HTM поддерживает преднамеренно несколько свойств, которыми должен обладать каждый алгоритм обучения:

  1. Последовательное обучение
    Возможность моделировать паттерны с временной корреляцией представляет собой ключевое свойство интеллекта, поскольку оно дает как биологическим, так и искусственным системам необходимую способность предсказывать будущее. Он отвечает на основной вопрос «что будет дальше?» на основе того, что он видел раньше. Каждый алгоритм машинного обучения должен быть способен давать ценные прогнозы не только на основе статической пространственной информации, но и привязывать ее во времени.
  2. Прогнозы высокого порядка
    Реальные последовательности содержат контекстуальные зависимости, охватывающие несколько временных шагов, поэтому возможность делать прогнозы высокого порядка становится фундаментальной. Термин «порядок» относится к марковскому порядку, а именно к минимальному количеству предыдущих временных шагов, которые алгоритм должен учитывать, чтобы делать точные прогнозы. Идеальный алгоритм должен автоматически и эффективно запоминать порядок.
  3. Несколько одновременных прогнозов
    Для данного временного контекста может быть несколько возможных будущих результатов. С реальными данными часто недостаточно рассматривать только один лучший прогноз, когда информация неоднозначна. Хороший алгоритм последовательного обучения должен уметь делать одновременно несколько прогнозов и оценивать вероятность каждого прогноза в режиме онлайн. Это требует, чтобы алгоритм выводил распределение возможных будущих результатов.
  4. Непрерывное обучение
    Непрерывные потоки данных часто имеют изменяющуюся статистику. В результате алгоритм должен постоянно учиться на потоках данных и быстро адаптироваться к изменениям. Это свойство важно для обработки непрерывных перцептивных потоков в реальном времени, но оно недостаточно изучено в машинном обучении, особенно без сохранения и повторной обработки ранее обнаруженных данных.
  5. Онлайн-обучение
    Для потоков данных в реальном времени гораздо более ценно, если алгоритм может предсказывать и изучать новые закономерности на лету без необходимости хранить целые последовательности или пакетировать несколько последовательностей. вместе, как это обычно происходит при обучении рекуррентных нейронных сетей на основе градиента. Идеальный алгоритм последовательного обучения должен иметь возможность учиться на одном шаблоне за раз, чтобы повысить эффективность и время отклика по мере того, как разворачивается естественный поток.
  6. Помехоустойчивость и отказоустойчивость
    Реальное последовательное обучение имеет дело с зашумленными источниками данных, где шум датчиков, ошибки передачи данных и присущие устройствам ограничения часто приводят к неточным или отсутствующим данным. Хороший алгоритм последовательного обучения должен демонстрировать устойчивость к шуму на входе.
  7. Нет настройки гиперпараметров
    Обучение в коре чрезвычайно надежно для широкого круга задач. Напротив, большинство алгоритмов машинного обучения требуют оптимизации набора гиперпараметров для каждой задачи. Обычно это включает в себя поиск в указанном вручную подмножестве пространства гиперпараметров, руководствуясь показателями производительности в наборе данных перекрестной проверки. Настройка гиперпараметров представляет серьезную проблему для приложений, требующих высокой степени автоматизации, таких как интеллектуальный анализ потока данных. Идеальный алгоритм должен иметь приемлемую производительность в широком диапазоне задач без какой-либо настройки гиперпараметров для конкретной задачи.

В то время как особенно 4, 5, 6 и 7 чрезвычайно трудно удовлетворить в современной рекуррентной нейронной сети, HTM, естественно, превосходит их.

HTM от нуля до героя!

Дав краткую контекстуализацию алгоритма HTM, в этом разделе я попытаюсь предоставить краткую учебную программу для всех, кто хочет узнать о нем больше, начиная с нуля. В частности, я расскажу о двух основных частях: 1) реализация основного алгоритма и детали; 2) его практическое применение к реальным задачам обучения последовательности. Некоторые из подробных алгоритмов по состоянию на 2016 год описаны в Биологическом и машинном интеллекте (BAMI). Более поздние работы доступны в виде статей. Обратите внимание, что терминология Теория HTM в BAMI изменилась на Теория тысячи мозгов.

Алгоритм HTM

1. Обзор HTM(глава книги BAMI)В этой короткой главе представлены основные принципы проектирования и биологические мотивы, лежащие в основе алгоритма HTM.

2. Разреженные распределенные представления

3. Пространственное объединение(глава книги BAMI)
Алгоритм пространственного объединения — это внутренний модуль HTM, отвечающий за распространение и распознавание шаблонов с прямой связью.

4. Временная память(глава книги BAMI)
Алгоритм временной памяти — это внутренний модуль HTM, отвечающий за рекуррентное соединение и моделирование последовательности SDR.

5. Непрерывное онлайн-обучение последовательностей с помощью неконтролируемой модели нейронной сети (статья)
Я думаю, что эта статья была бы идеальным чтением, чтобы замкнуть цикл по алгоритму HTM. Он резюмирует в ясной и компактной нотации алгоритм HTM и оценивает его на достаточно сложных задачах обучения последовательности. В предлагаемых экспериментах производительность HTM невероятно согласована с LSTM, который по-прежнему считается алгоритмом перехода к задачам последовательного обучения. Однако HTM имеет гораздо больше преимуществ, учитывая другие важные свойства, которые он выполняет, как указывалось ранее.

HTM для практических приложений

  1. Кодирование данных для систем HTM (статья)
    Чтобы применить алгоритм HTM к вашей собственной проблеме, может быть непросто понять концепцию кодирования и декодирования SDR, поступающих из мл фон. В этом документе объясняется, как предварительно обработать категориальные и числовые данные, чтобы создать SDR для ввода в алгоритм HTM.
  2. NuPIC (HTM Toolkit)
    Алгоритм HTM был реализован сообществом на нескольких языках программирования, но официальный программный инструментарий для построения и использования моделей HTM, NuPIC, написан в Питоне. Взгляните на быстрый старт, пошаговое руководство jupyter ноутбук или другие программные ресурсы, предоставленные исследовательской группой Numenta, если вы хотите попробовать алгоритм самостоятельно за считанные минуты!
  3. Обнаружение аномалий в реальном времени
  • Оценка алгоритмов обнаружения аномалий в реальном времени: тест Numenta Anomaly Benchmark (документ)
    В этом документе представлен недавно разработанный тест (NAB) для обнаружения аномалий в реальном времени и упреждающего обслуживания, демонстрирующий, как вы можете применять HTM для решения этой проблемы. действенным и эффективным способом. Он также предлагает оригинальную и более сложную функцию подсчета очков, чтобы дать больше доверия более быстрым прогнозам аномалий. Похоже, сообщество уже приняло этот тест, широко используя его в этом контексте приложения.
  • Неконтролируемое обнаружение аномалий в реальном времени для потоковых данных (статья)
    В этой работе представлено еще одно интересное применение HTM в контексте обнаружения аномалий и использования эталонного теста NAB, но с более глубоким анализом и расширенным сравнением с другими современные алгоритмы.

Наконец, для более глубокого понимания алгоритма HTM вы также можете проверить:

  • HTM Forum: место для вопросов и ответов и обсуждения алгоритма HTM.
  • Школа HTM: серия видео о HTM с нуля, если вы предпочитаете смотреть, а не читать.

Выводы

В этой записи блога я попытался контекстуализировать алгоритм HTM в рамках исследовательской деятельности Numenta и помочь исследователям ИИ и машинного обучения быстрее узнать о HTM с помощью краткого и адаптированного учебного плана. Тем не менее, на веб-сайте сообщества Numenta или на его социальных платформах вы можете найти гораздо больше материала, включая подкасты и записи прямых трансляций открытых исследовательских встреч, поэтому я приглашаю вас ознакомиться с ними, если вы заинтересованы в этих идеях так же, как и вы. Я!

По мере того, как ажиотаж вокруг глубокого обучения достигает своей седловой точки, а исследователи ИИ все быстрее начинают искать новые оригинальные подходы, кажется, что Numenta имеет уникальную возможность проложить путь к следующей волне исследований ИИ, вдохновленных нейробиологией. Несмотря на относительную молодость алгоритма HTM, ранние сравнительные результаты с современными алгоритмами последовательного обучения показывают, как теория интеллекта, основанная на нейронауках, может информировать и направлять разработку будущих систем ИИ, наделенных все более разумным поведением.

Если вам понравилась эта статья, нажмите на значок Аплодисменты ниже, чтобы порекомендовать ее своим подписчикам. Чтобы узнать больше о том, как наша работа помогает развивать теорию мозга и машинный интеллект, посетите наш веб-сайт или подпишитесь на нас в Facebook и Twitter.

Первоначально опубликовано на numenta.com 24 октября 2019 г.