Después de jugar demasiado Angry Birds, comencé a observar mis propias estrategias. Resulta que desarrollé un enfoque muy específico para obtener 3 estrellas en cada nivel.
Eso me hizo preguntarme sobre los desafíos de desarrollar un sistema de aprendizaje automático que pudiera jugar a Angry Birds. Interactuar con el juego y lanzar los pájaros es trivial. Pero una pregunta que tuve es sobre los "bloques de construcción" del sistema.
Los sistemas de aprendizaje automático parecen funcionar con conceptos simples o comprensión sobre el problema. Esto a menudo se codifica como características como entradas. Por lo tanto, parece que el sistema necesita tener la capacidad de comprender algunos conceptos de alto nivel para generar una estrategia.
¿Es esto cierto? Además, ¿cuáles son los desafíos o las partes difíciles del desarrollo de dicho sistema?
EDITAR # 1:
Aquí hay algunas aclaraciones. Obtener 3 estrellas es un problema difícil porque tienes que maximizar los puntos. Esto se puede hacer de dos maneras no exclusivas: 1) Minimizando el número de aves utilizadas (obtienes 10,000 puntos por cada ave no utilizada). 2) Maximizó la destrucción de vidrio, madera y otros objetos. Cada objeto destruido te da puntos. Es posible destruir más de 10,000 puntos en objetos con un solo pájaro.
Aquí hay una pequeña explicación sobre los "conceptos de alto nivel". Para maximizar los puntos descritos anteriormente, debes usar los poderes especiales de cada ave. Entonces, eso significa lanzar diferentes pájaros con diferentes trayectorias, dependiendo del diseño del mapa. Y, mientras juego, desarrollo una estrategia que destruye ciertas áreas con ciertas aves en cierto orden.
Parece que sin una comprensión de cómo usar cada ave para destruir un área específica, el sistema no podría aprender a obtener 3 estrellas. Entonces, ¿cómo manejas y codificas algo así? ¿Cómo se asegura de que el sistema pueda aprender estos conceptos de alto nivel?