Perceptron Simples e Variantes
Prof. Júlio Cesar Nievola
PPGIA – PUCPR
Especialização em Inteligência Computacional – 2004
Perceptron - Características
• O perceptron é usado para conjuntos de treinamento
linearmente separáveis:
p
• Inclusão de tendência (“bias”): S W0 W j .u j
j 1
• No algoritmo de aprendizagem do Perceptron busca-se um
vetor W que tenha projeção positiva (produto interno) com
todos os exemplos positivos e projeção negativa com todos
os exemplos negativos.
• A aprendizagem do perceptron sempre tem sucesso em
tempo finito para um conjunto de treinamento finito e
separável de exemplos de treinamento.
Prof. Júlio Cesar Nievola
PPGIA - PUCPR
Especialização em Inteligência Computacional Redes
Neurais Artificiais
2
Algoritmo do Perceptron
• 1. Fazer W ser o vetor nulo.
• 2. Selecionar um exemplo de treinamento Ek (com a
correspondente classificação Ck). Isto pode ser feito de maneira
cíclica (em ordem) através dos exemplos de treinamento ou
pegando um exemplo aleatoriamente.
• 3. Se W classifica Ek corretamente, isto é, se:
{W.Ek  0 e Ck = +1} ou se {W.Ek < 0 e Ck = -1}
– Então: não fazer nada.
– Senão Passo de alteração: Modificar W somando ou
subtraindo Ek de acordo com a saída correta ser +1 ou -1:
W’ = W + CkEk.
• 4. Ir ao passo 2.
Prof. Júlio Cesar Nievola
PPGIA - PUCPR
Especialização em Inteligência Computacional Redes
Neurais Artificiais
3
Perceptron - conclusões
 Para um conjunto finito de exemplos de treinamento E, com
componentes inteiros (ou racionais), o algoritmo de
aprendizagem do perceptron, em tempo finito:
– Produzirá um vetor peso que satisfaz todos os exemplos de
treinamento (se e somente se E é separável); ou
– Abandonará e reutilizará um vetor peso (se e somente se E
é não-separável).
 Se um conjunto de exemplos de treinamento E é nãoseparável, então por definição não existe um vetor de pesos W
que classifique corretamente todos os exemplos de treinamento
em E utilizando o algoritmo de aprendizagem do perceptron. A
alternativa mais natural é encontrar um vetor de pesos W* que
classifique tantos exemplos de treinamento quanto possível de
E. Tal conjunto de pesos é chamado de ótimo.
Prof. Júlio Cesar Nievola
PPGIA - PUCPR
Especialização em Inteligência Computacional Redes
Neurais Artificiais
4
Perceptron - conclusões
 O algoritmo de aprendizagem do perceptron tem
comportamento pobre: se o algoritmo é terminado, mesmo
após um grande número de iterações, não se tem garantia da
qualidade dos pesos que são produzidos, já que o mesmo usa
somente reforço negativo, ignorando totalmente os exemplos
que são corretamente classificados.
 O algoritmo do bolso leva em conta as classificações corretas
mantendo um conjunto de pesos em separado Wbolso “no
bolso”, juntamente com o número de iterações consecutivas
para a qual Wbolso classificou corretamente os exemplos de
treinamento escolhidos.
Prof. Júlio Cesar Nievola
PPGIA - PUCPR
Especialização em Inteligência Computacional Redes
Neurais Artificiais
5
Algoritmo do Bolso
• 0. Ajustar W como o vetor nulo.
• 1. Selecionar um exemplo de treinamento, Ek, aleatoriamente
(com a correspondente classificação Ck).
• 2. Se W classifica Ek corretamente, isto é, {W.Ek  0 e Ck =
+1} ou {W.Ek < 0 e Ck = -1}
• Então:
– 2a. Se a seqüência atual de classificações corretas com W é
maior que seqüência de classificações corretas para o vetor peso
Wbolso no bolso:
» 2aa. Substitua os pesos no bolso Wbolso por W e grave o
número de vezes que ela é correta.
– Senão:
– 2b. Passo de alteração: Modifique W somando ou subtraindo Ek
em função da saída correta Ck ser +1 ou -1: W’= W + CkEk.
• 3. Vá para o passo 2.
Prof. Júlio Cesar Nievola
PPGIA - PUCPR
Especialização em Inteligência Computacional Redes
Neurais Artificiais
6
Algoritmo do Bolso
 Para problemas de tamanho médio e grande o algoritmo do
bolso normalmente não produz pesos ótimos após um razoável
número de iterações, mas produz bons pesos.
 Na execução do algoritmo do bolso não há nada que previna
um mau conjunto de pesos de ter uma “seqüência feliz” de
respostas corretas e acabe substituindo um bom conjunto de
pesos no bolso. Pior ainda, se a “seqüência feliz” for longa
então o conjunto de maus pesos pode permanecer no bolso por
um grande número de iterações.
 Para evitar isto, utiliza-se o algoritmo do bolso com catraca, no
qual, para conjuntos finitos de exemplos de treinamento tem-se
melhores resultados.
Prof. Júlio Cesar Nievola
PPGIA - PUCPR
Especialização em Inteligência Computacional Redes
Neurais Artificiais
7
Algoritmo do Bolso com Catraca
• 0. Ajustar W como o vetor nulo.
• 1. Selecionar um exemplo de treinamento, Ek, aleatoriamente
(com a correspondente classificação Ck).
• 2. Se W classifica Ek corretamente, isto é, {W.Ek  0 e Ck =
+1} ou {W.Ek < 0 e Ck = -1}, então:
– 2a. Se a seqüência atual de classificações corretas com W é
maior que seqüência de classificações corretas para o vetor peso
Wbolso no bolso:
» 2aa. Se W classifica corretamente mais exemplos de
treinamento que Wbolso :
» 2aaa. Substitua os pesos no bolso Wbolso por W e grave o
número de vezes que ela é correta.
– Senão:
– 2b. Passo de alteração: Modifique W somando ou subtraindo Ek
em função da saída correta Ck ser +1 ou -1: W’= W + CkEk.
• 3. Vá para o passo 1.
Prof. Júlio Cesar Nievola
PPGIA - PUCPR
Especialização em Inteligência Computacional Redes
Neurais Artificiais
8
Download

RedesNeurais-25nov2004