Prof. Dr. Hugo Valadares Siqueira Aula 8 – Perceptron e Adaline
Redes Neurais Artificiais
Introdução
•Classificador:
Recebe vetores de atributos como entrada;
Atribui cada vetor a uma das classes C1, C2,..., Cq;
x1 x2 ...
xD
Entrada:
vetor de atributos
Classificador
y1 y2 ...
yq
Saída:
classificação
x1 x2 x3
Exemplo ou padrão pode ser representado, abstratamente, como um ponto no espaço de atributos
Espaço de entradas ou de atributos
• Exemplo: vetor entrada com três atributos:
Introdução
Exemplo ou padrão pode ser representado, abstratamente, como um ponto no espaço de atributos
• Vetor de atributos (exemplos)
• Composto por vários atributos:
Discretos;
Contínuos;
• Dimensão do vetor = número de atributos (D):
2 atributos (2D) x 3 atributos (3D)
Introdução
• Em geral os classificadores de padrões particionam o espaço de entradas em volumes, chamados regiões de decisão;
• Todos os vetores de atributos dentro de uma mesma região são atribuídos a uma mesma categoria (classe);
• Regiões são separadas por superfícies chamadas fronteiras de decisão (FD);
Classificadores
Representam pontos onde não é possível definir a classe de um padrão.
•Atributos:
Peso;
Altura;
•Padrões (ou exemplos):
pontos no espaço (peso, altura).
Exemplo: classificar entre bailarinas e halterofilistas
Peso
Altura Bailarina
Halterofilista
Peso
Altura
Bailarina
Halterofilista FD
C1
C2
• Exemplo da FD produzida por um classificador:
Classificadores
•Agora, imagine o seguinte problema de classificação:
• Seria mais intuitivo e simples a utilização de um discriminante linear:
Utiliza uma combinação linear das entradas para produzir a FD;
Transformação linear de um problema multidimensional em um problema unidimensional.
•A fronteira de decisão é traçada nos pontos em que a expressão de FD é igual a zero.
Fronteira de decisão linear
x2
x1
x2
x1
FD:
C1
C2
0 2
2 1
0 w1x w x w
•Pode ser dado pela expressão:
na qual wi é o peso (ponderação) da i-esima entrada xi e w0 é o bias:
•Desafio: encontrar o conjunto de pesos que separe adequadamente as classes (fronteira: u=0).
2 1
classe à
o relacionad é
entradas de
etor ,
0
classe à
o relacionad é
entradas de
etor ,
0
C v
u
C v
u
Discriminante linear
Fronteiras Linear x Não-linear
•Alguns problemas admitem fronteira de decisão linear, outros não;
•Logo, no último caso, uma única reta não é capaz se separar
adequadamente as classes.
• Desenvolvido por Rosemblat (1958);
• Discriminante linear;
• Mantém uma certa relação com o classificador
Bayesiano;
Quando o ambiente é gaussiano, o classificador Bayesiano se reduz a um classificador linear;
• Problema de reconhecimento de padrões visuais;
• Similar ao ADALINE
(ADAptive LINear Element).
Perceptron
Entradas Pesos Saída
w2 yk
0
1
)
( u x w w
y
m
i
i i k
k
yk : ativação (saída do neurônio k) uk : ativação interna do neurônio k w0: bias
w0
(.)x2 x1
xm
Função de ativação uk
Junção aditiva
Perceptron - Diagrama de blocos
•Perceptron visto com um grafo orientado completo:
x1 x0 =+1
xm
w0 w1
wm
(.)
yk uk
• Regra 1: um sinal flui ao longo de um elo somente no sentido definido pela seta do elo;
• Regra 2: um sinal nodal é igual à soma algébrica de todos os sinais que entram no nó via os elos incidentes;
• Regra 3: O sinal em um nó é transmitido para cada elo de saída deste nó, sendo a transmissão inteiramente independente das funções de transferência dos elos de saída.
• Perceptron visto com um grafo orientado parcialmente completo (ou arquitetural):
• Nós de fonte fornecem sinais de entrada para o grafo;
• Cada neurônio é representado por um único nó chamado de nó computacional;
• Os elos de comunicação que conectam os nós de fonte aos nós computacionais não carregam pesos; eles meramente fornecem direções de fluxo de sinal no grafo.
x0= +1
x1
xm
yk
• Como foi visto, a saída do k-ésimo Perceptron é dada por:
• Fazendo:
• Podemos escrever a ativação interna do neurônio k de forma vetorial como:
• E a sua saída:
na qual x é o vetor de entradas, w é o vetor de pesos (indica as forças da conexão das sinapses), w0 é o bias e (.) é a função de ativação do neurônio.
xm
x x x
3 2 1
x
wm
w w w
3 2 1
w
0
1
)
(u x w w
y
m
i
i i k
k
0
T w
uk w x
0
) T
(u w
yk k w x
• Costuma-se usar a função sinal como função de ativação no perceptron:
• Assim, regra de decisão para a classificação de um ponto x é dada por:
2 1
classe à
o relacionad é
, 1
classe à
o relacionad é
, 1
C y
C y
x
x
1 se 0
0
se 1
0 T
0 T
w u
w u u
y w x
x
w
Perceptron
y
u 1
-1
1 se 0
0 se
1
u u u
y
•Função lógica AND (tabela verdade):
x1 x2 Classe
0 0 C2
0 1 C2
1 0 C2
1 1 C1
•Deve-se classificar os padrões de entrada em duas classes (C1 e C2 );
•Cada padrão de entrada tem dois componentes (x1 e x2);
•Considere os pesos: w1=1 , w2=1 , w0 = -1,5.
Exemplo 1
• Função AND: w1=1 , w2=1 , w0 = -1,5.
FD (hiperplano) → u 0 w1x1 w2x2 w0 1x1 1x2 1,5
-0.5 0 0.5 1 1.5 2
-0.5 0 0.5 1 1.5 2
x1
x 2
C1
C2
1 se 0
0
se 1
0 T
0 T
w u
w u u
y w x
x
w
2 1
classe à
o relacionad é
, 1
classe à
o relacionad é
, 1
C y
C y
x x
• Os pontos do hiperplano são calculados para u=0;
• Ex:
x1=1,0 e x2 = 0,5;
x1=0,5 e x2 = 1,0;
x1=1,5 e x2 = 0;
x1=0 e x2 = 1,5.
•Em um perceptron, a FD é dada por um hiperplano definido por:
wTx + w0 = 0
•O hiperplano é:
uma reta no caso bidimensional (duas variáveis de entrada);
um plano no caso tridimensional;
•Os pesos e o bias do perceptron
definem a localização do hiperplano no espaço das entradas;
•O bias (w0) desloca a fronteira de decisão em relação à origem.
Hiperplano
• Se x(1)=[x1(1) x2(1)] e x(2) =[x1(2) x2(2)] são dois pontos no hiperplano, então:
u = 0 = wT x(1) + w0 = wT x(2) + w0 ou
wT(x(1) - x(2)) = 0
2 0 2
T
w w
x
w w
l
Localização do Hiperplano
• Assim, podemos concluir que o vetor w é perpendicular a
qualquer vetor contido no hiperplano;
• Além disso, a distância normal da origem até o hiperplano é dada por:
x2
x1
2 0
w l w
w
u = wTx + w0 = 0
•Suponha que as variáveis de entrada se originem de duas classes C1 e C2 linearmente separáveis;
•O problema do aprendizado do perceptron (treinamento) consiste em encontrar um conjunto de pesos e bias que
definem um hiperplano que separe linearmente os vetores de entrada das classes C1 e C2;
•Isto é, um vetor de pesos w e um bias w0 tal que:
2 0
T
1 0
T
classe à
e pertencent todo
para
, 0
classe à
e pertencent todo
para
, 0
C w
C w
x x
w
x x
w
Treinamento
•Para isso, um conjunto com padrões para o treinamento do perceptron é definido:
Conjunto de treinamento T;
Conjunto de pares: entrada x(n) e saída desejada d(n);
•O conjunto de treinamento T é formado por dois subconjuntos:
Treinamento
T1 composto por vetores de entrada que pertencem à
classe C1;
T2 composto por pares entrada que pertencem à classe C2.
•Antes de apresentarmos a estratégia de treinamento, vamos definir o padrão de treinamento e o vetor de pesos na n-
ésima iteração do algoritmo como:
•Note que o bias agora é visto como um peso;
•A saída do k-ésimo neurônio será dada por:
n
u
n
n n
yk k w Tx
Treinamento
• Se o padrão de treinamento x(n) é corretamente classificado
utilizando-se o vetor de pesos w(n) calculado na n-ésima iteração do algoritmo, então o vetor de pesos não é corrigido, ou seja:
• Caso contrário, o vetor de pesos é atualizado de acordo com:
na qual (n) é a taxa de aprendizagem, que controla o ajuste aplicado ao vetor de pesos na iteração n;
• Se (n) = > 0 , na qual é uma constante, temos uma regra de adaptação com incremento fixo.
2 T
1 T
classe à
pertence e
0 se
, 1
classe à
pertence e
0 se
, 1
C n
n n
n n
C n
n n
n n
x x
w w
w
x x
w w
w
Treinamento – 2 classes
1 T
2 T
classe à
pertence e
0 se
, 1
classe à
pertence e
0 se
, 1
C n
n n
n n
n n
C n
n n
n n
n n
x x
w x
w w
x x
w x
w w
• Usando-se a função sinal como ativação e considerando-se a taxa de aprendizagem fixa, podemos simplificar a regra de ajuste de pesos através de:
na qual
e
• Detalhes de implementação em Silva et al., pág. 64
2 1
classe à
pertence se
, 1
classe à
pertence se
, 1
C n
C n n
d x
x
n
w
n
d
n y n
x
nw 1
1 se 0
0
se 1
T T T
n n
n n n
n n
y w x
x x w
w
Treinamento
•Proposta por Rosenblatt em 1958;
•Regra de adaptação com incremento fixo:
•Guarda uma certa semelhança com a Regra Delta (ADALINE);
•A Regra Delta utiliza o conceito do gradiente descendente do erro médio quadrático.
Treinamento do Perceptron
Algoritmo perceptron ( XT , dT , ) // inicialização dos pesos
w 0 n 1 faça
// ativação do neurônio (saída) y (n) ( w T x (n) )
// ajuste de pesos
w w + [ d (n) – y (n) ] x (n) n n+1
enquanto ( erro na classificação não é aceitável )
•No algoritmo anterior, o conjunto de treinamento T tem N padrões, ou seja:
•O vetor de entradas x(n) e a saída desejada d(n) podem ser obtidas a partir de XT e dT através de:
x(n) = xt, d(n) = dt na qual t = mod(n-1,N)+1
•O erro é dado por: e
n d n y n•Deve se restrita ao intervalo 0 <
≤ 1•
baixa:adaptação mais lenta;
a mudança dos pesos é mais estável;
•
alta:adaptação mais rápida;
a mudança dos pesos é menos estável;
Escolha da taxa de aprendizagem
Fronteira de decisão
Durante treinamento Eventuais fronteiras após a convergência
•Treine o perceptron para o problema de classificação da função AND:
Padrão x1 x2 Classe d
1 0 0 C1 -1
2 0 1 C1 -1
3 1 0 C1 -1
4(N) 1 1 C2 1
x0(n) = +1 x1(n)
x2(n)
y
Exemplo 2
•Solução computacional: função AND
•Taxa de aprendizagem:
= 0,01Columns 1 through 8
0 0.0200 0.0200 0.0200 0 0.0200 0.0400 0.0400 0 0 0 0 -0.0200 -0.0200 -0.0200 -0.0200 0 0 0 0 -0.0200 -0.0200 0 0 Columns 9 through 16
0.0200 0.0200 0.0400 0.0600 0.0400 0.0400 0.0400 0.0600 -0.0400 -0.0400 -0.0400 -0.0200 -0.0400 -0.0400 -0.0400 -0.0200 -0.0200 -0.0200 0 0 -0.0200 -0.0200 -0.0200 -0.0200 Columns 17 through 19
0.0400 0.0400 0.0600 -0.0400 -0.0400 -0.0400 -0.0400 -0.0400 -0.0200
Pesos (incluindo bias)
0 2 4 6 8 10 12 14 16 18
0 0.5 1 1.5 2 2.5 3
iteracao
erro medio quadratico
Exemplo 2
n
w
n
d
n y n
x
nw 1
• Iteração 18: Erro médio quadrático = 0
-0.4 -0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4
-0.5 0 0.5 1 1.5
x1
x2
C1 C2
Exemplo 2
• Equação final da FD:
u = wTx + w0 = 0
0,06x1 - 0,04x2 - 0,02 = 0
• Ponto pertencente ao hiperplano:
x = [1 1].
FD: u = 0 = wTx + w0
1
2 3
4 5
6 7
8
• Fronteiras obtidas por iteração:
Exemplo 2
•Treine o perceptron para o problema de classificação da função OR:
Padrão x1 x2 Classe d
1 0 0 C1 1
2 0 1 C2 -1
3 1 0 C2 -1
4(N) 1 1 C2 -1
Exemplo 3
• A convergência da regra de adaptação com incremento fixo para o perceptron pode ser provada;
• As provas de convergência são em geral apresentadas para igual a 1;
• O valor de não é importante, desde que seja positivo;
• Valores de diferentes de 1 meramente escalam os vetores de entrada sem afetar sua separabilidade;
• Teorema da Convergência para a regra de adaptação com incremento fixo:
“Sejam os subconjuntos de vetores de treinamento T1 e T2 linearmente separáveis. Suponha que as entradas apresentadas ao perceptron se originem destes dois subconjuntos. O perceptron converge após no iterações, significando que
w(no) = w(no+1) = w(no+2) = ...
é a solução para no ≤ nmax .”
Prova: ver [HAYKIN, 2001], Seção 3.1, p. 163-169.
Perceptron – prova de convergência
• Problema de classificação da função XOR:
Padrão x1 x2 Classe d
1 0 0 C2 -1
2 0 1 C1 1
3 1 0 C1 1
4(N) 1 1 C2 -1
Exemplo 3
1
0 x2
x1
0 1
Problema XOR
•O perceptron não consegue resolver problemas de classificação que não são linearmente separáveis;
•Exemplo: função XOR;
•Este problema advém do fato de cada perceptron gerar apenar um hiperplano (e consequentemente uma FD);
•É possível gerar mais de um hiperplano se utilizarmos mais de um perceptron (neurônio) em uma única camada;
•No entanto, ainda teríamos o problema de como associar as diferentes regiões produzidas pelas FD com as diferentes
classes;
•Então, como seria possível resolver este problema?
Exemplo 3 – Função XOR
ADALINE
• A Adaline (ADAptative LInear NEuron) foi idealizado por Widrow e Hoff em 1960;
• Elaborado quase simultaneamente ao Perceptron;
• É um clássico modelo de neurônio que permite execução de operações de soma ponderada e posterior comparação a um limiar;
• Permitiu o uso de redes neurais em problemas industriais;
• Pode ser usado para tarefas de classificação e regressão;
• O Adaline se assemelha ao Perceptron, possuindo apenas um neurônio;
• A composição de vários Adaline forma uma rede chamada MADALINE;
• A saída do Adaline é dada por:
na qual x é o vetor de entradas, w é o vetor de pesos (indica as forças da conexão das
sinapses), w0 é o bias e (.) é a função de ativação do neurônio;
• Entretanto, o ajuste ocorre antes da aplicação da função de
ativação, em função do erro de sua saída linear (líquida):
sendo y um valor contínuo;
Adaline
0
1
)
(u x w w
y
m
i
i i k
k
• Isto leva a uma função custo a ser
minimizada que é quadrática nos pesos de entrada → convergência pelo método do gradiente.
Treinamento
• Regra Delta – algoritmo LMS
na qual se inclui o bias no vetor w;
• Como visto, é uma versão
estocástica do método do gradiente descendente;
• Visa reduzir a diferença entre a saída desejada (d) e a resposta contínua da rede (y);
• O comportamento típico é a redução do erro em função dos pesos, como mostra a figura;
• O critério de parada mais usado é quando se alcança um valor
pequeno do MSE.
n w n
d n y n
x nw 1
• Os pesos são atualizados para cada amostra k de treinamento;
• Comparando-se como método do gradiente descendente, o LMS aproxima a derivada do erro quadrático médio por:
Superfície de erro e otimização
• Exemplo de convergência: erro em função dos pesos e bias;
• O treinamento muda o
valor dos pesos em relação a todas as amostras
disponíveis para este fim;
• O processo de
convergência pode seguir (para dois atributos) como a figura dos hiperplanos:
Considerações sobre o treinamento
• O comportamento do erro segue aproximadamente a figura do Eqm;
• Note que ele é descendente e tende à estabilização.
Adaline x Perceptron
• Ambas são arquiteturas feedforward;
• A função de ativação tipicamente também é a bipolar;
• Classificadores de 2 classes;
• As classes devem ser linearmente separáveis;
• Algoritmo de treinamento do Adaline altera os pesos dos neurônios com vistas a diminuir o erro instantâneo;
• A principal diferença entre as propostas é:
Perceptron: ajusta os pesos somente quando um padrão é classificado incorretamente e o erro assume um dos seguintes valores: -1 ou +1 (função bipolar);
Adaline: utiliza a regra Delta para minimizar o MSE após cada padrão ser apresentado, ajustando os pesos proporcionalmente ao erro, o qual possui valores contínuos.
• No Perceptron, simplesmente usamos os rótulos de classe previstos para atualizar os pesos;
• No Adaline, usamos uma resposta contínua;
• O Adaline usa valores previstos contínuos (a partir da entrada líquida) para aprender os coeficientes do modelo;
• É mais "poderoso", pois nos dizem por "quanto" estávamos certos ou errados.
Adaline x Perceptron
• No caso do Adaline munido da regra Delta, a fronteira de decisão alcançada é sempre a mesma, independente dos valores iniciais dados ao vetor de pesos;
• Isto porque a FD está localizada no ponto ótimo do ponto de vista dos mínimos quadrados dos erros;
• Como o Perceptron segue a regra de Hebb, o qual considera a resposta produzida pela apresentação individual de cada amostra de treinamento,
qualquer hiperplano que separe as classes é considerado igualmente adequado:
Considerações sobre o treinamento
• Isso significa que o treinamento do Perceptron é susceptível aos valores iniciais dos pesos;
• Logo, o Adaline é mais robusto com relação à possíveis ruídos nos dados.