You are on page 1of 27

UNIVERSIDADE FEDERAL DE SERGIPE

CENTRO DE CINCIAS EXATAS E TECNOLOGIA


DEPARTAMENTO DE ENGENHARIA ELTRICA
ORIENTARDOR: PROF. CARLOS ALBERTO V. CARDOSO
ALUNA: TARCIANA ALVES ALMEIDA

REDES NEURAIS NO
MATLAB

INTRODUO

DEFINIES:
1. Tcnica inspirada no funcionamento do
crebro, onde neurnios artificiais, conectados
em rede, so 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 no exatamente o mesmo, ela
tende a reconhecer esse novo problema,
oferecendo a mesma soluo.

Componentes do neurnio artificial


As sinapses (entradas), com seus pesos associados
A juno somadora; e
A funo de ativao.

wk0=bk (bias)

entrada fixa
x0=+1

wk0

x1

wk1

sinais
de
entrada

x2

wk2

funo
de ativao

uk

yk
f(uk)
sada

juno
aditiva
xm

wkm
pesos
sinpticos

Princpio de funcionamento
A operao de um neurnio artificial se resume em:
Sinais so apresentados entrada (x1 xm);
Cada sinal multiplicado por um peso que indica
sua influncia na sada da unidade (wk);
feita a soma ponderada dos sinais que produz
um nvel de atividade (uk);
A funo de ativao f(uk) tem a funo de limitar
a sada e introduzir no-linearidade ao modelo.
O bias bk tem o papel de aumentar ou diminuir a
influncia do valor das entradas.

Expresso Matemtica do Neurnio


Artificial
Matematicamente a sada pode ser expressa por:

yk f (uk ) f wkj x j bk
j 1

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

You might also like