Una nueva forma de conducir

- Hace 6 meses
Imagen de la entrada

CES fue una vez una celebración del progreso y el entusiasmo en la industria de vehículos autónomos. Ahora se ha convertido en un recordatorio anual de cuánto han permanecido las cosas igual. Una vez más, las compañías anunciaron más millas recorridas, reinventaron más interiores de automóviles e hicieron más promesas en un plazo de 5 a 15 años. Pero ninguno de ellos anunció la venta de un auto sin conductor real, por lo que muy poco ha cambiado.

Está claro que la robótica, el enfoque que ha dominado la última década del desarrollo AV, ha demostrado ser inadecuado para resolver la enorme complejidad de la conducción en el mundo real.

Pero hay esperanza. A partir de 2017, las nuevas compañías de vehículos autónomos, comenzaron a adoptar un enfoque integral de aprendizaje automático para la conducción autónoma. Basado en algunos de los últimos avances en aprendizaje automático, este enfoque de aprendizaje representa una forma totalmente nueva de conducir un automóvil y una desviación radical de la robótica, que ha fallado en vehículos autónomos durante la última década.

Hoy quiero profundizar en este cambio y compartir por qué creo que este nuevo paradigma de aprendizaje es el único enfoque que finalmente pondrá a los autos sin conductor en la carretera de manera segura en masa.

Eso fue entonces: robótica

Las primeras compañías de vehículos autónomos nacieron de los departamentos de robótica de las mejores universidades, inspiradas en los desafíos grandes y urbanos de DARPA. El Departamento de Defensa patrocinó estos concursos para explorar las posibles aplicaciones para vehículos no tripulados. Los cursos de obstáculos de DARPA eran bastante simples (frente a las complejidades de la conducción en el mundo real) y, en ese momento, una solución de software basada en reglas para mover un robot físico a través de un entorno restringido era la mejor opción para resolver el problema. Además, el aprendizaje automático, tal como lo conocemos, aún no se había inventado.

Imagen de la entrada

La robótica se define fundamentalmente por restricciones, que los ingenieros programan minuciosamente. Una mirada a la clásica pila de software de vehículos autónomos revela una larga lista de reglas sobre lo que una computadora no puede hacer: los mapas HD le dicen dónde no puede conducir, el reconocimiento de objetos le dice lo que no puede alcanzar, las reglas preprogramadas del camino dígale cómo no puede comportarse. Lo que queda: la superficie manejable sin impedimentos, es el camino a seguir. Pero lo que funcionó bien en una carrera de obstáculos ha demostrado ser inadecuado para las complejidades de la conducción en el mundo real.

Cuando los robots fallan

La robótica funciona hasta que tus restricciones entren en conflicto, cuando una de tus reglas te obliga a romper una de tus otras reglas. Pero, ¿qué regla seguir: debe permanecer en su carril o evitar una colisión? En la conducción autónoma, las personas llaman a estos casos límite, las «excepciones» que pueblan la larga cola gorda de la conducción autónoma. Para ser claros, los casos extremos no son, de hecho, fenómenos naturales (como un ciervo corriendo a través de la carretera), sino que el resultado del software que escribe entra en conflicto con otro software que escribe («permanecer en su carril» entra en conflicto con «no golpee a los ciervos «).

Imagen de la entrada

Desempacar y resolver estos casos extremos es una tarea compleja y laboriosa, que requiere que una persona determine qué regla tiene prioridad en cada caso. Agrega una nueva capa de suposiciones humanas, donde, por definición, debe enfatizar algo que ya ha considerado importante. Es un trabajo duro.

Sin embargo, el desafío más grande es la escala. El número de casos límite aumenta en el cuadrado del número de reglas. Si tiene 100 reglas en su modelo, y cada regla individual puede entrar en conflicto con cualquier otra regla, tiene 10,000 posibles casos límite. Cuanto más complejo es el escenario de conducción, más reglas se requieren para conducir con seguridad, y la cantidad de casos extremos explota. Una situación compleja podría requerir 1,000 reglas, lo que produciría 1,000,000 de casos límite posibles. Resolver esto a mano es casi imposible.

Si esto le parece una forma poco natural de conducir, debería hacerlo. La robótica rápidamente se ve afectada por una sobrecarga de información. No existe un mecanismo escalable para filtrar o priorizar la información, por lo que los programas evalúan constantemente las decisiones en el contexto de miles de reglas e incluso más excepciones. Donde las personas sobresalen, los robots quedan paralizados.

Conducir es un problema de aprendizaje

Conducir no es un problema de reglas, es un problema de aprendizaje: la mayor parte de la conducción es determinar qué es importante y qué se puede ignorar. Las personas pueden conducir porque nos hemos vuelto extremadamente buenos filtrando el ruido, no porque nos hayamos vuelto especialmente buenos memorizando muchas reglas y excepciones.

El desafío principal es que hay mucho ruido en el camino. La entrada total de datos en un momento dado en la carretera es enorme, pero solo una pequeña fracción es importante para tomar su próxima decisión de manejo. Considere la autopista: a pesar de un flujo constante de autos que pasan zumbando en ambas direcciones, momento a momento, casi todas sus decisiones se basan en unos pocos marcadores de carril y la distancia entre usted y el automóvil que está frente a usted.

Imagen de la entrada

Pero cuando un automóvil se desvía hacia usted desde dos carriles más, lo que fue un aporte irrelevante hace unos momentos se vuelve central para su decisión de una fracción de segundo. Determinar qué entrada de datos es importante en qué momento es el corazón de la tarea.

Este tipo de priorización es lo que el aprendizaje automático hace mejor. Los modelos de aprendizaje automático incorporan mucha, mucha información, descubren su relevancia y se optimizan para un determinado resultado. En la conducción, eso significa aprender qué señales son importantes y qué señales pueden ignorarse, sin atascarse resolviendo todas las reglas posibles.

La Empresa de Aprendizaje Moderno

Esta idea representa un cambio de paradigma en el desarrollo de la lógica de conducción para vehículos autónomos, que puede ofrecer un producto de orden de magnitud más seguro y mejor.

En robótica, escribes un montón de reglas, las pones en un auto y conduces para ver si funcionan. Es esencialmente «adivinar y verificar»: sus modelos se basan en cualquier suposición que un ingeniero pueda hacer sobre la conducción. Cuando se rompe, resuelve los casos extremos, escribiendo excepciones a mano. Luego repites el proceso. Esto es limitante en muchos aspectos: primero, sus suposiciones están inventadas, sujetas a errores humanos o sesgos. Y segundo, sus suposiciones son difíciles de cambiar: con cada excepción construida sobre cada regla, se vuelve extremadamente costoso ajustar sus suposiciones iniciales, como comenzar de nuevo.

Por el contrario, un sistema de aprendizaje es un proceso iterativo diseñado para descubrir el programa ideal para conducir un automóvil. En lugar de comenzar haciendo suposiciones sobre cómo conducir, comienza observando cómo las personas realmente conducen en el mundo real. Estos datos, que capturan lo que la gente ve y lo que hacen a continuación, sirven como verdad fundamental para sus modelos. Luego, utiliza técnicas de aprendizaje automático para descubrir qué características del entorno realmente impactan las decisiones de conducción y cómo las personas navegan mejor por el mundo de manera segura. Este proceso es altamente iterativo, probando una amplia selección de entradas potenciales y midiendo el desempeño del modelo contra más datos del mundo real. Básicamente, está desarrollando un modelo de conducción en reversa, comenzando con la respuesta correcta y luego usando las matemáticas para descubrir cómo las personas llegan a esa respuesta.

La ventaja obvia aquí es la flexibilidad. Cuando los ingenieros intentan escribir reglas de manejo en robótica, están adivinando. Nadie sabe exactamente qué características o entradas en una escena influyen en nuestro comportamiento de conducción. Con los sistemas de aprendizaje, se eliminan las conjeturas: puede descubrir las entradas más importantes y el comportamiento correcto al observar un montón de conducción en el mundo real. Un sistema que puede hipotetizar, entrenar y medir rápidamente ya no está limitado por una lista de reglas; Se puede probar cualquier conjunto de señales (por ejemplo, objetos, clasificadores, reconocedores de señales, reglas de carreteras de mapas HD) para encontrar la combinación óptima. Este es probablemente el mayor beneficio de la nueva era del aprendizaje automático: permitir que las computadoras encuentren patrones en el mundo que la gente no ha podido describir completamente con la programación lineal. La flexibilidad para probar muchas variables conduce a un producto superior.

¿Pero Waymo no utiliza el aprendizaje autónomo?

Un aparte: hay un mito popular sobre el aprendizaje automático en vehículos autónomos basados ​​en robótica. Casi todos los sistemas de vehículos autónomos utilizan el aprendizaje automático para la percepción y clasificación de objetos móviles, determinando esencialmente la diferencia entre una bicicleta y un conejito en la calle. Pero el sistema de aprendizaje se detiene en una pared de código convencional cuando se trata de tomar la decisión de conducir real (también conocida como «la parte difícil»). En robótica, la conducción (o «planificación») es solo una lista de reglas convencionales como las que hemos estado escribiendo en software durante más de 50 años.

Imagen de la entrada

Criado por las calles

En última instancia, los vehículos autónomos son juzgados por su desempeño en la calle. El sistema de aprendizaje nuevamente tiene una clara ventaja sobre la robótica en su capacidad de entregar algo que realmente podemos usar de manera segura y confiable en el mundo real.

Los sistemas de aprendizaje comienzan en el mundo real. Los modelos son entrenados por grandes conjuntos de datos del mundo real, y luego probados contra conjuntos aún más grandes de datos del mundo real retenidos para este propósito exacto. Para cuando un modelo salga a la carretera, puede probar rápidamente su eficacia sobre millones, o incluso miles de millones, de millas antes de ponerlo en un automóvil.

La robótica no puede hacer esa misma afirmación. Estas máquinas solo pueden probar su software conduciendo en el mundo real. Es extremadamente costoso y requiere mucho tiempo probar solo mil millas, y mucho menos millones de millas en el mundo real. Además, constantemente tiene que comenzar a probar desde cero con cada cambio de software. La experiencia previa al conducir se ha llevado a cabo con software antiguo, que no puede probar el rendimiento de su nuevo software.

El aprendizaje automático está volcando el mundo del software, superando drásticamente décadas de trabajo en programación lineal y robótica. Revitalizará la posibilidad de una verdadera conducción autónoma, cambiando nuestra vida cotidiana en los próximos años. Soy optimista.