Самоорганизующиеся сети, Интернет вещей, машинное обучение и поезда

Вступление

Эта статья началась с простого мысленного эксперимента: если бы все автомобили были без водителя, нужны ли нам светофоры?

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

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

  1. Разве система, состоящая из 100% беспилотных автомобилей, по сути, не будет сетью поездов нового поколения (как в старых добрых поездах локомотивного типа)? Хотя теперь рельсы превратились в дороги, а поезда - в машины, объединенные в сеть в режиме реального времени.
  2. Что будет со сложными промежуточными технологиями, такими как машинное обучение и глубокие нейронные сети, которые были обучены управлять автомобилем на уровне людей (плохая идея!), Чтобы взаимодействовать с реальными людьми за рулем (то есть во время «переходного периода», который все еще позволяет человеку драйверы)? Когда все автомобили станут автономными и подключены к сети, нам все это не понадобится - нам просто нужно будет следить за тем, чтобы автомобили оставались на трассе и не сталкивались друг с другом. Так что мы делаем?

Поезда, первые беспилотные автомобили

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

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

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

Затем, чтобы усилить эти «компьютерные чувства» (которые будут подробно описаны ниже), мы видим окончательный результат Интернета вещей (IoT). Улица проложена с помощью технологий, которые могут быть обнаружены, и все, что связано с транспортом (люди, препятствия и т. Д.), Также пронизано устройством IoT, которое может быть обнаружено.

Компьютерные чувства

Компьютеры не видят людей. Сегодня это самая большая ошибка в искусственном интеллекте. Разве не странно, что мы тратим так много времени на то, чтобы заставить компьютеры действовать как люди - слышать речь, видеть лица - но мы не понимаем, что это не компьютерные чувства? Не заходить слишком далеко, на территорию TRON или The Matrix, но компьютеры, естественно, не чувствуют, как мы.

Например, когда 5G является повсеместным, группа из дюжины беспилотных автомобилей, приближающихся к перекрестку, может мгновенно подключиться друг к другу и определить, как они все могут эффективно перемещаться по перекрестку. Группа из 12 человек не может объединять мысли друг друга в реальном времени. У людей нет «смысла» Wi-Fi, в отличие от компьютеров.

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

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

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

Начнем с муравьев

Вы когда-нибудь смотрели на трафик сверху в режиме реального времени? Может быть, из транспортного вертолета, снятого в местных новостях, или из самолета, когда вы собираетесь приземлиться. Каждая маленькая машинка очень похожа на муравья, а вся система очень похожа на то, что вы видите на макроскопическом уровне в природе. Вы не замечаете каждую отдельную машину или муравья, но в целом они движутся с гидродинамикой. Тот факт, что автомобилем управляет, возможно, самое умное из существ во Вселенной, полностью утерян, поскольку сверху это просто кажется молекулой воды, текущей в ручье. Совершенно тупая молекула. (Конечно, некоторые драйверы тоже выглядят так близко).

Здесь есть ряд иронии:

  1. Во-первых, современное машинное обучение не может точно воспроизвести мозг муравья - но мы начинаем с воспроизведения человеческого мозга, чтобы управлять нашими автомобилями? Как насчет того, чтобы сначала получить симуляцию муравья?
  2. Чувства муравьев отличаются от человеческих. Может быть, мы не можем моделировать муравьев, потому что не моделируем их чувства.
  3. Почему мы тратим так много времени и усилий на воссоздание разумного существа за рулем в одной машине, когда мы можем легко воспроизвести макроскопические характеристики транспортного потока сверху и можем делать это с помощью традиционных алгоритмов в течение многих лет?
  4. Кстати, почему мы обучаем нейронные сети управлять автомобилем, как люди, когда люди не умеют управлять автомобилем?

Клеточные автоматы

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

Основная идея CA состоит в том, чтобы создать сетку (традиционно 1 или 2 измерения) ячеек, в которой каждая ячейка может быть либо «включена», либо «выключена». Существует правило, которое каждая ячейка использует, чтобы определить, должна ли она быть включена или выключена - например, «Я выключен, если у меня более 3 соседних ячеек, в противном случае я включен». Алгоритм CA выполняется итерациями (т. Е. Поколениями), а ячейки включаются и выключаются в соответствии с правилом.

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

Стивен Вольфрам написал фолиант на эту тему в 2002 году в книге, получившей смелое название «Новый вид науки» (см. Ссылки). На своих 1197 страницах Wolfram анализирует множество правил и их результаты на протяжении многих итераций. Он предлагает и реализует новую науку, которая фокусируется на возникающем поведении системы CA, использующей простые правила. Новый вид науки, изучающий сложное, которое замечательно выходит из простого.

Следующий (или настоящий) ИИ - искусственная жизнь

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

В знаменитой книге Эрвина Шредингера «Что такое жизнь» он обсуждает, почему вещи «большие», но построены из других действительно крошечных вещей, таких как атомы. Что еще более важно, почему случайность на крошечном уровне (например, броуновское движение) порождает «большие» вещи, которые кажутся относительно стабильными. (Осторожно, спойлер, вот почему вещи большие, чтобы создать макроскопическую стабильность из микроскопической нестабильности.)

Наш мозг представляет собой набор из 100 миллиардов нейронов, каждый из которых действует больше как алгоритм CA, чем алгоритм машинного обучения. Каким-то образом мозгу удается собрать эту массу крошечных элементов в единое целое - набор мелких вещей, порождающих «большой» разум.

Можно также утверждать, что алгоритмы машинного обучения похожи на CA в том смысле, что они определены на смоделированном уровне «нейрона» вместе с смоделированными слоями, например, в алгоритме обратного распространения ошибок (или другом алгоритме градиентного спуска). Однако существует всеобъемлющий алгоритм управления, который, как правило, не является параллельным и на самом деле ориентирован на простое сопоставление векторов, а не на использование неожиданного возникающего поведения.

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

Образец кода

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

Цель симуляции проста:

  1. Смоделируйте систему автомобилей, движущихся во всех направлениях через сетку улиц и перекрестков.
  2. Дайте каждой машине простое правило, определяющее ее движение по отношению к другим машинам.
  3. Машины могут разговаривать друг с другом, но нет всеобъемлющего алгоритма, контролирующего их движение.
  4. Убедитесь, что машины не врезаются друг в друга.
  5. Убедитесь, что ничего не «застревает».

Короче говоря, это моделирование является результатом первоначального вопроса, поставленного в начале статьи: «Если бы все автомобили были без водителя, нужны ли нам светофоры»? Моделирование однозначно демонстрирует ответ - нет.

Когда проект запущен и нажата кнопка «Старт», автомобили начинают появляться по краям сетки. Со временем появляется все больше машин, и все должны договариваться друг с другом, чтобы не разбиться, особенно на перекрестках. Посмотрев в течение нескольких секунд, можно увидеть органичный характер поведения автомобилей, как при просмотре «Игры в жизнь».

Что еще более интересно, когда были применены различные правила для этих автомобилей, все сильно застряло. Было очень легко создать ситуацию, когда четыре машины одновременно подъезжали к перекрестку и просто застревали, потому что их правила создавали тупик. Фактически «Car1» в исходном коде и есть такая простая машина. Его правило гласило: «Если следующая клетка в моем направлении свободна, бери». Каким бы простым ни было это правило, оно относительно хорошо работает с небольшим количеством машин на дороге.

«Car4», однако, работает должным образом (Car2 и Car3 были неудачными попытками, которые не стоит включать). Машины не застревают, и модель работает вечно, демонстрируя свою органическую эмерджентную сторону поведения. Его правило немного сложнее, но ключом было создание концепции вежливости - где время от времени (случайным образом) машина, которая могла проехать перекресток, решает подождать и щедро пропустить других.

Фактор «вежливости» - это урок алгоритмической жизни!

Резюме

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

Может быть трудно представить, как мы «проложим пути» будущего для всех беспилотных автомобилей и как все объекты, которые должны быть «видны» беспилотному автомобилю, должны иметь какое-то цифровое представление, совместимое с органами чувств компьютера. Но с Интернетом вещей, смартфонами, часами, носимыми устройствами и т. Д. Мы уже находимся на этом пути. По крайней мере, в обозримом будущем беспилотным автомобилям временно потребуется механизм резервирования (в настоящее время это человек-водитель, который берет на себя управление, когда нейронная сеть движется в сторону). Может быть, нам стоит проложить какой-нибудь путь прямо сейчас, чтобы обеспечить такое же резервирование для будущего 100% беспилотных автомобилей или поездов, как их раньше называли.

Детали кода:

Код представляет собой проект React.js только по той причине, что он упрощает обновление пользовательского интерфейса (UI) в веб-браузере, чтобы можно было сосредоточить внимание на алгоритмах, а не на написании кода пользовательского интерфейса. Чтобы установить и использовать, просто установите Node.js, git вытащите репозиторий авто-автомобилей, а затем запустите npm install, а затем npm start из командной строки в каталоге проекта auto-car.

  • / src: содержит шаблонные строительные леса React.js.
  • / src / components: содержит элемент управления пользовательского интерфейса (JSX), который отображает сетку и автомобили.
  • /src/modules/AutoSimModel.js: содержит фактическую сетку. Метод next () запускает поколение.
  • / src / modules / cars: Этот каталог содержит объекты автомобилей (и их базовый класс). Обратите внимание, что Car4 работает лучше всего, поскольку он обладает некоторыми альтруистическими характеристиками. Car1 создает машины, которые довольно быстро застревают при быстром добавлении машин, но все равно работает нормально, если машины добавляются медленно.

Ссылки / Библиография:

  • Конвей, Дж. (1970). Игра жизни. Получено с https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
  • Шредингер Э. и Пенроуз Р. (1992). Что такое жизнь ?: Разум и материя и автобиографические очерки (Песнь). Кембридж: Издательство Кембриджского университета. DOI: 10.1017 / CBO9781139644129
  • Вольфрам, Стивен. (2002). Новый вид науки. Wolfram Research. Шампейн, Иллинойс.
  • Сяньцзюань Конг. (2007). Исследования по моделированию и анализу характеристик транспортных потоков на основе сотовых автоматов. Пекинский университет Цзяотун, 2007 г.

Обновления:

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