Solving Problems with Artificial Neural Networks (ANNs) ANN Application Areas • • • • Game AI * Language processing Character recognition Data compression Neural Networks in Games • Control – Use sensor data to make smart moves (collision detection) • Threat assessment – Use player units and proximity to determine threat level • Fight or flight – Is the mob likely to win the fight? Acts on that data • Anticipation – Takes in player history to predict the players next move, responds to best counter that move Neural Networks in Games • Control (robots) – Movement • E.g.: Colin McRae Rally – Input: Sensor results – Outputs: Directions to move – http://www.youtube.com/watch?v=Es1pAg_jHX4 – http://www.onlamp.com/pub/a/onlamp/2004/09/30/AIf orGameDev.html Neural Networks in Games • Threat assessment (strategy) – Inputs: types of units and their movement – Output: Aerial threat, a ground threat, both an aerial and ground threat, or no threat. http://www.onlamp.com/pu b/a/onlamp/2004/09/30/AIf orGameDev.html Neural Networks in Games • Fight or flight (persistent rpg) – Used for mobs – Inputs: class, group size, level, range – Decision making process: that is, whether the creature will attack, evade, or wander, depending on whether or not there's an enemy (a player) in the creature's proximity. http://www.onlamp.com/pub/a/onlamp/2004/09/30/AIforGameDev.html Neural Networks in Games • Anticipation (mortal kombat, streetfighter) – Computer tell what the player is going to do based on past attacks (low kick, low kick, high kick, punch) – Inputs: a few previous attacks – Outputs: next predicted attack • Computer can then decide to block, move, punch, etc http://www.onlamp.com/pub/a/onlamp/2004/09/30/AIforGameDev.h tml Challenges with Neural Network Representation • Choosing inputs! • Choosing structure • How do we evolve the individuals - how do we mate the chromosomes/individuals? Inputs • Problem dependent – Control – sensor data – Threat assesment – troops, troop movement – Flight or fight(mob) – player data (level, range, grouped?) – Anticipation – player history Outputs • What should the network do? – Control – movement directions – Threat assesment – react to opposing player’s troops? – Flight or fight(mob) – run or fight – Anticipation – player’s next move Mating • Several different methods – If networks have the same structure, they could exchange weight values, or mutate current values Mother Father 2 1 3 4 Mating 2 3 2 1 Mother 4 4 Father 3 1 Mating • Several different methods – If networks have the same structure, they could exchange weight values, or mutate values – Cross over/mutate nodes – Could mutate connections and nodes • Structure – We can see how the different mating methods might cause problems with different network structures 5 6 2 5 1 3 2 4 4 3 1 6 • How do we choose a structure? – NEAT – method to mate NNs of different topologies (connections and node arrangements) 6 5 6 2 5 1 3 2 4 4 3 1 NEAT • Problem: Does my problem need 2 nodes or 5 nodes, 25, 100? • NEAT – Starts with very little nodes (input, output) – Evolves the necessary structure Example: NEAT Drummer Time Measure Beat Example: NEAT Drummer • Problem: We don’t know how to write a drum part for a song that we made. We want to use ANNs to make one for us. – 1. Find a suitable network structure. • Number of nodes • f(x) types – 2. Select outputs – 2. Select inputs Example: NEAT Drummer Find a suitable network structure Step 1: How many nodes should we have? - We can choose explicitly - Or we can use an algorithm to choose for us (NEAT) Example: NEAT Drummer f1(x) = Choose fi(x) f2(x) = f3(x) = f4(x) = f1(x) f2(x) f3(x) f5(x) = f6(x) = f4(x) f(x) f5(x) Example: NEAT Drummer • Choosing functions – (1/(1+e^-x) can approximate any function when it goes through enough nodes – What else could we choose? – What affect would the choices have on our overall network pattern over time? Example: NEAT Drummer f1(x) = f2(x) = f3(x) = f4(x) = f1(x) f2(x) f3(x) f5(x) = f6(x) = f4(x) f(x) f5(x) Example: NEAT Drummer Choosing the outputs, we want a drum set f(x) f(x) f(x) f(x) f(x) f(x) Example: NEAT Drummer Choosing the outputs, we want a drum set Bass Drum Hi-Hat f(x) f(x) f(x) Snare Drum f(x) f(x) f(x)
© Copyright 2026 Paperzz