Autômatos celulares e carros sem motorista

Redes auto-organizáveis, IoT, Machine Learning e Trains

Robert Rennie Blocked Unblock Seguir Seguindo 2 de janeiro

Introdução

Este artigo começou com um simples experimento mental: se todos os carros fossem sem motorista, precisaríamos de semáforos?

E neste caso eu estou falando de carros especificamente sem motorista – ao invés de carros autônomos que ainda requerem um humano ao volante. Talvez uma diferença semântica, mas para o resto deste artigo eles serão referidos como carros sem motorista.

Está claro, a partir dos anos-homem de esforço e bilhões de dólares de P & D investidos por todas as grandes empresas de tecnologia e fabricantes de automóveis, que o objetivo é, em última instância, remover os seres humanos da equação motriz. Então, quando finalmente chegamos lá, algumas perguntas desconcertantes surgem:

  1. Um sistema de 100% de carros sem motorista não será essencialmente um trem de próxima geração (como na boa e velha locomotiva)? Embora as faixas sejam agora estradas e trens sejam carros interligados em tempo real.
  2. O que acontecerá com as sofisticadas tecnologias provisórias, como o aprendizado de máquina e redes neurais profundas que foram treinadas para conduzir no nível dos humanos (má ideia!) Para interagir com os seres humanos reais (isto é, durante o “período de transição”). motoristas)? Uma vez que todos os carros não tenham motorista e estejam em rede, não precisaremos de tudo isso – só precisamos nos certificar de que os carros permaneçam na pista e não colidam uns com os outros. Então, o que estamos fazendo?

Trens, os primeiros carros sem motorista

Vamos entrar em uma máquina do tempo e voltar no tempo e imaginar se em vez de rodar livremente carros, o transporte baseado em trilhos decolasse, e algum tipo de tecnologia de pista formava o que hoje conhecemos como nossas ruas locais e subseqüentemente cidades. Isso facilmente poderia ter acontecido – a Disney imaginou o futuro do transporte como monotrilhos. Pode não ter sido um trilho real, poderia ter sido também uma tecnologia drive-by-wire. Todas as nossas ruas poderiam ter sido "estabelecidas" com uma fiação simples, ou a pintura de rua poderia ter alguma qualidade eletromagnética. Teríamos todos os benefícios que os especialistas em carros autônomos estão reivindicando – redução de acidentes, melhor uso do tempo do motorista (agora passageiro), etc.

Mas, infelizmente, isso não aconteceu! E agora temos adolescentes fora de controle dirigindo a 100 km / h enquanto bebem uma cerveja e mandam mensagens para seus amigos. Então, vamos voltar à máquina do tempo e seguir adiante no tempo, seguindo a evolução dos carros até 100% sem motorista (sem humanos dirigindo) e imaginando a tecnologia que seria usada ou necessária (e talvez mais interessante, o que não pode ser usado) para chegar lá.

E se os engates de trem, os conectores que impedem os vagões de trem de bater uns nos outros e também os mantêm otimamente espaçados, foram substituídos por algum tipo de algoritmo de auto-organização que correu dentro e entre cada um e todos os carros sem motorista. Cada carro poderia se comunicar com todos os outros carros em sua vizinhança e eles poderiam chegar a um consenso organizado sobre como proceder de forma otimizada. Cada um poderia atuar com um algoritmo inspirado em autômatos celulares, por exemplo, como será descrito mais adiante. Hoje, já temos carros que “percebem” quando estão muito perto de outro carro, e até mesmo o próprio parque paralelo. Estes podem ser vistos como uma versão inicial desses algoritmos, fornecendo um substituto virtual para treinar os problemas.

Em seguida, para aumentar esses “sentidos computacionais” (que serão descritos em detalhes a seguir), vemos a fruição final da Internet das Coisas (IoT). A rua é colocada com tecnologia que pode ser sentida, e tudo o que envolve transporte (pessoas, obstáculos, etc.) também é imbuído de um dispositivo IoT que pode ser detectado.

Sentidos de computador

Computadores não se parecem com humanos. É o maior erro da IA hoje. Não é estranho que passemos muito tempo fazendo os computadores agirem como seres humanos – para ouvir a fala, para ver rostos -, mas não percebemos que esses não são sentidos de computador? Não ir muito longe para o território TRON ou Matrix, mas os computadores não percebem naturalmente como nós.

Por exemplo, quando o 5G é onipresente, um grupo de uma dúzia de carros sem motorista que se aproximam de uma interseção pode se comunicar instantaneamente entre si e determinar como todos eles podem navegar na interseção com eficiência. Um grupo de 12 humanos não pode ligar os pensamentos uns dos outros em tempo real. Os humanos não têm o "senso" de WiFi, os computadores fazem.

Portanto, neste simples exemplo, um “senso” de computador natural – a capacidade de “ver” outros computadores em uma rede e trocar dados algorítmicos instantaneamente é muito mais útil em um cenário de carros sem motoristas que uma rede neural treinada para reconhecer objetos. Estamos tão focados em substituir seres humanos por máquinas com os sentidos humanos, que não percebemos que as máquinas têm seus próprios sentidos, embora superiores e diferentes.

O que isso significa no mundo dos carros sem motorista é que tudo deve ter uma representação digital se for “visto” por um carro sem motorista. Em vez de ensinar uma rede neural a reconhecer uma pessoa caminhando do outro lado da rua, essa pessoa deve ter um dispositivo que permita que o carro sem motorista os veja usando seus sentidos de computador.

Soa louco? Bem, os cães já têm chips embutidos neles e quase todos os humanos no planeta tem um smartphone em seus bolsos (ou em nossos pulsos). Nós já estamos quase lá. Wearables, implantáveis, eles estão todos no nosso futuro. O que estamos fazendo é criar representações digitais de nós mesmos para que os computadores possam nos ver.

Vamos começar com formigas

Você já observou o tráfego de cima em tempo real? Talvez de um helicóptero de tráfego filmado no noticiário local ou de um avião quando você está prestes a pousar. Cada carro pequeno se parece muito com uma formiga e todo o sistema se parece muito com algo que você vê a partir de um nível macroscópico na natureza. Você não percebe cada carro ou formiga individual, mas como um todo eles se movem com a dinâmica dos fluidos. O fato de que um carro está sendo dirigido por talvez o mais inteligente dos seres do universo é completamente perdido a partir de cima, parece ser apenas uma molécula de água fluindo em um córrego. Uma molécula completamente burra. (Concedido, alguns drivers aparecem dessa forma também de perto).

Há um número de ironias aqui:

  1. Em primeiro lugar, a aprendizagem de máquina de hoje não pode reproduzir com precisão um cérebro de formiga – ainda estamos começando com a reprodução de cérebros humanos para dirigir nossos carros? Que tal termos a simulação de formigas bem primeiro?
  2. As formigas têm sentidos diferentes dos humanos. Talvez não possamos simular formigas porque não estamos simulando seus sentidos.
  3. Por que estamos gastando tanto tempo e esforço para recriar um ser inteligente dirigindo em um carro quando podemos facilmente reproduzir as características macroscópicas do fluxo de tráfego a partir de cima, e conseguimos fazer isso com algoritmos tradicionais por anos?
  4. By the way, por que estamos treinando redes neurais para conduzir como seres humanos quando os seres humanos são ruins em dirigir?

Autômatos celulares

Uma história completa de autômatos celulares, ou automação celular (CA), está além do escopo deste artigo, mas alguns elementos breves de seu passado serão discutidos. Além disso, a simulação de computador que foi criada em suporte a este artigo não usa uma regra ou grade de autoridade de certificação tradicional, mas empresta os conceitos básicos da autoridade de certificação.

A idéia básica da CA é criar uma grade (tradicionalmente 1 ou 2 dimensões) de células, onde cada célula pode estar “ligada” ou “desligada”. Há uma regra que cada célula usa para determinar se deve estar ativada ou desativada – como "Estou desligado quando tenho mais de três células vizinhas, do contrário estou em". O algoritmo CA é executado em iterações (ou seja, gerações) e as células ligam e desligam de acordo com a regra.

Quando os humanos vêem a saída desses algoritmos, nossa mente vê um comportamento orgânico – parece a natureza, como a visão do tráfego do helicóptero. Sabemos que não é realmente um comportamento orgânico, é uma simulação por computador, mas nosso cérebro o vê como orgânico. O exemplo mais referido de CA é o “Game of Life” de Conway, que é descrito e demonstrado suficientemente neste artigo da Wikipedia . Uma rápida olhada neste exemplo e você verá a natureza orgânica de sua saída. Enquanto a regra que rege a vida de uma célula (seja on ou off) é extremamente simples, o comportamento resultante é totalmente complexo, o que seria quase impossível codificar de qualquer outra maneira.

Stephen Wolfram escreveu um livro sobre o assunto em 2002, em um livro audaciosamente intitulado “Um novo tipo de ciência” (ver referências). Em suas 1.197 páginas, Wolfram analisa várias regras e sua saída resultante em muitas iterações. Ele propõe e implementa uma nova ciência que enfoca o comportamento emergente de um sistema de CA alavancando regras simples. Um novo tipo de ciência que estuda o complexo que surge notavelmente do simples.

O Próximo (ou Real) AI – Vida Artificial

A Inteligência Artificial deve progredir além da simples tentativa de agir humano. Com suficiente correspondência de vetores, o que é realmente todas as redes neurais, poderemos reconhecer todas as faces do planeta. Isto não é inteligência – pois um dado humano não pode reconhecer todas as faces do planeta. Isto é simplesmente algoritmos de regressão massivos no trabalho.

No famoso livro de Erwin Schrödinger, “What is Life”, ele discute por que as coisas são “grandes”, mas construídas de pequenas coisas como átomos. Mais importante, porque a aleatoriedade no nível minúsculo (por exemplo, movimento browniano) gera coisas “grandes” que parecem ser relativamente estáveis. (Alerta de spoiler, é por isso que as coisas são grandes, para criar estabilidade macroscópica a partir da instabilidade microscópica.)

Nossos cérebros são uma coleção de 100 bilhões de neurônios cada um agindo mais como um algoritmo CA do que um algoritmo de aprendizado de máquina. De alguma forma, o cérebro consegue aproveitar essa massa de elementos minúsculos em um todo coerente – um conjunto de pequenas coisas que gera uma inteligência "grande".

Poder-se-ia também argumentar que os algoritmos de aprendizado de máquina são similares a CA na medida em que são definidos no nível de "neurônio" simulado juntamente com camadas simuladas, como em um algoritmo de propagação de erro retroativo (ou outro algoritmo de descida de gradiente). No entanto, há um algoritmo de controle abrangente que geralmente não é paralelo e, na verdade, está focado na correspondência de vetores simples, não aproveitando o comportamento emergente inesperado.

A vida artificial seria realizada reproduzindo algo que, de cima, parece orgânico. Desta forma, “Game of Life” de Conway é muito mais realista que uma rede neural. Os CAs também são algoritmos maciçamente paralelos e são muito mais simples do ponto de vista computacional do que o aprendizado de máquina. A vida artificial colocaria a Inteligência Artificial em seu devido lugar – ou seja, na tradução dos sentidos humanos para os sentidos do computador com maior precisão durante o período de transição para 100% de carros sem motoristas.

O exemplo de código

Uma simples simulação de software acompanha este artigo ( baixe aqui do GitHub ) para colocar um pouco de concretude em torno dos conceitos aqui apresentados. Uma captura de tela da saída do programa é mostrada no começo deste artigo.

O objetivo da simulação é simples:

  1. Simule um sistema de carros movendo-se em todas as direções através de uma rede de ruas e interseções.
  2. Dê a cada carro uma regra simples que governe seu movimento em relação a outros carros.
  3. Carros podem falar um com o outro, mas não há nenhum algoritmo abrangente controlando seu movimento.
  4. Certifique-se de que nenhum carro colidir com o outro.
  5. Certifique-se de que nada fique "preso".

Em suma, esta simulação é o resultado da pergunta original colocada no início do artigo: "Se todos os carros fossem sem motorista, precisaríamos de semáforos"? A simulação demonstra a resposta é claramente, não.

Quando o projeto é executado e o botão "Iniciar" é clicado, os carros começam a aparecer nas bordas da grade. Com o passar do tempo, mais carros aparecem e todos precisam negociar um com o outro para não bater, especialmente nos cruzamentos. Depois de observar por alguns segundos, vê-se a natureza orgânica do comportamento dos carros, semelhante a quando se olha para o "Jogo da Vida".

Ainda mais interessante, quando várias regras para estes carros foram tentadas, as coisas ficaram muito presas. Era muito fácil criar uma situação em que quatro carros chegassem a um cruzamento ao mesmo tempo e ficassem presos porque suas regras criavam um impasse. Na verdade, "Car1" no código-fonte é apenas um carro tão simples. Sua regra era "se a próxima célula na minha direção estiver clara, pegue-a". Tão simples como esta regra é, funciona relativamente bem com poucos carros na estrada.

"Car4", no entanto, funciona como desejado (Car2 e Car3 foram tentativas fracassadas que não merecem ser incluídas). Os carros não ficam presos e o modelo funciona para sempre, mostrando o seu lado do comportamento emergente orgânico. Sua regra é um pouco mais complexa, mas a chave era criar o conceito de cortesia – de vez em quando (aleatoriamente), um carro que poderia passar por uma interseção decide esperar e generosamente deixar os outros passarem.

O fator “cortesia” é uma lição de vida algorítmica!

Resumo

Ao visualizar a simulação fornecida neste artigo, é interessante considerar que regras simples aplicadas a carros independentes que trabalham juntos como um grupo criam vida artificial que rivaliza com o que pode ser feito hoje com os algoritmos mais sofisticados e bilhões de dólares em pesquisa sem motoristas. carros – que ainda não funcionam. Isso vale a pena repetir, um modelo simples que levou não mais do que alguns dias para montar já rivaliza com a mais complexa IA de carros autônomos, quando vista de cima.

Pode ser difícil imaginar como poderíamos “estabelecer as pegadas” do futuro para todos os carros sem motorista e como todas as entidades que devem ser “vistas” por um carro sem motorista precisam ter alguma representação digital compatível com os sentidos de um computador. Mas com IoT, smartphones, relógios, wearables, etc. já estamos exatamente nesse caminho. No mínimo, os carros autônomos precisarão de um mecanismo de redundância (atualmente, um motorista humano que assume o controle quando a rede neural vai para o lado) no futuro previsível. Talvez devêssemos estar colocando alguma pista agora para fornecer tal redundância para o futuro de carros 100% sem motoristas, ou trens como costumavam ser chamados.

Detalhes do Código:

O código é um projeto React.js, por nenhuma outra razão que torne simples fazer atualizações na interface do usuário (UI) em um navegador da Web, para que o foco possa ser gasto nos algoritmos, em vez de escrever código de interface do usuário. Para instalar e usar, basta instalar o Node.js, git pull the auto-car repository e, em seguida, executar 'npm install' e, em seguida, 'npm start' em um prompt de comando no diretório do projeto auto-car.

  • / src: contém o gabarito do React.js.
  • / src / components: Contém o controle da interface do usuário (JSX) que processa a grade e os carros.
  • /src/modules/AutoSimModel.js: abriga a grade real. O método next () executa uma geração.
  • / src / modules / cars: este diretório contém os objetos de carro (e sua classe base). Note que Car4 é o que funciona melhor, pois tem algumas características altruístas. O Car1 cria carros que ficam presos rapidamente quando os carros são adicionados rapidamente, mas ainda funcionam bem se os carros forem adicionados lentamente.

Referências / Bibliografia:

  • Conway, JH (1970). Jogo da vida. Obtido em https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
  • Schrödinger, E., & Penrose, R. (1992). O que é Vida ?: Com Mente e Matéria e Esboços Autobiográficos (Canto). Cambridge: Cambridge University Press. doi: 10.1017 / CBO9781139644129
  • Wolfram, Stephen. (2002). Um novo tipo de ciência . Pesquisa da Wolfram. Champaign, IL.
  • Xianjuan Kong. (2007). Pesquisa em Modelagem e Análise de Características de Fluxo de Tráfego Baseado em Autômato Celular . Universidade de Beijing Jiaotong, 2007.