Документы eng
Главная страница / Блог / Инцидент с робомобилем Uber. Новые вопросы

Инцидент с робомобилем Uber. Новые вопросы

31.07.2018
Андрей Никишин, Сергей Кравченко

Если вы интересуетесь темой автономного вождения, то, скорее всего, вы уже знаете про инцидент с автомобилем Uber, повлёкший за собой смерть пешехода. Несмотря на то, что расследование еще не завершено, нам доступен ряд очень интересных фактов для обсуждения, опубликованных не так давно независимым федеральным агентством по безопасности транспорта в США National Traffic Safety Board. Эксперты агентства установили, что датчики автомобиля выявили пешехода на дороге за шесть секунд до аварии, – этого вполне достаточно для избежания столкновения. Однако, система экстренного торможения не сработала, так как была деактивирована. Это было сделано специально для снижения количества случаев «некорректного поведения автомобиля». Оказывается, в случае автономной езды, если на дороге возникает препятствие, то тормозить должен водитель — человек, чего в случае с велосипедисткой на дороге, к сожалению, не произошло. Все-таки называть текущие реализации технологии Uber автопилотом некорректно или рано. Это система помощи водителю, но никак не система автономного вождения.

Теперь давайте поговорим о «некорректном поведении автомобиля», которого так старались избежать инженеры Uber. Как мы писали выше, система автономного вождения обнаружила посторонний объект на дороге за 6 секунд до столкновения. Логика распознавания препятствия с точки зрения машины выглядела следующим образом: вначале женщина, которая шла рядом со своим велосипедом, была идентифицирована как неизвестный объект, затем — как некое транспортное средство, и уже потом — как велосипед. Лишь за 1,3 секунды до столкновения система Uber определила, что необходимо экстренное торможение. Более того, разработчики Uber намеренно выключили систему экстренного торможения, чтобы уберечь людей в салоне от стресса. И по их задумке, система должна была как-то просигнализировать человеку за рулем о том, что надо экстренно тормозить. На наш взгляд, такая логика выглядит очень странной. Можно согласиться с тем, что каждый раз экстренно тормозить при появлении неизвестного объекта неправильно. Но если впереди обнаруживается транспортное средство или велосипед, то избежать столкновения с ним надо обязательно, не так ли? Вспомните, как вас учили вождению, и инструктор (да и в ПДД написано аналогично) говорил, что при появлении на дороге чего-то неизвестного (потенциально опасной ситуации), необходимо повысить внимание и снизить скорость до такой, чтобы в случае чего была возможность остановиться и избежать аварии. Почему такая логика не была реализована у Uber?

Мы можем только догадываться о деталях реализации системы автономного вождения Uber, но очень вероятно, что в основе системы лежат алгоритмы машинного обучения (Machine Learning или ML). Если мы говорим о том, что система обнаружила транспортное средство, стоит подумать и о вероятности, с которой система идентифицировала транспортное средство. Другими словами, с какой точностью система опознала объект как что-то конкретное. Возможно, не хватило всего нескольких процентов вероятности, чтобы однозначно идентифицировать объект на дороге и начать тормозить. Если система не до конца уверена, что впереди что-то конкретное (вероятность ниже определенного порога), то может быть принято решение, что это ложная тревога, и никаких действий не требуется. Если же при получении дополнительных данных система решила (опять же с какой-то долей вероятности), что перед ней транспортное средство, то она должна выполнить определённые действия. Проблемы разработчиков системы вождения состояли как раз в выборе значений вероятностей, достаточных для того, чтобы точно определить, что впереди препятствие, и, как следствие, скомандовать – «Тормози». Если задача выбора пороговых значений решается относительно легко, то с алгоритмами машинного обучения всё не так просто – зачастую, уже после обучения, довольно сложно понять, почему ML-система приняла то или иное решение. В этом-то и кроется проблема сложных систем, основанных на машинном обучении. И это ещё не всё: системы машинного обучения довольно легко обманываются.

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

Одна из основополагающих работ (Intriguing properties of neural networks), посвящённая обману таких алгоритмов, была опубликована в 2014 году. В ней продемонстрированы примеры обмана систем компьютерного зрения, когда в изображение подмешивается небольшой слабозаметный шум, и это изменяет вердикт алгоритма. В другой работе (Explaining and Harnessing Adversarial Examples), опубликованной чуть позже, эта тема продолжает развиваться. Этими двумя работами тема не исчерпывается. В статье Robust Physical-World Attacks on Deep Learning Visual Classification рассказывается о том, что можно нанести несколько черных и белых полосок на дорожный знак, и этого будет достаточно, чтобы некоторые системы машинного зрения перестали его опознавать.

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

Конечно, проблемы с алгоритмами работы, описанные выше, носят технический характер, и мы нисколько не сомневаемся, что они рано или поздно будут решены. Однако, в ситуации с инцидентом есть ещё одна большая проблема, которую нельзя решить написанием пары строчек кода: проблема ответственности. Если бы за рулём автомобиля был человек, то вина была бы или на водителе, или на пешеходе, если последний грубо нарушил правила дорожного движения. Есть ещё вариант, что при наличии каких-либо технических неполадок виновной признают сторону автопроизводителя. Но кто будет виноват, если в аварию попадёт полноценный автономный робомобиль? Человека за рулём нет и, предположим, что пешеход невиновен, а машина работала исправно. Тогда на роль виновного остаётся только разработчик системы автономного вождения? Второй вопрос вытекает из первого: кто должен оплачивать страховку? Точно не владелец робомобиля, потому как он никак не может повлиять на действия или изменить алгоритм действий робомобиля или, правильнее сказать, системы автономного вождения. Получается, что крайним опять оказывается разработчик системы. Разумеется, за угон или другой ущерб, нанесённый машине или окружающей среде, должен отвечать автовладелец, но ответственность за всё, что происходит с робомобилем в движении, лежит на разработчике. В итоге, широкое распространение робомобилей серьёзным образом повлияет и на страховой бизнес, где ответственность за инциденты с участием робомобилей при неверном срабатывании системы будет брать на себя страховая компания. Сейчас при приобретении нового автомобиля мы не заключаем никаких договоров с автопроизводителем, но в будущем, когда робомобили получат широкое распространение, в нашем расчётливом мире большой кусок ответственности будет регламентирован договором, заключаемом при покупке машины.

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

Подписаться на новости