redes neurais no matlab

27
UNIVERSIDADE FEDERAL DE SERGIPE CENTRO DE CIÊNCIAS EXATAS E TECNOLOGIA DEPARTAMENTO DE ENGENHARIA ELÉTRICA ORIENTARDOR: PROF. CARLOS ALBERTO V. CARDOSO ALUNA: TARCIANA ALVES ALMEIDA REDES NEURAIS NO MATLAB

Upload: tarciana-almeida

Post on 23-Jul-2015

509 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 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

Page 2: Redes Neurais No Matlab

INTRODUÇÃO

Page 3: Redes Neurais No Matlab

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

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

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

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

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

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

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

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

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

Rede feedforward de Múltiplas Camadas (Multilayer Perceptron - MLP)

Page 13: Redes Neurais No Matlab

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

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

Criação e treinamento de um Percepton

Page 16: Redes Neurais No Matlab

Criação e treinamento de um Percepton

Page 17: Redes Neurais No Matlab

Criação e treinamento de um Percepton

Page 18: Redes Neurais No Matlab

Criação e treinamento de um Percepton

Page 19: Redes Neurais No Matlab

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

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

Exemplo 03FUNÇÃO SENO

x = -pi:pi/16:pi;y = sin(x);plot(x,y);pause;

Page 22: Redes Neurais No Matlab

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

Criação e treinamento de uma rede BackPropagation

Page 24: Redes Neurais No Matlab

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

Criação e treinamento de uma rede BackPropagation

Page 26: Redes Neurais No Matlab

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

Criação e treinamento de uma rede BackPropagation