Professional Documents
Culture Documents
\
|
+ = =
=
m
j
k j kj k k
b x w f u f y
1
) (
Matematicamente a sada pode ser expressa por:
Caractersticas Tpicas de Redes Neurais
Artificiais
Caractersticas Positivas
Capacidade de Aprendizado: RNA no so programadas, mas treinadas com padres de
treinamento. Podem ser adaptadas atravs das entradas.
Paralelismo: RNA so massivamente paralelas e so portanto muito bem adequadas para
uma simulao/implementao em computao paralela.
Representao distribuda do conhecimento: O conhecimento armazenado de forma
distribuda em seus pesos. O que aumenta muito a tolerncia do sistema a falhas de neurnios
individuais; permite o processamento paralelo.
Tolerncia falhas: O sistema pode ser mais tolerante a falhas de neurnios individuais que
algoritmos convencionais. A rede deve, no entanto, ser treinada para apresentar esta
caracterstica. Nem toda rede automaticamente tolerante a falhas.
Armazenamento associativo da informao: Para um certo padro de entrada a RNA
fornece o padro que lhe mais prximo. O acesso no feito por endereamento.
Robustez contra perturbaes ou dados ruidosos: Quando treinadas para tanto as redes
neurais so mais robustas a padres incompletos
Caractersticas Tpicas de Redes Neurais
Artificiais
Caractersticas Negativas
Aquisio de conhecimento s possvel atravs de aprendizado:
Principalmente devido representao distribuda muito difcil (exceo: rede
de Hopfield para problemas de otimizao) introduzir conhecimento prvio em
uma RNA. Isto muito comum em sistemas de IA simblicos.
No possvel a introspeco: No possvel analisar o conhecimento ou
percorrer o procedimento para a soluo,como possvel com os componentes de
explicao de sistemas especialistas.
Difcil deduo lgica (seqencial): virtualmente impossvel obter-se cadeias
de inferncia lgica com redes neurais.
Aprendizado lento: Principalmente redes completamente conectadas e quase
todas as variantes dos algoritmos backpropagation so muito lentas.
Aplicaes de redes neurais
classificao de dado
anlise de imagens;
anlise de voz;
anlise de aroma e odor (nariz eletrnico);
Reconhecimento de assinatura
Reconhecimento de faces e outros biomtricos
Criando Redes Neurais
Existem vrios tipos de rede neural. A mais
comum o modelo MLP (multi layer
perceptron).
ENTRADA SADA
Camada
1
Camada
2
Camada
3
Rede feedforward de Mltiplas Camadas
(Multilayer Perceptron - MLP)
Treinamento da rede neural
Durante o treinamento, a rede neural receber
a matriz de dados e o alvo.
Todos os pesos de todos os neurnios sero
modificados para obter a classificao
desejada.
Exemplo 01
% cria a estrutura da RNA com um perceptron
% [min; max], nmero de neurnios
net = newp([-2 2; -2 2], 1)
P = *0 0; 0 1; 1 0; 1 1+; % entradas
T = [0 1 1 1]; % sadas
figure; % cria nova figura
plotpv(P, T); % plota as entradas/sadas
lh = plotpc(net.IW{1}, net.b{1}) % plota linha que separa as classes
hold on
for cont=1:6,
net = adapt(net, P, T); % treinamento
lh = plotpc(net.IW{1}, net.b{1}, lh);
drawnow;
pause;
Y = sim(net, P) % propagao
end;
hold off;
Criao e treinamento de um Percepton
Criao e treinamento de um Percepton
Criao e treinamento de um Percepton
Criao e treinamento de um Percepton
Exemplo 02
% cria uma rede BP para solucionar o problema do XOR
P = [-1 -1; -1 1; 1 -1; 1 1]; % entradas
T = [-1 1 1 -1]; % sadas
net = newff([-1 1; -1 1], [2 1]); % criao da rede BP
a = sim(net, P.)
net = train(net, P., T);
a = sim(net, P.)
TREINAMENTO
a =
0.4012 0.6344 -0.5085 0.6298
a =
-0.9996 0.9995 0.9996 -0.9985
Exemplo 03
FUNO SENO
x = -pi:pi/16:pi;
y = sin(x);
plot(x,y);
pause;
Criao e treinamento de uma rede
BackPropagation
% cria uma rede BP para aproximar a funo seno
% entradas podem variar de -pi at pi
% 20 neurnios na camada oculta
% 1 neurnio na camada de sada
net = newff([-pi pi], [20 1]);
a = sim(net, x);
plot(x, a);
pause;
% a rede inicia com pesos aleatrios. Ento...
Criao e treinamento de uma rede
BackPropagation
Criao e treinamento de uma rede
BackPropagation
% treina a rede BP para aproximar a funo seno
net = train(net, x, y);
a = sim(net, x);
plot(x, a);
pause;
Criao e treinamento de uma rede
BackPropagation
Criao e treinamento de uma rede
BackPropagation
% repetindo para 500 pocas de treinamento
net = init(net); % inicializa novamente os pesos
net.trainParam.epochs = 500;
net = train(net, x, y);
a = sim(net, x);
plot(x, a);
Criao e treinamento de uma rede
BackPropagation