Download - Redes Neurais No Matlab
UNIVERSIDADE FEDERAL DE SERGIPECENTRO DE CIÊNCIAS EXATAS E TECNOLOGIADEPARTAMENTO DE ENGENHARIA ELÉTRICAORIENTARDOR: PROF. CARLOS ALBERTO V. CARDOSOALUNA: TARCIANA ALVES ALMEIDA
REDES NEURAIS NO MATLAB
INTRODUÇÃO
DEFINIÇÕES:
1. Técnica inspirada no funcionamento do cérebro, onde neurônios artificiais, conectados em rede, são capazes de aprender e de generalizar.
2.Isso significa que se a rede aprende a lidar com um certo problema, e lhe é apresentado um similar, mas não exatamente o mesmo, ela tende a reconhecer esse novo problema, oferecendo a mesma solução.
Componentes do neurônio artificial
– As sinapses (entradas), com seus pesos associados
– A junção somadora; e
– A função de ativação.
wk1
wk2
wkm
f(uk)
x1
x2
xm
uk
wk0=bk
yksinais
deentrada
pesossinápticos
junçãoaditiva
(bias)
funçãode ativação
saída
wk0x0=+1
entrada fixa
Princípio de funcionamento
A operação de um neurônio artificial se resume em: • Sinais são apresentados à entrada (x1 à xm); • Cada sinal é multiplicado por um peso que indica
sua influência na saída da unidade (wk); • É feita a soma ponderada dos sinais que produz
um nível de atividade (uk); • A função de ativação f(uk) tem a função de limitar
a saída e introduzir não-linearidade ao modelo.• O bias bk tem o papel de aumentar ou diminuir a
influência do valor das entradas.
Expressão Matemática do Neurônio Artificial
m
jkjkjkk bxwfufy
1
)(
Matematicamente a saída pode ser expressa por:
Características Típicas de Redes Neurais Artificiais
Características Positivas
Capacidade de Aprendizado: RNA não são programadas, mas treinadas com padrões de treinamento. Podem ser adaptadas através das entradas.
Paralelismo: RNA são massivamente paralelas e são portanto muito bem adequadas para uma simulação/implementação em computação paralela.
Representação distribuída do conhecimento: O conhecimento é armazenado de forma distribuída em seus pesos. O que aumenta muito a tolerância do sistema a falhas de neurônios individuais; permite o processamento paralelo.
Tolerância à falhas: O sistema pode ser mais tolerante a falhas de neurônios individuais que algoritmos convencionais. A rede deve, no entanto, ser treinada para apresentar esta característica. Nem toda rede é automaticamente tolerante a falhas.
Armazenamento associativo da informação: Para um certo padrão de entrada a RNA fornece o padrão que lhe é mais próximo. O acesso não é feito por endereçamento.
Robustez contra perturbações ou dados ruidosos: Quando treinadas para tanto as redes neurais são mais robustas a padrões incompletos
Características Típicas de Redes Neurais Artificiais
Características Negativas Aquisição de conhecimento só é possível através de aprendizado:
Principalmente devido à representação distribuída é muito difícil (exceção: rede de Hopfield para problemas de otimização) introduzir conhecimento prévio em uma RNA. Isto é muito comum em sistemas de IA simbólicos.
Não é possível a introspecção: Não é possível analisar o conhecimento ou percorrer o procedimento para a solução,como é possível com os componentes de explicação de sistemas especialistas.
Difícil dedução lógica (seqüencial): É virtualmente impossível obter-se cadeias de inferência lógica com redes neurais.
Aprendizado é lento: Principalmente redes completamente conectadas e quase todas as variantes dos algoritmos backpropagation são muito lentas.
Aplicações de redes neurais
• classificação de dado• análise de imagens; • análise de voz; • análise de aroma e odor (nariz eletrônico);• Reconhecimento de assinatura• Reconhecimento de faces e outros
biométricos
Criando Redes Neurais
Existem vários tipos de rede neural. A mais comum é o modelo MLP (multi layer perceptron).
ENTRADA SAÍDACamada
1Camada
2Camada
3
Rede feedforward de Múltiplas 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 neurônios serão modificados para obter a classificação desejada.
Exemplo 01% cria a estrutura da RNA com um perceptron% [min; max], número de neurônios
net = newp([-2 2; -2 2], 1)P = [0 0; 0 1; 1 0; 1 1]’; % entradasT = [0 1 1 1]; % saídasfigure; % cria nova figuraplotpv(P, T); % plota as entradas/saídaslh = plotpc(net.IW{1}, net.b{1}) % plota linha que separa as classeshold onfor cont=1:6,net = adapt(net, P, T); % treinamentolh = plotpc(net.IW{1}, net.b{1}, lh);drawnow;pause;Y = sim(net, P) % propagaçãoend;hold off;
Criação e treinamento de um Percepton
Criação e treinamento de um Percepton
Criação e treinamento de um Percepton
Criação 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]; % entradasT = [-1 1 1 -1]; % saídasnet = newff([-1 1; -1 1], [2 1]); % criação da rede BPa = 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 03FUNÇÃO SENO
x = -pi:pi/16:pi;y = sin(x);plot(x,y);pause;
Criação e treinamento de uma rede BackPropagation
% cria uma rede BP para aproximar a função seno% entradas podem variar de -pi até pi% 20 neurônios na camada oculta% 1 neurônio na camada de saída
net = newff([-pi pi], [20 1]);a = sim(net, x);plot(x, a);pause;
% a rede inicia com pesos aleatórios. Então...
Criação e treinamento de uma rede BackPropagation
Criação e treinamento de uma rede BackPropagation
% treina a rede BP para aproximar a função seno
net = train(net, x, y);a = sim(net, x);plot(x, a);pause;
Criação e treinamento de uma rede BackPropagation
Criação e treinamento de uma rede BackPropagation
% repetindo para 500 épocas de treinamento
net = init(net); % inicializa novamente os pesosnet.trainParam.epochs = 500;net = train(net, x, y);a = sim(net, x);plot(x, a);
Criação e treinamento de uma rede BackPropagation