Постановка задачи по наделению компьютера интеллектом

(С) Белов Александр Алексеевич, Беларусь, Гомель

http://ai.obrazec.ru/forum/viewtopic.php?t=2085

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

Наша задача – наделить компьютер высшим интеллектом, т.е способностью обрабатывать информацию на основе слов, значение которых близко к значению слов из человеческой речи. Принимая во внимание количество слов в человеческом языке, можно сказать, что данная проблема вызывает трудности. Единственно верным подходом к решению проблемы видится выбор и компьютерное моделирование узкой предметной области с постепенным расширением решаемых задач. Следует отметить, что термины «мышление» и «понимание» подразумевают использование сознания, поэтому не применимы в случае компьютерного интеллекта.

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

Тестом на высший интеллект будет тест Тьюринга с определенными ограничениями, такими как:
1. Компьютер не должен моделировать речь человека с ограниченными умственными способностями.
2. Компьютер не должен моделировать речь человека в состоянии алкогольного или наркотического опьянения.
3. Компьютер не должен моделировать речь человека в состоянии пониженной мозговой активности, например, в состоянии сна.
4. Компьютер не должен моделировать речь человека, не желающего поддерживать разговор. И т.д.

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

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

Следующей по полезности предметной областью я считаю физику. Но за эту область я не возьмусь в одиночку из-за сложности. Пока есть полная уверенность только в возможности реализации СУБД на ИИ своими силами.

Все слова имеют конкретный смысл. А основная идея в том, что следует создавать ИИ путем формализации языка от простого к сложному.

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

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

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

Основы теории ИИ. Основные определения.

Теория ИИ будет развиваться по мере развития систем ИИ. Это не окончательные определения. Мы остановились на том, что необходимо создавать ИИ путем формализации языка и двигаться от простого к сложному.
Формализация языка – это установление формальных отношений между лексическими единицами.
Интеллект – ввод, хранение, обработка, вывод информации.
Естественный интеллект - интеллект человека, либо животных, либо другой формы жизни.
Искусственный интеллект - интеллект, созданный человеком, либо созданный другой формой жизни.
Обработка информации - преобразование одной порции информации в другую порцию информации по некоторому алгоритму.

Интеллект, информация, обработка информации могут быть высшего уровня и низшего уровня. В дальнейшем может появиться больше градаций по уровню.

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

Минимальное количество информации высшего уровня описывается тремя лексическими единицами. Между двумя лексическими единицами устанавливается отношение, а третья лексическая единица означает тип отношения между двумя лексическими единицами. Информация передается в виде высказываний, содержащих последовательность лексических единиц. Пример: лексическая единица 1 – предмет, лексическая единица 2 – качество предмета, лексическая единица 3 – вид отношений обладания предмета качеством. В высказывании лексические единицы 1,2,3 могут следовать в произвольном порядке. Для анализа такого высказывания интеллектуальная система выбирает лексическую единицу, обозначающую тип отношений. Определяет, что в отношении участвует предмет и качество предмета. Выбирает лексическую единицу обозначающую предмет, обозначающую качество, и определяет, что смысл высказывания в том, что данный предмет обладает данным качеством. При анализе высказываний анализируются типы лексических единиц и типы отношений, которые между ними устанавливаются. Для более сложных случаев может анализироваться порядок следования лексических единиц в высказывании, знаки препинания, предлоги. Большее количество информации высшего уровня описывает большее количество отношений между большим количеством лексических единиц. Чтобы подсчитать количество информации высшего уровня, нужно подсчитать количество отношений между лексическими единицами и количество лексических единиц, между которыми эти отношения устанавливаются. При этом возникает вопрос о количестве информации, которая выводится из информации, содержащейся в порции высказываний. Так же следует учитывать повторяемость информации, т.е. повторяемость указания отношений между лексическими единицами. По мере развития систем ИИ будут разрабатываться методы подсчета количества информации высшего уровня.

Опишем процесс обработки информации высшего уровня. Допустим, наша система хранит информацию в виде высказываний, описывающих обладание предметов качествами. К такой системе мы можем делать запросы вида: Какими качествами обладает предмет Х? Какие предметы обладают качеством Y? Обладает ли предмет X качеством Y? Далее, мы можем усложнять запросы, спрашивая об одновременном наличии у нескольких предметов нескольких качеств. Далее мы можем исследовать закономерности обладания предметов качествами. Осталось придумать несложный синтаксис для запросов. Данный тип обработки информации – это извлечение информации из системы через запрос. Сопоставим данное описание с определением обработки информации. На входе имеем порцию информации в виде запроса. Запрос обрабатывается по специальному алгоритму, и получаем на выходе порцию информации в виде ответа.

Опишем более сложный процесс обработки информации, чем ответ на запрос. Рассмотрим отношение между лексическими единицами типа: Объекты класса А являются подклассом объектов класса Б. Например, «стол – это мебель». Это означает, что все объекты класса «стол» являются объектами класса «мебель». Если высказывание верно для всех объектов класса «мебель», то это же высказывание верно для всех объектов класса «стол». Можно в системе сделать подобный вывод информации и хранить всю информацию в виде высказываний. Но тогда объем хранимой информации будет разрастаться до бесконечности. Удобнее при запросе информации об объекте класса «стол» проверить информацию обо всех объектах класса «мебель» и обо всех объектах класса «предметы, которые человек использует в помещении» и т.д. При этом может происходить параллельная обработка информации у обоих запросов для увеличения скорости вычислений.

Интеллект, информация, обработка информации относятся к высшему уровню, если информация представлена в виде отношений между лексическими единицами.

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

Условие полноты выбора и описания предметных областей в системе ИИ.
1. Крупная предметная область может состоять из множества мелких предметных областей. Например, может быть включена предметная область, описывающая интервалы времени: утро, день, вечер, ночь, сутки, неделя, месяц, год и т.д.
2. Если необходимая предметная область в систему ИИ не включена, то возникает иллюзия непонимания. Например, если не включена предметная область, описывающая человеческие эмоции, то возникает иллюзия непонимания переживаний человека.

Условие полноты лексического запаса ИИ:
1. Все лексические единицы, включенные в систему ИИ, должны сочетаться друг с другом всеми включенными в систему типами отношений. Например: сочетаются все предметы и движение, т.е. можно говорить о движении любого предмета. Если система ИИ не может рассуждать о движении какого-либо предмета, включенного в систему, то система будет не полной.
2. В систему ИИ должны быть включены все лексические единицы и типы отношений, необходимые для описания данной предметной области. Иначе, система ИИ будет не полной.

Иллюзия понимания возникает, если выполняются условие полноты.

Понимание названо иллюзией в связи с тем, что понимание является ощущением, существующим только в сознании человека.

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

Для программирования и обслуживания систем ИИ появятся специалисты по формализованному языку. Появятся различные разделы науки о формализации языка. Отдельная задача будет заключаться в переводе с формализованного языка на естественный язык и обратно.

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

План работы.

1. Составить список множества мелких предметных областей, миров.
2. Выполнить формализацию языка для некоторых предметных областей, для решения некоторых задач.
3. Соединить мелкие предметные области в более крупные.
4. Разработать компьютерную программу, в которую можно вводить формализованные данные. Программа эти данные хранит, обрабатывает и выводит. Система будет в чем-то похожа на Пролог или Лисп.
5. Ввести в программу тестовые данные и сделать демоверсию.
6. Продать технологии. (Самый сложный этап)

Что такое информация?

Информация – это отражение предметной области, мира в форме символов.

Допустим предметной областью, миром является набор кубиков на столе. Если существует реальный стол с кубиками, то это реальный мир. Если стол с кубиками выдуман, и на самом деле не существует, то это вымышленный мир.

Слово «кубик» является символом, обозначающим кубик. Стол с кубиками где-то далеко. У нас кубиков нет, а символ кубика есть. Расстояние между кубиками существует, но у нас его нет. У нас есть символ, обозначающий расстояние между кубиками. Цвета кубиков у нас нет. Но у нас есть символы, обозначающие цвет каждого кубика, которые где-то далеко.

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

Такие символы в системе ИИ мы будем называть лексическими единицами, а в естественном языке мы их называем словами. Из лексических единиц составляются высказывания. Каждое высказывание отражает кусочек предметной области, мира. А общая картина о мире строится из множества высказываний, как дом строится из кирпичиков. Например:

Два синих кубика находятся рядом. Рядом с синим кубиком находится желтый кубик. Зеленый кубик находится далеко от желтого кубика.

Эти высказывания описывают часть того, что происходит в мире кубиков.

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

Мы можем описать мир в форме координат каждого кубика, или координат вершин каждого кубика. Цвет кубиков мы можем задать в виде чисел, обозначающих яркость красного, синего и зеленого в цвете кубика. Тогда это будет информация низшего уровня. И требуется дополнительный алгоритм, чтобы преобразовать ее в информацию высшего уровня, т.е чтобы из координат кубиков сделать описание расположения кубиков в форме высказываний.

Итак, мы делаем описание предметной области, мира в форме высказываний. Мы можем не описывать вес и материал кубиков, а описывать только цвет, размер, форму и расположение кубиков. Наша информация отражает только часть мира, предметной области.

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

Естественный язык неудобен для использования в компьютерной системе ИИ потому что:
1. Многие слова многозначны, особенно в иностранных языках.
2. Построение фраз допускает многозначное толкование и сложно для анализа.
3. Для описания предметных областей потребуются лексические единицы с совершенно не такими значениями, какие имеют слова в естественном языке.

Допустим, для описания предметной области мы создали слегка отличающиеся лексические единицы, которые имеют только одно значение. Создали простое построение высказываний. Этого еще не достаточно для системы ИИ. Для предметной области нужно создать алгоритм обработки информации, вывода новой информации. В систему нужно заложить базовые алгоритмы. Новые алгоритмы должны описываться в форме высказываний и должны быть понятны системе.

Вы хотите реализовать в архитектуре своей СУБД, чего не реализуется современными уже существующими? Стоит ли это того, чтобы отойти от основной цели?

На нижнем уровне создается система управления таблицами. Содержит классы, которые управляют таблицами.
На следующем уровне создается аналог объектов 1С:Предприятие: справочники, документы, регистры и т.д., на основе системы управления таблицами.
На следующем уровне создается система ИИ, которая управляет таблицами и объектами 1С на языке близком к естественному русскому языку вместо функций и методов.
Далее уровень интеллекта системы ИИ повышается.

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

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

Реальный и вымышленный мир

Варианты общения между системой ИИ и предметной областью, миром, информацию о котором система ИИ обрабатывает.

Мир состоит из кубиков, которые находятся на столе.

1. Вымышленный мир.

Реального стола с кубиками нет. Он придуман. В систему ИИ заносится информация о придуманном мире. Система ИИ может давать команды по изменению расположения кубиков. Системе ИИ сообщается результат действий.

2. Режим эксперта.

Существует стол с кубиками. Посредник информацию об этом заносит в систему ИИ. Посредник может по командам ИИ менять расположение кубиков на столе и сообщать результат системе ИИ.

3. Реальный мир.

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

4. Виртуальный мир.

Система ИИ считает, что получает информацию с видеокамеры и управляет механической рукой, а на самом деле система ИИ подключена к другой системе ИИ, которая имитирует существование стола с кубиками.

Система ИИ может обладать собственной памятью о мире. Память может быть ограниченной, либо система ИИ может сохранять всю поступающую информацию.

Вариант 1 может использоваться для моделирования виртуальных миров. Например, можно описать мир, в котором кубики могут проходить друг через друга, или один кубик может одновременно находиться в нескольких местах.

В варианте 2 система ИИ работает как экспертная система. Человек может спрашивать совет у системы ИИ, как у эксперта в данной области.

В варианте 3 система ИИ работает как автономный робот.

Вариант 4 может использоваться для тестирования и обучения системы ИИ.

В случае СУБД на основе ИИ реализуется вариант 3. Система ИИ через методы с параметрами общается с реально существующими прямоугольными таблицами. Если система ИИ всю информацию о СУБД хранит в своей памяти, то сама СУБД становится не нужна. Система ИИ знает, в какой таблице, что находится, и может сама предсказывать результат запроса к СУБД.

Что такое интеллект?

Из статьи «Основные понятия искусственного интеллекта» на закладке "Базовые понятия"

Цитата 1: «Деятельность мозга (обладающего интеллектом), направленную на решение интеллектуальных задач, мы будем называть мышлением, или интеллектуальной деятельностью».

Цитата 2: «Что же касается задач, алгоритмы решения которых уже установлены, то, как отмечает известный специалист в области ИИ М. Минский, "излишне приписывать им такое мистическое свойства, как "интеллектуальность".»

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

Цитата 4 «Задачи, связанные с отысканием алгоритма решения класса задач определенного типа, будем называть интеллектуальными».

Сверхалгоритм является разновидностью алгоритма. Цитата 2 утверждает, что действие по уже установленному алгоритму не является интеллектуальным. Цитата 3 утверждает, что действие по алгоритму является интеллектуальным. Но в случае цитаты 3 алгоритм не известен. Из этого следует, что нужно поменять определение в цитате 1, добавив, что деятельность мозга можно считать интеллектуальной до тех пор, пока алгоритм его работы не установлен. Как только будет установлен алгоритм работы мозга, его деятельность перестанет быть интеллектуальной. Это неправильно.

Каким может быть действие, кроме действия по алгоритму?

  1. Действие по алгоритму. Действие по набору инструкций понятных системе.
  2. Действие предопределено устройством системы. Например, вращение Земли вокруг Солнца или сложное движение полностью механической куклы.
  3. Действие определено случайными факторами, которые невозможно учесть в данных условиях. Либо факторами, случайными в принципе (случайность в квантовой механике).
  4. Действие определено вмешательством в систему извне, например, управлением при помощи радиосигнала.
  5. Сочетание перечисленных пунктов.

Непонятно, к какому пункту отнести построение живого организма на основе генетического набора.

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

Будет правильным действие по алгоритму считать интеллектуальным.

Я поддерживаю следующее определение, только нужно расширить список тем, которые можно обсуждать с системой, и уточнить понятие «обсуждать»:

Цитата: «Так, по А. Н. Колмогорову, любая материальная система, с которой можно достаточно долго обсуждать проблемы науки, литературы и искусства, обладает интеллектом»

При этом достаточно обсуждать с системой одну из перечисленных тем на выбор. Система будет обладать интеллектом в данной области.

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

Глобализация

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

1. Какую информацию хранить

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

Полностью заменить наличные деньги системой электронных платежей. Информацию о каждом платеже хранить в ГИС. Позволит устранить экономическую преступность.

Хранить в ГИС информацию о предлагаемых товарах и услугах, потребностях покупателей, чтобы товары и покупатели могли находить друг друга. О том, что можно купить за деньги либо получить бесплатно. Информация о рабочих местах и возможных работниках поможет наиболее оптимально подбирать работников и находить работу.

Хранить в ГИС информацию об экономической деятельности всех предприятий. Позволит координировать и планировать экономическую деятельность.

Собирать статистику с мнением людей по любым вопросам. Возможность удобного просмотра любой статистики.

На начальном этапе ГИС хранит информацию и делает примитивный вывод информации, необходимый для ответа на запрос информации. На следующих этапах ГИС хранит научную и техническую информацию. Далее учится решать простые научные и технические задачи. Далее интеллект ГИС полностью превышает интеллект человека и ГИС превращается в мировой разум.

2. Положительные стороны, решаемые проблемы

3. Отрицательные стороны, возникающие проблемы

Раскрытие личной информации. Проблема должна решаться путем устранения нетерпимости к ряду сторон человеческой жизни.

Раскрытие коммерческой информации. Проблема должна решаться долей централизованного управления экономикой.

Раскрытие информации, касающейся государственной и военной тайны. Проблема должна решаться объединением всех стран в общую систему управления.

Секретность позволяет некоторой категории лиц уходить от ответственности.

Система создает возможность тотального контроля над человечеством. Нельзя допускать тоталитарный режим к управлению системой. Остается серьезный вопрос, о том какие задачи должна решать управляющая система, будит ли это система ИИ, или коллектив людей. Вероятно, нужно формулировать задачи, и контролировать, насколько эффективно управляющая система решает эти задачи.

Проблема вредоносного кода должна решаться на аппаратном уровне. Только аппаратная защита дает гарантию полной безопасности работы системы. Уже давно нужно было сделать физическое закрытие областей винчестера и оперативной памяти от записи или чтения.

Проблема занесения в систему ложной информации. Для решения нужно указывать дату получения любой информации и ее источник.

Необходимо обеспечить равные возможности для хранения любой информации о товарах и услугах и обеспечить объективность информации. То же касается любой хранимой информации. Остается вопрос, какое место должна занимать реклама, и вопрос о безнравственности рекламирования товаров, не выгодных для покупки.

4. Способы решения трудностей

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

5. Проблема альтернативных, конкурирующих информационных систем

Проблема создания множества конкурирующих систем вместо одной системы, содержащей всю информацию. Тогда появится программа по общению между конкурирующими системами и их объединению в одну общую систему. Но процесс объединения будет идти долго и трудно.

6. Технический способ реализации

Реляционная СУБД для решения данной задачи не подходит. Требуется система ИИ, или Система Управления Базой Знаний (СУБЗ).

Сейчас я планирую работать над формализацией языка в предметной области «Хранение информации о товарах и услугах в Глобальной Информационной Системе». Сделана формализация языка для маленького кусочка предметной области. Видно, что система может отвечать на ряд вопросов. Вопрос формулируется на русском языке, переводится на формализованный язык, задается системе, система отвечает на формализованном языке, ответ переводится на русский язык. Система так же будет иметь удобные средства для ввода новой информации. Формализованный язык отличается от русского языка значением лексических единиц и построением фраз, высказываний. Есть еще одна особенность. Компьютер способен понимать высказывания неограниченной длины. В дальнейшем можно будет разрабатывать системы автоматического перевода с формализованного языка на русский язык и обратно. Общение с системой на формализованном языке можно считать интеллектуальным. Когда будет формализована достаточная часть предметной области, я приведу список вопросов на русском языке, на которые способна отвечать система. Когда будет сделана теоретическая работа, разработка программы будет обычной технической задачей для программиста.

Список способов создания ИИ.

Нельзя быть уверенным, что формализация языка является единственно верным способом создания ИИ, даже если мы других способов не знаем. А если подумать?

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

2. Узнать принципы работы интеллекта путем изучения работы мозга. Сложно из-за малого размера нервных клеток и их большого количества.

3. Изучить генетический набор и механизм построения организма на основе генетического набора. На основе этого, просчитать каким будет создан мозг, и как он будет работать.

4. Узнать секрет создания ИИ при контакте с инопланетным разумом.

5. Изучить устройство компьютера с разбившегося инопланетного корабля, и сделать такой же компьютер.

6. Создать саморазвивающуюся систему, в которой происходят случайные изменения и отбор удачных изменений, как при естественном отборе. Итогом развития должно стать создание разума. Это напоминает подсчет того, сколько обезьян надо посадить за печатные машинки и сколько времени они должны печатать, чтобы одна обезьяна случайно напечатала произведение Шекспира. Я считаю, что вероятность считать бесполезно, и этого никогда не случится в случае с обезьянами. Саморазвивающаяся система отличается от этого случая, но есть много неясного в вопросе саморазвития систем.

7. Создавать ИИ на основе нейронной сети. Некоторым нейронам присвоим лексическое значение. Например, один нейрон означает «человек», другой нейрон означает «интернет», третий нейрон означает «работать». Создаем связи между тремя нейронами, которые будут означать, что человек работает в интернете. Нужно как-то обозначить, что это не интернет работает с человеком, а человек с интернетом. Для этого могут быть созданы связи разных типов и могут привлекаться дополнительные нейроны. В данном случае речь не идет о языке, а отношения между лексическими единицами описываются через связи между нейронами. Переложить такую информацию в виде связей между нейронами на естественный язык без искажений вряд ли будет возможно. Это совершенно другой способ хранения и обработки информации высшего уровня, в отличие от хранения и обработки информации на основе естественного языка.

8. А как еще можно хранить и обрабатывать информацию высшего уровня кроме нейронной сети и естественного языка?

9. А есть ли более эффективный способ хранения и обработки информации, чем использование отношений между лексическими единицами? Есть ли более высокий уровень информации?

На данный момент формализация языка представляется наиболее простым способом создания ИИ.

Что такое творчество с точки зрения ИИ. Введение в ТРИЗ.

Новое решение можно выразить высказыванием типа: для задачи A применяется решение B. Новизна заключается в том, чтобы совместить задачу A и решение B. Можно взять изобретательскую задачу A и искать решение. Можно взять удачное решение B и искать, где его можно применить. Можно случайно совместить в сознании задачу A и решение B, и увидеть, что получили новую техническую систему. Нас больше интересует ситуация, когда есть изобретательская задача A и нужно найти решение. При этом стандартного решения у данной задачи нет. Обычный способ решения – это метод проб и ошибок. Специалист в данной области перебирает различные решения и проверяет, подходят ли они для решения данной задачи. ТРИЗ предлагает следующую технологию поиска решения. Изучается патентный фонд изобретений, и выбираются удачные решения. Формулируется общий принцип, который был использован в изобретении. Создается картотека удачных решений. Теперь, когда есть изобретательская задача A, можно искать решение в картотеке решений. Но перебирать огромную картотеку долго. Для каждого удачного решения составляется список задач, для решения которых можно использовать данное решение, список выполняемых функций. Когда у нас сформулирована задача A, мы еще не знаем, какую полезную функцию нам нужно получить, чтобы по этой функции искать решение в картотеке. Поэтому ТРИЗ содержит инструменты для переформулирования исходной задачи. Для задачи A записываем полезные функции, выполнение которых может решить задачу A. Затем мы находим соответствующие функции в картотеке, и находим соответствующую карточку с решением.

Пример.

Задача.

По трубопроводу перекачивают жидкий кислород. Несмотря на хорошую теплоизоляцию, часть кислорода переходит в газообразное состояние. Образуются маленькие пузырьки, более или менее равномерно распределенные по всему потоку. Между тем из трубопровода должен поступать в резервуар только жидкий кислород. Требуется найти способ отделения жидкого кислорода от пузырьков.
Источник задачи: Г.С Альтшуллер «Найти идею»

Решение.

Формулируем полезное действие, которое нужно получить. Нужно разделить жидкость и газ. – Нужно разделить два вещества.

В картотеке физических эффектов находим полезное действие: разделение двух веществ. С полезного действия ссылка указывает на физический эффект, который выполняет это полезное действие: использовать центробежную силу. Поток жидкого кислорода нужно закрутить. Тогда пузырьки соберутся в центре трубы, и их можно убрать.

Для закручивания потока использовать ресурсы, энергию уже имеющуюся в системе. Для закручивания используется энергия движения потока. Используем стандартное решение – установить лопасти, закручивающие поток.

Схема решения: Задача – полезное действие – физический эффект – решение.

Задача: Как отделить пузырьки газа от потока жидкого кислорода? Имеет решение: Установить в трубе лопасти, закручивающие поток. От задачи к решению мы пришли по алгоритму. Пока такой алгоритм может выполнять только человек. Для человека, знакомого с решением данной задачи, похожая задача будет решаться по аналогии с этой задачей, т.е. будет стандартной.

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

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

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

Остается объяснить, как будет работать алгоритм нахождения новых алгоритмов.

Развитие модели

Мой подход развивался по такой линии:

Хранение информации в форме высказываний – высказывания имеют структуру, и образуют структуру – структура похожа на графы – структура является графами

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

Теперь в пределах данного подхода возможно извлекать информацию из сети путем прохождения импульсов через всю сеть. Пока я анализирую простейшую задачу извлечения информации об объявлениях. Если для хранения и извлечения информации создавать нейронную сеть, то:

  1. Логика извлечения информации очень сложная.
  2. Скорее всего логика должна быть нестрогой, поскольку при моделировании строгой логики возникают определенные трудности.
  3. Часть нейронов хранит информацию в виде сети и используются как семантические единицы, а часть нейронов и связей используется для извлечения и обработки информации. При этом нейроны, обрабатывающие информацию, не используются как семантические единицы. Прохождение импульсов через их связи выполняет некоторые функции, но нейроны и их связи не являются знаком, означающим что-либо, т.е. являются несемантическими единицами. Max оказался прав. Несемантическая часть подхода описывает функциональность или действия. Несемантические единицы - это операции над информацией. Сами операции могут обозначаться семантическим знаком, но сами семантическим знаком не являются.
  4. Повторю, что несемантическая логика нейронной сети очень сложная.

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

Из этого следуют недостатки, которые должен иметь мозг:

  1. Часть нейронов дублируют функции друг друга. Неэффективное использование нейронов.
  2. Нестрогая логика.

Многие создаваемые нейронные сети могут повторять эти недостатки.

На данный момент логика извлечения информации обычным путем сравнения и ветвления «если, то» выглядит значительно более эффективной, чем возможный подход с пробеганием импульсов через нейронную сеть в настоящей нейронной сети. В компьютерном алгоритме нет необходимости пробегать всю сеть, потому что можно использовать индексы. Остается вопрос, сможет ли обычный компьютерный алгоритм ветвления, циклов и т.д., реализующий строгую формальную модель, полностью заменить несемантическую, нестрогую функциональность нейронной сети, не моделируя эту функциональность.

Модель хранения информации совпала с формой нейронной сети. А модель извлечения и обработки информации сейчас идет по другому пути.

Сейчас формализация языка превратилась в формализацию предметной области. Становится трудно сохранять эквивалентность между высказываниями и сложной разветвленной структурой.

При этом задача разделяется на две:

  1. Создание формальной семантической модели хранения информации.
  2. Создание формальной строгой модели методов обработки информации. При этом сами методы не являются семантическими единицами.

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

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

В ИИ выделяют следующие направления:

  1. Представление знаний.
  2. Манипулирование знаниями.
  3. Общение. Сюда же относится понимание текстов.
  4. Восприятие. Включает распознавание зрительной информации.
  5. Обучение.
  6. Поведение. Сюда можно отнести принятие решений.

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

Для принятия решений ключевым вопросом будет правильное программирование блока задач для системы ИИ. Система распознает ситуацию, находит соответствие ситуации в блоке задач и формулирует цель. Затем происходит решение задачи по достижению цели. В ТРИЗ применяется такой метод переформулирования задачи: 1. для решения задачи А требуется решить более мелкую задачу Б. Повторить для задачи Б. 2. Задачу А нужно решить, чтобы получить результат В. Получить результат В без решения задачи А. Повторить для задачи В. При этом может оказаться большое количество путей решения задачи. И потребуются эвристические методы выбора подходящих путей решения. Так же нужно следить за тем, чтобы конечное решение не вышло за пределы того, что программисты намеревались заложить в блок задач.

Семантическая СУБД

Я решил назвать свой проект семантическая СУБД – СУБД, предназначенная для хранения семантической информации. Понятие Базы Знаний уже разработано и в это понятие вкладывают конкретный смысл. Мой проект в концепцию СУБЗ не вписывается, хотя имеет много общего. Название «ИИ» программа должна заслужить сама, поэтому я такое название не использую. По задумке на первоначальном этапе семантическая СУБД должна постепенно заменять реляционную СУБД там, где это имеет смысл. А на последующих этапах должна превратиться в основу представления информации для ИИ. Программисты должны знать разницу между тем, что было задумано первоначально и конечным продуктом. Работы всегда оказывается больше, чем планировалось. Первоначально я планировал продумать проект за несколько недель, уже прошло 2 месяца. Тему проекта я уже менять не буду. Первая предметная область для помещения в семантическую СУБД – это информация о товарах и услугах.

Основная часть информации хранится в форме графов. При движении вдоль ветвей графа образуются осмысленные высказывания, которые отличаются от высказываний на естественном языке. Я считаю, что эта модель не является семантической сетью или сетевой СУБД, есть серьезные отличия.

По книге Справочник "Искусственный интеллект" по редакцией Д.А.Поспелова, 1990, к представлению знаний предъявляются следующие требования:

  1. Внутренняя интерпретируемость (каждой информационной единицы).
  2. Структурированность. (Вложенность информационных единиц друг в друга)
  3. Связность. (установление отношений или связей между информационными единицами)
  4. Семантическая метрика. (ассоциативные связи между информационными единицами)
  5. Активность. (информация в информационной базе является источником активности системы)

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

Я не считаю эти требования основной целью, к которой нужно стремиться. В некоторой степени в моем проекте будут выполняться требования 1,2,3,5. На данном этапе не вижу необходимости выполнять требование 4. Я не считаю эти требования главным критерием для ИИ.

Мышление, понимание, интеллект

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

  1. Системе передается информация в виде множества семантических знаков.
  2. Система устанавливает соответствие между семантическими знаками и объектами из предметной области, которые они обозначают. Для этого информация о таком соответствии должна храниться в системе. Система устанавливает соответствие между знаком и внутренним представлением объекта.
  3. Семантические знаки передают некоторые отношения между объектами предметной области. Информация об отношениях между объектами предметной области хранится в системе. Система устанавливает соответствие между отношениями, которые передают знаки, и отношениями, информация о которых хранится в системе.
  4. Система выполняет операции по обработке информации. Операции должны соответствовать переданной системе информации и ситуации на момент передачи информации. В результате могут быть получены новые отношения между теми же или другими объектами из предметной области.
  5. Система выводит результат обработки информации в виде множества семантических знаков.

Если выполнены п. 2, 3, то говорят, что система понимает.
п. 4 называют мышлением или наличием интеллекта.
Соответственно п1. - ввод информации, п.5 - вывод информации.
Человеческое понимание дополнительно связано с сознанием.

Тест на наличие интеллекта может заключаться в вводе информации п.1 и получении ответа п.5. По ответу должно быть видно, что п.2,3,4 выполнены корректно. Тема и сложность операций могут быть различными.

Пример работы интеллекта.

В системе хранятся представления понятий из предметной области:
Код……………..Понятие
1……………………Комната
2…………………..Стол
3……………………Диван
4…………………….Кресло
5……………………..Использовать
6……………………….Человек

Код……………Отношение………………………………………….Значение отношения
7…………………Человек использовать комнату…………………..человек находится в комнате
8………………Человек использовать стол…………………………..человек сидит за столом
9…………………Человек использовать диван……………………….человек находится на диване
10……………….Человек использовать кресло………………………человек сидит в кресле

Правила вывода: Отношения 8, 9, 10 взаимоисключающие. Отношение 7 выполняется тогда и только тогда, когда выполняется одно из отношений: 8, 9, 10

Текущее состояние системы: выполняется отношение 9.

1. Системе передается информация в виде множества семантических знаков.

Системе задается вопрос: Человек использовать стол?

2. Система устанавливает соответствие между семантическими знаками и объектами из предметной области, которые они обозначают. Для этого информация о таком соответствии должна храниться в системе. Система устанавливает соответствие между знаком и внутренним представлением

Каждое из слов в вопросе сопоставляется с соответствующим слове в списке слов.

3. Семантические знаки передают некоторые отношения между объектами предметной области. Информация об отношениях между объектами предметной области хранится в системе. Система устанавливает соответствие между отношениями, которые передают знаки, и отношениями, информация о которых хранится в системе.

Отношение в вопросе сопоставляется с отношением 8.

4. Система выполняет операции по обработке информации. Операции должны соответствовать переданной системе информации и ситуации на момент передачи информации. В результате могут быть получены новые отношения между теми же или другими объектами из предметной области.

Поскольку задается вопрос, система ищет ответ. Система проверяет текущее состояние (отношение 9). Поскольку отношения 8, 9 являются взаимоисключающими, делается вывод, что ответ на вопрос: «Не верно».

5. Система выводит результат обработки информации в виде множества семантических знаков.

Выдается ответ: «Не верно».

При этом не показана программная реализация этой схемы. Это только схема, демонстрирующая выполнение описанных пунктов. Могут использоваться разные формы одних и тех же слов или синонимы. Тогда задача п.2 усложняется. Отношения могут передаваться разными формами высказываний, многозначными высказываниями. Тогда задача п.3 усложняется. В систему могут быть добавлены имена разных людей, большее количество предметов, способов использования предметов. Могут быть добавлены понятия классов предметов: мебель, помещение. Тогда п.4 усложняется. Могут быть добавлены различные формы фраз для ответа, тогда п.5 усложняется. Система, обладающая интеллектом должна распознавать какой-то минимальный набор понятий из предметной области, минимальный набор отношений между понятиями из предметной области, и выполнять минимальный набор операций над объектами и отношениями. Иначе система будет не полной, и не будет понимать какие-то знания. Минимальный набор определяется особенностями предметной области.

Основы логической модели представления знаний во многом совпадают с тем, что я писал в этой теме. При описании логической модели используются другие термины и другие фразы. С некоторой точки зрения эти отличия могут быть несущественными, но с другой точки зрения отличия могут оказаться существенными.

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

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

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

"Языки, предназначенные для описания предметных областей, называются языками представления знаний."

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

"Описания предметных областей, выполненные в логических языках, называются (формальными) логическими моделями."

"Справочник. Искусственный интеллект. Модели и методы" под редакцией профессора Д.А. Поспелова, 1990.

Не найдена подходящая формальная модель представления данных. Похоже, что логические языки не являются подходящей формальной моделью для создания ИИ. Логическая модель используется в Онтологии Лената.

Я определил, что фразы должны не последовательно содержать слова, а иметь форму разветвленной сети. В такой же разветвленной форме можно обмениваться информацией. Можно создать формат передачи информации, в котором слова объединены в разветвленную сеть. Можно ту же информацию передать при помощи последовательно расположенных слов, но это значительно сложнее. И нужна формальная модель, которая отличается от логических языков.

Сетевая форма представления информации и ее частные случаи.

К остальным подходам к созданию ИИ комментарий будет такой же. Найдено правильное направление для работы. Но описанные подходы не содержат формальную семантику и операционную поддержку, необходимые для создания ИИ. В общем случае информация имеет форму графов или разветвленной сети. Остальные формы представления информации являются частным случаем сетевой формы представления информации. Я говорю о форме представления информации, а не о моделях представления информации, потому что с существующими моделями представления информации связаны терминология и теоретические описания, которые меня не устраивают. Я поддерживаю форму представления информации, которая найдена в сетевых моделях, фреймовых моделях и продукционных моделях. Форму представления информации в виде логических языков, используемых в логической модели, я считаю неудачной. В частности фреймовую форму представления информации я считаю частным случаем сетевой формы представления информации, потому что фреймы можно изобразить в виде сети. Фрейм – это участок сети, который имеет простую правильную форму.

Фрейм «Алекс»

Это есть…………………….Мальчик
Пол……………………………Мужской
Возраст……………………..8 лет
Место жительства …..Юнион стрит, 10
Любимая еда…………….Банан
Лазит…………………………..Деревья
Тип тела……………………….Гибкий

Фрейм «Банан»

Это есть……………………Фрукт
Цвет…………………………Желтый
Вкус………………………….Сладкий
Кожура……………………..Толстая
Происхождение………..Банановое дерево

Пример фреймов из книги «Компьютер обретает разум» Перевод с английского/под редакцией В.Л. Стефанюка, 1990.

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

Операции для ИИ. Начало.

Для ИИ будет существовать множество типов операций: тип 1, тип 2, тип 3, и т.д. Каждый тип операций будет содержать множество конкретных операций, входящих в множество операций данного типа.

Опишем модель операций типа 1: операции по изменению состояния.

Система ИИ содержит представление информации в некоторой форме. Если представление информации семантическое, т.е. информация представлена посредством знаков, которые имеют какое-то значение, то будем говорить об использовании некоторой формальной семантики. Информация, хранящаяся в системе, может быть постоянной, например, может описывать качества предметов, которые не меняются или меняются редко. Либо информация может описывать характеристики системы, которые постоянно меняются. Например, информация передает место нахождения человека. Человек постоянно перемещается, поэтому такую информацию нельзя считать постоянной. Информацию, передающую характеристики системы, которые постоянно меняются, в данной модели будем называть состоянием системы или информацией о состоянии системы.

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

Операция по изменению состояния меняет состояние системы. Разделим понятие операции на два понятия: операция, происходящая в предметной области, и операция, которая меняет состояние информационной системы.

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

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

Смысл операции состоит в том, что каждая операция производит изменение состояния системы на другое состояние системы. Операция возможна, если начальное состояние системы соответствует начальному условию для данной операции, и если конечное состояние системы возможно, иначе операция невозможна. Операция будет представлена в информационной базе таким образом:

Состояние системы до операции

Операция Х

Состояние системы после операции, которое является результатом операции

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

Возможные запросы к системе:

  1. По периоду времени получить произведенные операции.
  2. По моменту времени получить состояние системы.
  3. То же, что 1 и 2, но запрос о конкретных состояниях и конкретных операциях.
  4. По операциям получить моменты времени, когда они были произведены.
  5. По состояниям получить периоды, когда они существовали.
  6. То же, но запросы произвольной формы с указанием любой известной информации и запросом о любой информации, подходящей к условию запроса.
  7. Вопрос типа: произошла операция Х, какие изменения состояния она вызвала.
  8. Вопрос типа: произошло изменение состояния Х, какими операциями оно могло быть вызвано.
  9. Вопросы о количестве, которые могут начинаться со слова «сколько». Например, сколько операций типа X было выполнено за период Y.
  10. Система должна уметь обнаруживать закономерности, связанные с произведенными операциями и существовавшими состояниями. Например, в какое время данная операция производится чаще всего.

Реализацию множества операций разных типов будем называть операционной поддержкой.

Я буду развивать пример о человеке в комнате, чтобы получилась модель простого ИИ для предметной области «Быт человека».

Развитие примера работы интеллекта с добавлением операций.

Это продолжение примера. Чтобы понимать суть примера, нужно читать предыдущие сообщения с этим примером.

В системе хранятся представления понятий из предметной области в виде слов в словаре:

Код……………..Понятие
1……………………Комната
2…………………..Стол
3……………………Диван
4…………………….Кресло
5……………………..Использовать
6……………………….Человек
11……………………..Занять
12……………………..Освободить

В системе хранятся отношения между словами.

Это блок отношений, которые означают состояние системы.

ЕЯ – естественный язык

Код……………Состояние…………………………Возможные значения состояния…..Значение на ЕЯ
7…………………Человек использовать комната……..истина, ложь…...человек находится в комнате
8………………Человек использовать стол………….истина, ложь…………..человек сидит за столом
9…………………Человек использовать диван………истина, ложь………….человек находится на диване
10……………….Человек использовать кресло………истина, ложь…………человек сидит в кресле

Блок отношений, которые означают операцию.

Код……………Операция……………………………………………….Значение операции на ЕЯ
13……………….Человек занять комната……………………….Человек зашел в комнату
14………………..Человек освободить комната………………Человек вышел из комнаты
15…………………Человек занять стол……………………………...Человек сел за стол
16………………….Человек освободить стол………………………Человек встал из-за стола
17………………….Человек занять диван…………………………..Человек сел или лег на диван
18…………………..Человек освободить диван…………………..Человек встал с дивана
19……………………Человек занять кресло………………………….Человек сел в кресло
20……………………Человек освободить кресло…………………..Человек встал с кресла

Когда система выдает ответ на вопрос, то вместо кода операции или состояния может подставлять значение на ЕЯ. Но когда система принимает информацию, то удобнее использовать внутреннее представление типа «Человек занять комнату». Причина в том, что при работе с системой человеку проще запомнить слова, входящие в словарь системы, и составлять из этих слов сочетания, которые обозначают выражаемые человеком мысли. Та же мысль на ЕЯ может быть выражена разными способами, и человеку будет трудно запомнить фразу на ЕЯ, которая используется в системе. Системе будет сложно распознавать все возможные выражения одной и той же мысли на ЕЯ, тем более что на ЕЯ смысл фразы зависит от контекста. Но в будущем такие возможности могут быть реализованы.

Правила обработки операций:

Операция…Состояние до опер.…Значение состояния….Состояние после опер….Значение состояния
13……………….7………………………………Ложь……………………………7……………………………………истина
14……………….7……………………………….истина…………………………7……………………………………ложь
15……………….8……………………………….ложь……………………………8…………………………………….истина
16………………8………………………………….истина………………………..8……………………………………ложь
17……………….9………………………………..ложь……………………………9……………………………………истина
18……………….9…………………………………истина…………………………9……………………………………ложь
19………………10…………………………………ложь…………………………10…………………..………………истина
20………………10………………………………….истина………………………10……………….…………………ложь

Правила вывода: Отношения 8, 9, 10 взаимоисключающие. Отношение 7 выполняется тогда и только тогда, когда выполняется одно из отношений: 8, 9, 10

На основе этих правил, система будет делать такие выводы:
Если человек зашел в комнату, то он должен или сесть на диван, или сесть в кресло, или сесть за стол.
Если человек встал из-за стола, то он должен или сесть в кресло, или сесть на диван, или выйти из комнаты. Аналогично, если человек встал с кресла или встал с дивана.
Если человек вышел из комнаты, а до этого он сидел за столом, то он встал из-за стола. Аналогично, если человек сидел на диване, или сидел в кресле и вышел из комнаты.

При вводе информации в систему система может на основании этих выводов:
Запрашивать дополнительную информацию. Например, если человек зашел в комнату, то система может спросить, куда сел человек: на диван, в кресло, или за стол.
Сообщать о дополнительных операциях или записывать дополнительные операции в регистр операций. Если система не записывает дополнительные операции в регистр операций, то система может учесть эти операции при ответе на вопрос. Например, если ввели сообщение, что человек вышел из комнаты, то система может записать в регистр операций, что человек встал из-за стола. Если задали вопрос: «когда человек встал из-за стола?», то система может извлечь эту информацию из регистра операций, или сделать вывод, что человек встал из-за стола, когда вышел из комнаты.

Регистр операций.

Код операции в регистре……………момент времени……………….Операция
1000……………………………………………..10:00……………………………………………13
1001………………………………………………10:00………………………………………….15

Регистр состояния

Код состояния в регистре………….момент времени……………….состояние…..знач. состояния
1002……………………………………………….10:00……………………………………7…………………………..истина
1003………………………………………………..10:00……………………………………8…………………………..истина

Состояние, описанное в регистре состояния, начинает действовать с указанного момента времени и действует до следующего изменения состояния.
Строка 1000 из регистра операций ссылается на строку 1002 из регистра состояния, и означает, что операция 1000 вызвала изменение состояния 1002. Аналогично, строка 1001 ссылается на строку 1003.

Описание диалога с системой.

Задается начальное состояние, например, человек не находится в комнате. Задается начальный момент времени.

Человек вводит в программу операции из списка возможных операций с указанием времени операции. Человеку не обязательно запоминать весь список операций. Можно запомнить список людей, которые могут выполнить операцию. Пока в нашем списке только «человек». Можно запомнить список действий, которые может выполнять человек. Пока это «занять» и «освободить». Можно запомнить список предметов, с которыми можно выполнять действия. Пока это «комната», «стол», «диван», «кресло». Сочетания людей, действий и предметов, которые имеют смысл, человек должен сам понимать по смыслу. Если человек ошибется и введет невозможную операцию, то программа об этом сообщит.

Человек может вводить в программу последовательности операций и может задавать вопросы.

Примеры вопросов:

  1. Какие операции совершал человек с 10:00 по 11:00?
  2. Что делал человек в 10:30? (состояние системы в 10:30).
  3. Заходил ли человек в комнату с 10:00 по 11:00?
  4. В какое время человек заходил в комнату?
  5. В какое время человек сидел за столом?
  6. Вставал ли человек с дивана с 10:00 до 11:00?
  7. Человек зашел в комнату в 10:00. Какие изменения состояния при этом произошли?
  8. В 10:30 человек не сидел за столом. Какая операция к этому привела?
  9. Сколько раз человек вставал из-за стола с 10:00 по 11:00?
  10. В какие периоды времени человек чаще находится на диване? Исходя из этого, предположить, когда человек в следующий раз будет находиться на диване.

Некоторые подробности реализации модели не описаны. Например, не описана форма задаваемых вопросов. Не описана реализация выводов в системе и т.д. Форма представления информации в системе может отличаться от описанной, т.к. это только модель, которая может быть реализована иначе.

...

http://ai.obrazec.ru/forum/viewtopic.php?t=2196 - Разрабатываю проект Семантической СУБД

http://yandex.ru/yandsearch?text=Онтология+Лената&lr=65

Источник: http://ai.obrazec.ru/forum/viewtopic.php?t=2085

Автор: DCV http://ai.obrazec.ru/forum/memberlist.php?mode=viewprofile&u=1281
(С) Белов Александр Алексеевич, Беларусь, Гомель
Род занятий: Программист
Интересы: ИИ. физика, психоанализ, ТРИЗ


© AIKernel 2010-2011
18.04.2011 - 29.04.2011