Você está na página 1de 11

UNIVERSIDADE FEDERAL DO CEAR

CURSO DE ENGENHARIA ELTRICA


CAMPUS DE SOBRAL
DISCIPLINA: SISTEMAS ELETRNICOS
PROFESSOR: Carlos Elmano

1 Relatrio Simulao por Computador


Rede Neural Artificial

Alunos: David de A. Marques ; Mat.: 288082


Dener Davi Sousa Lima ; Mat.:
345751
John Makanaki de O. Sales
Bernardino; Mat.: 345739

Sobral - CE
2015

1 Introduo terica
1.1- Redes Neurais Artificiais
Uma RNA pode ser definida como sendo uma estrutura de
processamento (rede), passvel de implementao em dispositivos
eletrnicos, composta por um nmero de unidades interconectadas
(neurnios artificiais), sendo que cada unidade apresenta um
comportamento
especfico
de
entrada/sada
(computao
local),
determinado pela sua funo de transferncia, pelas interconexes com
outras unidades, dentro de um raio de vizinhana, e possivelmente pelas
entradas externas.
As RNAs apresentam diversas caractersticas em comum com o sistema
nervoso:
O processamento bsico de informao ocorre em diversas unidades
simples denominadas de neurnios artificiais ou simplesmente
neurnios (ou ns);
Os neurnios esto interconectados gerando redes de neurnios, ou
redes neurais;
A informao (sinais) transmitida entre neurnios atravs de
conexes ou sinapses;
A eficincia de uma sinapse, representada por um peso associado,
corresponde informao armazenada pelo neurnio e, portanto,
pela rede neural;
O conhecimento adquirido do ambiente atravs de um processo de
aprendizagem que , basicamente, responsvel por adaptar os pesos
das conexes aos estmulos recebidos do ambiente.
Uma rede neural artificial pode ser projetada atravs de uma definio
ou escolha de um conjunto de neurnios artificiais e a determinao dos
parmetros leva ao algoritmo de aprendizagem ou treinamento.
Embora seja possvel projetar uma rede neural a partir da definio
do papel (computao global) que ela deve desempenhar, combinando-se
os efeitos individuais de todos os neurnios, uma rede neural usualmente se
adapta para atingir a funcionalidade desejada a partir de uma ou mais
estratgias de aprendizado, as quais vo atuar junto a parmetros
configurveis da rede neural. fundamental, portanto, que a rede neural
possua meios de interagir com o ambiente. Cada rede neural artificial
representa uma arquitetura de processamento especfica, havendo uma
famlia de arquiteturas, cada qual adequada para funcionalidades
especficas.

1.2 Neurnio Genrico


Existem basicamente trs camadas em uma rede neural artificial, uma
camada de entrada, uma camada intermediria (opcional), e uma camada
de sada.
A seguir podemos visualizar a estrutura de um neurnio artificial
genrico:

Figura 1.1 Neurnio artificial genrico

As principais partes do neurnio genrico so as sinapses,


caracterizadas pelos seus pesos associados, a juno somadora e a funo
de ativao.
O primeiro subscrito k do peso sinptico wkj corresponde ao neurnio
ps-sinptico, e o segundo subscrito corresponde sinapse ligada a ele. A
juno somadora soma todos os sinais de entrada ponderados pelos pesos
das conexes. Assumindo os vetores de entrada e de pesos como sendo
vetores coluna, esta operao corresponde ao produto interno do vetor de
entradas x pelo vetor de pesos wk, mais o limiar bk. Genericamente, tratase de uma combinao linear das entradas pelos pesos associados, mais o
limiar bk.
Matematicamente, a sada do neurnio k pode ser descrita por:

Onde x0 um sinal de entrada de valor 1 e peso associado wk0 = bk:

1.3Estrutura de uma RNA

Existem, basicamente, trs tipos principais de arquitetura em RNAs:


redes feedforward de uma nica camada, redes feedforward de mltiplas
camadas, e redes recorrentes.
A maioria das RNAs utilizam arquiteturas padronizadas, projetadas
especialmente para resolver algumas classes de problemas.
Logo abaixo podemos observar a estrutura dos trs modelos:

Figura 1.2 Rede de nica camada

Figura 1.3 Rede de mltipla camadas

Figura 1.4 Rede neural recorrente de Hopfield.

1.4Aprendizagem de uma Rede neural


A capacidade de aprender associada a uma rede neural uma das
mais importantes qualidades destas estruturas, trata-se da habilidade de
adaptar-se, de acordo com regras pr-existentes, ao seu ambiente,
alterando seu desempenho ao longo do tempo. Sendo assim, considera-se
aprendizado o processo que adapta o comportamento e conduz a uma
melhoria de desempenho.
No contexto de redes neurais artificiais, aprendizagem ou treinamento
corresponde ao processo de ajuste dos parmetros livres da rede atravs de
um mecanismo de apresentao de estmulos ambientais, conhecidos como
padres (ou dados) de entrada ou de treinamento. O objetivo do
aprendizado em redes neurais a obteno de um modelo implcito do
sistema em estudo, por ajuste dos parmetros da rede. Um conjunto bem
definido de regras para obt-los denominado um algoritmo de
aprendizagem ou treinamento.

2 Desenvolvimento
2.1 Descrio do problema
O problema proposto a ser resolvido, trata-se da obteno do resultado
de uma operao lgica realizada por um MLP com treinamento em
Backpropagation para a soluo de uma porta lgica NAND(NE),ou seja,
uma porta lgica AND seguida por uma porta NOT.

Figura 2.1 Smbolo Grfico de uma porta lgica NAND de duas entradas
A seguir podemos visualizar a sua tabela verdade

Figura 2.2 Tabela verdade porta lgica NAND de duas entradas

OBS.: O problema ser resolvido com a utilizao de dois neurnios na


sua camada intermediria e utilizao de valores de Bias

2.2 Simulao de uma RNA


Para implementao da estrutura proposta, utilizamos o software
MATLAB (MATrix LABoratory), que trata-se de uma ferramenta
computacional que integra anlise numrica, clculo com matrizes,
processamento de sinais e construo de grficos.
Foi desenvolvido o algoritmo baseado nas definies bsicas de uma
estrutura RNA, onde se utilizou o mtodo de aprendizagem atravs do
treinamento em Backpropagation, na qual opera em uma sequncia de dois

passos. Primeiro, um padro apresentado camada de entrada da rede. A


atividade resultante flui atravs da rede, camada por camada, at que a
resposta seja produzida pela camada de sada. No segundo passo, a sada
obtida comparada sada desejada para esse padro particular. Se esta
no estiver correta, o erro calculado. O erro propagado a partir da
camada de sada at a camada de entrada, e os pesos das conexes das
unidades das camadas internas vo sendo modificados conforme o erro
retropropagado.
As redes que utilizam Backpropagation trabalham com uma variao
da regra delta, apropriadas para redes multicamadas: a regra delta
generalizada. A regra delta padro essencialmente implementa um
gradiente descendente no quadrado da soma do erro para funes de
ativao lineares.
O cdigo de simulao da RNA pode ser visto logo abaixo:

%ALGORITIMO BLACKPROPAGATION QUE SIMULA A PORTA NAND


% nand entradas para x1 e x2
entradas = [0 0; 0 1; 1 0; 1 1];
% Sada desejada da nand
saida = [1;1;1;0];
% Inicializar o bias
bias = [-1 -1 -1];
% Coeficiente de aprendizagem
coef = 0.7;
% Nmero de iteraes de aprendizagem
iter = 5000;
% Calcular pesos aleatoriamente.
rand('state',sum(100*clock));
pesos = -1 +2.*rand(3,3);
SSE =[ ];

INDEX=[ ];

for i = 1:iter
out = zeros(4,1);
numIn = length (entradas(:,1));
for j = 1:numIn
% Camada oculta(intermediria)
H1 = bias(1,1)*pesos(1,1)+ entradas(j,1)*pesos(1,2)+
entradas(j,2)*pesos(1,3);
% Enviar dados atravs da funo sigmide 1/1 + e ^ -x
x2(1) = 1/(1+exp(-H1));
H2 = bias(1,2)*pesos(2,1)+ entradas(j,1)*pesos(2,2)+
entradas(j,2)*pesos(2,3);
x2(2) = 1/(1+exp(-H2));
% Camada de sada
x3_1 = bias(1,3)*pesos(3,1)+ x2(1)*pesos(3,2)+ x2(2)*pesos(3,3);
out(j) = 1/(1+exp(-x3_1));

% Ajustar os valores do delta de pesos


% Para camada de sada:
% delta (wi) = xi * delta,
% delta = (1 - sada real) * (sada desejada - sada real)
delta3_1 = out(j)*(1-out(j))*(saida(j)-out(j));
% Propagar o delta para as camadas ocultas
delta2_1 = x2(1)*(1-x2(1))*pesos(3,2)*delta3_1;
delta2_2 = x2(2)*(1-x2(2))*pesos(3,3)*delta3_1;
% Adicionar alteraes de peso para pesos originais
% e usar os novos pesos para o processo de repetir.
% peso delta = coeff * x * delta
for k = 1:3
if k == 1 % casos das bias
pesos(1,k) = pesos(1,k) + coef*bias(1,1)*delta2_1;
pesos(2,k) = pesos(2,k) + coef*bias(1,2)*delta2_2;
pesos(3,k) = pesos(3,k) + coef*bias(1,3)*delta3_1;
else % Quando k=2 ou 3 entrada para o caso dos neurnios
pesos(1,k) = pesos(1,k) + coef*entradas(j,1)*delta2_1;
pesos(2,k) = pesos(2,k) + coef*entradas(j,2)*delta2_2;
pesos(3,k) = pesos(3,k) + coef*x2(k-1)*delta3_1;
end
end

end

ERR = delta3_1;
INDEX = [INDEX i];
SSE = [SSE sum(sum(ERR.^2))];
plot(INDEX,SSE,'r');
xlabel('Iterao')
ylabel('Soma do erro ao quadrado (SSE)')
pause(0.0000000000000000000000000000005);

end

disp('A Sada que tende ao valor real :');


disp(round(out));
disp('A sada real do sistema e:')
disp(out);

Observe que foi pr-determinado o nmero de interaes de 500 vezes


para o aprendizado at convergir no valor desejado, ressaltando que a partir
desse valor a sada tender a manter-se constante, tendendo ao valor
desejado.

3 Resultados
Com a execuo do cdigo no software, obtiveram-se os valores reais
e os valores aproximados, vistos que como se utilizou uma funo
sigmoide, ou seja, uma funo no-linear, para os dados de entrada, os
valores obtidos somente seriam iguais ao valor desejado com infinitas
interaes. Podemos observar abaixo essa condio atravs das curvas
obtidas utilizando 500 e 5000 interaes respectivamente.

3.1 Grfico com 500 interaes

Resultado da sada obtida aps 500 interaes

Em seguida tem-se a curva obtida atravs de 5000 interaes

3.2 Grfico com 5000 interaes

Resultado da sada obtida aps 5000 interaes

Observe que os trs primeiros valores tendem a um, enquanto o ltimo


valor tender a zero em infinitas interaes, j que se trata de uma funo
no linear. Outras funes e outros mtodos podem ser utilizado para uma
convergncia mais rpida dos valores desejados.

4 Concluso
Este trabalho envolveu uma aplicao e reforou a grande
importncia no estudo e implementao de um RNA.
Observa-se neste trabalho que a RNA obtm um desempenho
satisfatrio na obteno dos resultados, e de forma esperada uma
resultado obtido atravs do auxlio de um poderoso software
computacional.

Você também pode gostar