Развитие творческого мышления и интеллекта

 


Искусственный интеллект

Автор: Андрей Малыгин от 16 мая 2014
"Философская концепция и вопросы реализации"

Искусственный интеллект. Это сочетание слов приобрело почти неприличный оттенок. Всему виной обманутые ожидания давно выдвинутой и так и не осуществлённой идеи, а также расплывчатый термин: "с элементами искусственного интеллекта". Был период, когда объявить, что ваша сложная программная система не содержит этих самых "элементов" было всё равно, что признаться в изначальной ограниченности проекта.

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


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


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


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


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


Другой пример. Система идентификации личности по внешности "Фигурант" имеет в своём составе модуль самообучения, оптимизации поиска. Оптимизация состоит в том, что на базе из примерно шестисот статических параметров, которые рассчитываются по каждой фотографии, система динамически строит функции вычисления инвариантов, которые, собственно, и используются при поиске. Несколько модифицируя инварианты, система запоминает те изменения, которые улучшают результаты поиска. Работая несколько часов в день, оптимизация за месяц улучшила поиск более чем в шесть раз!


В данном случае уровень самоосознания " пространство этих шестисот параметров, система их не придумала, не осознаёт, но манипулирует ими совершенно самостоятельно, осознанно.


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


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


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


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


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


Уникальность нашего интеллекта является следствием чрезвычайно высокого уровня нашего самоосознания. Человек не просто думает и делает выводы на основе каких-то данных, но иногда и понимает, как и почему он это делает. Он способен построить (осознать) очень сложную и изначально непредсказуемую мысленную модель проблемы, разместить в ней любые наперёд неизвестные объекты (включая себя и свои методы исследования), способен поставить и решить задачу или её отдельные элементы, а при неудаче " сформулировать другую задачу, каким-то образом связанную с начальной.


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


Призрак структуры


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


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


Не напоминает ли это попытку вытащить себя из болота за волосы? Система должна полностью осознавать себя, то есть она должна быть описана в тех терминах и объектах, которые она сама сконструировала, сама способна создать, изменить и уничтожить!


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


Из общих соображений (и из опыта): чем более простым и единоообразным будет базовый уровень языка, тем более общие и разнообразные структуры на нём можно описать.


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


И последнее предварительное замечание: программы мы пишем на определенном языке. Ясно, что наши целые, плавающие, классы и прочая программистская комбинаторика " совсем не те объекты, которыми манипулирует база знаний (романтизм LISPа оставим в прекрасном прошлом). Чтобы не путать такие объекты друг с другом, назовём их соответственно объектами программы и объектами знаний.


Если система сможет создавать и уничтожать любые объекты знаний, будет ли такая база знаний полностью осознаваема? Да, если единственным механизмом работы с объектами знаний будут ее собственные механизмы. На языке программиста: для наших программ все объекты знаний " равноправны, то есть мы их различия системе никак не навязываем (и не мешаем осознавать!). Отсюда:


Постулат "1. Для того, чтобы система полностью осознавала объекты знаний, необходимо, чтобы наши программы (которыми описана система) не различали этих объектов.


Кажется, я выразился недостаточно ясно. Вот пример.


Пусть система на каждом шаге либо создаёт, либо уничтожает случайный объект. Так как связи " такие же объекты, их это тоже касается. В описанных терминах такая система " почти полностью осознаваемая база знаний (кроме механизма выбора случайного), но для нас, по-видимому, совершенно бесполезная.


(Вопрос бессмысленности подобной системы " вопрос спорный и очень интересный, но это для более позднего разговора.)


Мы ещё вернёмся к этому эффекту потери контакта с, казалось бы, элементарной системой. Сейчас утешительный пример для любителей кристальной чистоты и ясности. Пусть вышеназванные объекты " позиции в шахматах; связи строим как правильные шахматные ходы из одной позиции в другую; новые объекты создаём путём корректных ходов из уже имеющихся позиций. Если теперь для выбора очередного "шага" придумать какую-нибудь классическую стратегию "минимакса", то мы получаем хорошо нам знакомую схему игровой программы (или General Problems Solver, кому больше по душе эти воспоминания). Этот ясный частный случай мы получили из самой общей начальной схемы.


Может ли система воспринимать и различать объекты программы, то есть объекты, находящиеся вне её базы знаний? Если бы это было так, природа таких различий была бы воспринимаемой системой, но не осознаваемой ею, это же программа. То есть, верен и второй, симметричный первому постулат (теперь это уже кажется естественным):


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


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


Можно рассмотреть два пути.


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


Второй. Может быть, найти некоторый компромисс и смириться с частичной потерей самоосознания, пытаясь сохранить контакт с системой? В самом деле, ведь человек тоже "не вполне" осознаёт себя. Все психологические школы сходятся в том, что сфера бессознательного (называемая, возможно, иначе) занимает значительную часть психики. Совсем грубо можно нарисовать так:


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


Разум " собственно та база знаний, которую мы нарисовали выше.


Подсознание " то нечто, что лишь частично осознаваемо, и поэтому поддаётся контролю. Его надо придумать.


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


Небольшое отступление.


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


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


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


Продолжим.


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


В принципе, система может создать любой объект и любые связи, и процесс этот (опять-таки в принципе) " спонтанный. Разумеется, такое свободное ассоциирование подлежит регулированию. Так как этот уровень работы системы реализуется программами (в нашей терминологии " физиология), он совершенно не осознаётся, аналогично тому, как мы не осознаём работу нейронов нашего мозга.


Введем некоторые понятия.


Фокус " это небольшое подмножество объектов, на которое направлено "внимание" системы в данный момент. Причин введения такого понятия две: у нас только один процессор (ну, четыре, не миллион же) и желание добиться целеустремлённости. Именно с объектами фокуса производятся преобразования, в нём создаются и уничтожаются объекты и связи. В соответствии с общими правилами объекты помещаются в фокус и удаляются из него. Причиной помещения объекта в фокус является то, что в результате очередной операции система по связи "вышла" на этот объект. Все объекты в фокусе снабжены атрибутом актуальности, которая при отсутствии интересных результатов постепенно уменьшается. Наименее актуальные объекты удаляются из фокуса (но не из базы знаний!).


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


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


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


Аналогия с мышлением здесь на поверхности " пока цепочка наших дедуктивных или ассоциативных рассуждений к чему-то ведёт, мы её продолжаем. Каждое новое содержательное понятие, подтверждённое тем, что находилось вне нашего внимания (вне фокуса!), укрепляет нас в этом занятии. И наоборот " если очередной вывод уже встречался ранее в этом же фокусе, мы занимаемся чем-то не тем.


Вернемся к попыткам управления базой знаний.


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


Что дальше


Теперь ясно, как вводить регулирование "подсознания" нашей программы.


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


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


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


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


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


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


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

Комментарии:

Оставить комментарий
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
 
vladjurnalist.ru.