Краткая история HTM и компании Numenta
В рассылке numenta-theory, посвященной основам HTM (для тех кто не знает, что такое HTM читайте тут, тут и можно прочитать наши предыдущие посты — этот и этот), один из работников Numenta Мэт Тейлор поделился рассказом об истории компании и их основной разработки — иерархической временной памяти.
Ссылка на его пост — здесь. Ниже мой перевод:
Некоторое время назад в нашей рассылке и в сообщениях, которые появлялись в чате, возникло некоторое недопонимание касательно десятилетней истории Numenta и HTM.
Во-первых необходимо напомнить, что основной миссией Numenta является:
- Изучение принципов функционирования неокортекса
- Создание технологии интеллектуальной обработки информации компьютером на неокортикальных принципах
Джеф Хокинс в своей книге «On Intelligence» описал элементы, которые по его мнению необходимы для построения интеллектуальной системы:
- общий кортикальный алгоритм (алгоритм обработки входной информации построенный на основе общих принципов, не зависящих от вида информации)
- иерархия и инварианость
- последовательности и предсказания
- непрерывное обучение
- обратная связь
- поведение
- внимание
- ламинарная структура
Первая реализация HTM имела внутри Numenta название «Zeta 1» и не была open-source’ной. Этот продукт был предназначен для распознавания изображений и новым в нем было — иерархия и инвариантность. Он не использовал разреженное пространственное представление, память последовательность или предсказания. Основным назначение Zeta 1 была классификация изображений. Иерархия работала вполне хорошо и мы закончили разработку Zeta 1 с твердым пониманием того, что такое иерархия в каком виде и как она работает. На основе Zeta 1 компания Vitamin D разработала свой продукт для детекции людей на видео. Этот продукт доступен и сегодня (прим.перев.: ссылка)
Таким образом из всего списка Джефа, который приведен выше, в Zeta 1 были реализованы только принципы иерархичности и инвариантности. Поэтому дальше мы сфокусировались на элементах, которые не были реализованы в Zeta 1. При этом в Zeta 1 не было биологически правдоподобных элементов и нам стало очевидно, что мы движемся совсем не потому пути, если мы хотим реализовать все элементы из книги Джефа.
Второе поколение алгоритмов HTM достаточно точно описано в CLA White Paper [1] и было представлено общественности как open-source проект в Июне 2013 г. [2]. Эта реализация HTM не содержала иерархии и инвариантности, но она была построена на более биологически оправданных принципах и была намного ближе к нейрофизиологическим моделям, чем Zeta 1. В данной реализации воплощены концепции временных последовательностей, представления и непрерывного обучения. Нашим планом было сосредоточиться на реализации одного элемента неокортекса (без иерархии) и реализовать его как можно более правдоподобно, при этом мы всегда подразумевали, что в будущем сможем добавить иерархию таких элементов.
На текущий момент реализации представленные в репозиториях NuPIC [3] и nupic.research [4] могут быть названы следующим (третьим) поколением алгоритмов HTM. Переход от Zeta 1 к текущему исходному коду NuPIC был действительно большим шагом и фактически потребовал заново разработать все части HTM/CLA. При этом третье поколение наших алгоритмов построено на открытом коде.
Отмечу, что разработка над третьим поколением HTM еще продолжается и мы надеемся реализовать все указанные Джефом элементы интеллектуальной системы.
Мы в Numenta оцениваем текущие результаты как вполне успешные. Когда мы принимали решение открыть исходные код NuPIC, мы понимали, что работа над ним еще не окончена и мы надеемся на сообщество понимает это, также как и то, что потребуется еще значительное количество времени и усилий. Одной из причин открытия исходного кода, было наше осознание того, что функциональность алгоритмов второго поколения вполне подходит для коммерческого применения. И теперь, находясь в процессе разработки новых алгоритмов, мы стараемся быть как можно более открытыми для того, чтобы предоставить любой заинтересованной стороне возможность наблюдать за развитием нашего продукта, предоставить возможность обратной связи, совместной разработки и построения новых прикладных приложений. Многие из вас делают это и мы благодарим вас и в особенности мы бы хотели поблагодарить тех из вас, кто использует NuPIC и разрабатывает свои собственные версии HTM.
[1] http://numenta.org/htm-white-
[2] https://github.com/numenta/
[3] https://github.com/numenta/
[4] https://github.com/numenta/
Ниже приведено видео примера работы Zeta 1: