Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Numenta NuPIC: первые шаги

Anna | 16.06.2014 | нет комментариев

Вступление

Numenta NuPIC — открытая реализация алгорифмов, моделирующих процессы запоминания информации человеком, протекающие в неокортексе. Начальные коды NuPIC на github

В 2-х словах, предназначение NuPIC дозволено описать как «фиговина, выявляющая, запоминающая и прогнозирующая пространственные и временные обоснованности в данных». Именно этим огромную часть времени занимается человеческий мозг — запоминает, обобщает и предсказывает. Дюже отличное изложение этих процессов дозволено обнаружить в книге Джеффа Хокинса «On Intelligence» (есть русский перевод книги под наименованием «Об уме»).

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

Сборка и установка

Описана в readme файле в репозитории, следственно детализировать не буду. Для работы, nupic понадобится python2.7 (либо 2.6) с заголовочными файлами.

Параметры и конструкция модели

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

Модель состоит из нескольких процессов, поведение всякого из которых задается комплектом параметров.

Encoder

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

Скажем, на вход модели мы хотим подавать числа из промежутка от 1 до 100 (скажем, нынешнюю относительную влажность). Если легко взять бинарное представление чисел, что значения 7 и 8, расположены рядом, но бинарное их представление отличается дюже крепко (0b0111 и 0b1000). Дабы этого избежать, encoder преобразует числовые значения в комплект единичных бит, сдвинутых пропорционально пропорционально значению. Скажем, для диапазона значений от 1 до 10 и 3 единичных бит, получаем следующее представление:

  • 1 -> 111000000000
  • 2 -> 011100000000
  • 3 -> 001110000000
  • 7 -> 000000111000
  • 10 -> 000000000111

Если на входе несколько значений, то их бинарные представления легко объединяются совместно.
Подобно представляются значения с плавающей точкой и дискретный комплект значений (true/false, и другие перечислимые типы).

Spatial Pooler

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

Temporal Pooler

Помимо определения схожих образов входных данных, NuPIC может различать контекст этих данных, анализируя их поток во времени. Достигается это за счет многослойности комплекта клеток (так называемые клеточные колонки), и подробное изложение также выходит за обозначенные рамки. Здесь довольно сказать, что без этого, система не отличала бы символ B в последовательности ABCABC от того же символа в CBACBA.

Практика: синус

Достаточно теории, перейдем к утилитарной стороне вопроса. Для начала возьмем примитивную функцию синуса, подадим на вход модели и посмотрим насколько отлично она сумеет ее осознать и предсказать.

Полный код примера, разберем ключевые моменты.

Для создания модели по комплекту параметров, применяется класс ModelFactory:

from nupic.frameworks.opf.modelfactory import ModelFactory

model = ModelFactory.create(model_params.MODEL_PARAMS)
model.enableInference({'predictedField': 'y'})

MODEL_PARAMS — это достаточно развесистый dict с полным комплектом параметров модели.

Источник: programmingmaster.ru
Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB