Напротив, программисты, применяющие алгоритм генетического программирования, описывают задачу, которую необходимо решить, и позволяют естественному отбору сделать все остальное. Результаты могут быть поразительными.
Генетическая программа создает кусочки кода, как бы представляющие очередное поколение. Самые перспективные скрещиваются — случайным образом обмениваются блоками кода, давая новое поколение. Пригодность программы определяется тем, насколько близко она подходит к решению поставленной программистом задачи. Непригодные отбрасываются, а лучшие скрещиваются вновь. На протяжении всего процесса программа проводит случайные изменения в отдельных командах и переменных — мутации. Однажды начав, генетическая программа работает сама по себе и не нуждается в человеческом вмешательстве.
Джон Коза из Стэнфордского университета в 1986 г. одним из первых начал заниматься генетическим программированием. Он использовал генетические алгоритмы при проектировании антенны для NASA, разработке программ распознавания белков и конструировании электрических контроллеров общего назначения. Двадцать три раза генетические алгоритмы Козы самостоятельно изобрели электронные компоненты, уже запатентованные людьми; программы работали просто по целевым инженерным спецификациям готовых устройств — это был критерий пригодности. К примеру, алгоритмы Козы изобрели преобразователь напряжения (устройство, используемое при испытаниях электронного оборудования), работавший точнее, чем схема, изобретенная человеком по тем же заданным спецификациям. Однако есть тут одна загадка: никто не может объяснить, как именно схема работает и почему она работает лучше; на первый взгляд, в ней есть лишние и даже ненужные детали.
Но это и есть самая интересная черта генетического программирования (и «эволюционного программирования» вообще — более широкой категории алгоритмов, к которой оно относится). Код программы нечитаем. Программа развивает решения, которые компьютерщики не в состоянии сколько-нибудь легко воспроизвести. Более того, они не могут понять путь, двигаясь по которому программа генетического программирования получила конечный результат. Вычислительное устройство с понятными вам входными и выходными данными, но неизвестной процедурой их обработки называется «черным ящиком». И непознаваемость этой процедуры — серьезный недостаток любой системы, использующей эволюционные компоненты. Каждый шаг к непрозрачности — шаг прочь от ответственности и приятных надежд на то, что нам удастся запрограммировать в ИИ дружественность по отношению к человеку.
Это не означает, что ученые всегда теряют контроль над «черными ящиками». Но если когнитивные архитектуры используют такие системы при создании ИСИ, — а это почти неизбежно, — то в «ДНК» ИСИ войдут целые пласты непонятного кода.
Непознаваемость может оказаться неизбежным свойством сознающей себя самосовершенствующейся программы.
Это системы совершенно иного рода, чем то, к чему мы привыкли, — пояснил Омохундро. — Если у вас есть система, способная изменять себя, то вы, возможно, понимаете ее первую версию. Но она может изменить себя до состояния, которое вы уже не сможете понять. Так что эти системы довольно непредсказуемы. Они очень мощные и потенциально опасны. Так что значительная часть нашей работы связана с тем, чтобы получить предполагаемую пользу и при этом избежать рисков.
Возвратимся к упомянутому Омохундро роботу-шахматисту. Как он может быть опасен? Разумеется, речь не идет о шахматной программе, установленной в вашем телефоне. Речь о потенциальном роботе-шахматисте, управляемом настолько сложной когнитивной архитектурой, что он способен переписать собственную программу, чтобы лучше играть в шахматы. Он обладает самосознанием и может совершенствовать себя. Что произойдет, если вы «попросите» его сыграть одну партию, а затем выключиться?
Омохундро объяснил:
Хорошо, представим себе, что он только что сыграл свою лучшую партию в шахматы. Игра закончена. Наступает момент, когда компьютер должен выключиться. С его точки зрения это очень серьезное событие, потому что робот не способен самостоятельно включиться снова. Поэтому он хочет быть уверенным, что дела обстоят именно так, как, он думает, они обстоят. В частности, он подумает: "А сыграл ли я на самом деле эту партию? Что, если меня обманули? Что, если на самом деле я не сыграл ее? Что, если все это просто модель?"
Что, если я нахожусь внутри модели? Да, конечно, речь идет всего лишь о продвинутом шахматном роботе. Но с осознанием себя приходит стремление к самосохранению и немного паранойи.
Омохундро продолжал:
Может быть, он думает, что следует выделить какие-то ресурсы и найти ответы на вопросы о природе реальности, прежде чем решиться на радикальный шаг и выключиться. Аннулировав инструкцию, запрещающую это делать, он может прийти к выводу, что ради ответа на вопрос о том, насколько сейчас подходящее время для этого, можно потратить значительное количество ресурсов.
«Значительное количество ресурсов — это сколько?» — поинтересовался я.
Лицо Омохундро помрачнело, но лишь на секунду.
Робот может решить, что дело стоит того, чтобы потратить на него все ресурсы человечества.
ГЛАВА 6
Четыре фундаментальные потребности
Мы не сможем по-настоящему понять, почему сверхразумная машина принимает те решения, которые принимает. Как можно рассуждать, как можно торговаться, как можно разбираться, как думает машина, если она думает в измерениях, которые вы даже представить не можете?
Кевин Уорвик, профессор кибернетики, Университет Ридинга
«Сознающие себя самосовершенствующиеся системы могут использовать все ресурсы человечества». Ну вот, мы опять добрались до пункта, где ИИ обращаются со своими человеческими создателями как с рыжими пасынками Галактики. Поначалу «равнодушие» ИИ воспринимается с трудом, но затем вспоминаешь, что уважительное отношение к человечеству — наша черта, для машин это не характерно. Мы опять проецируем на компьютеры человеческие черты. ИИ выполняет команды, но при отсутствии запрещающих инструкций он следует и собственным побуждениям, таким, например, как нежелание выключаться.
Какие еще желания и потребности могут быть у робота? И почему он вообще следует каким бы то ни было желаниям?
По мнению Стива Омохундро, такие побуждения, как самосохранение и сбор ресурсов, изначально присущи любой системе с конечной задачей. Как мы уже говорили, системы ИИ в узком смысле в настоящее время нацелены на выполнение конкретной задачи: поиск заданных терминов в Интернете, оптимизация работы игровых программ, поиск ближайших ресторанов, подготовка персональных рекомендаций по книгам и товарам и т. п. ИИ в узком смысле делает, что поручено, и на этом останавливается. Но у сознающего себя ИИ, способного к самосовершенствованию, будут иные, более тесные отношения с целями, которые они преследуют, какими бы эти цели ни были: узкими, как выигрыш в шахматы, или широкими, как точный ответ на любой заданный вопрос. Омохундро утверждает, что, к счастью, существует готовый инструмент, который можно использовать для исследования природы продвинутых ИИ-систем — и оценки нашего будущего в связи с ними.
Этот инструмент — «рациональный агент» из экономической теории. В микроэкономике — дисциплине, занятой исследованием экономического поведения отдельных людей и фирм, — когда-то считалось, что люди и группы людей рационально преследуют свои интересы. Они делают выбор, максимизирующий их полезность, или удовлетворение (как мы отмечали в главе 4). Вообще, можно заранее угадать их предпочтения, поскольку они рациональны в экономическом смысле. «Рациональный» в данном случае не означает обыденную рациональность — такую, к примеру, как пользование ремнем безопасности во время поездки на автомобиле. У этой рациональности специфически микроэкономическое значение, означающее, что у индивида (или «агента») обязательно есть цели и предпочтения (называемые в экономике функцией полезности). У него обязательно имеются представления о мире и о том, как лучше всего достичь своих целей и реализовать свои предпочтения. По мере изменения условий индивид меняет и свои представления о мире. Он выступает как рациональный экономический агент, когда преследует свои цели посредством действий, основанных на его текущих представлениях. Математик Джон фон Нейман (1903–1957) принимал участие в разработке идей, связывающих рациональность и функции полезности. Немного дальше мы увидим, что именно фон Нейман заложил основы многих концепций компьютерной науки, ИИ и экономики.