Контроль над возможностями — в лучшем случае мера временная и вспомогательная. Если не планируется держать ИИ в заточении вечно, придется разрабатывать принципы выбора мотивации. Но как быть с ценностями? Сможем ли мы внедрить их в систему искусственного агента таким образом, чтобы он начал руководствоваться ими как своими конечными целями? Пока агент не стал разумным, у него, скорее всего, отсутствуют способности к пониманию или даже представлению, что такое система человеческих ценностей. Однако если откладывать процедуру обучения, дожидаясь, когда ИИ станет сверхразумным, то, вполне вероятно, он начнет сопротивляться такому вмешательству в свою систему мотивации и, как мы видели в седьмой главе, у него на то будут конвергентные инструментальные причины. Загрузка системы ценностей проблема не из легких, но отступать нельзя.
Проблема загрузки системы ценностей
Невозможно перечислить все ситуации, в которых может оказаться сверхразум, и для каждой из них определить действия, которые ему следует совершить. Точно так же невозможно составить список всех миров и определить полезность каждого. В любой реальности, гораздо более сложной, чем игра в крестики-нолики, есть слишком много возможных состояний (и исторических состояний[447]
), чтобы можно было использовать метод полного перебора. Значит, систему мотивации нельзя задать в виде исчерпывающей таблицы поиска. Вместо этого она должна быть определена более абстрактно, в качестве какой-то формулы или правила, позволяющих агенту решить, как поступить в любой ситуации.Один из формальных путей описания этого правила решений состоит в определении функции полезности. Функция полезности (как мы помним из первой главы) задает ценность каждого возможного исхода или в более общем случае — каждого из так называемых возможных миров. При наличии функции полезности можно определить агента, максимизирующего ожидаемую полезность. В любой момент такой агент выбирает действие, имеющее самое высокое значение полезности. (Ожидаемая полезность рассчитывается путем умножения полезности каждого возможного мира на субъективную вероятность того, что этот мир станет реальностью при условии совершения рассматриваемого действия.) В реальности возможных исходов оказывается слишком много, чтобы можно было точно рассчитать ожидаемую полезность действия. Тем не менее правило принятия решения и функция полезности вместе определяют нормативный идеал — понятие оптимальности, — который агент мог бы разработать, чтобы сделать приближение, причем по мере повышения уровня интеллекта ИИ приближение становится все точнее[448]
. Создание машины, способной вычислить хорошее приближение ожидаемой полезности доступных ей действий, является ИИ-полной задачей[449]. В этой главе мы рассматриваем другую задачу — задачу, которая остается таковой даже в случае решения проблемы создания машинного интеллекта.Схему агента, максимизирующего полезность, мы используем для того, чтобы представить оказавшегося в затруднительном положении программиста, работающего с зародышем ИИ и намеревающегося решить проблему контроля. Для этого он наделяет ИИ конечной целью, соответствующей, в принципе, нормальному человеческому представлению о желаемом исходе. Программист, у которого есть своя система ценностей, хотел бы, чтобы ИИ усвоил ее. Предположим, речь идет о понятии счастья. (Такие же проблемы возникли бы, если бы программиста интересовали такие понятия, как правосудие, свобода, слава, права человека, демократия, экологическое равновесие, саморазвитие.) Таким образом, в терминах ожидаемой полезности программисту нужно определить функцию полезности, которая задает ценность возможных миров в зависимости от уровня счастья, который они обеспечивают. Но как выразить эту функцию в исходном коде? В языках программирования нет понятия «счастье». Чтобы этот термин использовать, ему сначала следует дать определение. Причем недостаточно определить его, используя философские концепции и привычную для человека терминологическую базу, например: «счастье — это наслаждение потенциальными возможностями, присущими нашей человеческой природе», или каким-то иным не менее мудреным способом. Определение должно быть дано в терминах, используемых в языке программирования ИИ, а в конечном счете с помощью таких базовых элементов, как математические операторы и ссылки на ячейки памяти. Когда смотришь на проблему с этой точки зрения, становится понятна сложность стоящей перед программистом задачи.