Самым сложным аспектом для беспилотного транспорта является корректная интерпретация окружающей местности и обстановки. Снабдить авто собственными «глазами» несложно, поскольку маленькие камеры высокого разрешения сегодня производятся массово. Но зрению, помимо глаз, необходим мозг, так что автомобили, грузовики и автобусы должны получить также программы компьютерного зрения. Имея то и другое, они будут знать, что видят, и смогут реагировать соответственно.
Если верить производителям, одним из потенциальных преимуществ беспилотных машин является безопасность. Водители совершают ошибки и потому попадают в дорожные происшествия. Компьютер не отвлекается и после достаточной отработки, по идее, должен обеспечивать более высокую безопасность. Еще одно преимущество в том, что беспилотному автобусу не нужно платить. Большой недостаток, если не считать потерю работы водителями, – то, что эта технология пока находится в начальной стадии развития, и нынешние системы не оправдывают ожиданий. Случайные прохожие и ряд водителей-испытателей уже стали жертвами аварий, однако беспилотные автомобили продолжают тестироваться на улицах больших городов в разных странах. Оправдывается это тем, что их необходимо испытывать в реальном мире и что в конечном итоге они спасут больше жизней, чем отнимают сейчас. Готовность, с которой регулирующие органы соглашаются с подобными аргументами, удивительна. Если бы кто-то предложил испытывать новое лекарство на случайных людях, ничего им не сообщая и не спрашивая согласия, под тем предлогом, что в результате это спасет больше людей, чем сейчас убьет, это вызвало бы волну возмущения. Мало того, это было бы незаконно почти во всех странах и определенно неэтично.
Два изображения, различающиеся всего несколькими пикселями. Нейронная сеть Inception V3, которой они были продемонстрированы, идентифицировала левое изображение как кошку, а правое как мексиканское блюдо гуакамоле
Технология, лежащая в основе компьютерного зрения, представляет собой еще более модную область машинного обучения. Нейросети глубокого обучения, которые настраивают веса своих связей так, чтобы корректно распознавать изображения, тренируют на громадном массиве изображений до тех пор, пока не будет достигнут приемлемый уровень точности. Эта процедура чрезвычайно успешно используется в широком спектре приложений. Однако в 2013 году стало очевидно, что до сих пор слишком много внимания уделялось успехам машинного обучения и слишком мало – его потенциальным неудачам. Серьезной темой стали «состязательные примеры» – намеренно модифицированные изображения, которые человек воспринимает правильно, а компьютер нет.
На приведенном рисунке слева и справа показаны кошки. Все очевидно. Изображения различаются всего несколькими пикселями и для нас выглядят совершенно идентичными. Стандартная нейросеть, натренированная на громадном количестве изображений кошек и некошек, верно распознает на левой картинке кошку. Однако она считает, что на картинке справа изображено гуакамоле – мексиканское блюдо из авокадо. Мало того, уверенность компьютера в том, что это гуакамоле, составляет 99 %, тогда как для кошки уверенность не превышает 88 %. Как говорится, компьютер – это устройство, способное очень быстро делать миллионы ошибок.
Изображения такого рода называют «состязательными», поскольку они появляются, когда кто-то пытается намеренно обмануть систему. На практике компьютер воспримет большинство подобных изображений как кошку. Кристиан Сегеди с коллегами обратил внимание на существование таких изображений в 2013 году{32}
. В 2018 году Ади Шамир с коллегами{33} объяснил, почему в системах глубокого обучения могут возникать состязательные примеры, почему они неизбежны и почему достаточно изменить всего несколько пикселей, чтобы ввести нейросеть в заблуждение.Корень такой восприимчивости к серьезным ошибкам кроется в размерности. Обычный способ измерения различия между двумя битовыми строками состоит в том, чтобы найти расстояние Хэмминга между ними: определить, сколько бит следует заменить, чтобы из одной строки получить другую. Так, расстояние Хэмминга между 10001101001 и 10101001111 равно четырем, и различают их выделенные жирным цифры: 101
01001111. В компьютере любое изображение представлено в виде очень длинной битовой строки. Если изображение занимает 1 Мб (мегабайт), то длина этой строки составляет 223, или около 8 млн бит. Так что пространство изображений имеет размерность 8 млн над конечным полем, состоящим из 0 и 1. Оно содержит 28 388 608 точек.