Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ARTIFICIAIS
3
4
5
6
8
ARQUITETURAS E APRENDIZADOS
11
2.1 INTRODUO
2.2 - PRINCIPAIS ARQUITETURAS DE REDES NEURAIS
2.3 TIPOS DE APRENDIZADO
11
11
13
REGRA DE HEBB
16
3.1 INTRODUO
3.2 ALGORITMO DE HEBB
3.3 EXERCCIOS PROPOSTOS
16
16
21
REDES PERCEPTRON
22
22
23
24
30
34
REDES ADALINE
35
5.1 INTRODUO
5.2 ALGORITMO DE TREINAMENTO
5.3 APLICAO
5.4 EXERCCIOS RESOLVIDOS
5.5 EXERCCIOS PROPOSTOS
35
36
37
41
42
BACKPROPAGATION
43
43
45
45
ANEXO 1
49
ANEXO 2
49
ANEXO 3
53
ANEXO 4
57
ANEXO 5
58
ANEXO 6
59
Muitos outros artigos e livros surgiram desde ento, porm, por um longo perodo de tempo,
pouco resultado foi obtido.
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 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.
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
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.
John Hopfield, renomado fsico de reputao mundial, se interessou pela neuro computao, e
incentivou e difundiu os princpios da neuro computao entre importantes
cientistas,
As redes neurais artificiais so aplicadas resoluo de vrios problemas, a seguir mostramos suas
principais aplicaes.
1.2 Aplicaes
Reconhecimento de padres
Extrao de caractersticas
Classificao
Categorizao (Clusterizaes)
Estimativa e previso
Otimizao
Aproximao de funes.
O axnio constitudo de uma fibra tubular que pode alcanar at alguns metros, e
responsvel por transmitir os estmulos para outras clulas.
X1
X2
XN
w1i
w2i
Yi
wNi
Figura: Modelo inicial do Neurnio Artificial
6
Pesos associados a cada entrada W1, W2,..., WN. Chamamos cada peso de sinapse.
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.
bi
w1i
w2i
X1
X2
vi
(v)
Yi
wNi
XN
vi = wi xi
Yi = (vi)
i =0
Podemos considerar o bias como um peso de uma entrada X0 que vale +1. Sendo assim
podemos simplificar as formulas do neurnio.
N
vi = wi xi + bi
Yi = (vi)
i =1
b
vi
W1i
X1
(v)
Yi
wNj
XN
Funo de Limiar
(v) =
1 se v >= 0
0 se v < 0
Funo Rampa
(v) =
1 se v >=
v se - <v <
0 se v <= -
Funo sigmoide
(v) = tanh(v)
Existem duas condies necessarias para que uma funo matemtica possa ser usada como
funo de ativao em uma rede neural artificial:
Exemplo 1: Seja a seguinte funo matematica f(x) = 2x, est funo pode ser usada como funo de
ativao ?
(x)
Resoluo:
A funo f(x) = 2x satisfaz a primeira condio pois continua, porm no satisfaz a segunda:
lim f(x) = +
lim f(x) = -
x -
x+
Exemplo 2: Seja a seguinte funo matemtica representada pelo grfico a seguir, est funo pode ser
usada como funo de ativao ?
Resoluo:
f(x
2
x
-2
9
Sim, a funo pode ser usada como funo de ativao de uma rede neural, pois:
1) A funo continua.
2)
lim f(x) = 2
lim f(x) = -2
x+
x -
Exerccios Propostos
1.6.1) Dadas as funes matemticas abaixo, diga qual ou quais podem ser usadas como funo de
ativao e justifique.
f(v
a) f(x) = 1/x
b) f(x) = ex
f(x)
c) f(x) = x2
f(x)
10
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:
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.
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
12
Figura A
Figura C
Figura B
Figura D
Figura E
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.
Meio
Supervisor
Resposta
Desejada
Sistema de
Aprendizado
Resposta
Atual
Sinal de Erro
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.
14
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.
Vetor descrevendo o
estado do meio
Sistema de
Aprendizado
Meio
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.
Vetor de
Entrada
Meio
Reforo
Primrio
Crtico
Heurstica de
Reforo
Aes
Sistema de
Aprendizado
15
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)
Yi
Yj
j
Wij
(v)
1
(v) =
1 se v >= 0
-1 se v < 0
v
-1
Entrada 1 Entrada 2
Sada
-1
-1
-1
16
X1
b1
W11
Y1
1
W21
X2
Passo 1: Inicializar os pesos das sinapses com zero
0
X1
1
0
X2
X1
X2
v = xi wi
i=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
17
X1
1
1
X2
X2
-1
1
X2
X2
-1
18
X1
1
2
X2
X2
-1
2
X2
19
-3
1
2
X2
Sada
-1
-1
-1
Quando apresentamos o par X1 = 1 e X2 = 0 a rede deve apresentar na sada o valor de sada -1.
Quando apresentamos o par X1 = 0 e X2 = 1 a rede deve apresentar na sada o valor de sada -1.
Quando apresentamos o par X1 = 0 e X2 = 0 a rede deve apresentar na sada o valor de sada -1.
20
X2
1
-1
1
-1
Sada
1
-1
1
1
3.3.2) Repita o exerccio anterior com os mesmos dados utilizando a seguinte funo de ativao:
f(v)
f(v) = 1 se v >=1
v se 1 < v <1
-1 se v<=-1
-1
-1
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:
0.2
0.3
0.7 - 0.1
0.4
f(v) =
1 se v >=0
-1 se v < 0
21
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
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
Neste caso no conseguimos traar uma reta e separar as classes diferentes do problema
22
W11
b1
Y1
W21
X2
O conjunto de equaes da rede dado por:
N
vi = i=0
xi wij
Yi = (vi)
A funo de ativao proposta originalmente por McCullock e Pitts, uma funo limiar:
(v) =
1 se v >= 0
0 se v < 0
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.
(v) =
1 se v >= 0
0 se v < 0
23
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
X1
Classe 1
Classe 0
-0.5
1
X2
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.
24
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:
(v)
(v) =
0.2
1 se v >= 0.2
-1 se v < 0.2
-1
Entrada 1 Entrada 2
Sada
-1
-1
-1
X1
0
X2
Para cada par entrada sada, ajuste os pesos das sinapses.
25
X2
1
X2
X2
-1
26
X1
0
X2
X2
-1
X1
X2
-1
27
Segunda poca.
X1
X2
W1
W2
-1
-1
-1
-1
-1
-1
-2
-2
-1
-1
-2
Terceira poca.
X1
X2
W1
W2
-2
-1
-1
-1
-2
-1
-1
-1
-2
-2
-1
-1
-2
Quarta poca.
X1
X2
W1
W2
-1
-1
-1
-1
-2
-1
-3
-3
-1
-1
-3
Quinta poca.
X1
X2
W1
W2
-2
-1
-2
-1
-1
-1
-2
-1
-3
-3
-1
-1
-3
Sexta poca.
X1
X2
W1
W2
-1
-1
-2
-1
-2
-1
-1
-1
-3
-3
-1
-1
-3
28
Stima poca.
X1
X2
W1
W2
-2
-1
-3
-1
-4
-4
-1
-1
-4
Oitava poca.
X1
X2
W1
W2
-1
-1
-3
-1
-1
-1
-3
-1
-4
-4
-1
-1
-4
Nona poca.
X1
X2
W1
W2
-3
-1
-4
-1
-1
-1
-4
-4
-1
-1
-4
Dcima poca.
X1
X2
W1
W2
-4
-2
-1
-1
-4
-1
-1
-1
-4
-4
-1
-1
-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.
29
Entrada 1 Entrada 2
Sada
-1
-1
-1
Quando apresentamos o par X1 = 1 e X2 = 0 a rede deve apresentar na sada o valor de sada -1.
Quando apresentamos o par X1 = 0 e X2 = 1 a rede deve apresentar na sada o valor de sada -1.
Quando apresentamos o par X1 = 0 e X2 = 0 a rede deve apresentar na sada o valor de sada -1.
X2
1
-1
1
-1
Sada
1
-1
1
1
30
Resoluo:
X2
1
(-1,1)
(1,1)
-1
(-1,-
X1
-1
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
1
1
-1
-1
Resoluo:
X2
1
-1
1
-1
Sada
1
-1
-1
1
X1
0.1
0.1
0.1
X2
X2
1
D
1
31
0.1
0.1
1
0.1
X2
X2
-1
D
-1
-0.4
-0.4
0.6
X2
X2
1
D
-1
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
X1
-0.9
0.1
1
0.1
X2
X2
-1
D
1
-0.4
-0.4
-0.4
X2
33
X2
1
-1
1
-1
D
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:
0.2
0.5
0.7
X2
1
-1
1
-1
D
-1
-1
-1
1
34
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.
X1
W1
:
:
b1
Y1
1
Wn
Xn
Porm da mesma forma que no Perceptron, a rede pode ter vrios neurnios recebendo as
mesmas entradas em uma nica camada de sada.
b1
W11
X1
Y1
W1n
:
:
:
:
bn
Wm1
Xm
Wmn
Yn
n
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.
(v) =
se v >=
-1 se v <
35
ek = Dk - Yk
(equao 5.1)
1
E=
2N
[d
yi ]
i =1
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:
36
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:
Wi = - E
Wi
Onde uma constante de proporcionalidade, tambm chamada de taxa de treinamento.
Realizando as devidas manipulaes matemticas:
N
vi = xi wi = Yi
Wi = - Xi(di yi)
i=0
5.3 Aplicao
Vamos construir uma rede neural que simule o comportamento de uma porta lgica OR ou OU.
X1
X2
-1
(v)
-1
1
-1
v
37
1 se v >= 1
v se -1<v < 1
-1 se v<=-1
0.1
0.1
1
0.1
X2
X1
X2
0.28
0.28
X1
1
0.28
X2
X2
0.41
0.41
Y
1
0.28
X2
X2
39
0.49
0.41
1
0.36
X2
X2
-1
40
0.12
0.04
-0.09
X2
Matriz de pesos W=
0.3 0.4
0.5
0.6 0.2
0.7
c) Treine a rede durante uma poca utilizando regra delta com a seguinte funo de ativao e = 0.6
f(v) =
1 se v >=0.2
v se 0.2 < v <0.2
-1 se v<=-0.2
Resoluo:
e2 = D2 -Y2 = 1-(-1)=2
e1 = D1 - Y1= 1-1=0 No h alterao
W11(novo) = 0.3
e1 = Y1 D1 = 1-1=0 No h alterao
W21(novo) = 0.6
e3 = D3 -Y3 = -1-(1)=-2
e2 = Y2 D2 = 1-(-1)=2
e3 = D3 - Y3 = -1-(1)=-2
41
Febre
S
N
N
S
N
Enjo
S
S
S
N
N
Dor
N
N
S
S
N
Doente?
S
N
S
S
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=
=0.3
Funo de ativao
f(v) = 1 se v >=0.4
-1 se v< 0.4
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:
0.3 0.2
Matriz de pesos W= 0.4 0.1
0.5 0.5
=0.7
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
~y
ganho para pequenos sinais da sada da sinapse wij sada l .
~y k
. O caminho glik o
~y k
1
x1
.
.
.
vj
g1ik
wij
ui
gMik
.
.
.
~y k
M
x kN
Figura Sinal Feedforward
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.
w ijnovo = w ijanterior + w ij
(1)
43
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):
k
w ij = 2 v j i
(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.
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
w ij = w ij
calculado
+ (1 ) w ij
(3)
44
45
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
2 - Paralisia
46
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.
1
2
N max
(4)
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.
47
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 superespecializao 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
TESTE
TREINAMENTO
nc
48
ANEXO 1
Viso Geral da Computao Natural
49
ANEXO 2
RNAs - Desenvolvimento de Aplicaes
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.
50
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
51
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 overtraining 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.
52
ANEXO 3
Passos do Algoritmo Backpropagation
1 PASSO:
frmula:
u ic
= w ijc x j + b j
j=1
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.
2 PASSO:
3 PASSO:
Os passos 1 e 2 devem ser repetidos para todas as camadas ocultas (caso existam) e para
a camada de sada.
4 PASSO:
i = y obtido y real
onde i erro associado diferena entre a sada obtida pela rede e a sada real.
5 PASSO:
Calcular o ganho para pequenos sinais de sada gi dos neurnios, da seguinte maneira:
53
6 PASSO:
Calcular o erro que ser retropropagado, considerando o ganho dos neurnios, usando a
frmula:
i = gi * i
7 PASSO:
das sinapses:
wij = 2 vi i
8 PASSO:
Atualizar as sinapses:
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
.1
.3
1
X1
.1
.2
.5
-.1
Y1
-.1
.1
2
.2
X2
-.1
.3
.9
.2
Y2
1.1
3
54
u = wijc x j + b j
c
i
j =1
1A CAMADA
v2 = .5
v3 = .74
2A CAMADA
i = yobtido y real
g1 = 1 (.06)2 = .9964
g2 = 1-(.5)2 = .75
Neurnio linear gi = 1
g3 = 1-(.74) = .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
55
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
56
ANEXO 4
Evoluo das Principais RNAs
57
ANEXO 5
reas de Aplicao de RNAs
TABELA: REAS DE APLICAO POR TIPOS DE REDES
APLICAO
DIRETA,
MULTICAMADA
(RETROPROPAGAO)
Classificao
Processamento de Imagem
Tomada de deciso
*
*
*
Otimizao
SOM
HOPFIELD
BOLTZMANN
*
*
*
*
(KOHONEN)
ESTRUTURA
UMA CAMADA
CONEXES
LATERAIS
Tipo de rede
Hopfield
Auto
associao
rea de
aplicao
MAPA DE VETOR
TOPOLGICO
SOM
(Kohonen)
DUAS CAMADAS
DIRETAS E
REVERSAS
MLTIPLAS
CAMADAS, DIRETAS
ART
MLPs
Rede de Boltzmann
Auto-associao
Reconhecimento de
padres
Otimizao
Otimizao
Compresso de dados
Otimizao
Hetero-associao
Reconhecimento
de padres
Reconhecimento de
padres
Compresso de dados
Filtros
58
(v) =
1 se v
>=
ANEXO 6
59