Aprendizagem por Treinamento
de Redes Neurais
Marco H. Terra
Introdução
● Neste capítulo aprende-se como neurônios organizados em redes podem
ser usados para reconhecer instâncias de padrões e aprende-se como redes neurais podem aprender usando procedimento backpropagation.
● Serão descritas propriedades de neurônios reais e como estas
propriedades são modeladas em redes neurais.
● Também, como o procedimento backpropagation altera o efeito de um
neurônio simulado para melhorar o desempenho de toda a rede.
● Através de ilustração, verifica-se como uma rede neural simulada pode ser
concebida para reconhecer quais pessoas, em um grupo de seis, que são conhecidas e amigas.
● Portanto, os objetivos deste capítulo são: aprender como funcionam as
redes neurais simuladas e entender como o procedimento backpropagation melhora o desempenho das redes.
Redes neurais simuladas
● Neurônios reais consistem de sinapses, dendrites, axônios e corpos de
células, veja Figuras 1 e 2.
● Axônio é uma protuberância que conecta a saída do neurônio com outros
neurônios.
● Dendrites, são protuberâncias que fornecem uma área suficiente para
facilitar a conexão com axônios de outros neurônios.
● Um neurônio faz com que a influência coletiva de todas as entradas dele
alcancem um limiar. Se este nível de limiar é alcançado, o neurônio produz um pulso estreito que se propaga do corpo da célula até os
braços do axônio. Quando isto acontece diz-se que o neurônio disparou.
● Um neurônio é um dispositivo do tipo tudo ou nada pois ele se comporta
Redes neurais simuladas
●
Axônios influenciam dendrites sobre pequenos gaps
chamados sinapses. Estímulos em algumas sinapses.
encorajam o neurônio a disparar um pulso, estímulos em
outras sinapses. desencorajam o neurônio a disparar.
●
Existem evidências de que a aprendizagem acontece nas
vizinhanças das sinapses e está relacionada com o controle
do envio de pulsos que são transferidos através do axônio de
um neurônio até a inibição ou excitação do próximo neurônio.
●
Neurônios simulados são formados por multiplicadores,
somadores e limiares (thresholds).
O neurônio
● Figura 1. Um neurônio consiste de uma célula, um axônio e muitos dendrites.
Dendrites recebem entradas de axônios de outros neurônios via sinapses. de excitação ou inibição. Neurônios reais podem ter muitos dendrites.
O neurônio
Neurônio simulado
● Figura 3: Neurônio simulado. Entradas de outros neurônios são multiplicadas por pesos e somadas.
A soma é comparada com um limiar. Se a soma está acima deste limiar, a saída é 1; caso contrário a saída é 0.
Neurônio simulado
●
O neurônio simulado é visto como um nó conectado a outros
nós através de ligamentos que correspondem a conexões
axônio-sinapse-dendrite. Cada ligamento é associado com um
peso. O peso determina a natureza e abrangência da influência
de um nó sobre outro.
●
A influência de um nó sobre o outro é o produto da saída de um
neurônio vezes o peso da conexão dos ligamentos. Um valor de
um peso positivo corresponde a uma excitação forte e um peso
negativo corresponde a uma inibição.
●
Cada nó combina as influências separadas recebidas das
entradas com as influências combinadas de todas as entradas
usando uma função de ativação.
Neurônio simulado
●
Em resumo, simplificadamente pode-se dizer que um neurônio é
formado por: propriedades sinápticas que modelam os pesos;
somador que modela a capacidade de influência-combinação dos
dendrites; e limiar que modela a característica tudo ou nada imposta
pelo mecanismo eletromecânico situado no corpo da célula.
●
Redes feed-forward podem ser vistas como redes de restrições
aritméticas.
●
Uma rede neural é uma representação que é uma rede de restrição
aritmética na qual:
– Operações denotam restrições aritméticas modelando sinapses. e neurônios; – Procedimentos demonstrativos propagam estímulos através de sinapses. e
Redes neurais
●
Quando um valor é escrito em um slot de entrada da sinapse,
escreve-se o produto deste valor e o peso da sinapse no slot da
saída da sinapse.
●
Quando um valor é escrito no slot de saída da sinapse, cheque o
neurônio seguinte para ver se todas as saídas das sinapses. e a
entrada dele têm valores:
– Se todas tiverem, some os valores das saídas das sinapses. de entrada
juntos, compare a soma com o limiar do neurônio, e escreva o valor apropriado no slot de saída do neurônio.
– Caso contrário, não faça nada.
●
Redes feed-forward podem reconhecer regularidade nos dados,
Exemplo de rede neural
●
Figura 4. Rede neural que reconhece conhecidos e irmãos. Os pesos
Exemplo de rede neural
● A rede da Figura 4 está equipada com pesos que permitem reconhecer
propriedades de pares de pessoas.
● Alguns dos pares envolvem amigos e outros envolvem conhecidos. ● Duas conexões de entrada recebem valor 1 para identificar o par de
pessoas que estão sendo consideradas. Todas as outras conexões de entrada recebem valores 0 porque as pessoas correspondentes não fazem parte do par que está sendo considerado.
● Assume-se que as pessoas do grupo de cima (as três primeiras) são
amigas e que as pessoas do grupo de baixo também são amigas.
Assuma também que qualquer par de pessoas que não seja de amigas são de conhecidas.
● Os nós à direita dos ligamentos de entrada, H1 e H2, são denominados
Exemplo de rede neural
●
Os nós de saída geram as conclusões. O nó de amigos, por exemplo,
recebe um valor 1 quando a entrada corresponde a duas pessoas
que são amigas.
●
Qualquer uma das três primeiras entradas da rede da Figura 4 produz
simulação suficiente para disparar H1, porque todos os pesos
conectados valem 1.0 e porque o limiar de H1 é 0.5. Similarmente os
três últimos nomes produzem simulação o bastante para disparar H2.
H1 e H2 funcionam como portas lógicas OU. No mínimo um dos H1 e
H2 tem que disparar porque duas entradas estão sempre no nível
alto.
●
Se ambos H1 e H2 disparam, então a soma ponderada apresentada
para o nó conhecidos é 2 porque ambos os pesos envolvidos valem 1
e porque o limiar do nó conhecidos é 1.5.
Exemplo de rede neural
● Se somente 1 nó de H1 e H2 dispara, então o nó de pessoas conhecidas
não dispara. Assim, o nó de conhecidos atua como uma porta lógica AND: Dispara somente quando os pares de entradas são de conhecidos.
● Por outro lado, se ambos H1 e H2 disparam, então a soma ponderada
apresentada para o nó amigos é -2 em virtude dos pesos de inibição -1. O valor -2 é menor que o limiar -1.5, então o nó não dispara. Se somente um dos nós H1 ou H2 disparar, então a soma ponderada é -1 que está acima do limiar do nó amigos que é -1.5, então ele dispara. O nó amigos dispara se e somente se o par de entrada causar o disparo de um nó escondido, isto acontece somente quando os pares de entrada são de amigos.
● Note que cada nó e cada ligamento neste exemplo possui uma função
clara. Mas em geral estes nós e ligamentos são concebidos de maneira difusa e nem sempre é possível interpretá-los apropriadamente.
Treinamento de redes
neurais
● Subida de encosta e backpropagation.
● Existem procedimentos simples que permitem às redes neurais aprenderem
automaticamente dos exemplos de treinamento.
● No contexto de aprendizagem de redes neurais, cada subida de encosta
proporciona pequenas mudanças para os pesos.
● A medida de qualidade é uma medida de quão bem a rede interage com
exemplos nas entradas para os quais saídas apropriadas são conhecidas.
● O procedimento dito subida de encosta requer que a cada passo seja
escolhido, dentre os passos possíveis, aquele que seja mais conveniente.
● Se a aprendizagem for feita alterando-se simultaneamente todos os pesos
de maneira a melhorar o desempenho da rede é dito que se está
caminhando na direção do gradiente no espaço de pesos e se está fazendo um gradiente ascendente.
Backpropagation
● O procedimento backpropagation é um caminho relativamente eficiente
para se calcular o quanto melhora o desempenho de uma rede com mudanças de pesos individuais. O procedimento é chamado de
backpropagation porque calcula-se as mudanças dos pesos primeiro na camada final da rede, em seguida altera-se os pesos na penúltima camada e por último retorna-se à camada inicial.
● Limiares não nulos podem ser eliminados.
● Veja na Figura 5 que um neurônio com limiar não nulo é
computacionalmente equivalente a um neurônio com limiar nulo com um ligamento extra conectado a uma entrada que está sempre em -1. Estes pesos com limiares equivalentes (pois com esta aproximação pode-se
tratar os limiares como se fossem pesos) podem ser mudados no decorrer da aprendizagem como se fossem pesos, simplificando a aprendizagem.
Backpropagation
●
Gradiente ascendente requer uma função limiar
suave.
●
Uma função limiar tipo degrau não é apropriada para
o gradiente ascendente que, por evoluir em pequenos
passos ,não seria captado no transcorrer do
aprendizado, ocorreriam apenas mudanças abruptas
em determinados momentos, o que prejudicaria o
desempenho do aprendizado.
●
Uma função limiar suavizada é mais apropriada, veja
Backpropagation
●
Figura 5. Limiares são equivalentes a ligamentos,
com valores de pesos iguais aos valores dos
Backpropagation
● Figura 6. Função suavizada S e uma derivação dela. A derivação da função suavizada S vai a zero
quando a soma das entradas ou resulta muito positiva ou muito negativa; esta derivação alcança o máximo, 0.25, quando a entrada é 0.
Backpropagation
● Backpropagation (BP) pode ser entendido heuristicamente.
● O principal objetivo do procedimento BP é fazer uma alteração grande em
um determinado peso, w, se a mudança resultar em uma grande redução dos erros observados nos nós das saídas, caso uma alteração no peso não influenciar de forma significativa o erro da saída deve-se, praticamente,
desprezar o ajuste deste peso.
● Para cada combinação da amostra da entrada, considera-se cada valor
desejado da saída, d, o valor atual dele, o, e a influência de um peso particular, w, no erro, d-o.
● A fórmula BP é descrita da seguinte maneira:
Δ wi→ j=r oioj(1−oj)β j,
β j=
∑
kBackpropagation
● Figura 7. Rede neural treinável. Cada ligamento possui um peso que pode ser alterado para melhorar a habilidade da rede para produzir as saídas corretas em função das combinações das entradas no conjunto de treinamento. Ligamentos que substituem limiares não são
Backpropagation
● O procedimento backpropagation é deduzido a partir do gradiente
descendente e da regra da cadeia.
● Estes são os argumentos matemáticos para a dedução de BP. ● Suponha que y é uma função suave de várias variáveis x
i .
● Suponha também que se quer conhecer como fazer mudanças incrementais
para valores iniciais de cada xi assim como incrementar o valor de y o mais rápido possível.
● A mudança para cada valor inicial x
i deve ser proporcional à derivada
parcial de y com respeito a um particular xi
● Esta relação proporcional é dita gradiente ascendente.
Δ xi∝ ∂
y
Backpropagation
● Suponha que y é uma função de várias variáveis intermediárias xi e que cada xi está
em função de uma variável z. Suponha que se quer derivar y com relação a z da seguinte maneira
● Para calcular esta derivada, usa-se a regra da cadeia.
● Uma medida de desempenho para uma rede neural pode ser dada através de um
índice quadrático
● sendo: P uma medida de desempenho, s é um índice que abrange todas as entradas
de amostras, z é um índice que abrange todos os nós da saída, dsz é a saída desejada para uma entrada de amostra s no nó z, osz é a saída atual para uma entrada de amostra s no nó z. dy dz =
∑
i ∂ y ∂ xi dxi dz =∑
i dxi dz ∂ y ∂ xi P=−∑
s (∑
z (dsz−osz) 2 ),Backpropagation
● Cada peso da rede neural será então ajustado levando em consideração o índice
de desempenho P, através da seguinte derivada parcial:
● sendo que o peso w
i→j conecta a i-ésima camada de nós para a j-ésima camada
de nós.
● O objetivo é encontrar uma maneira eficiente para calcular a derivada parcial de P
com respeito a wi→j . Pode-se reescrever esta derivada parcial da seguinte maneira:
● Determina-se o
j somando-se todas as entradas do nó j e passando esta soma
através de uma função limiar
∂ P ∂ wi→ j , ∂ P ∂ wi→ j = ∂ P ∂ oj ∂oj ∂ wi→ j = ∂oj ∂wi→ j ∂ P ∂ oj
Backpropagation
●
sendo f uma função limiar. Tratando esta soma como uma
variável intermediária:
●
pode-se aplicar a regra da cadeia novamente:
●
Substituindo este resultado nas equações anteriores
tem-se:
o j=f (∑
i oiwi→ j),σ
j=∑
i oiwi→ j, ∂ oj ∂ wi→ j = df (σ
j) dσ
j ∂σ
j ∂ wi→ j = df (σ
j) dσ
j oi=oi df (σ
j) dσ
j . ∂ P =o df (σ
j) ∂ PBackpropagation
●
Pode-se aplicar a regra da cadeia para o termo ∂P/∂o
j
:
●
Considerando a função limiar e regra da cadeia,
tem-se:
●Tem-se então:
∂ P ∂ oj =∑
k ∂ P ∂ok ∂ ok ∂oj =∑
k ∂ok ∂ oj ∂ P ∂ ok . ∂ ok ∂oj =df (σ
k) dσ
k ∂σ
k ∂ oj =df (σ
k) dσ
k wj→k=wj→k df (σ
k) dσ
k ∂ P ∂ oj =∑
k wj→k df (σ
k) dσ
k ∂ P ∂ okBackpropagation
● Dois aspectos devem ser ressaltados: primeiro, a derivada parcial do
desempenho com respeito a um peso depende da derivada parcial do
desempenho com respeito à saída seguinte; e segundo, a derivada parcial do desempenho com respeito a uma saída depende das derivadas parciais do desempenho com respeito às saídas da próxima camada.
● Ou seja a derivada parcial de P com respeito a qualquer peso na i-ésima
camada deve ser dada em termos dos cálculos da camada à direita, a j-ésima camada. O desempenho de cada saída na última camada é dado por:
● E escolhendo uma função limiar do tipo sigmoide a derivada é definida
como segue: ∂ P ∂ oz = ∂ ∂ oz [−(dz−oz) 2 ]=2(dz−oz).
Backpropagation
●
As mudanças nos pesos dependem de uma taxa r que deve
ser tão grande quanto possível para resultar em uma rápida
aprendizagem, mas não deve gerar valores exagerados nas
saídas que ultrapassem os valores desejados.
f (
σ
) = 1 1+e−σ df (σ
) dσ
= d dσ
[ 1 1+e−σ ] = (1+e−σ )−2e−σ = f (σ
)(1−f (σ
)) = o(1−o)Backpropagation
●
Portanto as fórmulas do procedimento
backpropagation são definidas como segue:
Δ w
i→ j=r o
io
j(1−o
j)
β
j,
β
j=
∑
kw
j→ko
k(1−o
k)
β
kpara nós nas camadas escondidas,
β
z=d
z−o
zpara nós na camada de saída.
Aplicação de redes
neurais
●
Um exemplo de treinamento será mostrado para a
rede da Figura 8. Assume-se que exatamente duas
das entradas apresentadas à rede tenham valor 1 e
que as entradas restantes tenham valor 0. A proposta
da rede é determinar se as duas pessoas
correspondentes às entradas são conhecidas
(acquaintances). As duas pessoas são julgadas
conhecidas se o valor da saída é maior que 0.9; elas
serão julgadas não conhecidas se a saída for menor
que 0.1; e se não for nem uma coisa nem outra o
Aplicação de redes
neurais
● Figura 8. Um problema de aprendizagem envolvendo pessoas conhecidas. A tarefa é aprender que
qualquer um no grupo de cima das três pessoas é um conhecido de qualquer um do grupo de baixo, dos três abaixo. Ligamentos que substituem os limiares não são mostrados.
Aplicação de redes
neurais
Aplicação de redes
neurais
Aplicação de redes
neurais
● Figura 11. Resultados para o experimento de aprendizagem. A raiz quadrada do erro médio
quadrático visto nos nós da saída versus o número de backpropagations feito durante a aprendizagem sobre as pessoas conhecidas.
Aplicação de redes
neurais
● Figura 12. Comportamento da aprendizagem pode aprender consideravelmente da taxa de
aprendizagem. Seis diferentes taxas de 0.25 até 8 produzem os seis resultados descritos neste gráfico.
Aplicação de redes
neurais
● Figura 13. Um problema de aprendizagem envolvendo conhecidos e irmãos. Tendo aprendido que
qualquer um do grupo de cima é um conhecido de qualquer um do grupo de baixo, a rede aprende que cada grupo consiste de amigos. Ligamentos substituindo limiares não são mostrados.
Aplicação de redes
neurais
Resultados do
treinamento
Resultados do
treinamento
● Figura 16. A linha pontilhada mostra a raiz quadrada do erro médio quadrático visto nos nós de saída durante o