Post on 15-Jan-2016
description
http://www.computacao.gigamundo.com
Redes Neurais Artificiais
Christiano Lima Santos
Redes Neurais Artificiais
http://www.computacao.gigamundo.com
Classificação de Padrões
Aula 2
Classificação de Padrões
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;
22
11
2
12 x
w
wx
w
wx
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 cada vetor de entrada, incremente cada wi com ∆wi = xi*t
para i = 0 até n
wi = 0;
para cada vetor de entrada
para i = 0 até n
wi += xi*t;
http://www.computacao.gigamundo.com
Função AND
• O treinamento foi efetuado com sucesso;
• Resultados alcançados em uma única época;
Entrada Saída
1 1 1 1
1 -1 1 -1
-1 1 1 -1
-1 -1 1 -1
http://www.computacao.gigamundo.com
Função NOT
• O treinamento foi efetuado com sucesso;
• Resultados alcançados em uma única época;
Entrada Saída
-1 1 1
1 1 -1
http://www.computacao.gigamundo.com
Função OR
• O treinamento foi efetuado com sucesso;
• Resultados alcançados em uma única época;
Entrada Saída
1 1 1 1
1 -1 1 1
-1 1 1 1
-1 -1 1 -1
http://www.computacao.gigamundo.com
Um Caso Específico...
• Treinamento fracassou;
• Uma possível combinação de pesos seria:
1, 1, 1, -2
Entrada Saída
1 1 1 1 1
1 1 -1 1 -1
1 -1 1 1 -1
-1 1 1 1 -1
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
Perceptron
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
bxwxw
e
bxwxw
2211
2211
http://www.computacao.gigamundo.com
Função de Ativação
ii xtw ..
inyif
inyif
inyif
inyf
_,1
_,0
_,1
)_(
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
Adaline
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
ijij xinytw )._.(
0_,1
0_,1)_(
inyif
inyifinyf
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
MadalineMadalineAula 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
JavaNNS
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– New
– Open
– Close
– Save / Save As / Save Data
– Exit
• Edit– Undo / Redo
– Names / Output values
– Unit properties
– Delete• Units
• Links
http://www.computacao.gigamundo.com
Menus
• View– Network
– Display Settings
– Error graph
– Weights
– Projection
– Kohonen
– Log
– Status Panel
– Properties
• Tools– 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
View Network
Error Graph
http://www.computacao.gigamundo.com
Algumas Janelas
Log Window
Control Panel
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
Associação de Padrões
http://www.computacao.gigamundo.com
Parte 1Parte 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ão-ortogonalidade) 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
• A matriz peso é resultado do produto externo do padrão associado
W = sT.t
jiij yxw
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:
• Variação da Regra Delta:ijjij xytw )..(
)_('.)..( jijjij inyfxytw
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
0_,1
0_,0
0_,1
j
j
j
j
inyif
inyif
inyif
y
http://www.computacao.gigamundo.com
Redes Heteroassociativas
• Funções de ativação– Step binária
0,0
0,1
x
xy j
http://www.computacao.gigamundo.com
Redes Heteroassociativas
• Funções de ativação– Incluindo um threshold θi
• Usada em Memória Associativa Bidirecional (BAM)
jj
jjj
jj
j
inyif
inyify
inyif
y
_,1
_,
_,1
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
p
T pspsW1
)()(
(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 2Parte 2Aula 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
• Nenhuma autoconexão
ij
ijj
ij
ijji
ij
ijj
i
wxse
wxsex
wxse
x
,1
,
,1
jiij ww 0iiw
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
i
iii
iiji j
ijji yyxwyyE 5.0
Função Energia
nP 15,0n
nP
2log2
Capacidade de Armazenamento
Padrões Binários 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;
jj
jjj
jj
j
inyse
inysey
inyse
y
_,1
_,
_,1
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;
)_exp(1
1)_(
jj iny
inyf
http://www.computacao.gigamundo.com
Outros Conceitos
• Distância Hamming
• Apagar uma associação armazenada– xc:tc não apaga x:t– xc:t ou x:tc apaga x:t
n
xxH ],[ 21
http://www.computacao.gigamundo.com
Backpropagation
Aula 9
Backpropagation
http://www.computacao.gigamundo.com
Standard Backpropagation
Standard 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 Sigmóide Bipolar
)](1)[()('
)exp(1
1)(
xfxfxf
xxf
2/)](1)][(1[)('
1)exp(1
2)(
xfxfxf
xxf
http://www.computacao.gigamundo.com
Fatores e Variações dos Pesos
Da camada de saída Da camada oculta
jkjk
kkkk
zw
inyfyt
)_(')(
ijij
jjj
m
kjkkj
xv
inzfin
win
)_('_
_1
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çõesVariaçõ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;
)]1()([)()1( twtwztwtw jkjkjkjkjk
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
ijij
ij
jkjk
jk
xv
E
zw
E
)1()()1()(
)1()()1()(
ttt
ttt
ijijij
jkjkjk
0 < β < 1
http://www.computacao.gigamundo.com
Taxas de Aprendizado Adaptativas
• Delta-Barra-Delta
contráriocasot
ttset
ttset
t
jk
jkjkjk
jkjkjk
jk
)(
0))()1(()()1(
0))()1(()(
)1(
http://www.computacao.gigamundo.com
Taxas de Aprendizado Adaptativas
Método Sucessos Épocas
Backpropagation 24 16859.8
Backpropagation com momento
25 2056.3
Delta-Barra-Delta 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
a
ab
)exp(1)(
xxg
/)]()][([)(' xgxgxg
http://www.computacao.gigamundo.com
Parâmetro Slope Adaptativo para Sigmóide
jjj
kkk
inz
iny
_
_
http://www.computacao.gigamundo.com
Outra Função Sigmóide
)(2
)( xarctgxf
21
12)('
xxf
http://www.computacao.gigamundo.com
Função de Ativação Não-Saturante
)0(1
1
)0(1
1
)('
)0()1log(
)0()1log()(
xsex
xsex
xf
xsex
xsexxf
http://www.computacao.gigamundo.com
Função de Ativação Não-Sigmóide
)(2)exp(.2)('
)exp()(2
2
xxfxxxf
xxf
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
ihih
hhh
p
jhjjh
xu
inzfin
vin
)_('_
_1
http://www.computacao.gigamundo.com
Resultados TeóricosResultados 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
k
kk ytE 2][5.0
Jkkkk
kkJKJK
zinyfytytww
E)_('][...][5.0 2
)_('][ kkkK inyfyt
http://www.computacao.gigamundo.com
Derivação das Regras de Aprendizado
• No Standard Backpropagation
])[_('...][ IJk
Jkkk
kIJ
kkIJ
xinzfwyv
ytv
E
)_(' Jk
JkkJ inzfw
http://www.computacao.gigamundo.com
Derivação das Regras de Aprendizado
• No Standard Backpropagation
jkjkkkjk
jk zzinyfytw
Ew
)_('][
ijk
jkkijij
ij xwxinzfv
Ev
)_('
http://www.computacao.gigamundo.com
Kohonen
Aula 10
Kohonen
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
AlgoritmoEncontre í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
JogosAula 11
Redes Neurais Artificiais em
Jogos
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
• Máquinas de Estados Finitos e Scripts– Jogos de Estratégia, de RPG, FPS, Luta, etc.
(TATAI, s.d.)
Mortal Kombat
Total Annihilation
Unreal
http://www.computacao.gigamundo.com
Técnicas de IA em Jogos
• Estratégias de Busca Tradicionais– Algoritmos minimax e pathfinding;– Busca em profundidade / largura, backtracking;– Jogos de Tabuleiro, Estratégia, RPG, Ação, etc;
(TATAI, s.d.)
Jogo de Xadrez Pacman
http://www.computacao.gigamundo.com
Técnicas de IA em Jogos
• Algoritmos Genéticos– Jogos de Estratégia ou de Simulação;– Permite o aprendizado por meio da evolução!
(TATAI, s.d.)
q?Muitos jogos podem se utilizar de algoritmos genéticos com sucesso
http://www.computacao.gigamundo.com
Técnicas de IA em Jogos
• Redes Neurais Artificiais
(TATAI, s.d.)
Docking Station (série Creatures)
http://www.computacao.gigamundo.com
Técnicas de IA em Jogos
• Sistemas Nebulosos– ???
(TATAI, s.d.)
q?
http://www.computacao.gigamundo.com
Técnicas de IA em Jogos
• E NeuroEvolution?– Redes Neurais + Algoritmos Genéticos;
(TATAI, s.d.)
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;
• Smart Sweepers 2;
• Neat Sweepers;
• Brainy Aliens;
• Neat Invaders;
• GNU Mages;
• Docking Stations – Creatures;
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!!!FIM!!!