Искусственный
интеллект.
Философская
концепция и вопросы реализации. Этот раздел - попытка популярного изложения концепции разработки системы искусственного интеллекта. Проект "Соломон" - программная разработка, одно из любимых детищ автора. Хочу поделиться некоторыми своими мыслями по этому поводу, тем более, что возникают идеи психологического и философского характера. Интересные замечания охотно публикуются. Введение в проблему. Искусственный интеллект. Это сочетание слов приобрело почти неприличный оттенок. Всему виной обманутые ожидания давно выдвинутой и так и не осуществлённой идеи, а также расплывчатый термин: "с элементами искусственного интеллекта". Был период, когда объявить, что ваша сложная программная система не содержит этих самых "элементов" было всё равно, что признаться в изначальной ограниченности проекта. Прикладная система может демонстрировать высокую интеллектуальность, то есть находить решения, неочевидные или даже недоступные человеку, но эта интеллектуальность всегда ограничена прикладной областью. Конечно, фундаментальная постановка разработки системы искусственного интеллекта не должна быть связана с конкретной прикладной задачей. В проекте "Соломон" сделана попытка разработки инструментария, пригодного для построения систем с настолько высоким уровнем "самоосознания", насколько позволила фантазия разработчиков. Необходимы некоторые пояснения. Уровень "самоосознания" (далее без кавычек) - это наиболее высокий (в терминах технологии открытых систем) уровень параметров, данных, процедур системы, на котором она способна заниматься построением алгоритмов, оптимизацией параметров, выбором вариантов реализации, короче говоря, управлением собственной работой. Например, если речь идёт о программе
игры в шахматы, которая способна в зависимости от
сложившейся в партии ситуации, или на основании
собственного игрового опыта, менять текущие
оценки (веса) ценности фигур, элементов позиции
(открытая линия, укреплённое поле и т.п.), и на этом
основании принимать решения, то именно набор
этих параметров и есть её уровень самоосознания. Другой пример. Система идентификации
личности по внешности "Фигурант" имеет в
своём составе модуль самообучения, оптимизации
поиска. Оптимизация состоит в том, что на базе из
примерно шестисот статических параметров,
которые расчитываются по каждой фотографии,
система динамически строит функции вычисления
инвариантов, которые, собственно, и используются
при поиске. Несколько модифицируя инварианты,
система запоминает те изменения, которые
улучшают результаты поиска. Работая по нескольку
часов в день, оптимизация за месяц улучшила поиск
более чем в шесть раз! Понятие "большой системы" -
классический, широко применяемый термин. Под
большой системой понимается система, имеющая
настолько богатый набор внутренних связей, что
общие свойства системы перестают быть просто
следствием свойств и связей её элементов, а
представляют собой некоторое новое качество.
Несколько точнее: мы, её исследователи, не
способны проследить или просчитать такие
следствия, причём не столько по причине их
недоступности или неточности описания, а по
причине сложности, лавинообразного роста
последствий малых воздействий на систему. Мысль авторов состоит в том, что
уникальность нашего интеллекта является
следствием чрезвычайно высокого уровня
самоосознания человека. Он не просто думает,
делает выводы на основе каких-то данных, он
иногда понимает, как и почему он это
делает. Он способен построить (осознать) очень
сложную и непредсказуемую изначально мысленную
модель проблемы, разместить в ней любые наперёд
неизвестные объекты, и даже себя и свои
методы исследования, сформировать цели и
решить задачу или её отдельные элементы, а при
неудаче - сформулировать другую задачу, каким-то
образом связанную с начальной. Любезный Прохожий, надеюсь, я убедил
тебя, что систему искусственного интеллекта
необходимо разрабатывать как систему, полностью
осознающую ту проблему, которой она собирается
заниматься. Осознающую в том смысле, который
сформулирован в предыдущем разделе. Вслед за Михаилом Афанасьевичем: за мной, Прохожий, и я покажу тебе такую любовь. То есть модель базы знаний. Из общих соображений (и из опыта): чем
более простым и однообразным будет базовый
уровень языка, тем более общие и разнообразные
структуры на нём можно описать. Пусть объект
- атом, минимальная частица базы знаний нашей
системы. Для языка этого мало, объекты необходимо
как-то связывать. Пусть каждый объект может быть
связан с любыми другими объектами! Недостаточно,
неразличимы связи, нумеровать их, что ли? Пусть
связь - такой же объект той же базы знаний. Пока
достаточно. Постулат №1. Для того, чтобы система полностью осознавала объекты знаний, необходимо, чтобы наши программы (которыми описана система) не различали этих объектов. Кажется, я выразился недостаточно
ясно. Вот пример, Прохожий. Мы ещё вернёмся к этому эффекту потери контакта с казалось бы элементарной системой. Сейчас утешительный пример для любителей кристальной чистоты и ясности. Пусть вышеназванные объекты - позиции в шахматах, связи строим как правильные шахматные ходы из одной позиции в другую, новые объекты создаём путём корректных ходов из уже имеющихся позиций. Если теперь для выбора очередного "шага" придумать какую-нибудь классическую стратегию "минимакса", то мы получаем хорошо нам знакомую схему игровой программы (или General Problems Solver, кому больше по душе эти воспоминания). Этот ясный частный случай мы получили из самой общей начальной схемы. Продолжаем разговор. Постулат №2. Для того, чтобы система полностью осознавала себя, необходимо, чтобы она не имела возможности различать объекты в наших программах. Приехали. Всё написанное означает, что, стремясь к полностью самоосознаваемой системе, мы будем вынуждены полностью изолировать её от наших программ. После того, как система будет запущена, мы потеряем с ней всякий контакт. Мы сможем наблюдать только общие характеристики: объём и динамику базы знаний, статистику объектов и связей разного типа и.т.п. Можно рассмотреть два пути. Первый. Полностью принимая оба постулата, обеспечив тем самым полное самоосознание, мы оставляем систему "как есть". Правила, руководствуясь которыми система работает с объектами, при этом могут быть различными, но конструктивно регулировать их нам не удастся. Вместо разработки мы поднимаем флаг исследования, и, наблюдая то, что будет продуцировать система (как иерографический текст), мы, может быть, что-нибудь поймём. Не исключено, что полученный чёрный ящик с "входом" и "выходом" будет достаточно обучаемым. Соблазн этого подхода - в чистоте концепции. Практически я его не исследовал, но некоторые идеи всплывают на более позднем этапе, о чём ещё будет сказано. Второй. Может быть, найти некоторый компромисс и смириться с частичной потерей самоосознания, пытаясь сохранить контакт с системой? В самом деле, ведь человек тоже "не вполне" осознаёт себя. Все психологические школы (сколько их там, пятнадцать?) сходятся в том, что сфера бессознательного (называемая, возможно, иначе) занимает значительную часть психики. Совсем грубо можно нарисовать так: - вверху собственно разум, царство
логики и умозаключений, оно самоосознаваемо
вполне; Следуя аналогии, сома, физиология - это коды программ. Они существуют в том виде, в котором их написали программисты, самоосознанию не поддаются (хотя изучать их, как мы своё тело, система сможет!). Разум - собственно та база знаний, которую мы нарисовали выше. Подсознание - то нечто, что лишь частично осознаваемо, и поэтому поддаётся контролю. Его надо придумать. Прежде всего, подсознание - часть той же базы знаний. Хотя бы потому, что оно потенциально осознаваемо. В частности, его объекты могут быть в общем порядке включены в динамически образуемые структуры, связи. В то же время эти объекты должны обладать рядом других свойств, которые непосредственно системой не осознаются. Эти свойства - функция программ (то есть, физиологии), которые "знают" эти объекты, контролируют их. Прохожий, позволь отвлечься на один
абзац и объясниться. Продолжим. В принципе, система может создать
любой объект и любые связи, и процесс этот (опять
таки, в принципе) - спонтанный. Разумеется, такое
свободное ассоциирование подлежит
регулированию. Так как этот уровень работы
системы реализуется программами (в нашей
терминологии - физиология), он совершенно не
осознаётся, как мы не осознаём работу нейронов
нашего мозга. На роль объектов, которыми мы
собираемся управлять, не так много кандидатов.
Согласно постулату, объекты базы знаний
неразличимы, мы просто не в силах определить,
какой из них соответствует, скажем, автомобилю, и
есть ли такой вообще. Другое дело - язык, на
котором в систему вводится информация (например,
русский). Какие объекты являются понятиями - нам
неизвестно, но слово - вещь вполне конкретная.
Теперь ясно, как вводить регулирование
подсознания. Доказательство - возникают как
следствие точечного стимулирования операций с
избранным объектом. Эти задачи можно
интерпретировать как попытки доказательства
(или опровержения, что то же самое) предположений,
гипотез. Замечу, что это вовсе не те задачи, которые мы ставим перед системой, речь идёт о самом низком уровне - границе сознания и физиологии. Этот уровень специально создан таким ... Пишем. Продолжение следует ... Оригинал находится на: http://www.shaman.ryazan.ru/solomon/solomon.html |