¿Qué es un proyecto paralelo fácil pero divertido de la vida real basado en algoritmos genéticos?

¡Puedes hacer un robot móvil de navegación automática! ¿Interesado? Primero voy a enumerar algunos recursos que describen este proyecto (con diferentes cantidades de orientación), y luego voy a explicar el papel que juegan los algoritmos genéticos.

Instrucciones completas:
– A través de Coursera, Control of Mobile Robots incluye un laboratorio que lo ayuda a armar un robot en funcionamiento por alrededor de $ 200. Aunque el curso no se está ejecutando actualmente, los materiales de video deberían estar disponibles.
– A través de EdX, sistemas integrados: Shape the World implica la programación de una placa de microcontrolador basada en ARM y el control del robot en las últimas secciones.
– A través de Udacity, Curso de Inteligencia Artificial para Robótica que cubre numerosos algoritmos para robótica móvil (incluido el siguiente).
– A través de un libro, Make: Lego and Arduino Projects: proyectos para extender MINDSTORMS NXT con electrónica de código abierto y Arduino Robotics, pero tenga en cuenta que debe sentirse cómodo con el trabajo eléctrico básico y la programación de Arduino cuando ingrese.

Algunas direcciones alternativas más autoguiadas:
Consigamos un par de opciones de kits de hardware (en el rango de $ 50- $ 400 dependiendo de su presupuesto): GoPiGo; Kits – Electrónica SparkFun; Kits de construcción de robots; Tessel LEGO MINDSTORMS Education EV3. Todos estos varían en los requisitos de antecedentes técnicos, pero son kits bastante buenos para llevarlo hacia un bot que funcione para comenzar a programar.

Entonces, ahora que tenemos algo de hardware, ¿dónde entran en juego los algoritmos genéticos? Analizaremos específicamente los filtros de partículas , una variante bastante simple en la familia de algoritmos de GA (ver Algoritmo genético) que sirve como una introducción fácil a algunos conceptos de GA, como población, mutación y supervivencia, y es extremadamente práctica .

Un poco de antecedentes técnicos: los filtros de partículas están destinados a aproximar la distribución posterior (“predicción del futuro” no observada) de P (Xt | Zt, Ut), que es la probabilidad de la posición X en el tiempo t dada la medición Z en el tiempo ty controla el movimiento U en el momento t . Los filtros de partículas, bajo algunos supuestos sobre cómo funcionan las cadenas de Markov, convergerán uniformemente en el límite de esta distribución posterior. ¿No sabes lo que eso significa todavía? No te preocupes, volveremos a ello.

Entonces, ¿cuál es el problema que estamos resolviendo? Tienes un robot y un mapa de la habitación estática alrededor del robot. ¿Podemos ayudar al robot a descubrir dónde está en el mapa? Si podemos. ¡Aquí es donde entran los filtros de partículas! Esto se llama localización . Y una vez que el robot sabe dónde está, puede navegar fácilmente de forma autónoma por el espacio. ¿Emocionado? ¡Vamonos!


En la animación GIF anterior, los puntos rojos son las partículas que representan una posible ubicación para el robot. El punto verde es la mejor estimación actual para la posición del robot, en función de las partículas. Los rayos azules representan sensores que miden el entorno actual.

1. Al principio, el robot no tiene idea de dónde está, así que comenzamos con partículas rojas distribuidas por todas partes .

2. El robot luego usa sus sensores para medir su entorno. Según la medición, las partículas que no son aptas “mueren” y se reemplazan con copias de las partículas supervivientes. Es por eso que muchas de las partículas desaparecen y aparecen grupos de manchas rojas (cuando se agrupan muchas partículas).

3. El robot luego se mueve en función de una acción de control. Esto podría ser un paso adelante, o una rotación, o cualquier otra cosa que modifique los alrededores del robot. El robot sabe qué acción está tomando y el resultado esperado de la acción. Todas las partículas toman esta acción, por eso ves los puntos rojos “moviéndose”. En la parte de la animación en la que el robot se mueve a través de un pasillo, observe el otro grupo rojo de partículas que también se mueve a través de un pasillo: esas son las partículas que realizan la misma acción.

4. Los pasos n.º 2 y n.º 3 se repiten hasta que el robot esté relativamente seguro de dónde está . Deja que eso se hunda un poco, pregúntate por qué funcionaría.

Bien, vamos a cambiar un poco y usar una metáfora. Imagínese con los ojos vendados y colocado en algún lugar dentro de su propia casa . Conoces tu casa, pero no puedes ver nada y tienes sentidos limitados. Te pones de pie y tus pies tocan el piso de madera. Usted piensa: Oh, no puedo estar en el dormitorio porque tiene piso alfombrado ni el baño porque está embaldosado, pero aún no puedo saber dónde más. Da un paso adelante y se encuentra con una ventana, ¡ay! Bien, ahora sabes que debes estar en una parte de tu casa que tiene ventanas pero que aún incluye la sala de estar y la cocina. Pasas la mano por la pared y te encuentras con una lámpara a continuación, está bien, definitivamente la sala de estar ahora. Estás bastante seguro de saber dónde estás, porque solo hay dos lámparas junto a las ventanas en tu sala de estar. ¿Ves lo que está pasando?

Haces un movimiento (U) y luego percibes dónde estás (Z), mantienes una lista mental de posibles ubicaciones (X), y repites ese proceso hasta que lo descubras. Eso es todo lo que hay para filtrar partículas.

Así que recapitulemos:

A. Construye un robot.
B. Déle un mapa de la habitación / área en la que se encuentra.
C. Ejecute un filtro de partículas para la localización y como una introducción fácil a los conceptos de GA (dependiendo del lenguaje, el algoritmo completo tiene ~ 5-20 líneas de código [1]). Experimente y modifíquelo adecuadamente con conceptos GA más divertidos.
D. Robots que entienden dónde están … ¡DUN-DUN-DUNNN!

Los algoritmos genéticos son excelentes para la información no observable y la información basada en el tiempo, y los filtros de partículas combinan ambos con relevancia práctica. Bastante divertido, bastante fácil y tan real como pueden ser los señores de los robots.

1)
(materiales en gran parte gracias a Sebastian Thrun)

More Interesting

¿Cuáles son las trampas / trampas / deudas técnicas a tener en cuenta si alguien está comenzando una codificación de visión por computadora y una aplicación de aprendizaje automático en C ++?

¿Qué movimientos sociales / intelectuales predices que saldrán de los avances tecnológicos, particularmente en IA / Robótica?

¿Por qué Facebook no compró DeepMind? ¿Cuánto habrían estado dispuestos a pagar? ¿Para qué habría usado Facebook DeepMind?

¿Cómo está afectando la inteligencia artificial al lugar de trabajo?

¿Se puede aprender Machine Learning sin conocer muchas matemáticas e informática?

¿Una IA nacida de la singularidad sabría sobre el chantaje? ¿Qué sería lo primero que aprende?

Como principiante, ¿qué curso es mejor tomar edx sobre robótica, robots móviles autónomos o debajo de robots accionados?

¿Cuáles son los argumentos a favor de la idea de que una IA entrenada en un 'archivo mental' (conversaciones, pruebas de personalidad, etc.) imitaría suficientemente la conciencia del propietario del archivo mental?

¿Por qué es Lisp el idioma preferido para la programación de AI / Neural Net?

¿Por qué la inteligencia artificial se considera una amenaza para la humanidad?

¿Se puede usar Quora en una prueba de Turing?

¿Es posible para una máquina inteligente de Inteligencia Artificial componer música hoy que no se puede distinguir de una escrita por un humano?

¿Cuáles son algunos puntos ciegos colectivos entre las personas que trabajan en IA?

¿Hay alguna solución de Aprendizaje automático / Aprendizaje profundo para el comercio intradía? ¿Qué debo considerar si voy a construir uno?

¿Cuáles son algunos problemas de aprendizaje automático que se resuelven mejor sin usar redes neuronales, dado que las redes neuronales tienden a ser más complicadas?