
Hoy en día, los comunicados de prensa de las compañías tecnológicas nos sorprenden poco. Los detalles de las innovaciones fluyen unos meses antes o no son muy impresionantes. Pero recientemente, nos encontramos con varias sorpresas reales. Unos meses antes del lanzamiento de Switch, Nintendo decidió que el futuro de las consolas era su pasado y anunció el
NES Classic . Y la
victoria de AlphaGo
de Google sobre el campeón entre las personas desanimó a los expertos que creían que tales resultados no podían obtenerse antes de diez años después.
El
anuncio de diciembre de la tienda minorista Amazon Go, donde simplemente puede tomar productos de los estantes y salir, se puede comparar con el impacto de las noticias de AlphaGo. El método de "recoger y salir" por algún tiempo fue conocido como el "futuro de las ventas minoristas" y fue "solo unos años" desde nuestro tiempo. Llevo más de diez años trabajando en el departamento de investigación de robótica en Caltech, Stanford y Berkeley, y ahora estoy a cargo de una
startup que fabrica cámaras de seguridad para uso en exteriores. La visión por computadora fue una gran parte de mi trabajo. Pero solo unos meses antes del anuncio, le dije con confianza a alguien que tomaría varios años más implementar el sistema "tomó y se fue". Y no fui el único en pensarlo, solo dos meses antes de eso,
Planet Money tuvo un episodio sobre este tema.
Entonces, cuando Amazon de repente nos sorprendió a todos al crear tal cosa, la primera pregunta fue obvia: ¿cómo funcionará? En un video promocional, se apresuran con grandes palabras como visión por computadora, aprendizaje profundo y síntesis de sensores. Pero, ¿qué significa todo esto y cómo combinar realmente todas estas cosas?
Comenzaré con la revelación de la intriga: de hecho, no lo sé. No participé en el desarrollo del proyecto, y la compañía no habló sobre cómo funciona. Pero, dada mi experiencia y trabajo en el campo de la visión por computadora, puedo hacer algunas conjeturas respaldadas por el conocimiento. En esencia, Amazon Go se parece al desarrollo de IA, la visión por computadora y la toma de decisiones automática, como AlphaGo, y los avances repentinos en el campo de los robomobiles. Los avances en estadísticas y computación paralela en los últimos cinco años han creado un nuevo hito en el campo de la inteligencia artificial.
Es por eso que los desarrollos de vanguardia ocurren en oleadas y, por lo tanto, al permitir que el robot lo lleve a la tienda a comprar un paquete de leche, destruye la interacción entre las personas mucho antes de lo que nadie podría haber imaginado.
Carro de compras
Para comprender mejor cómo funcionan los ecosistemas de Amazon Go, debe esbozar una tarea. En el caso de una tienda de comestibles, Amazon debe responder una pregunta: ¿qué lleva un visitante con él cuando sale de la tienda? En otras palabras, ¿qué hay en su carrito de compras?
De hecho, solo hay dos formas de responder la pregunta. Amazon necesita mirar dentro de la canasta cuando el usuario se va, o realizar un seguimiento de lo que cae exactamente en esta canasta. El primer método que llamamos la línea de pago, y así es como funcionan las tiendas más modernas (verifique todo lo que el usuario lleva consigo). Otro enfoque que llamo una cuenta de bar. A medida que el cantinero monitorea todos los pedidos de los clientes, la empresa puede averiguar qué hay en la cesta de la compra, rastrear qué entra exactamente en la cesta o la deja. Idealmente, sabrá exactamente qué hay allí y no tendrá que obligar a los usuarios a demostrar sus compras.
Por supuesto, Amazon Go no es una tienda de comestibles ordinaria. No solo debe averiguar qué hay en cada canasta en particular, sino también entender a quién cobrar dinero por ello. Para cargar en un mundo sin cajeros, debe identificar al usuario.
¿Cómo manejará Amazon esto? ¿Cómo rastreará la empresa a las personas en la tienda y lo que sacan de los estantes o regresan sin cometer errores? Todo comienza con las cámaras. Son discretos y baratos, y se pueden instalar en todas partes. Amazon habló sobre esto al mencionar la visión por computadora en el video. Pero, ¿cómo procesar lo que ven las cámaras y usarlo para rastrear a los compradores y sus acciones? Aquí viene el segundo gran término, el aprendizaje profundo.
Neuronas
La idea de usar cámaras en el proceso de carga nació hace mucho tiempo, pero hasta hace poco, seguía siendo solo una idea.
Hasta ahora, los algoritmos de visión han funcionado para encontrar las propiedades notables de la imagen y recopilarlas en objetos. Fue posible extraer líneas, ángulos y caras de la imagen. Cuatro líneas y cuatro esquinas en una combinación determinada le dan un cuadrado (o rectángulo). Se pueden usar los mismos principios para identificar y rastrear objetos más complejos utilizando propiedades y conjuntos más complejos. La complejidad de los algoritmos de visión depende de la complejidad de las propiedades y técnicas utilizadas para reconocer ciertos conjuntos de propiedades de los objetos.
Durante mucho tiempo, el progreso más interesante en visión artificial y aprendizaje automático dependió de la invención de propiedades cada vez más complejas por parte de los investigadores. En lugar de líneas y ángulos aparecieron wavelets y desenfoque gaussiano, y propiedades con nombres esotéricos como SIFT y SURF. Durante algún tiempo, la mejor propiedad para determinar a una persona en una imagen se llamaba HOG. Pero rápidamente se hizo evidente que la creación meticulosa de propiedades a mano descansa rápidamente en el techo de sus capacidades.
Los algoritmos basados en el reconocimiento de ciertas propiedades funcionaron sorprendentemente bien para reconocer lo que ya habían visto. Muestre al algoritmo una imagen de un paquete de seis latas de cola, y se convertirá en un experto mundial en reconocer paquetes de seis latas de cola. Pero no se dio una generalización a estos algoritmos; les era mucho más difícil reconocer los refrescos en general, o el mundo más amplio de las bebidas.
Para empeorar las cosas, estos sistemas no eran confiables y era muy difícil mejorarlos. La corrección de errores requería un ajuste manual asiduo de la lógica del trabajo, y solo los doctores en ciencias que podían entender cómo funcionaba el algoritmo podían hacerlo. En el caso de una tienda, probablemente no le importaría si el algoritmo mezclara una botella de cola con una botella de Pepsi, pero estaría preocupado si el algoritmo aceptara una botella de vino por valor de $ 20 por una botella de refresco por valor de $ 2.
Las oportunidades de aprendizaje profundo de hoy están diseñadas deliberadamente para deshacerse de la búsqueda manual y el ajuste de las características de la imagen. En lugar de tratar de encontrar manualmente las propiedades características, utiliza grandes cantidades de datos para entrenar la red neuronal. Por los ejemplos de lo que debería reconocer, la red neuronal encuentra características por sí misma. Las neuronas de bajo nivel aprenden a reconocer cosas simples como líneas, y su salida se transmite a las neuronas que combinan estas primitivas en cosas más complejas, como formas, en la arquitectura jerárquica.
No es necesario indicar qué características deben reconocer las neuronas; durante el entrenamiento, simplemente aparecen por sí solas. Las neuronas determinan a qué patrones es mejor desarrollar sensibilidad. Si intenta crear un sistema que reconozca los refrescos, le mostrará decenas de miles de imágenes de refrescos, y pasará de líneas y curvas a formas, y luego a cajas y botellas.
Nuestro cerebro funciona aproximadamente de la misma manera y, por lo tanto, la corrección de errores se realiza de acuerdo con los esquemas humanos. Sobre los ejemplos. Si su red neuronal confunde el vino y la gaseosa, debe solucionarlo encontrando algunos miles más u otros ejemplos, y capacitarlo en ellos. Ella misma descubrirá cómo distinguir los objetos.
El software para simular el trabajo de las neuronas ha existido durante varias décadas, pero su uso para la visión por computadora ha permanecido durante mucho tiempo en el campo teórico. Para simular la visión de los animales, se requieren decenas a cientos de capas de neuronas, cada una de las cuales contiene decenas de miles de neuronas. Y con cada nueva capa, el número de enlaces entre capas crece exponencialmente. Para el funcionamiento de tales redes se requiere una gran potencia informática y para la capacitación, grandes cantidades de datos.
Para crear una red neuronal que funcione en un período de tiempo razonable, es necesario ajustar su estructura para minimizar la cantidad de conexiones internas. Pero entonces se requiere demasiada potencia.

Cooperación computacional
El siguiente avance fue el uso de la GPU como supercomputadoras de escritorio. La simulación de una red neuronal requiere la recopilación de datos de entrada y el cálculo de datos de salida para muchas neuronas, y este proceso es fácil de paralelizar. Las horas que ocuparon las CPU más potentes comenzaron a correr en minutos en la mano promedio de la GPU.
La computación paralela en la GPU finalmente permitió a los investigadores aprovechar el antiguo descubrimiento: estructurar una red neuronal para simular la visión. Recuerde que incluso una red simple de varios cientos de miles de neuronas puede tener miles de millones de conexiones. Todos necesitan ser simulados, a menos que haya algún atajo para que estos compuestos funcionen.
Afortunadamente, puedes hacer un poco de trampa para crear redes de visión: tenemos ejemplos increíbles de redes neuronales optimizadas para la visión en nuestras mentes. La neurobiología ha marcado la corteza visual de los mamíferos durante décadas, lo que sirvió de inspiración. Así nació
la red neuronal convolucional (SNS). En los últimos años, se ha convertido en una de las herramientas más populares y poderosas en el campo de la visión por computadora.
La convolución es un concepto matemático sorprendente, cuya explicación simple está más allá de mis capacidades. Una de las formas coloridas, pero desde un punto de vista técnico absolutamente erróneo, de imaginarlo es tomar una función matemática y moverla sobre otra, observando el resultado.
En el SCN, como en la corteza visual, hay neuronas que son sensibles a ciertas propiedades (por ejemplo, narices) y se distribuyen por todo el campo de visión. La salida de estas neuronas está conectada como si tomáramos la única neurona sensible a los nervios y las guiáramos por todo el campo de visión. El resultado es una salida que contiene información de ubicación en la imagen de las narices. Esto, por supuesto, no se limita a las narices: el efecto se usa para crear marcas espaciales de dónde se encuentran ciertas características en las imágenes. Estas relaciones espaciales se alimentan a las capas superiores de la red y se combinan en ellas para reconocer patrones y objetos.
El SNA se ha convertido en una revelación en el campo de la visión por computadora. Son extremadamente útiles para el reconocimiento generalizado de objetos: usted entrena al SNA para reconocer no un automóvil o persona específica, sino automóviles o personas en general. Incluso hicieron irrelevante uno de los famosos cómics de XKCD.

Y debido a la naturaleza espacial de su estructura, se prestan muy bien a la paralelización en la GPU. Las diferentes neuronas que observan diferentes partes de la imagen se pueden simular de forma completamente independiente. De repente, se hizo posible reconocer rápida y económicamente a personas, lugares y objetos con una precisión impresionante.
La explosión simultánea de la popularidad de los teléfonos móviles y la red significó que cientos de millones de personas se pusieron en línea y subieron miles de millones de imágenes a servicios como
Facebook y Google, creando involuntariamente grandes conjuntos de algoritmos de entrenamiento.
Los recientes desarrollos de vanguardia van aún más lejos. Los investigadores han creado una
red neuronal recurrente (RNS) con memoria incorporada. En lugar de simplemente transferir conexiones a la siguiente capa, usa conexiones internas para crear memoria de solo lectura. Si está familiarizado con la lógica digital, puede imaginar los desencadenantes como una analogía. Esto significa que puede entrenar redes con una sola capa visual que "mira" la imagen y transfiere todo lo que ven a la memoria, para que la red pueda reconocer acciones en el video.
Y después de estos desarrollos, de repente tiene algoritmos que pueden reconocer personas, objetos y acciones con una precisión extremadamente alta. En otras palabras, puede entrenar algoritmos para reconocer a una persona, saber dónde se encuentra el producto de la tienda en la imagen cuando se mueve y reconocer cuándo la persona lo coloca o lo saca del estante. Solo necesitas un poco de GPU. Y qué conveniente es que una de las mayores colecciones de GPU disponibles bajo demanda pertenezca a Amazon: es su servicio en la nube AWS extremadamente potente y rentable.
¿Hemos descifrado el secreto de Amazon Go combinando cámaras baratas con algoritmos cerebrales y un ejército de computadoras? En realidad no, porque hay que resolver un problema más. El ángulo de visión de las cámaras es limitado, entonces, ¿cómo puede una empresa cubrirlas en toda una tienda? ¿Qué pasa si el cliente se interpone entre la cámara y el estante?
Para hacer esto, asegúrese de ver cualquier área en varias cámaras. Pero esto plantea otra pregunta: ¿cómo combinar los datos de entrada de varias cámaras en una imagen coherente de lo que está sucediendo?
Síntesis de alimentos
Para esto volveremos en la década de 1960. Luego, los ingenieros de la NASA se enfrentaron a un gran problema: tenían muchas herramientas de navegación diferentes, desde giroscopios hasta estrellas de rastreo, y necesitaban reducir todas las mediciones a una mejor estimación de la ubicación de la nave espacial.
Amazon Go tuvo un problema similar. Para que esta idea funcione, es necesario combinar las observaciones de varias cámaras diferentes durante diferentes períodos de tiempo en una información coherente sobre el carrito de compras. El problema es que el mundo es esencialmente un lugar indefinido, por lo que la decisión fue aceptar esta incertidumbre. En lugar de tratar de determinar todo con la máxima precisión, los modelos exitosos utilizan un enfoque probabilístico.
En la NASA, tenía un algoritmo llamado
Kalman Filter , que utilizaron para tener en cuenta los errores de cada instrumento y la combinación de mediciones en la mejor estimación posible. El filtro de Kalman se basa en la
fórmula de Bayes .
En esencia, la fórmula de Bayes es una relación matemática que conecta la observación de un evento y la probabilidad de que ocurra, y le brinda la probabilidad de que el evento realmente haya sucedido. El resultado es el siguiente: nuestra creencia de que uno de los estados probables es verdadero (probabilidad a posteriori) es igual a la fuerza de nuestra fe en este estado antes de la observación (probabilidad a priori), multiplicado por el apoyo de este estado con datos obtenidos de sensores.
Volviendo al ejemplo del vino y los refrescos: por ejemplo, una red neuronal informa que el cliente tomó el vino. La fórmula de Bayes nos dice que la probabilidad de que realmente lo haya tomado es igual a la probabilidad de que tome el vino, multiplicado por la probabilidad de que la cámara informe correctamente el hecho de tomar el vino.
Amazon tiene dos grandes ventajas cuando se utiliza un esquema probabilístico basado en Bayesian. Primero, la empresa puede considerar las probabilidades a priori, ya que conoce el historial de compras anteriores de muchos clientes. Esto significa que si un cliente de Amazon Go compra café y un pastelito todos los martes, incluso antes de ir a los estantes apropiados, la tienda ya puede aumentar la probabilidad de estas compras. Esta es una forma natural de utilizar una gran cantidad de datos de usuario que la compañía ya tiene.
La segunda gran ventaja es que traducir todo a un lenguaje de probabilidad le permite sumar múltiples mediciones de múltiples sensores durante múltiples períodos de tiempo. Suponiendo la independencia de las observaciones, simplemente puede multiplicar las probabilidades. Además, la probabilidad posterior de un evento se puede utilizar a priori para otro.

Por ejemplo, deje que varias cámaras vean un estante. Algunos se acercan, otros más. Varias cámaras creen que el cliente tomó refrescos baratos del estante, uno cree que tomó un producto costoso, uno no vio nada, y el segundo cree que solo se estaba hurgando la nariz. ¿Y ahora que?
Amazon podría llegar a una lógica compleja para este caso, a partir de la cual seguiría en qué cámara se puede confiar. ¿Estaba más cerca y mejor la vista de la cámara, que creía que el cliente había tomado refrescos caros? ¿Estaba bloqueado el comprador por una cámara que vio un pico en la nariz? Pero solo necesitas credibilidad. Según la cantidad de errores de cada cámara, dependiendo de su ubicación y visión general, la fórmula de Bayes nos dice cómo combinar todos los datos de entrada para comprender cuál era la probabilidad de que el usuario tomara refrescos baratos, caros o nada.
De hecho, desde que te mudaste al maravilloso mundo de las probabilidades, la fórmula de Bayes te permite combinar la entrada con diferentes tipos de sensores.
Por lo tanto, Amazon ha
presentado solicitudes de
patente para usar sensores RFID para pagar automáticamente las compras. Los sensores pasivos RFID se colocan en los productos y luego los leen los escáneres ubicados en la tienda. Esta tecnología es un excelente candidato para crear una tienda automatizada, ya que hoy es barata y está muy extendida. Y dado que permite el escaneo remoto, puede usarse en lugar de un cajero. Coloque el escáner donde van los clientes y verá lo que hay en su cesta, sin tener que obtener los productos y presentarlos al cajero. Al mirar un video promocional, noté que todos los productos estaban preenvasados: comida enlatada, paquetes de papas fritas y recipientes de plástico con comida. Estos productos no solo tienen más ganancias, sino que también le permiten colocar una marca en cada artículo.
Pero usar RFID solo tiene sus inconvenientes.
No será posible distinguir un comprador de otro. Ves que la tienda deja un juego de refrescos, papas fritas y sándwiches, y entiendes que esto es una compra, pero ¿quién lo compró? Además, RFID puede dar errores. Si dos clientes pasan por el escáner, puede escanear las compras de ambos y no sabe quién ordenó qué.Las estimaciones probabilísticas basadas en la fórmula de Bayes ayudan a hacer frente a tales problemas. Amazon puede dar probabilidades por ubicación y posibles combinaciones de compras para cientos de compradores. La situación es similar a una interpretación multimundo de la mecánica cuántica: cada vez que una acción del cliente, la tienda crea un nuevo "mundo" con esta acción y la rastrea (actualizando la probabilidad de este mundo según Bayes).Volvamos a las cámaras y al ejemplo de los refrescos: basado en RFID, Amazon puede usar el escaneo para confirmar o refutar las cámaras, sin la necesidad de desarrollar ninguna lógica especial.Y la guinda del pastel. Al igual que con el aprendizaje automático para redes neuronales, las puntuaciones probabilísticas se mejoran con más datos. Al igual que con las estadísticas, cuantas más mediciones realice, mejor será. Cada nuevo conjunto de datos mejora la precisión del sistema y su percepción por parte del usuario.Y Amazon se enorgullece en presentar ... tu cena
La descripción puede no ser precisa, y seguramente no lo descubriremos hasta que Amazon revele sus cartas, pero la fórmula de Bayes ayuda a completar una imagen bastante realista de cómo puede funcionar este sistema novedoso.Al ingresar a la tienda, desliza su teléfono inteligente en el escáner. Los algoritmos controlados por cámara con reconocimiento de imágenes y entrenamiento en profundidad lo siguen mientras compra. Cada vez que toma un artículo o lo devuelve, las cámaras reconocen esta acción. Las observaciones de varias cámaras se combinan utilizando la fórmula bayesiana y brindan información sobre lo que tomó. El sistema monitorea todas las combinaciones posibles de los bienes que ha tomado. Cada vez que pasa por una puerta o marco, se le escanea en busca de etiquetas RFID, lo que permite que el sistema reduzca la lista de combinaciones. Cuando sale de la tienda, el sistema revisa la lista de lo que cree que tiene, selecciona la suposición más probable y deduce la cantidad necesaria de su cuenta.Todo esto se hizo posible con el desarrollo de aprendizaje profundo, computación en la nube y evaluaciones probabilísticas. Amazon Go no se pudo hacer incluso hace cinco años, pero hoy todos los componentes ya están disponibles. Y la misma combinación se encuentra actualmente en el corazón del desarrollo de robomóviles, IA, sistemas de traducción de texto y mucho más. Hoy es muy interesante trabajar en el campo de la formación en informática. Y aunque estoy muy interesado en saber qué más nos espera, espero disfrutar pronto de una visita a la tienda, donde puede recoger los productos e irse.