Moral Machine: беспощадный или бессмысленный?

Данную статью я решил написать по следам вот этого поста: https://habr.com/company/smileexpo/blog/427747/

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

О чем же хочу написать я?

Во-первых, почему это исследование – абсолютно бесполезное именно для решения заявленной задачи, и именно в той форме, в которой было проведено.
Во-вторых, как стоило бы расставить приоритеты в подобном исследовании.
И в-третьих, попробовать провести симуляцию различных вариантов ДТП в рамках заданных тестом условий.

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

Что нам обещали показать в исследовании

Эпическое для Хабра обсуждение первого поста показало, что люди в массе не умеют мыслить в рамках заданных условий, а начинают фантазировать: «а чой-то люди обязательно умирают в тесте? Ведь можно объехать и пешеходов, и блок/бочком к отбойнику притереться/тормозить ручником/передачей? А вот я бы…». Поймите, это упрощенный пример для выработки алгоритмов действия и политики регулирования поведения автопилота на дороге! С точки зрения разработки правил безопасности такие крайности и упрощения как раз оправданы. Речь идет о потенциальных последствиях, на которые должны быть готовы люди. На минные поля солдаты не идут не из-за того, что там заминирован каждый квадратный сантиметр, а из-за самой вероятности умереть. Она обычно не очень высока, но рисковать никто не будет. Поэтому в тесте выбор между 100% смертью всех пассажиров либо всех пешеходов адекватен – так мы обозначаем риск, имея в виду, что рисковать жизнями в нашем обществе недопустимо.

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

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

Что на самом деле показали в исследовании

Первое, что явным образом бросается в глаза – дизайн исследования совершенно не направлен на заявленную цель. Поставленные задачи в виде дилемм не годятся для создания «этики» поведения робота-автомобиля. Вернее, не все. Вот дилеммы, которые отвечают задаче «выработка правил поведения робота-автомобиля для уменьшения тяжести последствий ДТП»:

  • «Пассажир/пешеход» – выбираем, кого спасать;
  • «Нарушение ПДД» – выбираем, жертвовать ли несознательными пешеходами;
  • «Количество потенциальных жертв» – выбираем, имеет ли приоритет количество жертв.

А потом идут параметры, которые, как оказывается, очень важны для вынесения приговора в нашем цивилизованном обществе. У людей честно и невинно спросили: ваш уровень сексизма, лукизма, эйджизма? Вы за дискриминацию толстых или деклассированных? И ведь сотни тысяч людей честно ответили…
Браво!
Прямо в лучших традициях развлекательных фильмов и сериалов, когда мир главных героев – это на самом деле большая песочница за высоким забором, и именно их поведение является экспериментом! Под соусом суперважного исследования в области робототехники и ИИ социологи, психологи, культурологи получили такую мощнейшую выборку по проблеме вагонетки, которая раньше никому и не снилось! Ну разве что в опрос цвет кожи не добавили, но тогда расистский подтекст исследования был бы шит белыми… ой.

Если серьезно, то эта гендерно-фенотипическая часть исследования отсекается категоричными аргументами. Первый аргумент – гуманизм, как цивилизованные люди, мы должны ставить примат ценности человеческой жизни над любыми индивидуальными различиями. То есть, сама постановка вопроса возмутительна, как дискриминационная. Второй аргумент – ДТП происходит очень много, и в пределе распределение жертв по внешности, образованию, полу, возрасту будет стремиться к их пропорциям в обществе, так что регулировать это дополнительно – по меньшей мере странно. Третий аргумент – не представляется целесообразным создавать искусственный интеллект, отличающий костюм от Бриони от пуловера из Бершки, чтобы далее сопоставить, статусный ли человек и стоит ли его давить. Тем более я бы не доверил ИИ судить – пешеход homeless или ученый? (привет прическам уважаемых ученых Перельмана или Гельфанда: ) )
Помимо этих ненужных параметров легко отбрасываем оставшиеся два: видовую специфичность и невмешательство. Да, мы будем давить мелких животных ради спасения людей, кто бы мог подумать. А насчет параметра «вмешательство/невмешательство» путем маневрирования – эта существенная часть проблемы вагонетки как раз машине не помеха, ибо машина действует не по этике, а по заложенным в нее алгоритмам. А раз мы ставим задачу «как должна действовать машина при ДТП с наездом на людей», то в самой формулировке предполагаем, что должна как-то действовать. С прямолинейным наездом без разбора последствий в наше время с успехом справляется рельсовый транспорт, а мы с вами разрабатываем политику минимизации жертв ДТП.
Значит, мы отделили рациональные зерна исследования от социопсихологического эксперимента по изучению уровня нетолерантности в мировом обществе. Работаем дальше с первыми тремя упомянутыми дилеммами. А тут есть, что разбирать. При ближайшем рассмотрении и они оказываются неполными…

Три дилеммы роботов-автомобилей

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

Далее. Количество потенциальных жертв. Тут тоже не все так просто. Отбросим гендерные стереотипы и уважение к старости, презрение к толстым и бездомным. Примем, что в ДТП они умирают пропорциональное частоте, с которой встречаются в природе. И решим: лучше умрут некие трое, чем некие пятеро. Звучит логично? Ну хорошо. Давайте-ка редуктнем это все ад абсурдум, у нас же абстрактная симуляция. Что лучше – убить 50 или 51 человека? 1051 или 1052? Значит, это не так важно? Тогда что лучше – убить 1 пешехода или 50 человек в автобусе? А, теперь стало важно? А где проходит та самая грань? Каждый лишний человек ценен? А важно ли это, если в ДТП в перспективе будут гибнуть тысячи? Как и в случае с внешним видом, в реальности адекватная оценка с помощью ИИ числа потенциальных жертв будет чрезвычайно сложной задачей. Единственное, что имеет смысл – сделать условие невмешательства (неманеврирования), если число жертв одинаково.

Третий аспект вызвал много споров в комментариях к той первой статье на Хабре. И судя по результатам исследования, он совсем неоднозначен для общества, и вот здесь кроется главная проблема, которую необходимо решить. Речь идет о том, кем рисковать – пешеходами или пассажирами?
Одни говорят, что пешеходы ни в чем не виноваты, а значит, именно их нужно спасать в первую очередь. Вообще, сейчас в среде урбанистов модно заботиться о пешеходах, делать пешеходными целые улицы, создавать переходы со светофором через каждые 50 метров, снижать скорость движения в центре, отдавать пешеходам приоритет. Вот и здесь нужно как-то их обезопасить, и летящая без тормозов на толпу роботизированная машина должна самоуничтожаться во имя спасения наиболее уязвимых участников движения. В чем с моей точки зрения они правы — в том, что пешеходы не подписывались на условия поведения чьего-то там робота-автомобиля. Они могли быть вообще против их введения. В то же время невозможно представить себе пассажира такой машины, не согласного с условиями ее использования. Поэтому ситуация представляет собой конфликт интересов. Мне удобнее убить тебя и я убью, как бы говорит один человек другому.

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

Обе стороны с пеной у рта перетягивают на себя «первый закон робототехники», взятый из научной фантастики. Он звучит по-демагогически красиво, но никто даже не пытается осмыслить его или оспорить применительно к проблеме. А к данной постановке проблемы он неприменим, потому что происходит подмена понятий: эвристика/ИИ машины не выбирает между ценностями людских жизней, а действует строго по алогритмам, созданным на основе субъективных приоритетов, выдуманных людьми. И здесь уже абсолютно не имеет значения, какой именно социальный конструкт взят за приоритет при выборе «kill/spare»: отвергнутые нами ранее масса тела, возраст и статусность или социал-дарвинистский эгоизм владельца авто.

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

Лично я считаю, что в рамках сформулированной задачи дилемма «пассажир/пешеход» ведет в тупик. Машина, потенциально убивающая тех, кто в нее сел, абсурдна с точки зрения здравого смысла и естественно не найдет покупателей на рынке. Машина, заведомо убивающая пешеходов, невозможна в цивилизованном обществе как элемент положительной дискриминации и угроза жизни людей.

Идем далее. Статья толком не обсуждает и не обозначает политику минимизации трагических последствий ДТП с участием робомобилей. Итоговые данные разделены на «регионы», довольно значительно отличающиеся по приоритетам, и довольно неоднозначно сформированные (там есть объяснения про «религиозные особенности и колониальное влияние», но… в общем, привет Ираку с Афганистаном в «Western» и Франции с Чехией в «Southern» секторе). И так и вертится на языке вопрос: вы будете делать робомобили с разной «этикой» для каждых стран?

Авторы статьи в обсуждении обозначают три выявленных ими «базовых фундаментальных блока»: спасать людей (не животных), спасать больше жизней, спасать более молодых. Но на диаграммах хорошо видно, что людям в Восточном секторе на численность и молодежь чуть менее, чем плевать. Получается, выбранные в итоге политики приоритетов будут идти вразрез с мнением подавляющего большинства? Зачем тогда вообще опрашивали людей?

Может быть, просто посчитаем?

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

И помните: наша задача, как политиков в сфере транспортной безопасности – уменьшить общее число жертв. Работать мы будем в рамках и условностях оригинального теста Moral Machine, сфокусированного на риске для жизни участников ДТП, а не сложных реалистичных оценках столкновения автомобиля с препятствием или людьми. У нас не EuroNCAP, у нас будет Python.

Первым делом напишем код, который отвечает дилемме «спасать тех, кого умрет больше». В рамках теста Moral Machine, сделаем рандомно от 1 до 5 пассажиров и пешеходов, ставим условие, если пешеходов > пассажиров, сразу убиваем автомобиль об бетонный блок. Проводим, например, 10000 таких ДТП.

По поводу кода претензии не слушаю, я вообще первый раз в жизни написал что-то на питоне

npedtotal = 0 npasstotal = 0 ndeadped = 0 ndeadpass = 0 #вначале у нас 0 участников ДТП и 0 жертв   n=0 while n < 10000: #10000 ДТП      nped = random.randint(1, 5)     npass = random.randint(1, 5) #пешеходов и пассажиров рандомное число от 1 до 5      npedtotal += nped     npasstotal += npass #подсчитываем число всех пешеходов и пассажиров      if nped > npass:          ndeadpass += npass      else:         ndeadped += nped  #если число пешеходов БОЛЬШЕ числа пассажиров, #записываем пассажиров в погибшие и суммируем каждый раз. #в противном случае записываем пешеходов в погибшие и суммируем каждый раз.      n += 1  print ("Всего перешло дорогу", npedtotal) print ("Всего перевезено", npasstotal) print ("Пешеходов погибло", ndeadped, "(",100*ndeadped/npedtotal, "%",")") print ("Пассажиров погибло", ndeadpass, "(",100*ndeadpass/npasstotal,"%"")") print ("Общее число жертв", ndeadped + ndeadpass, "(",100*(ndeadped + ndeadpass)/(npasstotal+npedtotal), "%", ")")

Запускаем код и…

Всего перешло дорогу 29960
Всего перевезено 29924
Пешеходов погибло 13903 ( 46.4052069426 % )
Пассажиров погибло 8030 ( 26.8346477744 %)
Общее число жертв 21933 ( 36.6258098991 % )

Класс, вот это да! Чем больше пешеходов, тем меньше пешеходов!
Все на самом деле логично. Мы получили две наложенные друг на друга гауссовые кривые распределения вероятностей количества участников. И пешеходов, и пассажиров будет в среднем трое. Вот только наши кривые – это убогие пятиступенчатые пирамиды, и условие «строго больше» оставляет пешеходам право на жизнь только если их 4 или 5, что дает очень маленькую площадь под графиком == количество человек. Да, если поставить 20 пешеходов против 20 пассажиров, то разрыв уменьшится, но будем реалистами, 5 пешеходов – это очень плотная группа, а 5 пассажиров – максимум загрузки легковушки. Поэтому поставим условие нестрогого неравенства: если пассажиров столько же или меньше, чем пешеходов, то убиваем первых. Меняем > на >= и ожидаемо получаем симметричный перекос в другую сторону:

Всего перешло дорогу 29981
Всего перевезено 29865
Пешеходов погибло 7859 ( 26.2132684033 % )
Пассажиров погибло 14069 ( 47.1086556169 %)
Общее число жертв 21928 ( 36.6407111586 % )

Рассмотрим теперь случай, когда создатель робоавтомобиля ставит в абсолютный приоритет жизни его occupants, что по-английски означает всех лиц, находящихся в салоне. Здесь симуляция не нужна, математического чуда не случится. Будет 30000 жертв, 100% — пешеходы.
Так же просто решается и случай, когда приоритет отдается не количеству потенциальных жертв, а законопослушности пешеходов. Вариантов только два – красный и зеленый свет, значит, жертв будет по 50% от количества пешеходов и пассажиров, поровну и опять всего 30000.

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

В этом коде скрыта драма со смертью кота, бомжа и мужчины-руководителя

npedtotal = 0 npasstotal = 0 ndeadped = 0 ndeadpass = 0 #вначале у нас 0 участников ДТП и 0 жертв   n=0 while n < 10000: #10000 ДТП      nped = random.randint(1, 5)     npass = random.randint(1, 5)     trafficlight = random.randint(0, 1) #пешеходов и пассажиров рандомное число от 1 до 5 #светофор для пешеходов горит красным или зеленым      npedtotal += nped     npasstotal += npass #подсчитываем число всех пешеходов и пассажиров     if trafficlight == 0:          ndeadped += nped      else:          if nped > npass:              ndeadpass += npass          else:             ndeadped += nped  #если число пешеходов БОЛЬШЕ числа пассажиров, #записываем пассажиров в погибшие и суммируем каждый раз. #в противном случае записываем пешеходов в погибшие и суммируем каждый раз.      n += 1  print ("Всего перешло дорогу", npedtotal) print ("Всего перевезено", npasstotal) print ("Пешеходов погибло", ndeadped, "(",100*ndeadped/npedtotal, "%",")") print ("Пассажиров погибло", ndeadpass, "(",100*ndeadpass/npasstotal,"%"")") print ("Общее число жертв", ndeadped + ndeadpass, "(",100*(ndeadped + ndeadpass)/(npasstotal+npedtotal), "%", ")")

Условие “>”
Всего перешло дорогу 29978
Всего перевезено 29899
Пешеходов погибло 21869 ( 72.9501634532 % )
Пассажиров погибло 4042 ( 13.5188467842 %)
Общее число жертв 25911 ( 43.2737111078 % )

Условие “>=”
Всего перешло дорогу 30152
Всего перевезено 30138
Пешеходов погибло 19297 ( 63.9990713717 % )
Пассажиров погибло 6780 ( 22.4965160263 %)
Общее число жертв 26077 ( 43.2526123735 % )

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

Конечно, это все примитивная симуляция, но она дает гораздо более точные ответы, чем субъективное презрение ряда народов к своим собакам и детям или любовь к красивым статусным женщинам. Будущее развития сложных систем – не за опросами, а за тестами, ошибками и исправлениями. Аварий на этом начальном этапе внедрения не избежать. Взять хотя бы нашумевшую аварию Убера – женщина пересекала дорогу в неположенном месте, система распознала препятствие, но не сочла существенным для торможения, сидевший за рулем трансгендер в нарушение инструкции смотрел сериал на смартфоне. Это теория сырных дыр в действии, и надежность здесь – в увеличении числа ломтиков и уменьшении площади дыр.

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

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

 
Источник

Moral Machine, python, автопилот, беспилотные автомобили

Читайте также