PURR-PUSS
PURR-PUSS — система обучаемого искусственного интеллекта, разработанная в 1970-е гг. новозеландским учёным Джоном Андреа (, р. 1927, Муссури) и предназначенная для обучения роботов решению сложных задач в реальной среде аналогично тому, как это делает естественный мозг, через последовательность стимулов и действий. Изначально система ничего не знает о среде, в которой будет работать. PURR и PUSS — два взаимодействующих компонента системы, вместе в буквальном прочтении аббревиатура значит по-английски 'мур-киса'. Основой алгоритма является теория множественного контекста, который позволяет обходить некоторые известные ограничения ассоциативного обучения.

Джон Андреа в статье 1978 г. описывает свой рецепт создания «думающей машины» в следующих пунктах:
 получение опыта в теле;
 сохранение опыта в памяти («являться собственным опытом»);
 влияние на свой опыт через действия;
 переживание опыта одновременно в нескольких аспектах;
 поиск в своём опыте новизны.

Описание системы 
Описание по публикации Дж. Андреа и др. 1976 г.

PUSS 
PUSS расшифровывается как  'предсказатели, использующие короткие сегменты' (иная расшифровка  — 'предсказатель, использующий сдвиг и строки'). Это модель данных о внешней среде, являющаяся развитием более ранней модели универсального ИИ STeLLA. Канал PUSS заносит события, получаемые от некоторого сенсора или ещё какого-то источника, в очередь ограниченной длины; алгоритм строит предположение, что последовательность событий, скорее всего, продолжат те события, которые продолжали такие же последовательности раньше. Алгоритм, получив очередное событие, находит группы событий определённой длины («окно»), одинаковые с последними событиями; выявленные совпадения оптимизируются в памяти, а порядок следования запоминается в специальной матрице переходов.

События разных типов (например, показания датчиков, ввод техника-обучателя, действия самого робота) в системе поступают в несколько разных PUSS, которые и обеспечивают множественный контекст; правила комбинации контекстов закладываются в структуру системы.

PURR 
PURR расшифровывается как  — 'целевой непредынструктированный вознаграждаемый робот', это компонент системы, принимающий решения на основе моделей из различных PUSS. Например, в основную PUSS с окном 2 поступают действия рисования и движения, а в дополнительную с окном 4 — текстовый вывод, в том числе напечатанный самим роботом; тогда робот может, комментируя свои действия, не забыть, что именно он сейчас рисует.

На входе в систему любое событие может помечаться как нежелательное, что запоминается до момента, когда такое событие снова произойдёт. Если происходит событие, которое не является нежелательным и не было предсказано, то PURR определяет его как цель и выбирает в графе, заданном PUSS, кратчайший путь, который может привести к данному событию, минуя нежелательные события. Обучение состоит в том, что системе показывают команды, а потом она сама себе их даёт. По комбинации данных PUSS флрмируются из перечня возможных действий  списки желательных и нежелательных, и какое-нибудь из желательных выполняется.

Пример системы 
В статье 1976 г. рассказывается о работе PURR-PUSS, обученной считать объекты на счётах (3 костяшки на рейке с 5 позициями); робот может ездить вдоль рейки, сжимать руку и смотреть, есть ли в ней костяшка. При этом используются четыре PUSS:

 Основная — хранит все события в виде пар «образец-действие» (образцом является положение руки, вывод текста и т.п., действием — в частности, ожидание), окно 3;
 Эхо — хранит текстовые события в виде пар «действие-образец», окно 5;
 Гипотезая хранит только образцы, окно 4;
 Физическая хранит пары «действие-образец» для руки и счётов, окно 2.

Основная PUSS используется PURR для поиска путей к цели от текущего события, гипотезная — для формулирования достаточно далекоидущих гипотез (т. е. путей к цели), которым PURR пытается следовать по основной PUSS; эхо-PUSS уточняет предсказания основной PUSS, а также совместно с физической PUSS помогает определять желательные (ведущие к цели) и нежелательные (ведущие к нежелательным событиям) действия.

Особенности применения 
Система не предназначена для формирования плавных и точных движений. В исследованиях PURR-PUSS для управления роботом комбинировали с системой нейронного типа CMAC, что позволило улучшить качество управления.

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

Примечания 

Искусственный интеллект
Алгоритмы машинного обучения