Надо отдать должное командам, которые совместно разобрались с происшедшим и опубликовали все подробности аварии. Повинны были многочисленные алгоритмы и датчики, но ключевую роль сыграла ошибка компьютера массачусетского автомобиля, «не узнавшего» в корнелльской машине движущийся объект и не сумевшего предсказать его возможный путь. По иронии судьбы, стратегия Массачусетского института состояла в том, чтобы избегать предметной классификации дорожных объектов (например, «автомобиль» или «дорожный отбойник»), что сулило множество вероятных ошибок, а взамен лишь делить их на движущиеся и неподвижные. Но правильному анализу данных о скоростях от датчиков машины мешал случайный шум (который бывает в любых данных), поэтому, чтобы фильтровать данные об объектах, компьютер из Массачусетса использовал пороговое значение 3 м/сек. Все, что двигалось быстрее, считалось «движущимся», а все, что медленнее, – «неподвижным».
Откуда взялось это значение порога? Просто один инженер так оценил разницу между движением и неподвижностью и внес это значение в алгоритм. Я спросил моего коллегу Джона Хау, одного из авторов проекта, много ли таких пороговых чисел запрограммировано в системах вроде этой. Он ответил мне: «Очень, очень, очень много…» На самом деле «конфигурационный файл» для автомобиля «Талос» содержал примерно тысячу строк текста, которым устанавливались значения сотен переменных: расположения и данные калибровки датчиков, поправочные коэффициенты для взаимного сопоставления данных датчиков, настройки для борьбы с засветкой от солнца и т. д. Технология машинного обучения может снизить зависимость от предустановленных параметров, но и она зависит от людей-программистов, определяющих ее базовую структуру. Хау отмечает, что действие основных алгоритмов в целом сильно зависит от того, насколько верны модели неопределенности внешних факторов. По его словам, «проблема автономии в своей основе – проблема существования в неопределенном мире».
Этот краткий экскурс в код раннего образца автономной машины раскрывает, насколько глубоко такая «автономность» пронизана результатами человеческих решений в бесчисленных мелких деталях, как, например, то пороговое значение, которое мы наблюдали, а также и в более глубоких аспектах, в частности в используемых моделях неопределенности. Вспомним нашу исходную картину автономности как набора путей передачи входных данных от датчиков, которые трансформируют их в целевые действия. Чудесно наблюдать за тем, как работает такая технология, но ведь за созданием этих путей передачи информации и трансформаций стоят люди.
Именно эти люди, если вы поедете в созданной ими машине, могут вас убить.
Юристы и законоведы лишь начинают изучать проблемы ответственности, связанные с эксплуатацией автомобилей без водителей. Если в вашем понимании автономность – это когда транспортное средство само принимает решения, то цепочка ответственности может оказаться прерванной. Кто будет виноват, если ваш «гугломобиль» свалится вместе с вами в кювет? Этот вопрос касается не только того, что именно юристы пропишут в контрактах, он касается фундаментального понимания автономности: если некая система действительно работает самостоятельно, то как ее производитель может быть виноват, если что-то пойдет не так? (Некоторые полагают, что традиционное понимание ответственности производителя применимо и здесь: если компания выпускает продукт, она же и несет за него ответственность.) С практической точки зрения как можно выдать сертификат безопасности на программное обеспечение для машины без водителя?
Подход к сертификации программного обеспечения систем, от которых зависят жизни людей, наподобие авиалайнеров, хорошо отлажен, но является довольно громоздким и дорогим: он включает тщательное тестирование, при котором каждый элемент кода выполняется хотя бы один раз, и это совмещается с тщательным контролем за изменениями. Те же стандарты применяются при сертификации выполняемых людьми процессов планирования, проектирования и создания кода, удовлетворяющего тщательно продуманным требованиям, и они же распространяются на этапы контроля качества и улучшений кода после его внедрения в действующие системы. Но в своем нынешнем виде эти процедуры неприменимы для систем, которые считаются полностью автономными и где число возможных вариантов действий стремится к бесконечности. И, кроме того, как и системы технического зрения в авиации, автономные машины вроде создаваемых Google должны полагаться на высоконадежные базы данных, которые часто обновляются. Если вы пропустите установку еженедельного обновления, то можете въехать прямо в стройплощадку или кучу снега.
Читать дальше
Конец ознакомительного отрывка
Купить книгу