http://www.computacao.gigamundo.com Redes Neurais Artificiais Christiano Lima Santos http://www.computacao.gigamundo.com Classificação de Padrões Aula 2 http://www.computacao.gigamundo.com Sumário • Arquitetura • Separabilidade Linear • O que são Redes Hebb? – – – – – Características Algoritmo Função AND Função NOT Função OR • Um caso específico • Vantagens e desvantagens das redes Hebb http://www.computacao.gigamundo.com Arquitetura • Single-layer; • Uso de bias para ajustar, mantendo o threshold fixo; • Problemas separáveis linearmente; http://www.computacao.gigamundo.com Separabilidade Linear • Capacidade de uma rede separar dois padrões a partir de pesos e bias bem ajustados para tal; w1 w1 x2 x1 x2 w2 w2 http://www.computacao.gigamundo.com Separabilidade Linear http://www.computacao.gigamundo.com O que são Redes Hebb? • Redes neurais single-layer; • Utilizam-se das regras de aprendizado Hebb; • Ajuste de todos os pesos a cada vetor de entrada – Independente do mesmo contribuir ou não para o resultado; http://www.computacao.gigamundo.com Características • Vetores de entrada na forma bipolar ou binária; • Resultado na forma bipolar; • Treinamento supervisionado; http://www.computacao.gigamundo.com Algoritmo • Inicializa os pesos para i = 0 até n wi = 0; • Para cada vetor de entrada, incremente cada wi com ∆wi = xi*t para cada vetor de entrada para i = 0 até n wi += xi*t; http://www.computacao.gigamundo.com Função AND Entrada Saída 1 1 1 1 1 -1 1 -1 -1 1 1 -1 -1 -1 1 -1 • O treinamento foi efetuado com sucesso; • Resultados alcançados em uma única época; http://www.computacao.gigamundo.com Função NOT Entrada -1 1 1 1 Saída • O treinamento foi efetuado com sucesso; 1 -1 • Resultados alcançados em uma única época; http://www.computacao.gigamundo.com Função OR Entrada Saída 1 1 1 1 1 -1 1 1 -1 1 1 1 -1 -1 1 -1 • O treinamento foi efetuado com sucesso; • Resultados alcançados em uma única época; http://www.computacao.gigamundo.com Um Caso Específico... Entrada 1 1 1 1 -1 Saída 1 1 1 1 -1 1 -1 1 1 -1 -1 1 1 1 -1 • Treinamento fracassou; • Uma possível combinação de pesos seria: 1, 1, 1, -2 http://www.computacao.gigamundo.com Vantagens e Desvantagens das Redes Hebb • Vantagem: – Fácil aprendizado e implementação; • Desvantagem: – Nem todos os problemas linearmente separáveis podem ser resolvidos por aprendizado Hebb; http://www.computacao.gigamundo.com Perceptron Aula 3 http://www.computacao.gigamundo.com Sumário • • • • • • • Arquitetura Características Representação Gráfica Função de Ativação Algoritmo Função AND Reconhecimento de Caracteres http://www.computacao.gigamundo.com Arquitetura • Single-layer; • Threshold X bias; • Problemas linearmente separáveis; http://www.computacao.gigamundo.com Características • Duas retas dividem o plano cartesiano; • Taxa de aprendizado α; • Treinamento em épocas; http://www.computacao.gigamundo.com Representação gráfica w1 x1 w2 x 2 b e w1 x1 w2 x 2 b http://www.computacao.gigamundo.com Função de Ativação 1, if y _ in f ( y _ in ) 0, if y _ in 1, if y _ in wi .t.xi http://www.computacao.gigamundo.com Algoritmo • Inicializa os pesos • Para cada vetor de entrada, compute y_in e y, se diferente de t, incremente cada wi com ∆wi = α *t*xi • Caso varie algum wi, retorne para o passo anterior (Código-fonte de aplicação em breve, no site) http://www.computacao.gigamundo.com Função AND (Em breve, disponível em artigo no site) http://www.computacao.gigamundo.com Reconhecimento de Caracteres (Em breve, disponível em artigo no site) http://www.computacao.gigamundo.com Adaline Aula 4 http://www.computacao.gigamundo.com Sumário • • • • • • Arquitetura Características Representação Gráfica Função de Ativação Algoritmo Reconhecimento de Caracteres http://www.computacao.gigamundo.com Arquitetura • Uma única camada; • Dispensa especificação de Threshold; • Problemas linearmente separáveis; http://www.computacao.gigamundo.com Características • Taxa de aprendizado α; • Treinamento em épocas; • Utiliza-se da regra de aprendizado delta; http://www.computacao.gigamundo.com Representação gráfica http://www.computacao.gigamundo.com Função de Ativação 1, if y _ in 0 f ( y _ in ) 1, if y _ in 0 wij .(t y _ in j ). xi http://www.computacao.gigamundo.com Algoritmo (Em breve, disponível no site) http://www.computacao.gigamundo.com Reconhecimento de Caracteres (Em breve, disponível no site) http://www.computacao.gigamundo.com Madaline Aula 5 http://www.computacao.gigamundo.com Sumário • • • • • Arquitetura Características Representação Gráfica Algoritmo Função XOR http://www.computacao.gigamundo.com Arquitetura • Várias Adalines organizadas em múltiplas camadas; • Não somente problemas linearmente separáveis; http://www.computacao.gigamundo.com Características • Treinamento um pouco mais complexo; – Não envolve somente uma camada com neurônios! • Algoritmos MRI (algoritmo original) e MRII; • Agora, o espaço é dividido por duas retas; • Muito cuidado com uso de pesos inicializados com zero! http://www.computacao.gigamundo.com Representação gráfica http://www.computacao.gigamundo.com Algoritmo (Explicação e aplicação em breve, no site) http://www.computacao.gigamundo.com Função XOR (Aplicação em breve, no site) http://www.computacao.gigamundo.com JavaNNS Aula 6 http://www.computacao.gigamundo.com Sumário • • • • • • O Que é? Instalação Tela do JavaNNS Menus Algumas Janelas Rede AND http://www.computacao.gigamundo.com O Que é? • Universidade de Tübingen – Departamento de Ciência da Computação • Simulador para redes neurais; • JavaNNS = SNNS in Java + GUI; • Livre distribuição com algumas restrições; http://www-ra.informatik.uni-tuebingen.de/software/JavaNNS/welcome_e.html http://www.computacao.gigamundo.com Instalação • JRE instalado; • Descompactação; • Execução por meio da JVM – java –jar javanns.jar • Diretórios: – Examples; – Manuals; http://www.computacao.gigamundo.com Tela do JavaNNS http://www.computacao.gigamundo.com Menus • File • Edit – – – – – – – – New Open Close Save / Save As / Save Data – Print – Exit Undo / Redo Names / Output values Unit properties Delete • Units • Links http://www.computacao.gigamundo.com Menus • View • Tools – – – – – – – – – – – – – Network Display Settings Error graph Weights Projection Kohonen Log Status Panel Properties Control Panel Cascade & TACOMA Analyser Create • Layers • Connections http://www.computacao.gigamundo.com Menus • Pattern – – – – Add Modify Copy New Set • Window – Cascade – Close all • Help – Contents – About http://www.computacao.gigamundo.com Algumas Janelas Error Graph View Network http://www.computacao.gigamundo.com Algumas Janelas Control Panel Log Window http://www.computacao.gigamundo.com Rede AND [ Execute o JavaNNS com os parâmetros para a rede AND ] http://www.computacao.gigamundo.com Associação de Padrões Aulas 7 e 8 http://www.computacao.gigamundo.com Parte 1 Aula 7 http://www.computacao.gigamundo.com Sumário • • • • • • O que são Redes Associativas Regras de Treinamento Regra Hebb Regra Delta Redes Heteroassociativas Redes Autoassociativas http://www.computacao.gigamundo.com O que são Redes Associativas • Associam determinados padrões a outros; • Reconhecem um padrão mesmo com entradas “perdidas” ou “erradas”; • sn:tm Wn x m; • Testando a rede: f(s.W) = t http://www.computacao.gigamundo.com O que são Redes Associativas • Quanto maior for a correlação (nãoortogonalidade) entre os vetores de entrada do treinamento, menos eficaz poderá ser a matriz de pesos no reconhecimento; Perfect Recall versus Cross Talk http://www.computacao.gigamundo.com Regras de Treinamento • Regra Hebb – Mais simples; • Regra Delta – Reproduz melhores resultados; http://www.computacao.gigamundo.com Regra Hebb wij xi y j • A matriz peso é resultado do produto externo do padrão associado W = sT.t http://www.computacao.gigamundo.com Regra Delta • Reproduz melhores resultados que a regra Hebb – Mesmo quando lidando com vetores não ortogonais; • Regra Delta original: wij .(t j y j ). xi • Variação da Regra Delta: wij .(t j y j ).xi . f ' ( y _ in j ) http://www.computacao.gigamundo.com Redes Heteroassociativas • Redes em que os pesos são determinados de forma a armazenar P padrões; http://www.computacao.gigamundo.com Redes Heteroassociativas • Funções de ativação – Step bipolar 1, if y _ in 0 j y j 0, if y _ in j 0 1, if y _ in j 0 http://www.computacao.gigamundo.com Redes Heteroassociativas • Funções de ativação – Step binária 1, yj 0, x0 x0 http://www.computacao.gigamundo.com Redes Heteroassociativas • Funções de ativação – Incluindo um threshold θi • Usada em Memória Associativa Bidirecional (BAM) 1, if y _ in j j y j y j , if y _ in j j 1, if y _ in j j http://www.computacao.gigamundo.com Redes Heteroassociativas • Para um conjunto de associações-padrão (usando a regra Hebb) W = W(1) + ... + W(i) + ... + W(P) http://www.computacao.gigamundo.com Redes Autoassociativas • Vetor de treinamento = saída desejada; • Armazenamento do vetor; • “Zerar” a diagonal principal da matriz peso; P W s ( p) s( p) T p 1 (regra Hebb) http://www.computacao.gigamundo.com Redes Autoassociativas • Capacidade de Armazenamento – Até n-1 vetores ortogonais entre si de n componentes em uma matriz peso usando a soma dos produtos externos; http://www.computacao.gigamundo.com Parte 2 Aula 8 http://www.computacao.gigamundo.com Sumário • • • • • Redes Autoassociativas Iterativas Autoassociador Linear Recorrente Brain-State-in-a-Box (BSB) Rede Discreta de Hopfield Memória Associativa Bidirecional (BAM) • Outros Conceitos http://www.computacao.gigamundo.com Redes Autoassociativas Iterativas • Incapacidade de associar um vetor com muitas “incertezas” na primeira tentativa; – Entretanto conseguem determinar de forma iterativa! http://www.computacao.gigamundo.com Redes Autoassociativas Iterativas • Alguns tipos: – Autoassociador linear recorrente; – Redes Brain-State-in-a-Box; – Redes de Hopfield; • Todos os n neurônios interconectados! http://www.computacao.gigamundo.com Autoassociador Linear Recorrente • Todos os neurônios interconectados; • Pesos podem ser determinados pela regra Hebb; • Possibilidade de problemas com o crescimento da matriz-peso; – Solução: redes BSB; http://www.computacao.gigamundo.com Brain-State-in-a-Box (BSB) • Limita o crescimento por meio da modificação da função de ativação; • Pesos simétricos wij w ji • Nenhuma autoconexão wii 0 1, se x j wij i j xi xi , se x j wij i j 1, se x j wij i j http://www.computacao.gigamundo.com Rede Discreta de Hopfield • Totalmente interconectadas, pesos simétricos e nenhuma autoconexão; • Atualização assíncrona: – Somente uma unidade por vez; http://www.computacao.gigamundo.com Rede Discreta de Hopfield • Sinal externo + Sinal de cada um dos outros neurônios; • Função de Energia ou Lyapunov; http://www.computacao.gigamundo.com Rede Discreta de Hopfield • Inicialização de pesos pode ser por regra Hebb; • Busca-se a convergência dos valores de ativação; • Quando usar a entrada externa? http://www.computacao.gigamundo.com Rede Discreta de Hopfield Função Energia E 0.5 yi y j wij xi yi i yi i j j i i Capacidade de Armazenamento P 0,15n Padrões Binários n P 2 log 2 n Padrões Bipolares http://www.computacao.gigamundo.com Memória Associativa Bidirecional (BAM) • Soma de matrizes de correlação bipolares; • Camadas de neurônios X e Y; http://www.computacao.gigamundo.com Memória Associativa Bidirecional (BAM) • BAM discreta – Binárias ou bipolares; – Cálculo do peso por meio do produto externo das formas bipolares; – Função de ativação step; 1, se y _ in j j y j y j , se y _ in j j 1, se y _ in j j http://www.computacao.gigamundo.com Memória Associativa Bidirecional (BAM) • BAM contínua – Saída no intervalo [0, 1]; – Cálculo de y_inj utiliza bias; – Função de ativação sigmóide logística; 1 f ( y _ in j ) 1 exp( y _ in j ) http://www.computacao.gigamundo.com Outros Conceitos • Distância Hamming H [ x1 , x2 ] n • Apagar uma associação armazenada – xc:tc não apaga x:t – xc:t ou x:tc apaga x:t http://www.computacao.gigamundo.com Backpropagation Backpropagation Aula 9 http://www.computacao.gigamundo.com Standard Standard Backpropagation Backpropagation http://www.computacao.gigamundo.com Sumário • • • • • • • Introdução Estágios do Treinamento Arquitetura Função de Ativação Fatores e Variações dos Pesos Algumas Decisões Importantes Aplicações http://www.computacao.gigamundo.com Introdução • Regra Delta Generalizada; – Redução do erro quadrado total da saída; – Derivada da função de ativação; • Propagação dos valores de correção – Sentido contrário ao fluxo de informações; • Multi-camada feedforward; – Uma ou mais camadas ocultas; http://www.computacao.gigamundo.com Estágios do Treinamento • Feedforward do padrão de treinamento de entrada; • Cálculo e “backpropagation” do erro; • Ajuste dos pesos; http://www.computacao.gigamundo.com Arquitetura http://www.computacao.gigamundo.com Função de Ativação Sigmóide Binária 1 f ( x) 1 exp( x) f ' ( x) f ( x)[1 f ( x)] Sigmóide Bipolar 2 f ( x) 1 1 exp( x) f ' ( x) [1 f ( x)][1 f ( x)] / 2 http://www.computacao.gigamundo.com Fatores e Variações dos Pesos Da camada de saída Da camada oculta m _ in j k wjk k 1 k (tk yk ) f ' ( y _ in k ) j _ in j f ' ( z _ in j ) w jk k z j vij j xi http://www.computacao.gigamundo.com Algumas Decisões Importantes • Escolha dos pesos iniciais – Valores aleatórios entre –0.5 e 0.5; • Quanto tempo deve durar o treinamento – Memorização X Generalização; • Quantos devem ser os pares de treinamento; http://www.computacao.gigamundo.com Algumas Decisões Importantes • Representação dos dados – Binária X Bipolar; • Número de camadas ocultas – Uma camada é suficiente para muitos problemas; http://www.computacao.gigamundo.com Aplicações • Compressão de Dados; – Quando usado em redes autoassociativas, por exemplo; http://www.computacao.gigamundo.com Variações Variações http://www.computacao.gigamundo.com Sumário • Variações Quanto à Atualização dos Pesos • Variações Quanto à Função de Ativação • Backpropagation Estritamente Local • Número de camadas ocultas http://www.computacao.gigamundo.com Quanto à Atualização dos Pesos • Momento • Atualização em “Batch” dos Pesos • Taxas de Aprendizado Adaptativas http://www.computacao.gigamundo.com Momento • O ritmo de cada mudança deve ser considerado; w jk (t 1) w jk (t ) k z j [ w jk (t ) w jk (t 1)] Onde 0 < μ < 1 http://www.computacao.gigamundo.com Atualização em “Batch” dos Pesos • Acumular as correções e efetuar todas ao mesmo tempo após vários padrões, ou mesmo ao fim de cada época; http://www.computacao.gigamundo.com Taxas de Aprendizado Adaptativas • Taxa de aprendizado varia durante o treinamento; http://www.computacao.gigamundo.com Taxas de Aprendizado Adaptativas • Delta-Barra-Delta – Enquanto o sinal da mudança de peso permanecer o mesmo, aumente a taxa de aprendizado referente a esse peso; – Quando o sinal da mudança de peso mudar, reduza a taxa de aprendizado referente a esse peso; http://www.computacao.gigamundo.com Taxas de Aprendizado Adaptativas • Delta-Barra-Delta E jk k z j w jk E ij j xi vij jk (t ) (1 ) jk (t ) jk (t 1) ij (t ) (1 ) ij (t ) ij (t 1) 0<β<1 http://www.computacao.gigamundo.com Taxas de Aprendizado Adaptativas • Delta-Barra-Delta (t ) jk jk (t 1) (1 ) jk (t ) jk (t ) se( jk (t 1) jk (t )) 0 se( jk (t 1) jk (t )) 0 caso contrário http://www.computacao.gigamundo.com Taxas de Aprendizado Adaptativas Método Sucessos Backpropagation Backpropagation momento Delta-Barra-Delta com Épocas 24 16859.8 25 2056.3 22 447.3 http://www.computacao.gigamundo.com Quanto à Função de Ativação • Função Sigmóide Customizada para Padrões de Treinamento • Parâmetro Slope Adaptativo para Sigmóide • Outra Função Sigmóide • Função de Ativação Não-Saturante • Função de Ativação Não-Sigmóide http://www.computacao.gigamundo.com Função Sigmóide Customizada para Padrões de Treinamento ba a g ( x) 1 exp( x) g ' ( x) [ g ( x)][ g ( x)] / http://www.computacao.gigamundo.com Parâmetro Slope Adaptativo para Sigmóide k k y _ ink j j z _ in j http://www.computacao.gigamundo.com Outra Função Sigmóide f ( x) 2 arctg ( x) 2 1 f ' ( x) 2 1 x http://www.computacao.gigamundo.com Função de Ativação NãoSaturante log( 1 x) f ( x) log( 1 x) 1 1 x f ' ( x) 1 1 x se( x 0) se( x 0) se( x 0) se( x 0) http://www.computacao.gigamundo.com Função de Ativação NãoSigmóide f ( x) exp( x 2 ) f ' ( x) 2 x. exp( x 2 ) 2 xf ( x) http://www.computacao.gigamundo.com Backpropagation Estritamente Local • Problemas de plausibilidade biológica; – Backpropagation requer compartilhamento de informações entre unidades; • Dividir em unidades corticais, sinápticas e talâmicas; http://www.computacao.gigamundo.com Número de Camadas Ocultas • Uma camada é suficiente para qualquer problema de aproximação de função; • Alguns problemas podem ser mais fáceis de resolver com duas camadas ocultas; • Basta estender os passos a serem executados; http://www.computacao.gigamundo.com Número de Camadas Ocultas p _ inh j vhj j 1 h _ inh f ' ( z _ inh ) uih h xi http://www.computacao.gigamundo.com Resultados Resultados Teóricos Teóricos http://www.computacao.gigamundo.com Sumário • Derivação das Regras de Aprendizado http://www.computacao.gigamundo.com Derivação das Regras de Aprendizado • No Standard Backpropagation E 0.5[tk yk ]2 k E 0.5 [tk yk ]2 ... [tk yk ] f ' ( y _ ink ) z J wJK wJK k K [tk yk ] f ' ( y _ ink ) http://www.computacao.gigamundo.com Derivação das Regras de Aprendizado • No Standard Backpropagation E [tk yk ] yk ... k wJk f ' ( z _ in J )[ xI ] vIJ vIJ k k J k wJk f ' ( z _ in J ) k http://www.computacao.gigamundo.com Derivação das Regras de Aprendizado • No Standard Backpropagation E w jk [tk yk ] f ' ( y _ ink ) z j k z j w jk E vij f ' ( z _ in j ) xi k w jk j xi vij k http://www.computacao.gigamundo.com Kohonen Kohonen Aula 10 http://www.computacao.gigamundo.com Sumário • • • • • • • Introdução Características Arquitetura Vizinhança Algoritmo Observações Aplicação http://www.computacao.gigamundo.com Introdução • Classificação até agora – Rede podia retornar mais de um sinal de saída; • É necessário forçar a rede a tomar uma decisão – Competição; • O vencedor leva tudo; http://www.computacao.gigamundo.com Introdução • MAXNET; • Chapéu Mexicano; • Quantização do Vetor de Aprendizagem (LQV); • Mapeamento auto-organizável de Kohonen. http://www.computacao.gigamundo.com Características • Preserva topologias; • Treinamento não-supervisionado – Busca similaridades nos vetores e agrupa-os; http://www.computacao.gigamundo.com Características • Aprendizado Kohonen – Combinação linear do antigo vetor-peso e do vetor de entrada atual; – Somente para o vetor peso mais próximo e sua vizinhança! http://www.computacao.gigamundo.com Características • Calculando o vetor-peso mais próximo... – Distância euclidiana; – Produto escalar comparação do y_in de cada unidade; http://www.computacao.gigamundo.com Arquitetura http://www.computacao.gigamundo.com Vizinhança http://www.computacao.gigamundo.com Algoritmo Inicialize pesos Estabeleça parâmetros de vizinhança topológica Estabeleça parâmetros de taxa de aprendizado http://www.computacao.gigamundo.com Algoritmo Enquanto condição de parada for falsa, faça Para cada vetor de entrada x, faça Para cada j Dj = 0 Para cada i Dj = Dj + (wij – xi)2 http://www.computacao.gigamundo.com Algoritmo Encontre índice J tal que DJ seja mínimo Para todas as unidades j na vizinhança especificada de J Para todos os i wij = wij + α[xi - wij] Atualize taxa de aprendizado Reduza raio da vizinhança topológica em tempos determinados http://www.computacao.gigamundo.com Observações • A taxa de aprendizado decresce lentamente em função do tempo; • O raio de vizinhança também decresce enquanto o processo de clustering progride; • Valores aleatórios podem ser estabelecidos para os pesos inicialmente. http://www.computacao.gigamundo.com Aplicação [ Aplicação em breve disponível no site ] http://www.computacao.gigamundo.com Redes Neurais Artificiais em Jogos Aula 11 http://www.computacao.gigamundo.com Sumário • • • • Técnicas de IA em Jogos Por que IA em Jogos? Por que RNA em Jogos? • Casos de RNA em Jogos • – Smart Sweepers 1 – Smart Sweepers 2 – Neat Sweepers – Brainy Aliens – Neat Invaders – GNU Mages – Docking Station – Creatures Considerações Finais Referências Bibliográficas http://www.computacao.gigamundo.com Técnicas de IA em Jogos (TATAI, s.d.) • Máquinas de Estados Finitos e Scripts – Jogos de Estratégia, de RPG, FPS, Luta, etc. Mortal Kombat Unreal Total Annihilation http://www.computacao.gigamundo.com Técnicas de IA em Jogos (TATAI, s.d.) • Estratégias de Busca Tradicionais – Algoritmos minimax e pathfinding; – Busca em profundidade / largura, backtracking; – Jogos de Tabuleiro, Estratégia, RPG, Ação, etc; Jogo de Xadrez Pacman http://www.computacao.gigamundo.com Técnicas de IA em Jogos (TATAI, s.d.) • Algoritmos Genéticos – Jogos de Estratégia ou de Simulação; – Permite o aprendizado por meio da evolução! ? q Muitos jogos podem se utilizar de algoritmos genéticos com sucesso http://www.computacao.gigamundo.com Técnicas de IA em Jogos (TATAI, s.d.) • Redes Neurais Artificiais Docking Station (série Creatures) http://www.computacao.gigamundo.com Técnicas de IA em Jogos (TATAI, s.d.) • Sistemas Nebulosos – ??? ? q http://www.computacao.gigamundo.com Técnicas de IA em Jogos (TATAI, s.d.) • E NeuroEvolution? – Redes Neurais + Algoritmos Genéticos; http://www.computacao.gigamundo.com Por que IA em Jogos? • O jogador quer um inimigo: – – – – Reativo; Proativo; Com “comportamento humano”; Que se aperfeiçoe durante o jogo; http://www.computacao.gigamundo.com Por que RNA em Jogos? • Usada principalmente em simulações (VIEIRA, 2005) – Docking Station, da GameWare Development; http://www.computacao.gigamundo.com Casos de RNA em Jogos • Smart Sweepers 1; • Neat Invaders; • Smart Sweepers 2; • GNU Mages; • Neat Sweepers; • Docking Stations – Creatures; • Brainy Aliens; http://www.computacao.gigamundo.com Smart Sweepers 1 http://www.computacao.gigamundo.com Smart Sweepers 2 http://www.computacao.gigamundo.com Neat Sweepers http://www.computacao.gigamundo.com Brainy Aliens http://www.computacao.gigamundo.com Neat Invaders • Ferramentas – – – – Delphi DelphiNEAT Library GR32 Library PNGDelphi • Como pontuar cada inimigo? • Para cada inimigo – Entrada • • • • Coordenadas do jogador Se pode disparar ou não Vetor velocidade Vetor distância do míssil mais próximo – Saída • Vetor aceleração • Se dispara ou não http://www.computacao.gigamundo.com Neat Invaders • NeuroEvolution Augmenting Topologies http://www.computacao.gigamundo.com GNU Mages • Capture the Flag; • Em Java; • Editor de mapas; http://www.computacao.gigamundo.com GNU Mages http://www.computacao.gigamundo.com Docking Station - Creatures • GameWare Development; • Simulador de vida de criaturas; – Evolução das mesmas; – Sociabilização com outras criaturas; http://www.computacao.gigamundo.com Docking Station - Creatures http://www.computacao.gigamundo.com Considerações Finais • Ainda nos primeiros passos... • Que outros gêneros de jogos poderão usar NeuroEvolution? • Que benefícios o uso de Redes Neurais e Algoritmos Genéticos podem trazer aos jogos? http://www.computacao.gigamundo.com Referências Bibliográficas • BUCKLAND, Matt, AI Techniques for Game Programming, Premier Press, 2002 • FAUSETT, Laurene, Fundamentals of Neural Networks – Architectures, Algorithms and Applications • TATAI, Victor K, Técnicas de Sistemas Inteligentes Aplicadas ao Desenvolvimento de Jogos de Computador, Universidade Estadual de Campinas, s.d. • VIEIRA, Vicente, Revolution AI Engine – Desenvolvimento de um Motor de Inteligência Artificial para a Criação de Jogos Eletrônicos, UFPE, 2005 • http://www.inf.unisinos.br/~jrbitt/mages • http://w-shadow.com/blog/2006/10/26/neat-invaders-game • http://www.gamewaredevelopment.co.uk http://www.computacao.gigamundo.com FIM!!!