Vous êtes sur la page 1sur 5

CENTRO UNIVERSITRIO DO LESTE DE MINAS GERAIS UnilesteMG 1

Disciplina: Introduo Inteligncia Artificial


Curso: Sistemas de Informao

GUIA DE LABORATRIO RN 01

Assunto: Neurnio Binrio - Perceptron


Objetivo: Apresentar o funcionamento de uma rede neural binria do tipo Perceptron,
bem como sua implementao no MatLab

PERCEPTRON

a = hardlim (w*p + b)

Passos para criar, inicializar, simular e treinar uma rede usando o MatLab.

1. Criar a rede com a funo NNT2P;


2. Inicializar a rede com a funo INIT;
3. Treinar a rede usando um dos seguintes mtodos:
a. Passo a passo
i. Simular o perceptron com a funo SIM;
ii. Calcular o erro;
iii. Calcular os ajustes de peso e polarizao com a funo
LEARNP;
b. Treinar a rede com um conjunto de entradas e sadas usando a funo
TRAIN;
4. Usar a rede para calcular a sada para um determinado conjunto de entradas
com a funo SIM.

Funo NNT2P

Sintaxe

rede = nnt2p(pr,w,b,tf,lf)

Professor: Luiz Carlos Figueiredo


CENTRO UNIVERSITRIO DO LESTE DE MINAS GERAIS UnilesteMG 2
Disciplina: Introduo Inteligncia Artificial
Curso: Sistemas de Informao

Descrio

NNT2P(PR,W,B,TF,LF) utiliza estes argumentos,


PR - matriz Rx2 de valores min e max para R entradas.
W - Matriz SxR de pesos.
B - Sx1 vetor de polarizao
TF Funo de ativao, default = 'hardlim'.
LF Funo de aprendizado, default = 'learnp'.
e retorna um perceptron.

A funo de ativao TF pode ser HARDLIM ou HARDLIMS.


A funo de aprendizado LF pode ser LEARNP ou LEARNPN.

Uma vez que a rede seja atualizada ela pode ser simulada, inicializada,
adaptada ou treinada com adapted, or trained with SIM, INIT, ADAPT, e TRAIN.

Funo SIM: Simula uma rede neural.

Sintaxe

[Y,Pf,Af,E,perf] = sim(rede,P,Pi,Ai,T)
[Y,Pf,Af,E,perf] = sim(rede,{Q TS},Pi,Ai,T)
[Y,Pf,Af,E,perf] = sim(rede,Q,Pi,Ai,T)

Descrio

SIM simula redes neurais.

[Y,Pf,Af,E,perf] = SIM(rede,P,Pi,Ai,T) usa,


rede - Estrutura da rede neural com parmetros.
P - Entradas para a rede.
Pi - Condies iniciais de atrasos nas entradas, default = zeros.
Ai - Condies de atrasos iniciais na camada, default = zeros.
T - Valor desejado para a sada da rede, default = zeros.
e retorna:
Y - Sadas calculadas.
Pf - Condies finais de atraso para as entradas.
Af - Condies finais de atraso para a camada.
E - Erro da rede.
perf Desempenho da rede.

Note que os argumentos Pi, Ai, Pf, e Af so opcionais e precisam apenas


serem utilizados em redes que tem atrasos nas entradas ou nas camadas.

Exemplos

Aqui NEWP usada para criar um perceptron com duas entradas (com faixa
de [0 1]), num nico neurnio.

Professor: Luiz Carlos Figueiredo


CENTRO UNIVERSITRIO DO LESTE DE MINAS GERAIS UnilesteMG 3
Disciplina: Introduo Inteligncia Artificial
Curso: Sistemas de Informao

net = newp([0 1;0 1],1);

Aqui o perceptron simulado usando apenas 2 entradas, um conjunto de 3


vetores de 2 entradas, e uma sequncia de 3 vetores.

p1 = [.2; .9]; a1 = sim(net,p1)


p2 = [.2 .5 .1; .9 .3 .7]; a2 = sim(net,p2)
p3 = {[.2; .9] [.5; .3] [.1; .7]}; a3 = sim(net,p3)

FUNO INIT Inicializa uma rede neural.

Sintaxe

rede = init(rede)

Descrio

INIT(rede) retorna uma rede neural REDE com valores de pesos e polarizao
atualizados de acordo com a funo de inicializao da rede, indicada por NET.initFcn,
e os valores dos parmetros, indicados por NET.initParam.

Exemplos,
Aqui um perceptron criado com 2-entradas (com faixa de 0 a 1, e -2 a 2) e 1
neurnio. Uma vez que ele criado podemos mostrar os pesos e polarizao do
neurnio.
net = newp([0 1;-2 2],1);
net.iw{1,1}
net.b{1}

O treinamento do perceptron altera seus pesos e polarizao.

P = [0 1 0 1; 0 0 1 1];
T = [0 0 0 1];
net = train(net,P,T);
net.iw{1,1}
net.b{1}

INIT reinicializa os valores de pesos e polarizao.

net = init(net);
net.iw{1,1}
net.b{1}

Os pesos e polarizaes so zeros outra vez, os quais eram os valores


iniciais usados pelo perceptron (veja NEWP).

Professor: Luiz Carlos Figueiredo


CENTRO UNIVERSITRIO DO LESTE DE MINAS GERAIS UnilesteMG 4
Disciplina: Introduo Inteligncia Artificial
Curso: Sistemas de Informao

FUNO LEARNP

Calcula as variaes nos pesos e polarizaes de um conjunto de entradas P e


o erro e ( e = t-a ), onde t a sada objetivada e a a sada obtida com os pesos
atuais)

Regra de treinamento do Perceptron

Erro = Sada objetivada - sada calculada pelo perceptron


Watual = Wanterior + W
batual = banterior + b;

Se Erro = 0, ento
W = 0;
b = 0;

Se Erro =1, ento


W = p;
b = Erro;

Se Erro = -1, ento


W = - p;
b = Erro;
Em resumo:
W = Erro * p;
b = Erro;

Exemplo:

A = sim ( rede, P )
E = T-A,
[dW, db] = learnp (P, E)
w = w + dw
b = b + db

LEARNP

Regra de aprendizado do Perceptron.

[DW,DB] = LEARNP(P,E)
P - RxQ matriz dos vetores de entrada.
E - SxQ matriz dos vetores de erro.
Retorna:
DW - matriz de alteraes para os pesos.
DB - vetor de alteraes para a polarizao (opcional).
[DW,DB] = LEARNP(P,A,T)
A - RxQ matriz dos vetores de sada.
T - SxQ matriz dos vetores de sadas objetivadas.

Professor: Luiz Carlos Figueiredo


CENTRO UNIVERSITRIO DO LESTE DE MINAS GERAIS UnilesteMG 5
Disciplina: Introduo Inteligncia Artificial
Curso: Sistemas de Informao

Retorna alteraes para pesos e polarizaes.

FUNO TRAIN

Se sim e learnp so repetidamente usadas parta apresentar entradas a um


PERCEPTRON, e para mudar os pesos a polarizaes do PERCEPTRON de acordo
com o erro, pode-se achar uma soluo para o problema
A funo Train implementa este loop de treinamento
Exemplo
Tp = [disp. freq. max epoch]
[ W, b, lp, tr ]= train (rede, P, T, tp )

TRAIN
Treina uma camada de um perceptron usando a regra do perceptron.

[rede, TR,Y,E] = TRAIN(rede,P,T,TP)


rede estrutura do perceptron
P - RxQ matriz dos vetores de entrada.
T - SxQ matriz dos vetores objetivados de sada.
TP - Parmetros para treinamento (opcional).
Retorna:
Rede perceptron com novos pesos e polarizao
TR - Registros do treinamento: erros num vetor linha.
Y Sada do Perceptron;
E Erro do Perceptron.

Exerccios:

1) Rodar e observar o funcionamento exemplos apresentados neste texto.

2) Treinar um PERCEPTRON para executar a mesma funo de uma porta ou

A B S P=[ 0 0 1 1

0 0 0 0 1 0 1]
0 1 1
1 0 1 T=[0 1 1 1]
1 1 1

Professor: Luiz Carlos Figueiredo

Vous aimerez peut-être aussi