apostila redes neurais
DESCRIPTION
Apostila contendo os principais tipos de redes neurais e suas descriçõesTRANSCRIPT
-
1
RRREEEDDDEEESSS NNNEEEUUURRRAAAIIISSS
AAARRRTTTIIIFFFIIICCCIIIAAAIIISSS
MARIA INS VASCONCELLOS FURTADO
-
2
INTRODUO A REDES NEURAIS 3
1.1 - HISTRICO DE REDES NEURAIS 3 1.2 APLICAES 4 1.3 - INSPIRAO BIOLGICA 5 1.4 O MODELO DE UM NEURNIO ARTIFICIAL 6 1.5 TIPOS DE FUNO DE ATIVAO 8
ARQUITETURAS E APRENDIZADOS 11
2.1 INTRODUO 11 2.2 - PRINCIPAIS ARQUITETURAS DE REDES NEURAIS 11 2.3 TIPOS DE APRENDIZADO 13
REGRA DE HEBB 16
3.1 INTRODUO 16 3.2 ALGORITMO DE HEBB 16 3.3 EXERCCIOS PROPOSTOS 21
REDES PERCEPTRON 22
4.1 SEPARABILIDADE LINEAR 22 4.2 REDES PERCEPTRONS 23 4.3 ALGORITMO DE TREINAMENTO DO PERCEPTRON 24 4.4 EXERCCIOS RESOLVIDOS 30 4.5 EXERCCIOS PROPOSTOS 34
REDES ADALINE 35
5.1 INTRODUO 35 5.2 ALGORITMO DE TREINAMENTO 36 5.3 APLICAO 37 5.4 EXERCCIOS RESOLVIDOS 41 5.5 EXERCCIOS PROPOSTOS 42
BACKPROPAGATION 43
6.1 - CORREO DE PESOS 43 6.2 - ALGORITMO BACKPROPAGATION 45 6.3 - PROBLEMAS DE TREINAMENTO 45
ANEXO 1 49
ANEXO 2 49
ANEXO 3 53
ANEXO 4 57
ANEXO 5 58
ANEXO 6 59
-
3
INTRODUO A REDES NEURAIS
1.1 - Histrico de Redes Neurais
As primeiras informaes mencionadas sobre a neuro computao datam de 1943, em artigos de
McCulloch e Pitts, em que sugeriam a construo de uma mquina baseada ou inspirada no
crebro humano.
Muitos outros artigos e livros surgiram desde ento, porm, por um longo perodo de tempo,
pouco resultado foi obtido.
Em 1949 Donald Hebb escreveu um livro intitulado A Organizao do Comportamento. Suas
idias no eram completamente novas, mas Hebb foi o primeiro a propor uma lei de
aprendizagem especifica para as sinapses dos neurnios.
Em 1951 foi construdo primeiro neuro computador, denominado Snark, por Mavin Minsky. O
Snark operava com sucesso, ajustando seus pesos automaticamente, entretanto, nunca executou
qualquer funo de processamento de informao interessante, mas serviu de inspirao para as
idias de estruturas que o sucederam.
Em 1956 nasceram os dois paradigmas da Inteligncia Artificial, a simblica e o conexionista.
A Inteligncia Artificial Simblica tenta simular o comportamento inteligente humano
desconsiderando os mecanismos responsveis por tal, ou seja, no possui uma inspirao
biolgica.
A Inteligncia Artificial Conexionista acredita que construindo um sistema que simule a
estrutura do crebro, este sistema apresentar inteligncia, ser capaz de aprender, assimilar,
errar e aprender com seus erros.
Em 1957 e 1958, surgiu o primeiro neuro computador a obter sucesso (Mark I Perceptron)
criado por Frank Rosenblatt, Charles Wightman e outros. Seu interesse inicial para a criao do
Perceptron era o reconhecimento de padres.
Aps Rosenblatt, Bernard Widrow, com a ajuda de alguns estudantes, desenvolveram um novo
tipo de elemento de processamento de redes neurais chamado de Adaline, equipado com uma
poderosa lei de aprendizado, que diferente do Perceptron ainda permanece em uso.
Widrow fundou a primeira companhia de hardware de neurocomputadores e componentes.
Os anos seguintes foram marcados por um entusiasmo exagerado de muitos pesquisadores, que
prometiam mquinas to poderosas quanto o crebro humano e que surgiriam em um curto
-
4
espao de tempo. Isto tirou quase toda a credibilidade dos estudos desta rea e causou grandes
aborrecimentos aos tcnicos de outras reas.
Um perodo de pesquisa silenciosa seguiu-se durante 1967 a 1982, quando poucas pesquisas
foram publicadas devido aos fatos ocorridos anteriormente. Entretanto, aqueles que
pesquisavam nesta poca, e todos os que se seguiram no decorrer de treze anos conseguiram
novamente estabelecer um campo concreto para o renascimento da rea.
Skurnick, um administrador de programas da DARPA (Defense Advanced Research Projects
Agency), fundou em 1983 um centro de pesquisas em neuro computao. Este ato no s abriu
as portas para a neuro computao, como tambm deu DARPA o status de uma das lderes
mundiais em se tratando de "moda" tecnolgica.
John Hopfield, renomado fsico de reputao mundial, se interessou pela neuro computao, e
incentivou e difundiu os princpios da neuro computao entre importantes cientistas,
matemticos e tecnlogos altamente qualificados.
Em 1986 o campo de pesquisa "explodiu" com a publicao do livro "Processamento
Distribudo Paralelo editado por David Rumelhart e James McClelland.
Em 1987 ocorreu em So Francisco a primeira conferncia de redes neurais em a IEEE
International Conference on Neural Networks, e tambm foi formada a International Neural
Networks Society (INNS).
Desde 1987, muitas universidades anunciaram a formao de institutos de pesquisa e programas
de educao em neuro computao.
1.2 Aplicaes
Reconhecimento de padres
Extrao de caractersticas
Classificao
Categorizao (Clusterizaes)
Estimativa e previso
Otimizao
Aproximao de funes.
As redes neurais artificiais so aplicadas resoluo de vrios problemas, a seguir mostramos suas
principais aplicaes.
-
5
1.3 - Inspirao biolgica
O crebro humano considerado o mais fascinante processador baseado em carbono existente,
sendo composto por aproximadamente 10 bilhes neurnios.
Todas as funes e movimentos do organismo esto relacionados ao funcionamento destas
pequenas clulas. Os neurnios esto conectados uns aos outros atravs de sinapses, e juntos formam
uma grande rede, chamada REDE NEURAL.
As sinapses transmitem estmulos atravs de diferentes concentraes de Na+ (Sdio) e K+
(Potssio), e o resultado disto pode ser estendido por todo o corpo humano. Esta grande rede
proporciona uma fabulosa capacidade de processamento e armazenamento.
O sistema nervoso formado por um conjunto extremamente complexo de neurnios. Nos
neurnios a comunicao realizada atravs de impulsos.
Rede neural artificial (RNA) uma tentativa de simular o funcionamento das redes neurais
biolgicas. um modelo formado por componentes interligados que trabalham de maneira paralela e
distribuda, cada um destes componentes conhecido como neurnio artificial e est fortemente
baseado no processamento de um neurnio biolgico. A rede robusta, ou seja, se um dos
componentes parar de funcionar no compromete o funcionamento total. A rede capaz de aprender,
generalizar e armazenar informaes tal como o crebro humano.
Figura: Neurnio Biolgico - esquemtico
-
6
Figura: Neurnio Biolgico
Os principais componentes dos neurnios so:
Os dendritos tm por funo, receber os estmulos transmitidos pelos outros neurnios;
O corpo de neurnio tambm chamado de soma responsvel por coletar e combinar
informaes vindas de outros neurnios;
O axnio constitudo de uma fibra tubular que pode alcanar at alguns metros, e
responsvel por transmitir os estmulos para outras clulas.
1.4 O modelo de um neurnio artificial
Figura: Modelo inicial do Neurnio Artificial
X2 w1i w2i
wNi
Yi :
X1
XN
-
7
O neurnio artificial formado pelos seguintes componentes:
Conjunto de entradas X1, X2,..., XN.
Pesos associados a cada entrada W1, W2,..., WN. Chamamos cada peso de sinapse.
Um somador para ponderar as respectivas entrada com os pesos associados.
Uma sada produzida Yi.
Precisamos, no entanto, modificar a figura anterior, pois apenas o somatrio causaria um estouro no
valor de sada do neurnio. Para resolver este problema adicionamos uma funo de ativao para
restringir a amplitude da sada. Acrescentamos ainda um parmetro chamado bias que tem o efeito de
aumentar ou diminuir a entrada liquida da funo de ativao dependendo se ele positivo ou negativo.
O esquema modificado est representado na figura a seguir.
Figura Neurnio com funo de ativao (bias)
Conjunto de formulas necessrias para definir um neurnio.
=
=N
iiii xwv
0
Podemos considerar o bias como um peso de uma entrada X0 que vale +1. Sendo assim
podemos simplificar as formulas do neurnio.
i
N
iiii bxwv +=
=1
De acordo com essa modificao o modelo do neurnio se transforma no esquema da figura a
seguir.
X2 w1i w2i
wNi
Yi :
X1
XN
(v) vi
bi
Yi = (vi)
Yi = (vi)
-
8
Figura Neurnio sem bias explicito
1.5 Tipos de funo de ativao
Precisamos de uma funo de ativao que limite o valor de sada do neurnio, portanto, esta
funo no pode tender ao infinito quando os valores de vi crescem. A seguir apresentamos algumas
das funes que podem ser usadas como funo de ativao de um neurnio.
Funo de Limiar
Funo Rampa
X1
b W1i
wNj
Yi :
1
XN
(v) vi
(v) = 1 se v >= 0 0 se v < 0
(v) = 1 se v >= v se -
-
9
Funo sigmoide
Existem duas condies necessarias para que uma funo matemtica possa ser usada como
funo de ativao em uma rede neural artificial:
A funo deve ser continua.
Os limites da funo quando x tende a infinito devem ser diferentes de infinitos.
Exemplo 1: Seja a seguinte funo matematica f(x) = 2x, est funo pode ser usada como funo de
ativao ?
Resoluo:
A funo f(x) = 2x satisfaz a primeira condio pois continua, porm no satisfaz a segunda:
Sendo assim, no pode ser usada como funo de ativao.
Exemplo 2: Seja a seguinte funo matemtica representada pelo grfico a seguir, est funo pode ser
usada como funo de ativao ?
Resoluo:
(v) = tanh(v)
(x)
x 0
x+
lim f(x) = + x -
lim f(x) = -
f(x
-2
2
x
-
10
Sim, a funo pode ser usada como funo de ativao de uma rede neural, pois: 1) A funo continua. 2)
Exerccios Propostos 1.6.1) Dadas as funes matemticas abaixo, diga qual ou quais podem ser usadas como funo de
ativao e justifique.
a) f(x) = 1/x
b) f(x) = ex
c) f(x) = x2
x+ lim f(x) = 2 x -
lim f(x) = -2
0
f(v
v
f(x)
0 x
f(x)
0 x
-
11
ARQUITETURAS E APRENDIZADOS
2.1 Introduo
A rede neural artificial um sistema de neurnios ligado por conexes sinpticas e dividido em
camadas, geralmente redes neurais com trs camadas resolvem quase todos os tipos de problemas
existentes, as camadas esto dispostas em:
Camada de entrada neurnios de entrada recebem os estmulos do meio externo.
Primeira Camada neurnios internos ou ocultos.
Segunda Camada neurnios de sada, que se comunicam com o exterior, produzindo o
resultado esperado.
2.2 - Principais arquiteturas de redes neurais
A definio da arquitetura de uma RNA um parametro muito importante na sua consepo,
extremamente importante escolher bem a arquitetura para resolver determinado problema, visto que, os
problemas se adaptam as forma das arquiteturas. Para definir uma arquitetura necessrio considerar
os seguintes parametros:
Nmero de camadas da rede.
Quanto ao nmero de camadas da rede podemos ter:
-
12
Redes de camada nica s existe um neuronio entre qualquer entrada e qualquer sada.
Redes de multiplas camadas Existe mais de um neuronio entre alguma entrada e alguma sada.
Figura: Rede Neural Artificial de 2 camadas com 4 entradas e 2 sadas
Nmero de neurnios em cada camada.
O nmero de neurnios em cada camada varia de problema para problema e deve ser
devidamente analisado em cada caso.
Tipo de conexo entre os neuronios.
Os neuronios podem ter conexes de dois tipos:
Redes feedforward ou aciclica a sada na i-sima camada da rede no pode ser usada como
entrada de neuronios de camadas inferiores ou igual a i.
Exemplo: Figuras A, B e C
Redes feedback ou ciclica a sada na i-sima camada da rede usada como entrada de neuronios
de camadas inferiores ou igual a i. Exemplo figura D
Topologia da rede.
Redes Fracamente conectadas Existem entradas que no esto conectadas a todos os neuronios,
assim como existem neuronios cuja sada no alimenta todos os neuronios da camada posterior.
Exemplo figura C
Redes Fortemente conectadas Todas as entradas esto conectadas a todos os neuronios, assim
como a sada de todos os neuronios alimenta todos os neuronios da camada posterior. Exemplo
figura A e B
-
13
2.3 Tipos de Aprendizado
Redes Neurais Artificiais possuem a capacidade de aprender atraves de exemplos e fazer
interpolaes e extrapolaes do que aprenderam, ou seja, so capazes de generalizar. No processo de
aprendizado, as conexes so ajustadas para encontrar resultados especficos de acordo com o que se
pretende ensinar a rede. Atravs de um processo, que chamamos treinamento ou aprendizado, o sistema
se adapta, ajustando as conexes entre os elementos de processamento.
Um conjunto de procedimentos bem definidos para adaptar os parmetros de uma rede neural
para que a mesma possa aprender uma determinada funo, chamado de algoritmo de aprendizado.
Figura A Figura B
Figura D
Figura E
Figura C
-
14
Como era de se esperar no existe apenas um algoritmo de aprendizado, ao contrario existem vrios
cada qual abordando uma tcnica diferente. Esses algoritmos diferem basicamente pela maneira pela
qual o ajuste dos pesos realizado.
A utilizao de uma RNA na soluo de um determinado problema passa inicialmente por uma
fase de aprendizado, quando a rede extrai informaes relevantes dos padres apresentados a ela e cria
uma representao prpria para o problema. A etapa de aprendizado consiste de um processo iterativo
de ajuste dos pesos sinapticos, que ao final do processo guardam o conhecimento que a rede adquiriu.
Aps a etapa de aprendizado ou treinamento a rede capaz de operar resolvendo o problema
que lhe foi proposto.
A arquitetura da rede define, dentre outros parmetros, a que tipo de treinamento a rede ser
submetida, capacitando-a a resolver o problema. Os algoritmos podem ser divididos em trs classes:
aprendizado supervisionado, aprendizado no-supervisionado e aprendizado por reforo.
O aprendizado supervisionado utiliza um agente externo supervisor para indicar rede a
resposta desejada para o padro de entrada. Atravs do erro, que a diferena entre os valores
esperados e os valores obtidos, o agente externo ajusta os parmetros da rede. Este ajuste feito at que
o erro seja minimizado, passando a no existir mais ou atingindo um valor considerado satisfatrio. A
partir deste momento, diz-se que a rede adquiriu conhecimento e apresenta-se treinada.
Figura Diagrama de Blocos do Treinamento Supervisionado
O aprendizado no-supervisionado no tem uma sada-alvo, sendo a prpria rede dever ser
capaz de extrair as caractersticas relevantes dos impulsos, classificando-os em grupos pr-existentes.
Meio Supervisor
Sistema de Aprendizado
Sinal de Erro
Resposta
Atual
Resposta Desejada
+
-
-
15
Dado um impulso externo, a rede dever ser capaz de, extradas as caractersticas relevantes, agrup-las
de acordo com as semelhanas em uma classe j criada. Caso nenhuma classe semelhante seja
encontrada, o sistema dever ento criar uma nova classe para o padro de entrada apresentado.
Figura Diagrama de Blocos do Treinamento No-Supervisionado
O Aprendizado por Reforo pode ser considerado uma variante do aprendizado supervisionado,
no qual no se dispe de respostas corretas, mas pode-se saber se as respostas que a rede produziu so
corretas ou no.
Neste algoritmo, um crtico ir observar o funcionamento do sistema. Caso as respostas a
determinados impulsos sejam satisfatrias, deve-se reforar as conexes que levam a estas respostas e,
caso contrrio, estas conexes devem ter um menor peso.
um mtodo baseado em tentativa e erro, pois os ajustes dos pesos a serem tomados iro
depender unicamente das respostas produzidas pelo sistema durante o treinamento. O que o diferencia
do treinamento supervisionado que o supervisor sabe exatamente como ajustar os pesos no caso de
erro. Este tipo de treinamento representado em um diagrama de blocos a seguir.
Figura Diagrama de Blocos do Treinamento por Reforo
Meio Sistema de Aprendizado
Vetor descrevendo o estado do meio
Crtico
Sistema de Aprendizado Aes
Reforo Primrio
Meio
Heurstica de Reforo
Vetor de Entrada
-
16
REGRA DE HEBB
3.1 Introduo
Os resultados obtidos por Hebb motivaram os primeiros mtodos de aprendizagem em RNA. A
idia bsica consiste no fato de que, se um neurnio biolgico recebe uma entrada de outro neurnio e
ambos se encontram altamente ativados, ento, a ligao entre eles reforada. Aplicando-se esta
observao ao esquema de RNA poderamos dizer que se uma unidade i recebe uma entrada de outra
unidade j altamente ativada, ento, a importncia desta conexo deve ser aumentada, isto , o valor do
peso entre as unidades deve ser acrescido. A maneira mais simples de se representar matematicamente
esta relao representada pela equao abaixo:
Wij(novo) = Wij(antigo) + YiYj (equao 3.1)
3.2 Algoritmo de Hebb
Vamos aplicar o algoritmo de aprendizado de Hebb para treinar uma rede neural que simule o
comportamento da funo lgica and ou (e).
Utilizaremos a seguinte funo de ativao:
Entrada 1 Entrada 2 Sada
1 1 1
1 0 -1
0 1 -1
0 0 -1
Yi Yj
Wij j i
(v)
v
1
-1
(v) = 1 se v >= 0 -1 se v < 0
-
17
Passo 1: Inicializar os pesos das sinapses com zero
Para cada par entrada sada, ajuste os pesos das sinapses.
Primeiro par entrada sada.
X1 X2 Y
1 1 1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 1*0 + 1*0 + 1*0 = 0
Y1 = 1
W11(novo) = W11(antigo) + X1Y1
W11(novo) = 0 + 1*1 = 1
W21(novo) = W21(antigo) + X2Y1
W21(novo) = 0 + 1*1 = 1
b1(novo) = b1(antigo) + 1*Y1
b1(novo) = 0 + 1*1 = 1
W21
Y1
W11
1
X1
X2
b1
0
Y
0
1
X1
X2
0
v = xi wi i=0
N
-
18
Segundo par entrada sada.
X1 X2 Y
1 0 -1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 1*1 + 0*1 + 1*1 = 2
Y1 = 1
W11(novo) = W11(antigo) + X1Y1
W1(novo) = 1 + 1*1 = 2
W21(novo) = W21(antigo) + X2Y1
W2(novo) = 1 + (0)*(1) = 1
b1(novo) = b1 (antigo) + 1*Y1
b1(novo) = 1 + 1*(1) = 2
Terceiro par entrada sada.
X1 X2 Y
0 1 -1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 0*2 + 1*1 + 1*2 = 3
Y1 = 1
1
Y
1
1
X1
X2
1
1
Y
2
1
X1
X2
2
-
19
W11(novo) = W11(antigo) + X1Y1
W11(novo) = 2 + 0*(1) = 2
W21(novo) = W21(antigo) + X2Y1
W21(novo) = 1 + (1)*( 1) = 2
b1 (novo) = b1(antigo) + 1*Y1
b1 (novo) = 2 + 1*1 =3
Quarto par entrada sada.
X1 X2 Y
0 0 -1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 0*2 + 0*2 + 1*3= 3
Y1 = 1
W11(novo) = W11(antigo) + X1Y1
W11(novo) = 2 + (0)*(1) = 2
W21(novo) = W21(antigo) + X2Y1
W21(novo) = 2 + (0)*(1) = 2
b1 (novo) = b1 (antigo) + 1Y1
b1 (novo) = 3 + 1*( 1) = 4
2
Y
2
1
X1
X2
3
2
Y
2
1
X1
X2
4
-
20
Aps varias apresentaes do conjunto de treinamento os pesos no se alteram mais a rede
atinge estabilidade. Cada apresentao do conjunto de treinamento chamada de poca.
A figura abaixo mostra os pesos finais
Agora podemos testar a rede e verificar se ela aprendeu corretamente.
Conjunto de padres da rede
Quando apresentamos o par X1 = 1 e X2 = 1 a rede deve apresentar na sada o valor de sada 1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 1* 2 + 1* 2 + 1*(-3) = 1 Y1= 1 A rede acertou, produziu o valor de sada 1 como esperado. Quando apresentamos o par X1 = 1 e X2 = 0 a rede deve apresentar na sada o valor de sada -1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 1* 2 + 0* 2 + 1*(-3) = -1 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado. Quando apresentamos o par X1 = 0 e X2 = 1 a rede deve apresentar na sada o valor de sada -1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 0* 2 + 1* 2 + 1*(-3) = -1 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado. Quando apresentamos o par X1 = 0 e X2 = 0 a rede deve apresentar na sada o valor de sada -1.
Entrada 1 Entrada 2 Sada
1 1 1
1 0 -1
0 1 -1
0 0 -1
2
Y
2
1
X1
X2
-3
-
21
v1 = X1* w11 + X2* w21 + 1*b1 v1 = 0* 2 + 0* 2 + 1*(-3) = -3 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado.
3.3 Exerccios Propostos
3.3.1) Considere o seguinte conjunto de treinamento, construa a rede neural com bias, inicialize os
pesos e o bias com zero, utilize funo de ativao limiar com igual a zero e treine a utilizando regra
de Hebb, faa uma poca.
3.3.2) Repita o exerccio anterior com os mesmos dados utilizando a seguinte funo de ativao: 3.3.3) Considere uma rede neural com um neurnio treine esta rede para simular o comportamento da
funo OR ou OU utilizando a regra de Hebb, funo de ativao limiar com =1 , utilize duas
pocas, inicialize os pesos e o bias com 0.1.
X1 X2 D 1 1 1 1 -1 1 -1 1 1 -1 -1 -1
3.3.3) Considere os seguintes parmetros de uma rede neural. Construa a topologia da rede e
calcule as sadas:
Matriz de pesos W=
Vetor de bias b=[-0.5, 0.1, -0.4]
Vetor de entradas X=[1, 0.5]
X1 X2 Sada 1 1 1 1 -1 -1 -1 1 1 -1 -1 1
1
-1
f(v)
1 v
-1
f(v) = 1 se v >=1 v se 1 < v
-
22
REDES PERCEPTRON
4.1 Separabilidade Linear
Um problema pode ser dito linearmente separvel se possvel representar o problema num
plano bi-dimensional e traar uma reta separando as classes do problema.
Exemplo: Voltamos ao exemplo da porta lgica and, cujos padres so descritos a seguir:
X1 X2 Y
1 1 1
1 0 0
0 1 0
0 0 0
Conseguimos separar atravs de uma reta as duas classes do problema. Toda vez que um
problema for considerado linearmente separvel pode ser resolvido por redes neurais de uma nica
camada e especialmente por perceptrons.
Vejamos agora um exemplo de um tipo de problema que no linearmente separvel. Vamos
considerar uma porta lgica XOR ou exclusivo, cujos padres so descritos a seguir:
X1 X2 Y
1 1 0
1 0 1
0 1 1
0 0 0
Neste caso no conseguimos traar uma reta e separar as classes diferentes do problema
-
23
4.2 Redes Perceptrons
Redes do tipo perceptron um tipo de rede simples de uma camada, consiste em um ou mais
neurnios de sada j conectados s entradas i atravs de pesos Wij. No caso mais simples a rede possui
um s neurnio k, como indicado na figura abaixo.
O conjunto de equaes da rede dado por:
A funo de ativao proposta originalmente por McCullock e Pitts, uma funo limiar:
Para este caso, o limiar de ativao do neurnio (acima do qual dizemos que o neurnio dispara)
zero, mas o modelo permite estabelecer um limiar de ativao diferente de zero. A funo limiar se
modifica.
vi = xi wij i=0 N
Yi = (vi)
W21
Y1
W11
1
X1
X2
b1
(v) = 1 se v >= 0 0 se v < 0
(v) = 1 se v >= 0 0 se v < 0
-
24
Os neurnios da rede perceptron podem ser empregados para separar em classes distintas os
padres de entradas. Se a entrada lquida for maior que o limiar, o padro dessa entrada pertence
classe 1, caso contrrio, pertence classe 0.
Como exemplo, uma rede neural que simula o comportamento de uma porta lgica and.
X1 X2 Y
1 1 1
1 0 0
0 1 0
0 0 0
A separao entre as duas classes dada pela equao:
X1w11 + X2w21 + b1 = 0
Que a equao de uma famlia de retas que podem separar as classes.
4.3 Algoritmo de treinamento do perceptron
Esta regra foi proposta por Rosemblatt (1959) e apresenta algumas mudanas em relao regra
de Hebb. A funo de ativao passou a permitir um limiar diferente de zero. Foi introduzido um
fator de aprendizado (0 <
-
25
1 Inicie aleatoriamente os pesos e bias (= 0, por simplicidade)
2 Repita
Para cada padro (entrada e sada desejada) faa
Calcule as sadas.
se Y D ento
Para cada conexo faa
Wij(novo)= Wij(antigo)+ * Xi * Dj
at que os pesos no sofram mais alteraes.
Exemplo:
Vamos aplicar o algoritmo de aprendizado do Perceptron para treinar uma rede neural que
simule o comportamento da funo lgica and ou (e).
Utilizaremos a seguinte funo de ativao, e = 0.2:
Entrada 1 Entrada 2 Sada
1 1 1
1 0 -1
0 1 -1
0 0 -1
Passo 1: Inicializar os pesos das sinapses com zero
Para cada par entrada sada, ajuste os pesos das sinapses.
0.2
(v)
v
1
-1
(v) = 1 se v >= 0.2 -1 se v < 0.2
0
Y
0
1
X1
X2
0
-
26
Primeiro par entrada sada.
X1 X2 D
1 1 1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 0*1 + 0*1 + 0*1 = 0
Y1 = -1
D1 = 1
W11(novo) = W11 (antigo) + * X1* D1
W11 (novo) = 0 + 1*1*(1) = 1
W21 (novo) = W21(antigo) + * X2* D1
W21 (novo) = 0 + 1*1*(1) = 1
b1(novo) = b1 (antigo) + * 1* D1
b1(novo) = 0 + 1*1*(1) = 1
Segundo par entrada sada.
X1 X2 D
1 0 -1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 1*1 + 1*0 + 1*1 = 2
Y1 = 1
D1 = -1
W11 (novo) = W11 (antigo) + * X1* D1
W11 (novo) = 1 + 1*1*(-1) = 0
1
Y
1
1
X1
X2
1
-
27
W21 (novo) = W21 (antigo) + * X2* D1
W21 (novo) = 1 + 1*0*(-1) = 0
b1 (novo) = b1 (antigo) + * 1* D1
b1 (novo) = 1 + 1*1*(-1) = 0
Terceiro par entrada sada.
X1 X2 D
0 1 -1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 0*0 + 1*0 + 1*0 = 0
Y1 = -1
D1 = -1
Y = D No h alterao.
Quarto par entrada sada.
X1 X2 D
0 0 -1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 0*0 + 0*0 + 0*-1 = 0
Y1 = -1
D1 = -1
Y igual a D neste caso na h alterao seguimos para o prximo passo. Cada passada do conjunto de
treinamento chamada de poca. Acabamos de mostrar a primeira poca.
0
Y
0
1
X1
X2
0
-
28
Segunda poca.
X1 X2 1 V Y D W1 W2 b
1 1 1 -1 -1 1 0 0 -1
1 0 1 1 1 -1 0 1 -1
0 1 1 0 0 -1 0 0 -2
0 0 1 -2 -1 -1 0 0 -2
Terceira poca.
X1 X2 1 V Y D W1 W2 b
1 1 1 -2 -1 1 1 1 -1
1 0 1 0 0 -1 0 1 -2
0 1 1 -1 -1 -1 0 1 -2
0 0 1 -2 -1 -1 0 1 -2
Quarta poca.
X1 X2 1 V Y D W1 W2 b
1 1 1 -1 -1 1 1 2 -1
1 0 1 0 0 -1 0 2 -2
0 1 1 0 0 -1 0 1 -3
0 0 1 -3 -1 -1 0 1 -3
Quinta poca.
X1 X2 1 V Y D W1 W2 b
1 1 1 -2 -1 1 1 2 -2
1 0 1 -1 -1 -1 1 2 -2
0 1 1 0 0 -1 1 1 -3
0 0 1 -3 -1 -1 1 1 -3
Sexta poca.
X1 X2 1 V Y D W1 W2 b
1 1 1 -1 -1 1 2 2 -2
1 0 1 0 0 -1 1 2 -2
0 1 1 -1 -1 -1 1 2 -3
0 0 1 -3 -1 -1 1 2 -3
-
29
Stima poca.
X1 X2 1 V Y D W1 W2 b
1 1 1 0 0 1 2 3 -2
1 0 1 0 0 -1 1 3 -3
0 1 1 0 0 -1 1 2 -4
0 0 1 -4 -1 -1 1 2 -4
Oitava poca.
X1 X2 1 V Y D W1 W2 b
1 1 1 -1 -1 1 2 3 -3
1 0 1 -1 -1 -1 2 3 -3
0 1 1 0 0 -1 2 2 -4
0 0 1 -4 -1 -1 2 2 -4
Nona poca.
X1 X2 1 V Y D W1 W2 b
1 1 1 0 0 1 3 3 -3
1 0 1 0 0 -1 2 3 -4
0 1 1 -1 -1 -1 2 3 -4
0 0 1 -4 -1 -1 2 3 -4
Dcima poca.
X1 X2 1 V Y D W1 W2 b
1 1 1 1 1 1 2 3 -4
1 0 1 -2 -1 -1 2 3 -4
0 1 1 -1 -1 -1 2 3 -4
0 0 1 -4 -1 -1 2 3 -4
Aps 10 pocas a rede neural se estabilizou, ou seja, seus pesos no sofrem mais alteraes.
Podemos testar e verificar se a rede aprendeu de fato a reconhecer os padres ensinados.
Conjunto de padres da rede
-
30
Quando apresentamos o par X1 = 1 e X2 = 1 a rede deve apresentar na sada o valor de sada 1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 1* 2 + 1* 3 + 1*(-4) = 1 Y1= 1 A rede acertou, produziu o valor de sada 1 como esperado. Quando apresentamos o par X1 = 1 e X2 = 0 a rede deve apresentar na sada o valor de sada -1. v1= X1* w11 + X2* w21 + 1*b1 v1 = 1* 2 + 0* 3 + 1*(-4) = -2 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado. Quando apresentamos o par X1 = 0 e X2 = 1 a rede deve apresentar na sada o valor de sada -1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 0* 2 + 1* 3 + 1*(-4) = -1 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado. Quando apresentamos o par X1 = 0 e X2 = 0 a rede deve apresentar na sada o valor de sada -1. v1 = X1* w11 + X2* w21 + 1*b1 v1 = 0* 2 + 0* 3 + 1*(-4) = -4 Y1= -1 A rede acertou, produziu o valor de sada -1 como esperado.
4.4 Exerccios Resolvidos
4.4.1) Considere o seguinte conjunto de treinamento.
a) Esboce o grfico de X1 por X2 e diga se o problema linearmente separvel.
X1 X2 Sada 1 1 1 1 -1 -1 -1 1 1 -1 -1 1
Entrada 1 Entrada 2 Sada
1 1 1
1 0 -1
0 1 -1
0 0 -1
-
31
Resoluo:
Sim, o problema linearmente separvel pois podemos separar as classes atravs de uma famlia de
retas.
b) Quantas camadas e quantos neurnios deve ter a rede neural utilizada para reconhecer os dados
acima?
Resoluo:
Uma camada e um neurnio pois o problema linearmente separvel e possui sada binria.
4.4.2) Considere o conjunto de treinamento abaixo. Treine a rede utilizando o algoritmo do perceptron
durante uma poca, considere = 0.5, inicialize os pesos e o bias com 0.1, utilize funo de ativao
limiar com igual a zero.
X1 X2 Sada 1 1 1 1 -1 -1 -1 1 -1 -1 -1 1
Resoluo:
Para cada par entrada sada, ajuste os pesos das sinapses.
Primeiro par entrada sada.
X1 X2 D 1 1 1
1
-1 (-1,-
(-1,1) (1,1)
X1
X2
1
-1
0.1
Y
0.1
1
X1
X2
0.1
-
32
v1 = X1* w11 + X2* w21 + 1*b1 v1 = 0.1*1 + 0.1*1 + 0.1*1 = 0.3 Y1 = 1 D1 = 1 Y1 igual a D1 no h alteraes.
Segundo par entrada sada.
X1 X2 D 1 -1 -1
v1 = X1* w11 + X2* w21 + 1*b1 v1 = 1*0.1+ (-1)*0.1 + 1*0.1 = 0.1 Y1 = 1 D1 = -1 W11(novo) = W11(antigo) + * X1* D1 W11(novo) = 0.1 + 0.5*1*(-1) = -0.4 W21(novo) = W21 (antigo) + * X2* D1 W21 (novo) = 0.1 + 0.5*(-1)*(-1) = 0.6 b1(novo) = b1(antigo) + * 1* d b1(novo) = 0.1 + 0.5*1*(-1) = - 0.4
Terceiro par entrada sada.
X1 X2 D -1 1 -1
v1 = X1* w11 + X2* w21 + 1*b1 v1 = (-1)*(-0.4) + 1*0.6 + 1*(-0.4) = 0.6
0.1
Y
0.1
1
X1
X2
0.1
0.6
Y
-0.4
1
X1
X2
-0.4
-
33
Y1 = 1 D1 = -1 W11(novo) = W11(antigo) + * X1* D1 W11(novo) = -0.4 + 0.5*(-1)*(-1) = 0.1 W21(novo) = W21(antigo) + * X2* D1 W21(novo) = 0.6 + 0.5*(1)*(-1 ) = 0.1 b1(novo) = b1(antigo) + * 1* D1 b1(novo) = (-0.4) + 0.5*1*(-1)= - 0.9
Quarto par entrada sada.
X1 X2 D -1 -1 1
v1 = X1* w11 + X2* w21 + 1*b1 v1 = (-1)*( 0.1) + (-1)*0.1 + 1*(-0..9) = -1.1 Y1 = -1 D1 = 1 W11(novo) = W11(antigo) + * X1* D1 W11(novo) = 0.1 + 0.5*(-1)*(1) = -0.4 W21(novo) = W21(antigo) + * X2* D1 W21(novo) = 0.1 + 0.5*(-1)*(1) = -0.4 b1(novo) = b1(antigo) + * 1* d1 b1(novo) = (-0.9) + 0.5*1*(1)= - 0.4
0.1
Y
0.1
1
X1
X2
-0.9
-0.4
Y
-0.4
1
X1
X2
-0.4
-
34
4.5 Exerccios Propostos
4.5.1) Considere uma rede neural com um neurnio treine esta rede para simular o comportamento da
funo OR ou OU algoritmo do perceptron, funo de ativao limiar com =1 , utilize duas pocas,
inicialize os pesos com 0.2. Utilize =0.5
X1 X2 D 1 1 1 1 -1 1 -1 1 1 -1 -1 -1
4.5.2) Considere a seguinte rede neural de uma camada, com duas entradas, trs neurnios na camada
de sada, funo de ativao limiar com = 0.2 e seja os seguintes parmetros:
Matriz de pesos W= Vetor de bias b=[-0.3, -0.5, 0.8] Vetor de entradas X=[1, 0.4] Vetor de sadas D=[1, 1 , -1] a) Construa a topologia da rede e calcule as sadas Y1, Y2 e Y3. b) Treine a rede durante uma poca com o algoritmo do perceptron. Use = 0.5
4.5.3) Sabese que os vetores (1, 1, 1, 1) e (1, 1, 1, 1) so membros de uma classe, enquanto os
vetores (1, 1, 1, 1) e (1, 1, 1, 1) no so. Apresente o treinamento de uma rede de Perceptron para
classificar os vetores e apresente os resultados obtidos. Utilize funo de ativao limiar com = 1,
Use = 0.5, treine por duas pocas. Diga se necessrio continuar o treinamento.
4.5.4) seja o conjunto de treinamento abaixo. Treine uma rede neural com o algoritmo do perceptron,
funo de ativao limiar com =1 , utilize duas pocas, inicialize os pesos com 0.5. Utilize =0.7.
Diga se o problema linearmente separvel.
X1 X2 D 1 1 -1 1 -1 -1 -1 1 -1 -1 -1 1
0.4 0.4 0.5
0.7 0.2 0.7
-
35
REDES ADALINE
5.1 Introduo
O modelo de RNA Adaline, Widrow e Hoff em 1960, inicialmente foi chamado de
(ADAptative LINear Element) e posteriormente de (ADAptative LInear NEuron). So RNA bem
simples possuem a arquitetura do neurnio idntica a do Perceptron, tendo como diferencial a regra de
aprendizado, neste caso chamada de regra delta.
Na sua forma mais simples formada por apenas um neurnio, com varias entradas uma sada e
um bias.
Porm da mesma forma que no Perceptron, a rede pode ter vrios neurnios recebendo as
mesmas entradas em uma nica camada de sada.
A funo de ativao utilizada pelas redes Adaline a mesma utilizada pelo perceptron, ou seja,
uma funo bipolar (1, -1). Podendo ser a funo limiar que conhecemos com ajustvel.
: :
Wn
Y1
W1
1
X1
Xn
b1
Wm1
W1n
: :
Y1 W11 1 X1
b1
: :
Wmn Yn
n Xm
bn
(v) = se v >=
-1 se v <
-
36
Podemos utilizar ainda a seguinte funo de ativao:
5.2 Algoritmo de Treinamento
A regra de aprendizado das redes adaline, conhecida por regra delta, o principio bsico
ajustar os pesos a partir do erro na sada da rede. O erro (tambm chamado custo) para um neurnio
dado pela seguinte equao:
Onde Dk a sada desejada (fornecida no padro p de entrada/sada) e Yk a sada realmente
obtida (fornecida pela rede quando apresentado o padro p). Padro p qualquer membro do conjunto
de treinamento.
A regra capaz de atualizar corretamente os pesos a cada iterao, com entradas binrias ou
contnuas.
A tendncia do erro a cada apresentao do conjunto de treinamento diminuir at chegar bem
prximo de zero. Quando trabalhamos com uma rede com mais de um neurnio na primeira camada,
precisamos calcular o erro na sada da rede e minimiza-lo. Portanto se apenas somarmos os erros de
cada neurnio i os erro negativos poderiam anular os erro positivos e dar uma falsa estabilizao da
rede. Para evitar este problema utilizaremos o erro quadrtico, a funo de erro dada a seguir:
[ ]=
=N
iii ydN
E1
2
21
Onde N o nmero total de neurnios na camada de sada. O fator unicamente para ajuste
do algoritmo de treinamento. Como o erro E funo da sada da rede Yk, e esta funo dos pesos wi,
podemos dizer que o erro E funo dos pesos da rede. Ou seja: E = f(w1, w2, ... ,wN).
Assim, a idia minimizar o erro ajustando os pesos, ou seja, encontrar o mnimo da funo de
erro. Este mnimo dado pela derivada parcial da funo de erro em relao a cada peso:
ek = Dk - Yk (equao 5.1)
f(v) = 1 se v >= v se < v < -1 se v
-
37
O gradiente da funo de erro o vetor composto pelas derivadas parciais da funo de erro em relao
a cada peso e aponta para a direo de crescimento da funo, da mesma forma que a derivada em uma
funo monovalorada f(x). Assim, a idia variar os pesos de forma a caminhar na direo contrria ao
gradiente, que a direo de maior diminuio do valor da funo de erro. Ou seja, queremos:
Onde uma constante de proporcionalidade, tambm chamada de taxa de treinamento.
Realizando as devidas manipulaes matemticas:
Wij (novo) = Wij(antigo) + * Xi * (Dj - Yj)
O algoritmo de treinamento pode ser assim resumido:
1 - Inicie os pesos e bias com valores aleatrios pequenos
2 - Repita
Para cada padro (entrada e sada desejada) faa
Calcule as sadas Y
Para cada conexo faa
Wij(novo) = Wij(antigo) + * Xi * (Dj - Yj)
b(novo) = b(antigo) + * 1* (Dj - Yj)
at que um erro pequeno tenha sido atingido
5.3 Aplicao
Vamos construir uma rede neural que simule o comportamento de uma porta lgica OR ou OU.
X1 X2 D
1 1 1
1 0 1
0 1 1
0 0 -1
-1 1
(v)
v
1
-1
Wi = - E Wi
vi = xi wi = Yi i=0
N
Wi = - Xi(di yi)
-
38
Vamos usar a seguinte funo de ativao.
Passo 1 Iniciar os pesos e o bias com valores aleatrios pequenos
Vamos inicializar os pesos com 0.1 inclusive o bias vamos usar =0.25
Primeiro par entrada sada.
X1 X2 D
1 1 1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 1*0.1 + 1*0.1 + 1*0.1 = 0.3
Y1 = 0.3
D1 = 1
e1 = D1-Y1 = 1 0.3 = 0.7
W11(novo) = W11(antigo) + X11* e1
W11(novo) = 0.1 + 0.25*1*0.7 = 0.28
W21(novo) = W21(antigo) + X2* e1
W21(novo) = 0.1 + 0.25*1*0.7 = 0.28
b1(novo) = b1(antigo) + * 1* e1
b1(novo) = 0.1 + 0.25*1*0.7 = 0.28
0.1
Y
0.1
1
X1
X2
0.1
(v) = 1 se v >= 1
v se -1
-
39
Segundo par entrada sada.
X1 X2 D
1 0 1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 1*0.28 + 0*0.28 + 1*0.28 = 0.46
Y1 = 0.46
D1 = 1
e1 = D1-Y1 = 1 0.46= 0.54
W11(novo) = W11(antigo) + X1* e1
W11(novo) = 0.28 + 0.25*1*0.54 = 0.41
W21(novo) = W21(antigo) + X2* e1
W21(novo) =0.28 + 0.25*0*0.54 = 0.28
b1(novo) = b1(antigo) + * 1* e1
b1(novo) =0.28 + 0.25*1*0.54 = 0.41
Terceiro par entrada sada.
X1 X2 D
0 1 1
0.28
Y
0.28
1
X1
X2
0.28
0.28
Y
0.41
1
X1
X2
0.41
-
40
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 0*0.41 + 1*0.28 + 1*0.41 = 0.69
Y1 = 0.69
D1 = 1
e1 = D1-Y1 = 1 0.69= 0.31
W11(novo) = W11(antigo) + X1* e1
W11(novo) = 0.41 + 0.25*0*0.31 = 0.41
W21(novo) = W21(antigo) + X2* e1
W21(novo) =0.28 + 0.25*1*0.31 = 0.36
b1(novo) = b1(antigo) + * 1* e1
b1 (novo) =0.41 + 0.25*1*0.31 = 0.49
Quarto par entrada sada.
X1 X2 D
0 0 -1
v1 = X1* w11 + X2* w21 + 1*b1
v1 = 0*0.41 + 0*0.36 + 1*0.49 = 0.49
Y1 = 0.49
D1 = 1
e1 = D1-Y1 = - 1 0.49= -1.49
W11 (novo) = W11(antigo) + X1* e1
W11 (novo) = 0.41 + 0.25*0*(-1.49) = 0.04
0.36
Y
0.41
1
X1
X2
0.49
-
41
W21(novo) = W21(antigo) + X2* e1
W21 novo) =0.36 + 0.25*1*(-1.49) =- 0.09
b1 (novo) = b1 (antigo) + * 1* e
b1 (novo) =0.49 + 0.25*1*(-1.49)= 0.12
5.4 Exerccios Resolvidos
5.4.1) Considere a seguinte rede neural de uma camada, com duas entradas, trs neurnios na camada
de sada, funo de ativao limiar com = 0.2 e seja os seguintes parmetros:
Matriz de pesos W=
Vetor de bias b=[-0.3, -0.5, 0.8]
Vetor de entradas X=[1, 0.4]
Vetor de sadas D=[1, 1 , -1]
c) Treine a rede durante uma poca utilizando regra delta com a seguinte funo de ativao e = 0.6
Resoluo:
e1 = D1 - Y1= 1-1=0 No h alterao
W11(novo) = 0.3
e2 = D2 -Y2 = 1-(-1)=2
W12(novo) = W12(antigo) +
X1* e2
W12(novo) = 0.4 + (0.6)*(1)*(2) = 1.6
e3 = D3 -Y3 = -1-(1)=-2
W13 (novo) = W13 (antigo) +
X1* e3
W13(novo) = 0.5 + (0.6)*(1)*(-2) = -0.7
e1 = Y1 D1 = 1-1=0 No h alterao W21(novo) = 0.6
e2 = Y2 D2 = 1-(-1)=2
W22 (novo) = W22 (antigo) +
X2* e2
W22(novo) = 0.2 + (0.6)*(0.4)*(2) = 0.68
e3 = D3 - Y3 = -1-(1)=-2
W23 (novo) = W23 (antigo) +
X2* e3
W23(novo) = 0.7 + (0.6)*(0.4)*(-2) = 0.22
-0.09
Y
0.04
1
X1
X2
0.12
0.3 0.4 0.5
0.6 0.2 0.7
f(v) = 1 se v >=0.2
v se 0.2 < v
-
42
5.5 Exerccios Propostos
5.5.1) Considere uma rede do tipo Adaline treine-a para verificar se uma pessoa est doente ou no,
para isso considere as seguintes entradas:
Nome Febre Enjo Dor Doente? Joo S S N S
Maria N S N N Pedro N S S S Carlos S N S S Joana N N N N
=1;
Pesos iniciais 0.2
pocas = 2
Aps as duas pocas verifique se necessrio parar o treinamento.
Faa um grfico da evoluo do erro durante o treinamento.
5.5.2) Considere os seguintes parmetros da RNA, treine duas pocas, utilizando a regra delta.
Matriz de pesos W= Vetor de bias b=[0.5, 0.1, 0.4]
Vetor de entradas X=[1, 0.5]
Vetor de sadas D = [1, 1, 1]
=0.3
Funo de ativao
5.5.3) Considere a seguinte rede neural de uma camada, com trs entradas, dois neurnios na camada de sada, funo de ativao limiar com = 0.5 e seja os seguintes parmetros:
Matriz de pesos W= Vetor de bias b=[-0.2, 0.1]
Vetor de entradas X=[1, 0.5, 0.3]
Vetor de sadas D=[1, -1]
=0.7
Treine duas pocas, utilizando a regra delta.
0.1 0.4 0.5
0.2 -0.3 0.6
f(v) = 1 se v >=0.4
-1 se v< 0.4
0.3 0.2 0.4 0.1 0.5 0.5
-
43
BACKPROPAGATION Este um algoritmo de treinamento supervisionado para redes do tipo feedforward que tenham
neurnios com qualquer funo de ativao que seja derivvel. Este algoritmo permite modificar aos
poucos os valores das sinapses de modo a otimizar a sada da rede.
Seja uma entrada xk em uma rede, como a representada na figura a seguir - na qual a sinapse wij se
apresenta em destaque que produz sinais internos vjk e vik e uma sada ky~
. O caminho glik o
ganho para pequenos sinais da sada da sinapse wij sada ly~
.
.
.
.
.
.
.
wijvj
ui
g1ik
gMik
k1y
~
kMy
~
k1x
kNx
Figura Sinal Feedforward
Se o erro encontrado for retropropagado (derivado do nome backpropagation), isto , propagado
a partir da camada de sada at a camada de entrada, ela tentar estabelecer o quanto cada sinapse
contribuiu para o erro, e este ser usado para ajust-las.
6.1 - Correo de Pesos
A correo dos pesos em uma rede feedforward feita atravs de um ciclo onde os pares
entrada-sada do conjunto de treinamento so apresentados no processo de aprendizagem. Podem ser
executados das seguintes maneiras principais:
a) Batelada: Neste processo, todas as P entradas (ou um nmero delas estatisticamente
representativos) so apresentadas rede; o seu erro mdio calculado e somente aps esse clculo
dado o passo para a correo dos pesos (equao (1)), o que torna este processo muito lento e, por
isso, pouco utilizado.
ijanteriorij
novoij www += (1)
-
44
b) Regra Delta Modificada: Para acelerar o processo anterior, reduz-se o nmero de pares
entrada-sada usados para tomar uma mdia. No caso extremo, a mdia aproximada pelo valor
instantneo, e a cada par (xk, yk) a sinapse wij atualizada pela equao (2):
ki
kjij v2 w = (2)
Isto corresponde a tomar o gradiente do erro quadrtico instantneo, para a entrada k, como uma
estimativa do gradiente do erro mdio quadrtico. Se for suficientemente pequeno o valor de wij
permanece razoavelmente constante durante vrios passos de treinamento. A figura a seguir representa
esquematicamente a maneira de se calcular a Regra Delta.
Figura Regra Delta
Este processo equivalente ao de Batelada, pois a soma dos diversos wij equivalente ao
obtido pela mdia dos gradientes do erro quadrtico instantneo. A vantagem deste processo no
necessitar de memria para extrair a mdia dos dados e o valor de no precisa ser to pequeno. A
desvantagem que a convergncia pode ser mais oscilatria do que o processo Batelada.
c) Momento: A atualizao feita passo a passo como na Regra Delta, mas o valor de wij
uma ponderao entre o calculado no passo atual e os calculados anteriormente, como no
Batelada - equao (3).
( ) calculadoijanteriorijij w 1w w += (3)
-
45
Tipicamente = 0,9. Este um processo intermedirio entre a Regra Delta Modificada e a
Batelada, que tenta reunir a rapidez e simplicidade do primeiro, com a maior estabilidade na
convergncia do segundo.
6.2 - Algoritmo Backpropagation
Dado um conjunto de treinamento com L pares E/S, uma rede de M camadas treinada pelo
seguinte algoritmo:
1. As variveis de E/S so normalizadas, fazendo-se uma transformao algbrica para que variem no
intervalo 1 e 1;
2. Escolhe-se para inicializar um conjunto de parmetros Wm e bm, para m = 1, ...M Este valor
geralmente varia entre 0,1 e 0,1;
3. Escolhe-se uma taxa de aprendizado . Se este valor for grande, a rede pode divergir e, se for
pequeno, pode tornar o processo muito lento. Um valor tpico fica entre 0,05 e 0,1. Uma
possibilidade iniciar com uma valor maior no comeo, para acelerar a convergncia, e menor ao
final, para garantir um ajuste fino;
4. O nmero de camadas inicialmente definido como 1. Se o problema no chegar a uma soluo,
opta-se por duas camadas;
5. Para a camada de sada, considera-se uma regra: se a sada for contnua, usa-se a funo linear, e, se
a sada for lgica, a funo tangente hiperblica;
6. Estabelece-se algum critrio de parada, seja este um nmero mximo de iteraes ou que o valor
esperado atinja um limite mximo;
7. Calculam-se os erros de sada, da camada de sada e das camadas subseqentes;
8. Atualizam-se as sinapses mediante o ganho obtido;
9. Recalcula-se o vetor sinapse e retorna passo 7 at satisfazer o critrio de parada.
6.3 - Problemas de Treinamento
1 - Mnimos Locais
O treinamento um processo de otimizao por gradiente em uma superfcie, como a da figura
3, apresenta problemas inerentes a este processo. Um dos problemas que, como a funo custo no
quadrtica, podem ocorrer mnimos locais.
-
46
Figura Exemplo de Superfcie de Erro
Nesta superfcie existem vales com menor profundidade que outros; estes so os mnimos
locais, e no representam a melhor soluo. Porm o algoritmo backpropagation pode permitir a
entrada em um mnimo local, no permitindo que se encontre a melhor soluo do problema mapeado
pela rede. Para resolver este problema, pode-se usar um tipo de treinamento chamado simulated
annealing, que muito mais complexo e lento que o mtodo convencional do gradiente descendente.
Mnimos locais
Mnimo global
Figura a - Mnimos Locais de uma Funo
Figura b - Mnimos Locais de uma Funo
2 - Paralisia
-
47
A forma da funo F0(w) depende da funo a minimizar. As superfcies de erros sigmoidais
podem apresentar regies com pequenos declives, isto , um gradiente de F0 muito pequeno. Na figura,
se w for deslocado para uma regio de gradiente pequeno, o treinamento fica praticamente paralisado,
pois como wij proporcional ao gradiente ficar muito pequeno.
F0 (w)
Wij
Figura Funo Erro
3 - Passo de Treinamento
dado pelo tamanho do passo () que o algoritmo utiliza para caminhar na superfcie.
Valores muito pequenos de tornam o treinamento longo e os grandes podem provocar divergncia.
Para a maioria dos casos, se xk tem suas componentes normalizadas (|xik| 1, i, k) e o maior nmero
de sinapses que alimenta um neurnio Nmax o, treinamento converge se a equao (4) for verdadeira.
2maxN
1 (4)
Isto considerado um limite muito conservador; tipicamente escolhido no entorno de 0,1.
Outro problema que, se o erro mnimo no fim do treinamento ainda for elevado os acrscimos
s sinapses sero grandes e ele oscilar em torno de um valor timo. Isto pode ser contornado iniciando
o treinamento com um valor de maior e diminu-lo progressivamente.
4 - Pesos Iniciais
Os valores iniciais das sinapses devem ser pequenos, para evitar a paralisia j nos primeiros
passos de treinamento, devido a valores elevados de ui. Portanto, se um neurnio i alimentado por N
sinapses, o valor inicial de ui pode ser limitado a |ui| 1 se cada sinapse do neurnio i for limitada a
|wij| 1/N.
-
48
5 - Testes realizados pela rede
Uma RNA realiza o tanto treinamento como o teste com os pares entrada-sada (xk, yk)
disponveis. Estes so divididos em dois conjuntos: o de treinamento e o de teste. A rede treinada com
o conjunto de pares de treinamento, e a performance obtida medida com o conjunto de pares de teste.
Isto necessrio porque um treinamento prolongado demais (overtraining) leva a rede a uma super-
especializao sobretudo se houver poucos pares entrada-sada disponveis para o.
A figura apresenta a evoluo tpica do erro medido no conjunto de treinamento (linha
tracejada) e no conjunto de teste (linha cheia) em funo do nmero de passos de treinamento. claro
que o treinamento deve ser parado em n = nc.
F0
nnc
TESTE
TREINAMENTO
Figura Erro no Treinamento
-
49
ANEXO 1
Viso Geral da Computao Natural
-
50
ANEXO 2 RNAs - Desenvolvimento de Aplicaes
Coleta de dados e separao em conjuntos
Os dois primeiros passos do processo de desenvolvimento de RNAs so a coleta de dados
relativos ao problema e a sua separao em um conjunto de treinamento e outro de testes. Esta tarefa
requer uma anlise cuidadosa sobre o problema para minimizar ambigidades e erros nos dados. Alm
disso, os dados coletados devem ser significativos e cobrir amplamente o domnio do problema; no
devem cobrir apenas as operaes normais ou rotineiras, mas tambm as excees e as condies
limites do domnio do problema.
Normalmente, os dados coletados so separados em duas categorias: dados de treinamento, que
sero utilizados para o treinamento da rede e dados de teste, que sero utilizados para verificar sua
performance sob condies reais de utilizao. Alm dessa diviso, pode-se usar tambm uma
subdiviso do conjunto de treinamento, criando um conjunto de validao, utilizado para verificar a
eficincia da rede quanto a sua capacidade de generalizao durante o treinamento.
Depois de determinados estes conjuntos, eles so, geralmente, colocados em ordem aleatria
para preveno de tendncias associadas ordem de apresentao dos dados. Alm disso, pode ser
necessrio pr-processar estes dados, atravs de normalizaes, escalonamentos e converses de
formato para torn-los mais apropriados sua utilizao na rede.
Configurao da rede
O terceiro passo a definio da configurao da rede, que pode ser dividido em trs etapas:
1) Seleo do paradigma neural apropriado aplicao.
2) Determinao da topologia da rede a ser utilizada - o nmero de camadas, o nmero de unidades em
cada camada, etc.
3) Determinao de parmetros do algoritmo de treinamento e funes de ativao. Este passo tem um
grande impacto na performance do sistema resultante.
Existem metodologias, "dicas" e "truques" na conduo destas tarefas - normalmente de forma
emprica. A definio da configurao de redes neurais ainda considerada uma arte, que requer
grande experincia dos projetistas.
-
51
Treinamento
O quarto passo o treinamento da rede, seguindo o algoritmo escolhido,ajustando os pesos das
conexes. importante considerar, nesta fase, alguns aspectos tais como a inicializao da rede, o
modo de treinamento e o tempo de treinamento.
Uma boa escolha dos valores iniciais dos pesos da rede pode diminuir o tempo necessrio para o
treinamento. Normalmente, os valores iniciais dos pesos da rede so nmeros aleatrios uniformemente
distribudos, em um intervalo definido.
Quanto ao tempo de treinamento, vrios fatores podem influenciar a sua durao, porm sempre
ser necessrio utilizar algum critrio de parada. O critrio de parada do algoritmo backpropagation
no bem definido, sendo geralmente utilizado um nmero mximo de ciclos. Mas, devem ser
consideradas a taxa de erro mdio por ciclo e sua capacidade de generalizao. Pode ocorrer que em
um determinado instante do treinamento a generalizao comece a degenerar, causando o problema de
overtraining, ou seja, a rede se especializa no conjunto de dados do treinamento e perde a capacidade
de generalizao.
O treinamento deve ser interrompido quando a rede apresentar uma boa capacidade de
generalizao e quando a taxa de erro for menor que o erro admissvel. Assim, deve-se encontrar um
ponto timo de parada com erro mnimo e capacidade de generalizao mxima.
Teste
-
52
O quinto passo o teste da rede. Durante esta fase o conjunto de teste utilizado para
determinar a performance da rede com dados que no foram previamente utilizados. Esta performance
medida uma boa indicao de sua performance real.
Devem ser considerados ainda outros testes como anlise do comportamento da rede utilizando
entradas especiais e anlise dos pesos atuais da rede, pois se existirem valores muito pequenos, as
conexes associadas podem ser consideradas insignificantes e assim serem eliminadas (prunning). De
modo inverso, valores substantivamente maiores que os outros poderiam indicar que houve over-
training da rede.
Integrao
Finalmente, com a rede treinada e avaliada, ela pode ser integrada em um sistema do ambiente
operacional da aplicao. Para maior eficincia da soluo, este sistema dever conter facilidades de
utilizao como interface conveniente e facilidades de aquisio de dados atravs de planilhas
eletrnicas, interfaces com unidades de processamento de sinais, ou arquivos padronizados. Uma boa
documentao do sistema e o treinamento de usurios so necessrios para o sucesso do mesmo. Alm
disso, o sistema deve periodicamente monitorar sua performance e fazer a manuteno da rede quando
for necessrio ou indicar aos projetistas a necessidade de retreinamento. Outras melhorias podero
ainda ser sugeridas quando os usurios forem se tornando mais familiarizados com o sistema, estas
sugestes podero ser muito teis em novas verses ou em novos produtos.
-
53
ANEXO 3
Passos do Algoritmo Backpropagation
11 PPAASSSSOO:: Calcular, no sentido feedforward, o valor que entra em cada neurnio, utilizando a
frmula:
=
+=n
1jjj
cij
ci bxwu
onde:
uic a entrada que chega no neurnio i da camada c;
wij peso sinptico que liga o neurnio i (camada anterior) ao neurnio j (camada
posterior);
xj neurnio i (camada anterior);
bj bias que est interligado ao neurnio j.
22 PPAASSSSOO:: Calcular o que sai de cada neurnio. A sada depende da funo de ativao:
Linear vj = uj;
Tangente hiperblica vj = tgh uj uj;
Degrau vj = 1, se uj > 0 e vj = 0, se uj
-
54
Para neurnio tipo linear e degrau gi = 1
Para neurnio tipo tgh gi = 1 vi2.
66 PPAASSSSOO:: Calcular o erro que ser retropropagado, considerando o ganho dos neurnios, usando a
frmula:
i = gi * i
77 PPAASSSSOO:: Retropropagar o erro, utilizando o passo de treinamento , a fim de calcular a variao
das sinapses:
wij = 2 vi i
88 PPAASSSSOO:: Atualizar as sinapses:
winovo = wi
anterior + wij
EXEMPLO:
Na rede, os neurnios 1, 2, 3 e 5 so do tipo tangente hiperblica e o neurnio 4 do tipo linear.
O treinamento do tipo Regra Delta com passo = 0,1. apresentado o par X = {0.1, 0.7} e Y = {
0.2, 1}.
Quais os novos valores das sinapses aps o primeiro passo de treinamento?
1
X1
X2
Y1
Y2
-.1
.3 .1
.2
-.1
.1
.2 .3
.9
.1
.5
-.1
.2
-.1 1.1
2
3
4
5
-
55
=
+=n
jjj
cij
ci bxwu
1
1A CAMADA
u1 = w11 x1 + w12 x2 + b1 = .2 * .1 + .2 * .7 + 1 * (-.1) = .06
u2 = .1 * (-.1) + .7 * .3 + 1 * .3 = .5
u3 = .1 * .1 + .7 * .9 + .1 * 1 = .74
vj = tgh uj uj
v1 = .06 v2 = .5 v3 = .74
2A CAMADA
u4 = v1 w14 + v2 + w24 + v3 + w34 = .06 * .1 + .5 * (-.1) + .74 * (-.1) = -.078
u5 = .06 * .5 + .5 * .2 + .74 * 1.1 = .944
vj = tgh uj uj v4 = -.078 = y1
vj = uj v5 = .944 = y2
CLCULO DO ERRO realobtidoi yy = 1 = -0.078 0.2 = - 0.278
2 = .93 - 1.0 = - .07
CLCULO DO GANHO
g1 = 1 (.06)2 = .9964
g2 = 1-(.5)2 = .75
g3 = 1-(.74)2 = .4524
g4 = 1 (linear)
g5 = 1 - (-.93)2 = .1351
CALCULO DO i = gi * i
4 = g4 * 4 = 1 * (-.278) = - .278
5 = g5 * 2 = .1351 * .07 = .009
Neurnio linear gi = 1
Neurnio tgh gi = 1 vi2
-
56
1 = g1 * (w14 * 4 + w15 * 5) = .9964 * (.1 *(-.278) + .5 * .009) = -.02322
2 = g2 * (w24 * 4 + w25 * 5) = .75 * (-.1 * (-.278) + .2 * .009) = .0222
3 = g3 * (w34 * 4 + w35 * 5) = .4524 * (-.1 * (-.278) + 1.1 * .009) = .01706
CALCULO DA VARIAO DO PESO wij = 2 * * vi * i
Obs: Foram escolhidos 3 pesos, aleatoriamente. O clculo deve ser feito para todos os pesos da RNA.
w14 = 2 * * v1 * 4 = 2 * .1 * (.06) * (-.278) = - .0033
w15 = 2 * * v1 * 5 = 2 * .1 * (.06) * .009 = .00011
wx1,3 = 2 * * x1 * 3 = 2 * .1 * 0,1 * (.01706) = .00034
ATUALIZAO DOS PESOS winovo = wianterior + wij
w41 = .1 + (-.0033) = .0967
w51 = .5 + (.00011) = .50011
w3 x1 = .1 + .00034 = .10034
-
57
ANEXO 4
Evoluo das Principais RNAs
-
58
ANEXO 5
reas de Aplicao de RNAs
TABELA: REAS DE APLICAO POR TIPOS DE REDES
APLICAO DIRETA,
MULTICAMADA (RETROPROPAGAO)
HOPFIELD
BOLTZMANN
SOM
(KOHONEN)
Classificao * * * * Processamento de Imagem * Tomada de deciso * * * Otimizao * * * TABELA: REAS DE APLICAO DE ALGUNS TIPOS DE RNAS, PELA SUA ESTRUTURA
ESTRUTURA UMA CAMADA CONEXES LATERAIS
MAPA DE VETOR TOPOLGICO
DUAS CAMADAS DIRETAS E REVERSAS
MLTIPLAS CAMADAS, DIRETAS
Tipo de rede Hopfield SOM
(Kohonen) ART MLPs
Rede de Boltzmann
rea de aplicao
Auto associao
Auto-associao Hetero-associao
Otimizao
Reconhecimento de padres
Reconhecimento de padres
Otimizao Otimizao Reconhecimento
de padres
Compresso de dados
Compresso de dados Filtros
-
59
ANEXO 6
(v)
=
1
se v
>=
INTRODUO A REDES NEURAIS41.1 - Histrico de Redes Neurais41.2 Aplicaes51.3 - Inspirao biolgica61.4 O modelo1.1 - Histrico de Redes Neurais1.2 Aplicaes1.3 - Inspirao biolgica1.4 O modelo de um neurnio artificial1.5 Tipos de funo de ativao
Arquiteturas e Aprendizados2.1 Introduo2.2 - Principais arquiteturas de redes neurais2.3 Tipos de Aprendizado
Regra de Hebb3.1 Introduo3.2 Algoritmo de Hebb3.3 Exerccios Propostos
Redes Perceptron4.1 Separabilidade Linear4.2 Redes Perceptrons4.3 Algoritmo de treinamento do perceptron4.4 Exerccios Resolvidos4.5 Exerccios Propostos
Redes Adaline5.1 Introduo5.2 Algoritmo de Treinamento5.3 Aplicao5.4 Exerccios Resolvidos5.5 Exerccios Propostos
Backpropagation6.1 - Correo de Pesos6.2 - Algoritmo Backpropagation6.3 - Problemas de Treinamento
Anexo 1Anexo 3Anexo 4Anexo 5Anexo 6