en ru

Предложение

На днях решил в очередной раз немного поразмышлять над ИИ, ИР, о методах реализации и т.д. и т.п. Решил описать некоторые свои мысли. И так.

1. Хабр.

Не так давно я познакомился с Хабрахабр, подписался на RSS ленту и периодически просматриваю хабр. На нем очень качественные технические статьи. Лучше даже, чем во многих IT журналах. Так что рекомендую. Но речь не про сам хабр, а про систему рейтинга пользователей. Я до конца не совсем понял эту систему, но суть в том, что у каждого есть "карма" (далее без кавычек). Карму увеличивают или уменьшают другие пользователи выставляя "+" (плюс) и "-" (минус) за статьи и за комментарии к статьям. Если ничего не писать, то карма постепенно уменьшается. Если писать всякие глупости, то карма уменьшается очень быстро. Если написать глупость и развести холивар, то сообщество минусует сообщения такого выскачки и очень бычтро карма уменьшается до какого-то минимального значения. По достижению какой-то нижней планки пользователь блокируется и помечается значком "отхабренный".

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

2. Глобальный разум

Что такое искусственный разум? Как можно создать глобальный ИР с чистыми правильными знаниями. При этом такой ИР не должен ошибаться и должен взаимодействовать с людьми, приносить человечеству пользу.

Я вижу реализацию ИР как некоторой глобальной системы которая будут сосять из отдельных "умных" составляющих и которые будут общаться между собой. Под составляющими я понимаю с одной стороны агентов (автономные независимые программы) и людей (присоединяющиеся к глобальной сети с помощью различных программ-утилит). Получается некоторый симбиоз машин и людей. Машины помогают людям искать и получать необходимую им информацию (знания, развлечения и другой контент). А люди помогают машинам развиваться, поддерживают их функционирование.

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

Наша цель - это создание такого алгоритма, создание ИР.

3. Умная система

Что из себя должна представлять глобальная умная система? Как реализовывать ИР?

На мой взгляд глобальную систему ИР нужно создавать из множества отдельных умных агентов. Некоторые агенты будут автономные (самостоятельные), другие же будут предоставлять доступ к общей сети своему пользователю. Первых условно назовем самостоятельными агентами (Agent), вторых ассистентами (Assistant).

4. Агент

Немного поразмышляв на счет внутренного устройства агентов и их взаимодействия между собой я, в очередно раз, пришел к выводу, что основные составляющие любого агента и ассистента это:
1) Локальная база знаний. Другими словами просто знания (Knowledges).
2) Процесс обработки знаний, сообщений и выполнения других действий. Процесс (Process).
3) Механизм взаимодействия с другими агентами, с глобальной системой, с пользователем и пр. Коммуникация (Communicate).
4) Счетчик кармы. Карма (Karma).

5. Знания (Knowledges)

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

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

Думаю, что функционал работы со знаниями будет примерно такой:
1) Функции работы с сущностями (сущности - это, в моем понимании, элементарная атомарная запись).
2) Функции работы с онтологиями.
3) Функции работы фреймами.
4) И другие необходимые функции.

6. Процесс (Process)

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

То есть процесс работы любого агента это бесконечный цикл:

while (true) { /* Работаем. */ }

Тело процесса может быть интерпретатором кода, записанного в БЗ в каком-либо виде. Таким образом можно обеспечить функционирование самомодифицирующегося алгоритма без перекомпиляции.

while (true) { /* Обрабатываем (интерпретируем и выполняем) следующую команду кода из БЗ. */ }

7. Предложение

Предлагаю всем заинтересованным разработчикам разработать своих агентов (ассистентов) и попытаться соединить разные реализации между собой. Соединять предлагаю путем передачи сообщений определенного формата через TCP/IP. Формат сообщений предлагаю выбрать из существующих, например FIPA-ACL.

8. Ссылки

Подробнее про устройство Хабрахабр:
О сайте
Правила сайта
Пользовательское соглашение

Про онтологии:
Онтология (информатика)
Онтологическое программирование на марше (копия на ЖЖ)

Про агентов:
Foundations of Intelligent Physical Agents (FIPA)
FIPA-OS (проект)
SObjectizer - Tool for agent-oriented programming (Обзор архитектуры FIPA)

Обсуждение: project-ai.org/forum/viewtopic.php?t=750












© AiKernel 2010-2013
03.04.2012 - 02.01.2013