IA Conexionista: Redes Neurais Artificiais - Inf

Propaganda
Inteligência Artificial
IA Conexionista:
Redes Neurais Artificiais
Conceitos básicos
Perceptron
Renan Rosado de Almeida
[email protected]
Inteligência Artificial
• Historicamente, a IA clássica, seguiu o paradigma da
computação simbólica.
• A manipulação de símbolos é muito eficiente, permitindo
uma interação fácil com o usuário.
• Porém este paradigma enfrenta grande dificuldade para
lidar com problemas reais, contínuos e desconhecidos.
• Abordagens alternativas como as redes neurais originaram
a IA conexionista.
Abordagem Conexionista
• Redes Neurais Artificiais (RNAs) são uma abordagem
bottom-up.
• A semântica do domínio não precisa ser introduzida
explicitamente no sistema.
• O sistema pode induzir este conhecimento, através de um
processo de aprendizagem.
• Porém o conhecimento aprendido não é facilmente
interpretável pelo usuário.
Aplicações das Redes Neurais
• As RNAs são aplicadas em diversas áreas que envolvem:
•
•
•
•
Reconhecimento de padrões
Aproximação de funções
Previsão de séries temporais
Tarefas de classificação
• Exemplos de aplicação:
•
•
•
•
•
Reconhecimento de imagens
Reconhecimento de voz
Reconhecimento de caracteres
Identificação de impressões digitais
Diagnóstico médico
Aplicações das Redes Neurais
• Análise de investimentos: prever o comportamento de ações
da bolsa de valores, observando o comportamento anterior.
• Análise de assinaturas: mecanismo para comparar
assinaturas com outras armazenadas.
• Monitoramento: estado de motores (vibração, som),
detecção de falhas.
• Avaliação de crédito, análise do risco de falência e
identificação de fraudes em cartões.
Inspiração biológica
• Nós processamos informações de forma diferente que os
computadores convencionais.
• O cérebro humano possui uma grande quantidade de
neurônios (100 bilhões) que operam a velocidades muito
mais baixas que as portas digitais, porém executam o
processamento da informação de forma paralela e
distribuída.
• Tais características das redes neurais as tornam eficientes
em tarefas computacionalmente complexas como a
percepção visual e a compreensão da fala.
O neurônio biológico
O neurônio biológico
• O neurônio é composto por um corpo celular (soma),
ramificações que recebem as entradas (dendritos) e por um
prolongamento (axônio) que transmite os sinais do corpo
celular.
• As extremidades do axônio são conectadas com dendritos
de outros neurônios pelas sinapses, formando grandes
redes.
• Sinapses são as regiões de comunicação entre os
neurônios, onde as extremidades (próximas) de neurônios
vizinhos se encontram e o estímulo passa de um neurônio
para o seguinte por meio de mediadores físico-químicos
(neurotransmissores).
O neurônio biológico
• Dos axônios são libertadas substâncias (neurotransmissores),
que atravessam a fenda e estimulam receptores nos
dendritos, transmitindo o impulso nervoso de um neurônio
para o outro.
Conceitos de RNAs
• “Redes Neurais Artificiais (RNAs) são sistemas físicos celulares
que podem adquirir, armazenar e utilizar conhecimento extraído
da experiência, por meio de algoritmos de aprendizagem”. [Engel]
• O elemento processador básico da rede (célula) é o neurônio
artificial.
• A computação por rede neural é realizada por uma malha de nós
processadores (neurônios) conectados.
• O conhecimento em uma rede neural é codificado através dos
pesos sinápticos das conexões entre estes neurônios.
•
Algoritmos de aprendizagem em RNAs ajustam os valores dos
pesos sinápticos à um determinado problema específico.
Conceitos de RNAs
• Neurônio (nó): função elementar. Calcula um valor de saída,
função dos valores de entrada do nó e dos pesos sinápticos
correspondentes.
• Conexão: ligação entre dois nós. Determina o caminho para o
fluxo de informação.
• Pesos sinápticos: determinam a força de conexão entre dois
nós.
• Topologia da rede: grafo direcionado rotulado, determina a
conectividade da rede.
Exemplo de uma rede multicamadas
Perceptron
• Primeiro modelo de neurônio artificial, proposto por Rosenblatt
(1958), para aprendizagem supervisionada.
• “É a forma mais simples de uma rede neural usada para
classificação de padrões ditos linearmente separáveis”.
[Haykin]
• Consiste, na forma básica, de apenas um nó que modela um
neurônio biológico.
Perceptron (cont.)
• O perceptron realiza a soma ponderada de suas entradas,
produzindo a saída 1 se a soma for maior que um valor inicial
ajustável; caso contrário sua saída é zero.
Funções de ativação
• A função de ativação, φ(v), define a saída de um neurônio em
termos do potencial de ativação.
• É responsável pela determinação da forma e da intensidade
de alteração dos valores de saída.
• As funções de ativação mais utilizadas são:
Funções de ativação (cont.)
Exemplo
• Implementação de funções lógicas por perceptrons.
w0 = w1 = w2 = 0,5
Dado:
Função sinal:
+1
ϕ(v) = 
−1
se v ≥ 0
se v < 0
Qual função lógica está sendo implementada?
v = w0 + w1 x1 + w2 x2
v = 0,5 + 0,5 x1 + 0,5 x2
x1
x2
x1
x2
v
y=φ(v)
-1
-1
-1
-1
-0,5
-1
-1
+1
-1
+1
+0,5
+1
+1
-1
+1
-1
+0,5
+1
+1
+1
+1
+1
+1,5
+1
Função OU
A superfície de decisão do perceptron
• A funcionalidade de um perceptron equivale a uma tomada de
decisão segundo uma superfície de decisão linear no espaço
de entrada.
w0 + w1 x1+w2 x2=0
Treinamento do perceptron
• O algoritmo de aprendizagem do perceptron pode ser assim
descrito:
Se o perceptron dispara quando não deve disparar, diminua
cada wi de um número proporcial a xi.
Se o perceptron deixa de disparar quando deveria, aumente
cada wi de um número proporcial a xi.
Regra de aprendizagem do perceptron:
w(n + 1) = w(n) + η(d (n) − y (n)) . x(n)
Onde:
w(n) é o vetor de pesos
η é a constante de correção de erro
d(n) é a saída desejada
y(n) é a saída fornecida
x(n) é o vetor de entrada
Exemplo
• Treine um perceptron para modelar a função OU. (até n=4)
Dado:
w(0) = [0 0 0] ; ž=0,5
x1
x2
d
-1
-1
-1
-1
+1
+1
+1
-1
+1
+1
+1
+1
Arquivo de treinamento
n=0
rT
r
v ( n) = w ( n) . x ( n)
+ 1
v(0) = [0 0 0]  − 1 = 0
 − 1
Função sinal:
+1
ϕ(v) = 
−1
se v < 0
w(n + 1r) = w(nr) + η(d (n) − y (n)). x(n)
v(n) = wT (n) . x (n)
y(0)=+1
d(0)= -1
r
r
r
r
r
w(1) = w(0) + 0,5(−1 − (+1)). x (0) = w(0) − x (0)
0 + 1 − 1
r
w(1) = 0 − − 1 = + 1
0 − 1 + 1
se v ≥ 0
y(0) = ϕ(0)
Propagação. Errou!
Classificação das RNAs
• As redes neurais podem ser classificadas segundo as
seguintes características básicas:
Tipo de entrada
Forma de conexão
Tipo de aprendizado
Classificação das RNAs: Tipo de entrada
• Quanto ao tipo de valores de entrada, as redes neurais
podem ser:
Binárias: as que possuem entradas discretas, tais como 0
e 1, -1 e 1.
Intervalares: as que aceitam qualquer valor numérico
como entrada (números reais)
Classificação das RNAs: Forma de conexão
• Quanto à forma de conexão entre os neurônios:
Redes alimentadas adiante (feedforward) - neurônios
estão dispostos em camadas conectadas por pesos
unidirecionais na direção da entrada para a saída.
Classificação das RNAs: Forma de conexão (cont.)
• Quanto à forma de conexão entre os neurônios:
Redes recorrentes (feedback) - um neurônio pode receber
entradas de qualquer outra camada da rede. Tais como as
redes com realimentação, nas quais os neurônios da
entrada recebem sinais vindos diretamente dos neurônios da
saída.
Classificação das RNAs: Tipo de aprendizado
• Quanto ao tipo de aprendizado da rede neural:
Supervisionado – quando se dispõe de exemplos de
padrões de entrada juntamente com os respectivos valores
de saída.
Exemplo: Perceptron
Não-supervisionado – quando não se dispõe de
exemplos de padrões de entrada juntamente com os
respectivos valores de saída.
Neste caso, os neurônios ficam responsáveis por aprender
protótipos de agrupamentos de dados de entrada com
características similares (centros de clusterização).
Exemplo: Mapas Auto-Organizáveis (SOM)
Exemplo prático: desenvolvimento de uma RNA
• Implementação da função OU no Matlab.
Código Matlab: perceptron_OU.m
• Passos:
Definir os padrões de treinamento (pares entrada e saída
desejada) – aprendizado supervisionado
Definir os parâmetros da rede
Treinar a rede
Testar a rede
Caso o modelo gerado não seja satisfatório, alterar os
parâmetros da rede e treinar a rede novamente.
Exemplo prático: desenvolvimento de uma RNA (cont.)
• Implementação da função OU no Matlab.
Código Matlab: perceptron_OU.m
Exemplo prático: desenvolvimento de uma RNA (cont.)
• Implementação da função OU no Matlab.
Código Matlab:
perceptron_OU.m
• Convergiu para uma solução, pois a função lógica OU é
linearmente separável, e portanto pode ser implementada por
apenas um perceptron.
Exemplo prático: desenvolvimento de uma RNA (cont.)
• Já no caso da função XOR, que é não-linearmente separável,
percebemos que a resposta gerada pelo perceptron não converge.
Código Matlab:
(perceptron_XOR.m)
• Na próxima aula veremos uma ferramenta para tratar problemas
não-linearmente separáveis (perceptrons de múltiplas
camadas).
Características das RNAs
• Vantagens das redes neurais:
Generalização: capazes de generalizar o conhecimento a
partir de exemplos anteriores. Apresentam bons resultados
mesmo com entradas incompletas ou imprecisas.
Adaptação
Tolerância a falhas
Não exigem tanta aquisição do conhecimento
Características das RNAs
• Limitações das redes neurais:
Não fornecem explicações: relação entre entrada/saída é
obscura – efeito “caixa preta”.
Falta de um formalismo na especificação e análise:
necessidade de realizar árduas simulações até encontrar
parâmetros e topologia adequados.
Tempo de treinamento grande
Necessitam muitos exemplos de treinamento
Bibliografia
* Redes Neurais: princípios e prática. HAYKIN, Simon. Porto
Alegre: Bookman, 2001
Redes Neurais Artificias: fundamentos e aplicações.
KOVÁCS, Zscolt. São Paulo, 2002.
Anotações da disciplina CMP121 - Redes Neurais, UFRGS.
Prof. Paulo Engel.
Bibliografia
Materiais didáticos:
UFRJ - Tópicos Especiais em Redes Neurais
http://equipe.nce.ufrj.br/thome/grad/nn/curso/mdidatico.htm
PUC-RIO - Notas de aula de Redes Neurais (ELE1361)
http://www.ica.ele.puc-rio.br/
UFRGS – Prof. Paulo Engel. Redes Neurais (CMP121)
http://www.inf.ufrgs.br/~engel/
UFRGS – Prof. Luis Otavio. Inteligência Artificial(INF01048)
http://www.inf.ufrgs.br/~alvares/
Download