Законы Азимова в псевдокоде или применение трех законов сегодня [закрыто]

Сначала я спросил об этом на Writers.SE, но мне посоветовали, что я мог бы сделать лучше здесь...

Я работаю над научно-фантастическим романом, в котором будет рассказано о большом количестве и разнообразии синтетических форм жизни. На меня большое влияние оказали работы Азимова, и хотя я не могу прямо указать законы, которые использую для управления искусственной жизнью, я хочу иметь прочную основу для того, как мои роботы — или как бы они ни назывались — способны принимать этические решения. С точки зрения сюжета, мне также нужны реалистичные способы, которыми эти правила могут быть взломаны или иным образом подорваны.

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

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

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

Редактировать: спасибо за комментарии ... кто-нибудь хочет и может начать чат по этой идее?

Как вы понимаете, это дискуссионный вопрос. Помните, что это (наряду со всеми другими сайтами SE) сайт вопросов и ответов. Как бы это ни было интересно, вы должны зайти в наш чат и спросить там, у вас больше шансов получить не только ответ, но и хорошую дискуссию, которую вы ищете.
@Kevin: К сожалению, я уже погрузился в это с головой. В основном я ответил на вопрос, какой алгоритм будут использовать роботы Азимова для реализации Трех Законов? Но я согласен перенести обсуждения в чат.
Чтобы не выкидывать вас снова, но это может подойти для Progammers.SE
@HorusKol Не уверен в этом. Правила, регулирующие «мораль» (так сказать) роботов, требуют, чтобы мы сначала достигли настоящего ИИ, который в настоящее время прочно входит в сферу научной фантастики. В научной фантастике часто предполагается, что робот без Трех законов будет делать «все, что захочет», но сама по себе такая ситуация возможна только в научной фантастике.
@АндресФ. - хотя настоящий ИИ может быть НФ, работа над ним ведется здесь и сейчас, и я видел множество неинтеллектуальных систем в лаборатории, по крайней мере, кажется, что они делают «все, что хотят» :)
@HNL - Хороший ответ на вопрос редко мешает его закрытию. Это одна из причин, по которой можно голосовать и принимать ответ на закрытый вопрос, а представитель не уходит, как с удаленным.
Работа Юдковского над «Дружественным ИИ» кажется актуальной.
Это совершенно невозможно. Эта проблема намного сложнее, чем проблема сильного ИИ, а проблема сильного ИИ должна зависеть от способности ИИ изменять свои собственные принципы работы. Но изображается реализованным на голом железе, о чем не может быть и речи. «Робот не может причинить вред человеку» потенциально возможно, но «бездействием допустить, чтобы человеку был причинен вред» — нет.
Я несколько в недоумении, как этот вопрос выжил.

Ответы (7)

Весьма спекулятивный вопрос, но давайте попробуем ответить на него:

Шаг № 1: Определите робота

  • Робот — это, по сути, компьютер с подключенными датчиками и исполнительными механизмами.
  • Можно убрать датчики и актуаторы, не уменьшая сути робота, который оставляет компьютер или мозг.
  • Компьютер основан на трех вещах (о чем хорошо знает человек с вашим уровнем образования): ввод, обработка и вывод .

Шаг №2: Законы в удобочитаемой форме

  1. Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинен вред.
  2. Робот должен подчиняться приказам, отдаваемым ему людьми, за исключением случаев, когда такие приказы противоречат Первому закону.
  3. Робот должен защищать свое существование до тех пор, пока такая защита не противоречит Первому или Второму закону.
  4. Нулевой закон : Робот не может причинить вред человечеству или своим бездействием позволить человечеству причинить вред.

Шаг № 3: Предпосылки алгоритма

  • Способность ощущать, объективно оценивать и сравнивать «вред»
  • Глубокое знание человеческих уязвимостей (физиологических, пищевых, психологических)
  • Глубокое понимание причинно-следственных законов его рабочей области (например, устройство А излучает излучение; бетонная колонна В может выдержать только силу в 10 000 ньютонов и т. д.)
  • Таким образом, он обладает способностью предсказывать последствия всех доступных ему действий и действий, которые люди могут предпринять, с приемлемой для людей степенью точности.

Шаг № 4: Алгоритм

  • Необработанный ввод : входные данные датчиков (визуальные, слуховые, тактильные, удаленные датчики, потоки в реальном времени из распределенных сетей, таких как Интернет и т. д.)
  • Обработанные входные данные для алгоритма : массивный вектор/матрица предполагаемых вероятностей: например, скорость и направление автомобиля A, спроецированные на столкновение с человеком H через 3 секунды; рефлекс человека-водителя: 0,3 секунды; ETA этого робота до местоположения H: 2 секунды -> Продолжайте обрабатывать эти переменные до тех пор, пока порог риска не будет превышен, и (в этом случае, до того, как ETA автомобиля достигнет двух секунд) инициируйте превентивные действия.
  • Необработанный результат : матрица оцененных рисков возможных действий.
  • Оценка возможных превентивных действий в зависимости от затраченного времени, риска для себя и других, вероятности успеха, серьезности вреда, которому подвергается человек: например, убрать человека H с дороги? предупредить водителя? предупредить человека H, если машина движется медленно?
  • Конечный результат : Действие
  • Пока предпринимаются действия, запустите непрерывный цикл оценки, чтобы увидеть изменения переменных риска, чтобы при необходимости можно было скорректировать действия.

Подразумеваемое

  • Обратите внимание, что это в основном система оценки рисков.
  • Обратите внимание, что пункт «разрешить через бездействие» очень сложно реализовать — только роботы с глубоким пониманием людей смогут вмешиваться в действия людей, чтобы предотвратить вред.
  • Обратите внимание, что нулевой закон требует данных о рисках, охватывающих все человечество, что будет трудно внедрить в отдельных роботов — для этого потребуется суперкомпьютер.
+1 Отличный ответ. Кажется, это нужно переместить в чат, но я новичок на этой странице SO, поэтому у меня еще нет прав для этого... Единственная причина, по которой ваш ответ не является полным, заключается в том, что я не полностью идет с моим вопросом. Для автора существует тонкая грань между передачей идей людям и получением идей от людей. Я предполагаю, что я думаю, что пока мы говорили о законах Азимова, кто-то, вероятно, уже думал об этом. Если бы мы говорили конкретно о моих собственных законах, я бы больше рисковал себя немного связать. Я с нетерпением жду разговора об этом.
@StevetheMaker Вы можете попросить людей, заинтересованных в обсуждении этого, сначала заявить, что все, что они говорят или производят во время этого обсуждения, будет общественным достоянием. Таким образом, вы можете использовать любой продукт такого чата в своих работах. Я не думаю, что люди были бы против.
@IlariKajaste Точно. Лично я совсем не возражаю, если Стив использует какую-либо часть этого ответа в своей истории.
Не забудьте «Определить человека». Я помню кое-что об определенных роботах, которые были запрограммированы на определение «человека» как нечто очень специфичное для определенной расы и/или группы, и поэтому их можно было использовать в качестве оружия.

В дополнение к ответу @HNL, вот несколько диаграмм, показывающих внутренности робота.

Общая схема

внутренности робота

На самом деле саму «обработку» можно разделить на 2 слоя, подобно нейронной системе человека — должна быть высокоуровневая система, выполняющая высокоуровневые задачи (например, «Пойти в магазин»), и низкоуровневые задачи, такие как «Левая нога — сделать». следующий шаг'. Это кажется более логичным с технической точки зрения. Его легче развивать. Также проще повторно использовать некоторые модули. Задачи уровней имеют разную направленность - система высокого уровня управляет отношениями и этикой, а система низкого уровня - физическими движениями и взаимодействием с вещами.

Итак, процесс внутри «нейронной системы» выглядит следующим образом:

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

  2. Модуль принятия решений принимает решение. Модуль высокого уровня — это место, где мы в первую очередь реализуем 3 закона. Низкоуровневый модуль определяет, должен ли робот дождаться зеленого сигнала светофора или прекратить движение, например, чтобы не наступить на кошку.

  3. Модуль действий получает решение и выполняет действия. Высокий уровень: Чтобы пойти в магазин, мне нужно узнать, что нужно, пойти по улице и т. д. Действия высокого уровня разбиты на ряд действий низкого уровня (пошевелить руками, ногами, сказать что-то и т. д.).

  4. Обратная связь дает роботу возможность видеть/предвидеть свои действия или их последствия.

Модуль принятия решений

принятие решения

Входные данные — это описание ситуации (вывод модуля парсера). Модуль принятия решений использует несколько различных подходов к анализу.

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

Резюме

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

Вот некоторые мысли о взломе и подрывной деятельности:

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

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

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

  4. Модуль принятия решений должен быть разным в разных странах/культурах. Хороший пример — разные жесты в разных культурах и робот должен реагировать по-разному. (Наверняка японский робот запутался бы в Европе).

  5. Вы можете дать роботам возможность общаться друг с другом через сеть. Так они могли объединиться и скоординировать свои действия, чтобы удовлетворить законы. С другой стороны, это может быть катастрофа, как Скайнет.

  6. Когда часть модуля принятия решений сломана и робот убивает человека - робот все равно должен это "понимать" - ситуация через датчики перейдет в его "мозг" и "память". Что делать роботу в этом случае? Сообщить о себе как о сломленном, или выработать «защитный» инстинкт?

  7. Может быть интересный поток стирания памяти. Например, есть нейронная сеть, которая неявно содержит какие-то правила, и отдельная «память», где роботы хранят какие-то факты. Таким образом, если вы стираете только необработанную память, поведение робота и некоторый опыт все еще будут находиться в нейронной сети, и робот сможет каким-то образом восстановить «стертое» прошлое.

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

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

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

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

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

П. В. Сингер утверждает, что законы робототехники Азимова не работают. Он поднял вопросы реализации «Трех законов робототехники» Азимова в своей книге « Wired for War » (2009 г.), особенно на странице 423 в издании в мягкой обложке.

Есть только три проблемы с этими законами. Во-первых, это фикция. Это сюжетный ход, который Азимов придумал, чтобы продвигать свои истории. Действительно, его рассказы почти всегда вращались вокруг того, как роботы следуют законам, но затем сбиваются с пути и вытекают из этого непредвиденные последствия. В рекламе экранизации знаменитой книги Азимова « Я, робот » 2004 года лучше всего сказано: «Правила созданы для того, чтобы их нарушать».

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

Вторая проблема заключается в том, что ни одна технология пока не может воспроизвести законы Азимова внутри машины. Как выразился Родни Брукс: «Люди спрашивают меня, следуют ли наши роботы законам Азимова. На то есть простая причина. Я не могу встроить в них законы Азимова». Дэниел Уилсон немного более витиеват. «Правила Азимова хороши, но в то же время и чушь собачья. Например, они на английском языке. Как, черт возьми, вы это программируете?»

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

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

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

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

Я бы предложил изучить следующие аспекты:

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

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

Чтобы иметь возможность оценить риск, нужно уметь его замечать. Датчики редко бывают идеальными. Мощность процессора ограничена. Алгоритмы ограничены. Если трое увидят преступление, получится четыре истории. Почему? Поскольку наш мозг получает 100 миллионов битов информации каждую секунду от сенсоров тела, но только 40 из них попадают в наше сознание, мы были бы совершенно ошеломлены, если бы нам приходилось иметь дело со всем. Таким образом, информация сжимается. Иногда важные детали теряются. Эти части воссозданы со здравым смыслом и воспоминаниями без нашего ведома. Можем ли мы построить робота, который работает лучше, или этот искусственный мозг сгорит за несколько минут?

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

Всегда помните, что вещи никогда не бывают идеальными. У вас всегда есть баланс между преимуществами и недостатками. Если робот может обрабатывать большой объем информации, то причины этого могут быть поверхностными. Если это глубокий мыслитель, объем информации должен быть как-то ограничен.

Есть ли у него цели или скрытые планы (вспомните HAL в 2001 году)?

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

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

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

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

. . . . отдаленный след теста координации моторного восприятия?

Вы, ребята, слишком усложняете это:

Первый закон

setClass Law01

if { status_human=danger;
     Then rescue_human;
}

if{ status_Self=(status_human=harm);
     then cancel action;
}

else goto 01;

Второй закон

SetClass Law02;
cin >>directive;
Law01 = directive;

if {status_human= danger;
    then cout<<"I'm afraid I can't do that, Dave.";
else
    status=directive;
}

Третий закон

SetClass Law03
if{ status_Self=harm;
    then Law01 action_status;

    Law02 action_status;
    if {action_status=0;
        then self_status=0;}
        else action_status=1;
}

Обратите внимание: если вы не можете сказать, это глупый ответ. Не зацикливайтесь на том, что я смешиваю C++ с BASIC или ставлю точки с запятой не там, ладно?