Выполнение команд

Можно разными путями пытаться подходить к синтезу архитектуры искусственного интеллекта, но все пути ведут к одному итогу - ИИ создаётся, чтобы выполнять наши задания, команды. Попробуем разобраться, какой должна быть архитектура робота, единственным стремлением которого является выполнение команд.

Что такое команда? В дальнейшем будем понимать под этим словом любое воздействие, неоднородность восприятия, которое однозначно активизирует некоторую энграмму координации робота. Примеры команд:
- "сходи в магазин"
- дождь
- "сколько будет дважды два?"
- "уступай бабушкам место в транспорте"
- "не убий"

Команда считается выполненной, когда она завершена во времени и соответствующую ей схему координации можно тоже завершить.

Например, команда "прочитай эту книжку" закончится только тогда, когда последняя страница книги будет перевёрнута. На выполнение этой команды может уйти не один день.

Команды "создай искусственный интеллект" или "не убий" могут быть актуальными всю жизнь.

Выполнение команды "переверни страницу" может занять 1 секунду, но тем не менее является полноценной командой.

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

В вопросе определения искомой архитектуры есть нетривиальная проблема, которая, на мой взгляд, составляет ключевую проблему механизма искусственного интеллекта, а именно: робот имеет 1 вход (вся интегральная совокупность его рецепторов) и через этот вход поступает 3 вида информации различного (на первый взгляд) назначения:
1. Собственно команда.
2. Контекст.
3. Обратная афферентация.
Проблема состоит в построении фильтра-демультиплексора, который будет разделять эти 3 потока.

Пример. Команда "сходи в магазин", данная роботу, например, на улице, должна быть отделена им от шума машин и вида зданий. Шум машин и вид зданий не должны быть восприняты роботом как команда и не должны активизировать какую-либо схему координации. Но вместе с этим, вид зданий должен быть воспринят как контекст, потому что путь к магазину лежит через город и здания должны быть учтены. Как только выделены команда и контекст, можно активизировать соответствующую схему координации. И как только движение в магазину началось, возникает третий тип информации - обратная афферентация - восприятие своих собственных движений, обратная связь.

Фактически, и команда, и контекст и обратная афферентация определённым образом корректируют движение робота, координируют его, т.е. все они являются командами по определению. Но одни команды имеют главенствующее значение а другие - подчинённое. Главная команда должна длиться от начала и до своего конца, контекст вносит в координацию корректировки среднего уровня в рамках выполнения главной команды, а обратная афферентация - вносит прецизионные корректировки самого нижнего уровня. Для удобства введём такие обозначения для этих 3-х видов команд:
главная команда - задание;
контекстные команды - контекст;
команды обратной афферентации - обратная афферентация (ОА).
Но всё это будем называть так же "командой", т.к. каждый из этих 3-х видов команд координируют робота.

Как же мозг разделяет эти 3 потока? Я предполагаю, что ключевое значение тут имеет 4 фактора: внимание, ожидание (предсказание), приоритетность и одновременность. На первом этапе робот должен выделить в перцептивном потоке всё, что в принципе может являться командой (выделение целостностей, объектов) и после этого разделить все распознанные команды на 3 категории: задания, контекст и ОА.

1. Внимание обращается на неожиданность. Ожидание определено опытом - частотой повторений объектов.
2. Приоритетность (какое из заданий считать более важным) задаётся учителем на стадии обучения и в общем случае может быть произвольным.
3. Одновременность команды и соответствующего контекста - необходимое условие высокого приоритета, ибо задание "пить" при отсутствии воды - невыполнимо. Кроме того, ОА и команды (от ЦНС) на эффекторы скоррелированы во времени поэтому ОА выделить из контекста видится сравнительно простой задачей. Если робот оперирует инструментом, команды от инструмента будут поступать так же скоррелировано во времени с командами (от ЦНС) на эффекторы, как и команды от интерорецепторов, из чего следует, что граница между контекстом и ОА достаточно условна.

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

Отметим, что если робота "в детстве" обучать заданию "беги под обрушивающиеся здания" то обрушивающееся здание будет воспринято как задание и робот устремится под него. Никакого императива выживания или сохранения вида или других биологических императивов в интеллекте имманентно нет и быть не должно.

В каждый момент времени робот может выполнять только одно задание.

Что же в деталях значит "выполнить задание"? Я выделил 3 способа выполнения заданий:
1. Проигнорировать задание.
2. Активировать схему координации.
3. Отложить выполнение задания.

Рассмотрим по порядку.

1. Проигнорировать задание значит фактически отнести соответствующую команду к контексту. В таком случае следует либо ввести некое "нулевое задание", которое не активирует никаких энграмм кординации и длится до тех пор пока высший приоритет не получит какое-то настоящее задание, либо допустить, что могут быть ситуации, когда заданий нет. Мне больше импонирует первый вариант, назовём это "ожиданием".

2. Непосредственно выполнить задание, значит активизировать схему координации. Схема координации - это ядро всей системы - связь между командой, поступившей извне, и внутренними командами, которые подаются мозгом на эффекторы (здесь это понимается в смысле, введённом Бернштейном). Выполнить команду, значит поставить в соответствие внешнему потоку команд внутренний поток команд на эффекторы - конкретизировать общую команду через детальные команды, команды для своего тела.

Ожидание - это простейшее, вырожденное выполнение команды. Ожидание - это способ, которым может быть достигнуто прекращение задания. Первое, что должен попробовать робот - это ничего не делать. Например, роботу поступила команда: "сегодня газон должен быть полит", но он видит (в контексте), что собираются тучи. Если ничего не делать, газон будет полит дождём.

3. Важнейшей особенностью задания является его непредсказуемость, случайность. Если задание предсказуемо (т.е. момент наступления задания можно однозначно сопоставить с внутренним временем, таймером робота), выполнение такого задания автоматизируется и не требует сознания, контекста (и является, между прочим, единственным источником ошибочных действий). Автоматизм необходим для наращивания скорости и сложности действий робота. Ввиду непредсказуемости заданий, новое задание может произойти и получить высший приоритет в момент выполнения некоторого задания. Чтобы прерванное актуальное задание не утерялось, оно должно быть отложено в стек. В психологии данный эффект исследовался Зейгарник Б.В. Стек может являться источником заданий в моменты ожидания.



Научить выполнять задания и установить их приоритет может только учитель. Только внешний учитель может знать, как задание соотносится с координацией. Каков критерий выполненности задания и когда задание следует прекратить. Учителем может выступать и собственный прогноз, например, знание музыкальной композиции при разучивании её на музыкальном инструменте. Знание, которое через прогноз направляет сознательную выработку схем координации, знание о том "как должно быть правильно" - это карта, которая координирует сознательный процесс построения схем координации эффекторов.

Обучение проходит такие этапы:
1. Выделение задания.
2. Сознательный перебор вариантов схем координации (сознание связывает задания и схемы координации), приводящих к завершению задания.
3. Накопление и автоматизация схем координации, вплоть до связывания обратной афферентации, контекста и заданий со схемами координации в обход сознания.

Выполнить команду автоматически означает активизировать энграмму координации в обход сознания и продолжать выполнять её без сознательного контроля по меткам времени, которые выдаёт таймер и командам от ОА.

Обсуждение на "GotAI"