Baixe o app para aproveitar ainda mais
Prévia do material em texto
Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Universidade Estadual do Maranhão - UEMA Curso de Engenharia da Computação Disciplina: Redes Neurais e Lógica Fuzzy AULA 4 Prof. MSc Sidney Cerqueira email:cerqueirasidney@gmail.com 3 de maio de 2014 1 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Sumário 1 Perceptrons multicamadas 2 O Backpropagation 3 Algoritmo 4 Aplicação 2 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Perceptrons multicamadas 3 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Perceptrons multicamadas São redes caracterizadas pela presença de pelo menos uma camada intermediária (escondida) de neurônios, situada entre a camada de entrada e a respectiva camada neural de sáıda. Possibilidades de aplicações: 4 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Perceptrons multicamadas São redes caracterizadas pela presença de pelo menos uma camada intermediária (escondida) de neurônios, situada entre a camada de entrada e a respectiva camada neural de sáıda. Possibilidades de aplicações: Aproximação universal de funções; 5 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Perceptrons multicamadas São redes caracterizadas pela presença de pelo menos uma camada intermediária (escondida) de neurônios, situada entre a camada de entrada e a respectiva camada neural de sáıda. Possibilidades de aplicações: Aproximação universal de funções; Reconhecimento de padrões; 6 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Perceptrons multicamadas São redes caracterizadas pela presença de pelo menos uma camada intermediária (escondida) de neurônios, situada entre a camada de entrada e a respectiva camada neural de sáıda. Possibilidades de aplicações: Aproximação universal de funções; Reconhecimento de padrões; Identificação e controle de processos; 7 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Perceptrons multicamadas São redes caracterizadas pela presença de pelo menos uma camada intermediária (escondida) de neurônios, situada entre a camada de entrada e a respectiva camada neural de sáıda. Possibilidades de aplicações: Aproximação universal de funções; Reconhecimento de padrões; Identificação e controle de processos; Previsão de séries temporais; 8 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Perceptrons multicamadas São redes caracterizadas pela presença de pelo menos uma camada intermediária (escondida) de neurônios, situada entre a camada de entrada e a respectiva camada neural de sáıda. Possibilidades de aplicações: Aproximação universal de funções; Reconhecimento de padrões; Identificação e controle de processos; Previsão de séries temporais; Otimização de sistemas. 9 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Perceptron multicamadas cont... A arquitetura é feedforward cujo o treinamento é de forma supervisionada. O algoritmo de aprendizagem é conhecido como backpropagation ou retropropagação de erro. 10 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Processo de treinamento do PMC O processo de treinamento é feito com o algoritmo backpropagation, que também é conhecido como regra Delta Generalizada, feito em aplicações sucessivas de duas fases. Uma fase forward onde as entra- das são propagadas adiante até a sáıda, e outra fase backward onde são ajustados os pesos sinápticos e limiares em todos os neurônios. 11 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Derivação do algoritmo backprogation Variáveis que norteiam a derivação do algoritmo 12 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Cada um dos neurônios j pertencentes a uma camada L da figura anterior, podem ser imaginados como figura abaixo, onde g(.) deve ser cont́ınua e diferenciável em todo seu doḿınio. W (L) ji são matrizes de pesos cujos elementos denotam o valor do peso sináptico conectando o j-ésimo neurônio da camada de sáıda ao i-ésimo neurônio da camada L ao i-ésimo neurônio da camada anterior (L-1). 13 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação I (L) ji são vetores cujos elementos denotam a entrada ponderada em relação ao j-ésimo neurônio da camada L, os quais são definidos por: I (1) j = n∑ i=0 W (1) ji · xi ⇔ I (1) j = W (1) j,0 · x0 +W (1) j,1 · x1 + ...+W (1) j,n · xn I (2) j = n1∑ i=0 W (2) ji · Y (1) i ⇔ I (2) j = W (2) j,0 · Y (1) 0 +W (2) j,1 · Y (1) 1 + ...+W (2) j,n1 · Y (1) n1 I (3) j = n2∑ i=0 W (3) ji · Y (2) i ⇔ I (3) j = W (3) j,0 · Y (2) 0 +W (3) j,1 · Y (2) 1 + ...+W (3) j,n2 · Y (2) n2 Y (L) j são vetores cujos elementos denotam a sáıda do j-ésimo neurônio em relação à camada L, quais são definidos por: Y (1) j = g(I (1) j ), Y (2) j = g(I (2) j ), Y (3) j = g(I (3) j ) 14 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Exemplo Duas entradas (n=2), três neurônios na primeira camada es- condida (n1 = 3), dois neurônios na segunda camada escon- dida (n2 = 2) e um neurônio de sáıda (n3 = 1). Com função de ativação tangente hiperbólica para todos os neurônios. 15 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Exemplo As matrizes de pesos são dadas por : W (1) ji = 0, 2 0, 4 0, 5 0, 3 0, 6 0, 7 0, 4 0, 8 0, 3 ; W (2) ji = [ −0, 7 0, 6 0, 2 0, 7 −0, 3 0, 7 0, 2 0, 8 ] ; W (3) ji = [ 0, 1 0, 8 0, 5 ] 16 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Exemplo Considerando as entradas por x1 = 0, 3 e x2 = 0, 7, os vetores I (1) j e Y (1) j seriam então representados por: I (1) j = I (1) 1 I (1) 2 I (1) 3 = W (1) 1,0 · x0 +W (1) 1,1 · x1 +W (1) 1,2 · x2 W (1) 2,0 · x0 +W (1) 2,1 · x1 +W (1) 2,2 · x2 W (1) 3,0 · x0 +W (1) 3,1 · x1 +W (1) 3,2 · x2 = 0, 2 · (−1) + 0, 4 · 0, 3 + 0, 5 · 0, 7 0, 3 · (−1) + 0, 6 · 0, 3 + 0, 7 · 0, 7 0, 4 · (−1) + 0, 8 · 0, 3 + 0, 3 · 0, 7 = 0, 27 0, 37 0, 05 17 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Y (1) j = Y (1) 1 Y (1) 2 Y (1) 3 = g ( I (1) 1 ) g ( I (1) 2 ) g ( I (1) 3 ) = tanh(0, 27) tanh(0, 37) tanh(0, 05) = 0, 26 0, 35 0, 05 Y (1) 0 = −1 → Y (1) j = Y (1) 0 Y (1) 1 Y (1) 2 Y (1) 3 = −1 0, 26 0, 35 0, 05 onde os argumentos usados na função tangente hiperbólica estão em radianos. 18 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Os vetores da segunda camada neural seriam representados por: W (2) 1,0 · Y (1) 0 +W (2) 1,1 · Y (1) 1 +W (2) 1,2 · Y (1) 2 +W (2) 1,3 · Y (1) 3 Y (2) j = [ Y (2) 1 Y (2) 2 ] = [ g(I (2) 1 ) g(I (2) 2 ) ] = [ tanh(0, 96) tanh(0, 59) ] = [ 0, 74 0, 53 ] Adicionando-se o bias fica: Y (2) 0 = −1 → Y (2) j = Y (2) 0 Y (2) 1 Y (2) 2 = −1 0, 74 0, 53 19 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Finalmente a terceira camada é dada por: I (3) j = [ I (3) 1 ] = [ W (3) 1,0 · Y (2) 0 +W (3) 1,1 · Y (2) 1 +W (3) 1,2 · Y (2) 2 ] = [0, 76] Y (3) j = [0, 76] = [g(I (3) 1 )] = [tanh(0, 76)] = [0, 64] Nesta última expressão, dispensa-se a inserção do termo Y (3) 0 = −1, pois já se trata da última camada neural, sendo que o valor Y (3) 1 = −1 é a própria sáıda y1 produzida pela rede. 20 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Assim, o próximo passo para a derivação do algoritmo backpropaga- tion é definir a função representativa do erro de aproximação,que irá medir o desvio entre as respostas produzidas pelos neurônios de sáıda e valores desejados. Considerando-se um k-ésima amostra de treinamento, a função erro quadrático dada abaixo: E (k) = 1 2 n3∑ j=1 ( dj(k)− Y (3) j (k) )2 De modo geral, se tivermos p amostras, a função erro quadrático médio será: EM = 1 p p ∑ k=1 E (k) 21 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Ajustes de pesos da camada de sáıda O ajuste dos pesos para minimização dos erros pode ser dado de maneira similar ao aplicada ao Adaline, ou seja, aplicando o gradiente e regra da cadeia, ∇E (3) = ∂E ∂W (3) ji = ∂E ∂Y (3) j · ∂Y (3) j ∂I (3) j · ∂I (3) j ∂W (3) ji Assim, os resultados das derivadas por definições anteriores temos: ∂I (3) j ∂W (3) ji = Y (2) i ∂Y (3) j ∂I (3) ji = g ′(I (3) j ) ∂E ∂Y (3) ji = −(dj − Y (3) j ) 22 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Combinando as equações, temos: ∂E ∂W (3) ji = −(dj − Y (3) j ) · g ′(I (3) j ) · Y (2) i Logo, o ajuste da matriz de pesos W (3) ji deve ser efetuado em direção oposta ao gradiente a fim de minimizar o erro, ou seja: ∆W (3) ji = −η · ∂E ∂W (3) ji ⇔ ∆W (3) ji = η · δ (3) j · Y (2) i Sendo : δ (3) j = (dj − Y (3) j ) · g ′(I (3) j ) Deste modo, os ajustes dos pesos serão dados por: W (3) ji (t + 1) = W (3) ji (t) + η · δ (3) j · Y (2) i 23 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Ajustes de pesos da 2o camada intermediária Nas camadas intermediárias não se tem acesso aos valores de- sejados para as suas sáıdas. Os ajustes são feitos por intermédio de estimativas dos erros de sáıda produzidos por aqueles neurônios da camada imedia- tamente posterior, os quais já foram previamente ajustados. Consequentemente, a resposta desejada para um neurônio de camada escondida deve ser então determinada em função dos neurônios que estão diretamente conectados e ajustados no passo anterior. Com isso teremos que minimizar a retropropagação do erro da camada de sáıda e deste modo temos: ∇E (2) = ∂E ∂W (2) ji = ∂E ∂Y (2) j · ∂Y (2) j ∂I (2) j · ∂I (2) j ∂W (2) ji 24 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Obtendo-se as seguintes expressões: ∂I (2) j ∂W (2) ji = Y (1) i ∂Y (2) j ∂I (2) j = g ′(I (2) j ) ∂E ∂Y (2) j = n3∑ k=1 ∂E ∂I (3) k · ∂I (3) k ∂Y (2) j = n3∑ k=1 ∂E ∂I (3) k ︸ ︷︷ ︸ parcela(i) · ∂ ( n3∑ k=1 W (3) kj · Y (2) j ) ∂Y (2) j ︸ ︷︷ ︸ parcela(ii) onde o valor da derivada parcial do argumento da parcela(ii) em relação à Y (2) j é o próprio valor de W (3) kj , ou seja: ∂E ∂Y (2) j = n3∑ k=1 ∂E ∂I (3) k ︸ ︷︷ ︸ parcela(i) · W (3) kj ︸ ︷︷ ︸ parcela(ii) 25 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Fazendo as substituições necessárias, como anteriormente chegamos ao seguinte resultado: W (2) ji (t + 1) = W (2) ji (t) + η · δ (2) j · Y (1) i 26 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Ajustes de pesos da 1o camada intermediária Para a primeira camada escondida, o objetivo consiste em ajustar a matriz de pesos W (1) ji a fim de minimizar o erro entre a sáıda pro- duzida pela rede em função da retropropagação do erro da segunda camada escondida. Assim, tem-se: ∇E (1) = ∂E ∂W (1) ji = ∂E ∂Y (1) j · ∂Y (1) j ∂I (1) j · ∂I (1) j ∂W (1) ji Obtendo-se as seguintes sáıdas: ∂I (1) j ∂W (1) ji = xi ; ∂Y (1) j ∂I (1) j = g ′(I (1) j ) 27 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação ∂E ∂Y (1) j = n2∑ k=1 ∂E ∂I (2) k · ∂I (2) k ∂Y (1) j = n2∑ k=1 ∂E ∂I (2) k ︸ ︷︷ ︸ parcela(i) · ∂ ( n2∑ k=1 W (2) kj · Y (1) j ) ∂Y (1) j ︸ ︷︷ ︸ parcela(ii) De forma similar a análise anterior temos: ∂E ∂Y (1) j = n2∑ k=1 ∂E ∂I (2) k ︸ ︷︷ ︸ parcela(i) · W (2) kj ︸ ︷︷ ︸ parcela(ii) 28 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Fazendo as substituições e análise anteriores chegamos ao ajuste da primeira camada escondida como sendo: W (1) ji (t + 1) = W (1) ji + η · δ (1) j · xi 29 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação 30 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação 31 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Algumas melhorias foram realizadas no algoritmo. Dentre essas podemos destacar: Inserção do termo de momentum - Para ponderar o quão as matrizes sinápticas foram alteradas entre duas iterações anteriores e sucessivas. Resilient propagation - Leva em conta somente a variação do seu sinal sem entrar na região de saturação Leverberg-Marquardt Método de gradiente de segunda ordem, baseado nos ḿınimos quadrados para modelos não-lineares. 32 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Problema do XOR Foi visto anteriormente que o Perceptron simples somente conseguiria convergir se as duas classes fossem linearmente separáveis. Caso contrário o percptron jamais conseguiria convergir para posicionar seu hiperplano delimitando a fronteira de separabilidade. Um problema clássico é o da porta lógica ou-exclusivo(Xor). 33 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Este tipo de problema ode ser resolvido por intermédio de uma rede PMC de duas camadas, como mostra a figura. As retas de separabilidade dadas pelos neurônios A e B, são representadas abaixo 34 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Para o exemplo em questão, assumindo a função loǵıstica em cada um dos neurônios, observa-se que o neurônio A terá sua sáida igual a 1 apenas para aquelas padrões acima de sua reta. Já o neurônio B forneçara 1 para todos o valores que estejam abaixo 35 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação Finalmente a figura abaixo mostra as fronteiras de classificação associados ao problema do Xor. As redes PMC de duas camadas podem então mapear qualquer problema de classificação de padrões 36 / 36 Perceptrons multicamadas O Backpropagation Algoritmo Aplicação
Compartilhar