Como o Amazon Go pode reforçar as compras que acabam de chegar

imagem

Atualmente, os comunicados de imprensa das empresas de tecnologia nos surpreendem pouco. Os detalhes das inovações desaparecem alguns meses antes ou não são muito impressionantes. Mas, recentemente, encontramos várias surpresas reais. Poucos meses antes do lançamento do Switch, a Nintendo decidiu que o futuro dos consoles era seu passado e anunciou o NES Classic . E a vitória do AlphaGo do Google sobre o campeão entre as pessoas desencorajou especialistas que acreditavam que esses resultados poderiam ser obtidos antes de dez anos depois.

O anúncio de dezembro da loja Amazon Go, onde você pode simplesmente pegar produtos das prateleiras e sair, pode ser comparado ao choque das notícias da AlphaGo. O método de "pegar e sair" por algum tempo era conhecido como "futuro das vendas no varejo" e ficava "apenas a alguns anos" do nosso tempo. Trabalho no departamento de pesquisa de robótica em Caltech, Stanford e Berkeley há mais de dez anos, e agora estou encarregado de uma startup que fabrica câmeras de segurança para uso externo. A visão computacional foi uma grande parte do meu trabalho. Mas apenas alguns meses antes do anúncio, eu disse confiantemente a alguém que levaria vários anos para implementar o sistema "pegou e saiu". E eu não fui o único a pensar assim - apenas dois meses antes, o Planet Money teve um episódio sobre esse assunto.

Então, quando a Amazon de repente nos surpreendeu ao criar uma coisa dessas, a primeira pergunta foi óbvia: como funcionará? Em um vídeo promocional, eles correm com grandes palavras como visão de computador, aprendizado profundo e síntese de sensores. Mas o que tudo isso significa e como realmente combinar todas essas coisas?

Começarei com a revelação da intriga: de fato, não sei disso. Não participei do desenvolvimento do projeto e a empresa não falou sobre como ele funciona. Mas, dada minha experiência e trabalho no campo da visão computacional, posso fazer algumas suposições baseadas no conhecimento. Em sua essência, o Amazon Go se parece com o desenvolvimento de IA, visão computacional e tomada de decisão automática, como AlphaGo, e avanços repentinos no campo dos robomobiles. As inovações em estatística e computação paralela nos últimos cinco anos criaram um novo marco no campo da inteligência de máquinas.

É por isso que desenvolvimentos de ponta acontecem em ondas e, portanto, permitindo que o robomóvel leve você à loja para comprar um pacote de leite, você destrói a interação entre as pessoas muito antes do que alguém poderia imaginar.



Carrinho de compras


Para entender melhor como os ecossistemas do Amazon Go funcionam, é necessário delinear uma tarefa. No caso de um supermercado, a Amazon deve responder a uma pergunta: o que um visitante leva com ele quando sai da loja? Em outras palavras, o que está no carrinho de compras?

De fato, existem apenas duas maneiras de responder à pergunta. A Amazon precisa examinar a cesta quando o usuário sair ou acompanhar o que exatamente cai nessa cesta. O primeiro método que chamamos de linha de checkout e é assim que a maioria das lojas modernas funciona (verifique tudo o que o usuário leva com ele). Outra abordagem que chamo de conta de barra. Como o barman monitora todos os pedidos dos clientes, a empresa pode descobrir o que há no carrinho de compras, acompanhando o que exatamente entra ou sai do carrinho. Idealmente, você saberá exatamente o que existe e não precisará forçar os usuários a demonstrar suas compras.

Obviamente, o Amazon Go não é um supermercado comum. Ele deve não apenas descobrir o que há em cada cesta em particular, mas também entender quem cobrar por isso. Para cobrar em um mundo sem caixas, você precisa identificar o usuário.

Como a Amazon lidará com isso? Como a empresa rastreia as pessoas na loja e o que elas retiram das prateleiras ou retornam sem cometer erros? Tudo começa com as câmeras. Eles são discretos e baratos, e podem ser montados em qualquer lugar. A Amazon falou sobre isso mencionando a visão computacional no vídeo. Mas como processar o que as câmeras veem e usá-lo para rastrear os compradores e suas ações? Aí vem o segundo grande termo, aprendizado profundo.

Neurônios


A ideia de usar câmeras no processo de carregamento nasceu há muito tempo, mas até recentemente, ela permaneceu apenas uma ideia.

Até agora, os algoritmos de visão trabalharam para encontrar as propriedades visíveis da imagem e coletá-las em objetos. Foi possível extrair linhas, ângulos e faces da imagem. Quatro linhas e quatro cantos em uma determinada combinação fornecem um quadrado (ou retângulo). Os mesmos princípios podem ser usados ​​para identificar e rastrear objetos mais complexos usando propriedades e conjuntos mais complexos. A complexidade dos algoritmos de visão depende da complexidade das propriedades e técnicas usadas para reconhecer certos conjuntos de propriedades de objetos.

Por um longo tempo, o progresso mais interessante em visão computacional e aprendizado de máquina dependeu da invenção de propriedades cada vez mais complexas pelos pesquisadores. Em vez de linhas e ângulos, surgiram wavelets e desfoque gaussiano, e propriedades com nomes esotéricos como SIFT e SURF. Por algum tempo, a melhor propriedade para determinar uma pessoa em uma imagem foi denominada HOG. Mas rapidamente ficou claro que a criação meticulosa de propriedades à mão repousa rapidamente no limite de suas capacidades.

Algoritmos baseados no reconhecimento de certas propriedades funcionaram surpreendentemente bem no reconhecimento do que já haviam visto. Mostre ao algoritmo a imagem de embalagem de seis latas de cola e ela se tornará uma especialista mundial no reconhecimento de embalagens de seis latas de cola. Mas uma generalização para esses algoritmos não foi dada; era muito mais difícil para eles reconhecerem refrigerantes em geral ou o mundo mais amplo das bebidas.

Para piorar a situação, esses sistemas não eram confiáveis ​​e era muito difícil melhorá-los. A correção de erros exigia um ajuste manual assíduo da lógica do trabalho, e somente os doutores da ciência que conseguiam entender como o algoritmo funcionava podiam fazer isso. No caso de uma loja, você provavelmente não se importaria se o algoritmo misturasse uma garrafa de cola com uma garrafa de Pepsi, mas você ficaria preocupado se o algoritmo aceitasse uma garrafa de vinho no valor de US $ 20 por uma garrafa de refrigerante no valor de US $ 2.

As oportunidades de aprendizado profundo de hoje são deliberadamente projetadas para se livrar da pesquisa manual e do ajuste fino dos recursos de imagem. Em vez de tentar encontrar manualmente as propriedades das características, você usa grandes quantidades de dados para treinar a rede neural. Pelos exemplos do que deveria reconhecer, a rede neural encontra características em si. Os neurônios de baixo nível aprendem a reconhecer coisas simples, como linhas, e sua saída é passada para os neurônios que combinam essas primitivas em coisas mais complexas, como formas, na arquitetura hierárquica.

Não é necessário indicar quais recursos devem ser reconhecidos pelos neurônios; durante o treinamento, eles simplesmente aparecem por si próprios. Os neurônios determinam a quais padrões é melhor desenvolver a sensibilidade. Se você tentar criar um sistema que reconheça refrigerantes, mostre-lhe dezenas de milhares de imagens de refrigerantes, que passarão de linhas e curvas a formas e depois a caixas e garrafas.

Nosso cérebro funciona aproximadamente da mesma maneira e, portanto, a correção de erros ocorre de acordo com os esquemas humanos. Nos exemplos. Se sua rede neural confunde vinho e refrigerante, você precisa corrigi-la encontrando alguns milhares a mais ou outros exemplos e treiná-la neles. Ela própria descobrirá como distinguir objetos.

O software para simular o trabalho dos neurônios existe há várias décadas, mas seu uso para a visão computacional permanece há muito tempo no campo teórico. Para simular a visão dos animais, são necessárias dezenas a centenas de camadas de neurônios, cada uma das quais contém dezenas de milhares de neurônios. E a cada nova camada, o número de ligações entre as camadas cresce exponencialmente. Para o funcionamento de tais redes requer enorme poder do computador e para treinamento - grandes quantidades de dados.

Para criar uma rede neural que funcione em um período de tempo razoável, é necessário ajustar sua estrutura para minimizar o número de conexões internas. Mas então é necessária muita potência.



Cooperação Computacional


A próxima inovação foi o uso da GPU como supercomputadores de desktop. A simulação de uma rede neural requer a coleta de dados de entrada e o cálculo de dados de saída para muitos neurônios - e esse processo é fácil de paralelizar. As horas que ocupavam as CPUs mais poderosas começaram a correr em minutos na mão média da GPU.

A computação paralela na GPU finalmente permitiu que os pesquisadores aproveitassem a descoberta antiga - estruturando uma rede neural para simular a visão. Lembre-se de que mesmo uma rede simples de várias centenas de milhares de neurônios pode ter bilhões de conexões. Todos precisam ser simulados, a menos que haja algum atalho para que esses compostos funcionem.

Felizmente, você pode trapacear um pouco para criar redes de visualização - temos exemplos incríveis de redes neurais otimizadas para a visão em nossas cabeças. A neurobiologia marca o córtex visual dos mamíferos há décadas, o que serviu de inspiração. Assim, a rede neural convolucional (SNS) nasceu. Nos últimos anos, tornou-se uma das ferramentas mais populares e poderosas no campo da visão computacional.

A convolução é um conceito matemático incrível, cuja explicação simples está além das minhas capacidades. Uma das maneiras coloridas, mas do ponto de vista técnico absolutamente erradas, de imaginá-la é assumir uma função matemática e movê-la sobre outra, observando o resultado.

No SNA, como no córtex visual, existem neurônios sensíveis a certas propriedades (digamos, narizes), e eles são distribuídos pelo campo de visão. A saída desses neurônios está conectada como se pegássemos o único neurônio sensível aos nervos e os guiassemos por todo o campo de visão. O resultado é uma saída que contém informações de localização na imagem dos narizes. Obviamente, isso não se limita aos narizes - o efeito é usado para criar marcações espaciais de onde determinados recursos estão localizados nas imagens. Essas relações espaciais são alimentadas às camadas mais altas da rede e são combinadas nelas para reconhecer padrões e objetos.

O SNA tornou-se uma revelação no campo da visão computacional. Eles são extremamente úteis para o reconhecimento generalizado de objetos: você treina o SNA para reconhecer não um carro ou pessoa específica, mas carros ou pessoas em geral. Eles até tornaram um dos famosos quadrinhos do XKCD irrelevantes.

imagem

E devido à natureza espacial de sua estrutura, eles se prestam muito bem à paralelização na GPU. Diferentes neurônios que observam diferentes partes da imagem podem ser simulados de forma completamente independente. De repente, tornou-se possível reconhecer de forma rápida e barata pessoas, lugares e objetos com uma precisão impressionante.

A explosão simultânea da popularidade dos telefones celulares e da rede significou que centenas de milhões de pessoas entraram na rede e enviaram bilhões de imagens para serviços como o Facebook e o Google, criando inconscientemente enormes conjuntos de algoritmos de treinamento.

Desenvolvimentos de ponta recentes vão ainda mais longe. Os pesquisadores criaram uma rede neural recorrente (RNS) com memória incorporada. Em vez de simplesmente transferir conexões para a próxima camada, ele usa conexões internas para criar memória somente leitura. Se você está familiarizado com a lógica digital, pode imaginar gatilhos como uma analogia. Isso significa que você pode treinar redes com uma única camada visual que "olha" para a imagem e transfere tudo o que vêem para a memória, para que a rede possa reconhecer ações no vídeo.

E após esses desenvolvimentos, você repentinamente tem algoritmos que podem reconhecer pessoas, objetos e ações com uma precisão extremamente alta. Em outras palavras, você pode treinar algoritmos para reconhecer uma pessoa, saber onde o produto da loja está na imagem quando é movido e reconhecer quando a pessoa o coloca ou tira da prateleira. Você só precisa de um pouco de GPU. E como é conveniente que uma das maiores coleções de GPUs disponíveis sob demanda pertença à Amazon - é seu serviço de nuvem da AWS extremamente poderoso e lucrativo.

Nós descobrimos o segredo do Amazon Go combinando câmeras baratas com algoritmos cerebrais e um exército de computadores? Na verdade, não, porque mais um problema precisa ser resolvido. O ângulo de visão das câmeras é limitado - então, como uma empresa pode cobri-las por toda a loja? E se o cliente estiver entre a câmera e a prateleira?

Para fazer isso, verifique se qualquer área é vista em várias câmeras. Mas isso levanta outra questão - como combinar os dados de entrada de várias câmeras em uma imagem coerente do que está acontecendo?

Síntese de alimentos


Para isso, retornaremos na década de 1960. Então os engenheiros da NASA enfrentaram um grande problema - eles tinham muitas ferramentas de navegação diferentes, de giroscópios a estrelas de rastreamento, e precisavam reduzir todas as medições para uma melhor estimativa da localização da espaçonave.

O Amazon Go teve um problema semelhante. Para que toda essa idéia funcione, é necessário combinar observações de várias câmeras diferentes por diferentes períodos de tempo em uma informação coerente sobre o carrinho de compras. O problema é que o mundo é essencialmente um lugar indefinido, então a decisão foi aceitar essa incerteza. Em vez de tentar determinar tudo com a máxima precisão, os modelos de sucesso usam uma abordagem probabilística.

Na NASA, havia um algoritmo chamado Kalman Filter , que eles costumavam levar em conta os erros de cada instrumento e a combinação de medidas na melhor estimativa possível. O filtro Kalman é baseado na fórmula de Bayes .

Em essência, a fórmula de Bayes é uma relação matemática que conecta a observação de um evento e a probabilidade de sua ocorrência e fornece a probabilidade de que o evento realmente tenha acontecido. O resultado é o seguinte: nossa crença de que um dos estados prováveis ​​é verdadeiro (probabilidade a posteriori) é igual à força de nossa fé nesse estado antes da observação (probabilidade a priori), multiplicada pelo suporte desse estado com os dados obtidos dos sensores.

Voltando ao exemplo de vinho e refrigerante: por exemplo, uma rede neural relata que o cliente pegou o vinho. A fórmula de Bayes nos diz que a probabilidade que ele realmente tomou é igual à probabilidade de ele tomar o vinho, multiplicado pela probabilidade de que a câmera relate corretamente o fato de tomar o vinho.

A Amazon tem duas grandes vantagens ao usar um esquema probabilístico baseado em Bayesiano. Primeiro, a empresa pode considerar probabilidades a priori, pois conhece o histórico de compras anteriores de muitos clientes. Isso significa que, se um cliente da Amazon Go comprar café e um cupcake toda terça-feira, mesmo antes de ir às prateleiras apropriadas, a loja já poderá aumentar a probabilidade dessas compras. Essa é uma maneira natural de usar uma enorme quantidade de dados do usuário que a empresa já possui.

A segunda grande vantagem é que traduzir tudo em um idioma de probabilidade permite adicionar várias medidas de vários sensores em vários períodos de tempo. Assumindo a independência das observações, você pode simplesmente multiplicar as probabilidades. Além disso, a probabilidade posterior de um evento pode ser usada a priori para outro.



Por exemplo, deixe várias câmeras verem uma prateleira. Alguns estão mais próximos, outros mais distantes. Várias câmeras acreditam que o cliente tirou refrigerante barato da prateleira, uma acredita que ele pegou um produto caro, não viu nada e a segunda acredita que ele estava apenas mordendo o nariz. E agora o que?

A Amazon poderia criar uma lógica complexa para este caso, a partir da qual seguiria qual câmera pode ser confiável. Foi mais perto e melhor foi a visão da câmera, que acreditava que o cliente havia tomado refrigerante caro? O comprador foi bloqueado por uma câmera que viu uma picada no nariz? Mas você só precisa de credibilidade. Com base no número de erros de cada câmera, dependendo de sua localização e visão geral, a fórmula de Bayes nos diz como combinar todos os dados de entrada para entender a probabilidade de o usuário consumir refrigerante barato, caro ou não consumir nada.

De fato, desde que você se mudou para o maravilhoso mundo das probabilidades, a fórmula de Bayes permite combinar entradas com tipos completamente diferentes de sensores.

Portanto, a Amazon apresentou pedidos de patente para o uso de sensores RFID para pagar automaticamente pelas compras. Sensores RFID passivos são colocados nas mercadorias e lidos por scanners localizados na loja. Essa tecnologia é uma excelente candidata à criação de uma loja automatizada, pois hoje é barata e difundida. E, como permite a digitalização remota, pode ser usada em vez de uma caixa. Coloque o scanner onde os clientes vão, e você verá o que está na cesta, sem precisar levar as mercadorias e apresentá-las ao caixa. Ao assistir a um vídeo promocional, notei que todos os produtos estavam pré-embalados - comida enlatada, pacotes de batatas fritas e embalagens plásticas com alimentos. Esses produtos não apenas têm mais lucro, como também permitem que você marque cada item.

Mas usar o RFID sozinho tem suas desvantagens.Não será possível distinguir um comprador de outro. Você vê que a loja deixa um conjunto de refrigerante, batatas fritas e sanduíches e entende que é uma compra, mas quem a comprou? Além disso, o RFID pode apresentar erros. Se dois clientes passam pelo scanner, você pode digitalizar as compras de ambos e não sabe quem pediu o quê.

Estimativas probabilísticas baseadas na fórmula de Bayes ajudam a lidar com esses problemas. A Amazon pode fornecer probabilidades por local e possíveis combinações de compras para centenas de compradores. A situação é semelhante a uma interpretação multi-mundo da mecânica quântica: toda vez que após alguma ação do cliente, a loja cria um novo "mundo" com essa ação e o acompanha (atualizando a probabilidade deste mundo de acordo com Bayes).

Voltemos às câmeras e ao exemplo do refrigerante: com base no RFID, a Amazon pode usar a digitalização para confirmar ou refutar as câmeras, sem a necessidade de desenvolver uma lógica especial.

E a cereja no bolo. Como no aprendizado de máquina para redes neurais, as pontuações probabilísticas são aprimoradas com mais dados. Como nas estatísticas, quanto mais medidas você fizer, melhor será. Cada novo conjunto de dados melhora a precisão do sistema e sua percepção pelo usuário.

E a Amazon se orgulha de apresentar ... seu jantar


A descrição pode não ser precisa e, com certeza, não descobriremos até que a Amazon revele seus cartões, mas a fórmula de Bayes ajuda a completar uma imagem bastante realista de como esse sistema novo pode funcionar.

Ao entrar na loja, você passa o smartphone no scanner. Algoritmos acionados por câmera com reconhecimento de imagem e treinamento aprofundado rastreiam você enquanto faz compras. Cada vez que você pega um item ou o devolve, as câmeras reconhecem essa ação. As observações de várias câmeras são combinadas usando a fórmula bayesiana e fornecem informações sobre o que você tirou. O sistema monitora todas as combinações possíveis das mercadorias que você transportou. Cada vez que você passa por uma porta ou moldura, você é procurado por etiquetas RFID, o que permite ao sistema reduzir a lista de combinações. Quando você sai da loja, o sistema examina a lista do que acredita ter, seleciona o palpite mais provável e deduz o valor necessário da sua conta.

Tudo isso se tornou possível com o desenvolvimento de aprendizado profundo, computação em nuvem e avaliações probabilísticas. O Amazon Go não podia ser feito nem cinco anos atrás, mas hoje todos os componentes já estão disponíveis. E a mesma combinação está atualmente no centro do desenvolvimento de robomobiles, IA, sistemas de tradução de texto e muito mais. Hoje é muito interessante trabalhar no campo do treinamento em informática. E, embora eu esteja muito interessado em saber o que mais nos espera, espero aproveitar em breve uma visita à loja, onde você pode simplesmente pegar as mercadorias e sair.

Source: https://habr.com/ru/post/pt403797/


All Articles