Escolar Documentos
Profissional Documentos
Cultura Documentos
constituído por um conjunto de neurônios artificiais dispostos em varias camadas, de modo que
o sinal de entrada se propaga para frente através da rede, camada por camada. Dentre suas camadas
existe a camada de entrada que recebe os sinais de entrada, a camada de saída que entrega o
resultado obtido pela rede e no meio dessas podem existir quantas camadas forem necessárias. Essas
camadas são chamadas intermediárias ou ocultas (HAYKIN, 2001). Note que uma MLP é constituida de
pelo menos 2 camadas neurais, sendo uma camada de saída e pelo menos 1 camada escondida
(SILVA; SPATTI; FLAUZINO, 2010).
As MLPs são consideradas uma das arquiteturas mais versáteis quanto a aplicabilidade, sendo
utilizadas em diversas áreas do conhecimento. Dentre as utilizações da MLP estão: aproxi-mação
universal de funções, reconhecimento de padrões, identificação e controle de processos, previsão de
series temporais e otimização de sistemas (SILVA; SPATTI; FLAUZINO, 2010).
Silva, Spatti e Flauzino (2010) atribuem o início da grande popularidade e das extensas
aplicabilidades das MLPs ao final da década de 1980, em virtude da publicação do livro Parallel
distributed processing de Rumelhart et al. (1987). Nesse livro os autores explicitaram o algo-ritmo de
aprendizagem backpropagation, permitindo assim sua utilização no treinamento das MLPs (SILVA;
SPATTI; FLAUZINO, 2010).
Estudo de caso
O projeto prático 5.8 do livro Redes neurais artificias para engenharia e ciências aplica-das de
Silva, Spatti e Flauzino (2010), propõe o desenvolvimento de uma rede neural Perceptron Multicamadas
para ser usada como um aproximador universal de funções na confecção de um processador de
imagens de ressonância magnética. A partir da análise de 3 grandezas represen-tadas por { 1, 2 e 3} o
processador de imagens deve estimar a energia absorvida do sistema, denotada por .
Também é descrita a arquitetura que a rede deve ter, a rede deve possuir 3 camadas, uma
camada de entrada contendo 3 sinais de entrada { 1, 2 e 3}, uma camada escondida contendo 10
neurônios e a camada de saída com apenas 1 neurônio. A Figura 2 mostra detalhadamente a arquitetura
que a MLP deve ter para a realização do Projeto prático.
Treinamento
1.1
1.2
x = dataInput';
t = dataTarget';
% 'trainscg' uses less memory. Suitable in low memory situations. trainFcn = 'trainlm'; %
Levenberg-Marquardt backpropagation.
[net,tr] = train(net,x,t);
e = gsubtract(t,y);
performance = perform(net,t,y)
% Plots
%figure, plottrainstate(tr)
%figure, ploterrhist(e) %figure,
plotregression(t,y) %figure, plotfit(net,x,t)
T1 4,33E-06 46
T2 8,95E-06 43
T3 2,29E-06 101
T4 4,64E-06 81
T5 5,79E-06 18
Tabela 1 – Treinamento
1.3
Pelos dados da Tabela1 verifica-se que tanto o erro quadrático médio como o número total de
épocas variam de treinamento para treinamento. Isso se deve ao fato de que no início de cada
treinamento os pesos sinápticos de todos os neurônios de todas as camadas são iniciados de forma
aleatória, dessa forma o erro quadrático médio inicial da rede é sempre diferente em cada treinamento.
Partindo de uma configuração diferente de pesos sinápticos a cada treinamento chega-se também a um
erro quadrático médio e um número de épocas diferentes em cada treinamento.
1.5
%IMPORTFILE(FILETOREAD1)
% Imports data from the specified file
% FILETOREAD1: file to read
% Import the file
sheetName='Plan1';
end
% Break the data up into a new structure with one field per column.
if strCols == numCols && likelyRow > 0 && strRows >= likelyRow newData1.colheaders
= strings(likelyRow, :);
end
end
% Create output variables.
for i = 1:size(newData1.colheaders, 2)
dataByColumn1.(matlab.lang.makeValidName(newData1.colheaders{i}))
Teste
Os resultados dos testes da MLP para cada um dos 5 treinamentos realizados juntamente como
erro relativo médio (%) de cada teste estão anotados na Tabela 2. A análise dos porcentuais de erro
relativo médio presentes na Tabela 2 possibilita dizer qual dos 5 treinamentos realizados da a MLP uma
maior capacidade de generalização, basta escolher aquele com a menor porcentagem de erro relativo
médio. Dessa forma, pelos dados da Tabela 2 a configuração da MLP obtida pelo treinamento T2 é a
mais adequada para o sistema de ressonância magnética, pois a porcentagem de erro relativo médio do
treinamento T2 é a menor dentre todos os treinamentos, com o valor de 1,22237%
3 Tabela 2 – Treinamento
Estudo de caso
O projeto prático 5.9 do livro Redes neurais artificiais para engenharia e ciências aplicadas de
Silva, Spatti e Flauzino (2010), mostra que no processamento de bebidas, é aplicado um conservante à
bebida em função da analise de 4 características medidas em cada lote de bebida, definidas por x1 (teor
de água), x2 (grau de acidez), x3 (temperatura) e x4 (tensão interfacial). Existem apenas 3
possibilidades de conservantes para serem adicionados as bebidas, denotados por A, B e C. O objetivo
do projeto é o desenvolvimento, treinamento e teste de uma MLP que determine qual dos conservantes
deve ser adicionado a cada lote de bebida a partir da análise das 4 características medidas. É
determinada que a arquitetura da rede, que deve conter 4 sinais de entrada, 2 camadas neurais, sendo
15 neurônios na camada escondida e 3 neurônios na camada de saída. A Figura1 mostra
detalhadamente a arquitetura que a MLP deve ter para a realização do projeto. Analisando a arquitetura
proposta na Figura 1 nota-se que a MLP possuirá 3 sinais de saída, como a resposta da MLP deve ser o
tipo de conservante (A, B ou C) se faz necessário padronizar quais combinações de saída
representarão cada conservante. Essa padronização pode ser vista na Tabela 3.
Figura 3 – Arquitetura proposta rede Perceptron Multicamadas
Tipo de Conservante Y1 Y2 Y3
Tipo A 1 0 0
Tipo B 0 1 0
Tipo C 0 0 1
Tabela 3 – Tipo de conservantes
Pode-se perceber ainda a partir da figura 8, que a rede converge mais suavemente sem grandes
oscilações aproximadamente a partir da época 5.
Treinamento
% Solve a Pattern Recognition Problem with a Neural Network
% Script generated by Neural Pattern Recognition app
% This script assumes these variables are defined:
%
% dataInput - input data.
% dataTarget - target data.
x = dataInput';
t = dataTarget';
% 'trainscg' uses less memory. Suitable in low memory situations. trainFcn = 'trainscg'; %
Scaled conjugate gradient backpropagation.
[net,tr] = train(net,x,t);
e = gsubtract(t,y); performance =
perform(net,t,y) tind = vec2ind(t);
yind = vec2ind(y);
% Plots
%figure, plottrainstate(tr)
%figure, ploterrhist(e) %figure,
plotconfusion(t,y) %figure, plotroc(t,y)
2.2
% 'trainscg' uses less memory. Suitable in low memory situations. %trainFcn = 'trainscg'; %
Scaled conjugate gradient backpropagation. net.trainFcn = 'traingdm'
e = gsubtract(t,y); performance =
perform(net,t,y) tind = vec2ind(t);
yind = vec2ind(y);
percentErrors = sum(tind ~= yind)/numel(tind);
view(net)
% Plots
%figure, plottrainstate(tr)
%figure, ploterrhist(e) %figure,
plotconfusion(t,y) %figure, plotroc(t,y)
2.3
5[s]
4[s]
2.4
output2 =
18×3 logical array
0 0 1
1 0 0
0 0 1
0 1 0
0 0 1
1 0 0
0 1 0
0 1 0
1 0 0
1 0 0
0 1 0
1 0 0
0 0 1
0 0 1
0 0 1
1 0 0
0 0 1
0 1 0
Teste
Como conclusão têm-se que para aproximação de funções não lineares o processo do
backpropagation foi um método relativamente simples e apresentou valores muito satisfatórios para
pequenas quantidades de neurônios, assim como para a utilização deste algoritmo para a classificação
de padrões.
Referências Bibliográficas
DA SILVA, Ivan Nunes; SPATTI, Danilo Hernane; FLAUZINO, Rogério Andrade. Redes Neurais
Artificiais para engenharia e ciências aplicadas curso prático. São Paulo: Artliber, 2010.