redes neurais no matlab
TRANSCRIPT
![Page 1: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/1.jpg)
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
![Page 2: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/2.jpg)
INTRODUÇÃO
![Page 3: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/3.jpg)
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.
![Page 4: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/4.jpg)
Componentes do neurônio artificial
– As sinapses (entradas), com seus pesos associados
– A junção somadora; e
– A função de ativação.
![Page 5: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/5.jpg)
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
![Page 6: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/6.jpg)
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.
![Page 7: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/7.jpg)
Expressão Matemática do Neurônio Artificial
m
jkjkjkk bxwfufy
1
)(
Matematicamente a saída pode ser expressa por:
![Page 8: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/8.jpg)
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
![Page 9: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/9.jpg)
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.
![Page 10: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/10.jpg)
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
![Page 11: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/11.jpg)
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
![Page 12: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/12.jpg)
Rede feedforward de Múltiplas Camadas (Multilayer Perceptron - MLP)
![Page 13: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/13.jpg)
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.
![Page 14: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/14.jpg)
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;
![Page 15: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/15.jpg)
Criação e treinamento de um Percepton
![Page 16: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/16.jpg)
Criação e treinamento de um Percepton
![Page 17: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/17.jpg)
Criação e treinamento de um Percepton
![Page 18: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/18.jpg)
Criação e treinamento de um Percepton
![Page 19: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/19.jpg)
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.’)
![Page 20: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/20.jpg)
TREINAMENTO
a =
0.4012 0.6344 -0.5085 0.6298
a =
-0.9996 0.9995 0.9996 -0.9985
![Page 21: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/21.jpg)
Exemplo 03FUNÇÃO SENO
x = -pi:pi/16:pi;y = sin(x);plot(x,y);pause;
![Page 22: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/22.jpg)
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...
![Page 23: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/23.jpg)
Criação e treinamento de uma rede BackPropagation
![Page 24: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/24.jpg)
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;
![Page 25: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/25.jpg)
Criação e treinamento de uma rede BackPropagation
![Page 26: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/26.jpg)
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);
![Page 27: Redes Neurais No Matlab](https://reader036.vdocuments.site/reader036/viewer/2022081719/557201ee4979599169a2a2dc/html5/thumbnails/27.jpg)
Criação e treinamento de uma rede BackPropagation