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 x2  b  
e
w1 x1  w2 x2  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,


x0
x0
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 log2 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 _ ink )



_
in
f
'
(
z
_
in
)
j
j
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;
wjk (t 1)  wjk (t )  k z j  [wjk (t )  wjk (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
  ba
  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 xf ( x)
2
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 _ inJ )[xI ]
vIJ
vIJ
k
k
 J   k wJk f ' ( z _ inJ )
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!!!
Download

Apresentação do PowerPoint