Depois de jogar muito Angry Birds, comecei a observar minhas próprias estratégias. Acontece que eu desenvolvi uma abordagem muito específica para obter 3 estrelas em cada nível.
Isso me fez pensar nos desafios de desenvolver um sistema de aprendizado de máquina capaz de jogar o Angry Birds. Interagir com o jogo e lançar os pássaros é trivial. Mas uma pergunta que eu tinha é sobre os "blocos de construção" do sistema.
Os sistemas de aprendizado de máquina parecem funcionar com conceitos simples ou compreensão sobre o problema. Isso geralmente é codificado como recursos como entradas. Portanto, parece que o sistema precisa ter a capacidade de entender alguns conceitos de alto nível para gerar uma estratégia.
Isso é verdade? Além disso, quais são os desafios ou partes difíceis do desenvolvimento de um sistema desse tipo?
EDIT # 1:
Aqui estão alguns esclarecimentos. Conseguir 3 estrelas é um problema difícil, porque você precisa maximizar os pontos. Isso pode ser feito de duas maneiras não exclusivas: 1) Minimizar o número de pássaros usados (você recebe 10.000 pontos por cada pássaro não utilizado). 2) Maximizou a destruição de vidro, madeira e outros objetos. Cada objeto destruído dá pontos. É possível destruir mais de 10.000 pontos em objetos com um único pássaro.
Aqui está um pouco mais de explicação sobre "conceitos de alto nível". Para maximizar os pontos descritos acima, você precisa usar os poderes especiais de cada pássaro. Então, isso significa lançar diferentes pássaros com diferentes trajetórias, dependendo do layout do mapa. E, enquanto jogo, desenvolvo uma estratégia que destrói certas áreas com certos pássaros em uma certa ordem.
Parece que, sem entender como usar cada ave para destruir uma área específica, o sistema não poderia aprender a obter 3 estrelas. Então, como você gerencia e codifica algo assim? Como você garante que o sistema possa aprender esses conceitos de alto nível?