Escolar Documentos
Profissional Documentos
Cultura Documentos
Table of Contents
Introdução .......................................................................................................................... 1
Dados de entrada ................................................................................................................ 1
Definição da arquitetura da MLP ........................................................................................... 1
Inicialização dos pesos e bias ................................................................................................ 1
Parâmetros de treinamento .................................................................................................... 1
Treinamento da MLP ........................................................................................................... 1
Previsões da MLP ............................................................................................................... 2
Plotagem das regiões das classes ........................................................................................... 2
Plotagem do gráfico de erro x época ...................................................................................... 3
Conclusão .......................................................................................................................... 4
Introdução
Este é um exemplo de código MATLAB que treina uma MLP (Multi-Layer Perceptron) para se comportar
como uma porta lógica XNOR. A MLP é treinada usando o algoritmo de backpropagation para aprender
a classificar duas entradas binárias em duas classes distintas: Classe 0 e Classe 1.
Dados de entrada
X = [0 0; 0 1; 1 0; 1 1]; % Entradas
Y = [1; 0; 0; 1]; % Saídas esperadas
Parâmetros de treinamento
learningRate = 0.1; % Taxa de aprendizado
numEpochs = 10000; % Número de épocas de treinamento
Treinamento da MLP
errorHistory = zeros(numEpochs, 1); % Vetor para armazenar o histórico
de erro
1
ATIVIDADE 7: CLASSIFI-
CAÇÃO XNOR
% Cálculo do erro
error = Y - outputLayer;
errorHistory(epoch) = sum(abs(error));
% Backpropagation
deltaOutput = error .* outputLayer .* (1 - outputLayer);
deltaHidden = deltaOutput * W2' .* hiddenLayer .* (1 -
hiddenLayer);
Previsões da MLP
x1_range = linspace(-0.5, 1.5, 100); % Faixa de valores para a entrada
1
x2_range = linspace(-0.5, 1.5, 100); % Faixa de valores para a entrada
2
[X1, X2] = meshgrid(x1_range, x2_range); % Criação da malha de pontos
para a superfície de separação
X_mesh = [X1(:) X2(:)]; % Transformação da malha em uma matriz de
entrada
hiddenLayer = 1 ./ (1 + exp(-(X_mesh * W1 + b1))); % Ativação da
camada oculta
outputLayer = 1 ./ (1 + exp(-(hiddenLayer * W2 + b2))); % Ativação da
camada de saída
predictions = outputLayer >= 0.5; % Classificação das previsões com
base no limiar de decisão de 0.5
2
ATIVIDADE 7: CLASSIFI-
CAÇÃO XNOR
xlim([-0.5 1.5]);
ylim([-0.5 1.5]);
xlabel('Entrada 1');
ylabel('Entrada 2');
grid on;
3
ATIVIDADE 7: CLASSIFI-
CAÇÃO XNOR
Conclusão
Neste exemplo, uma MLP foi treinada com sucesso para se comportar como uma porta lógica XNOR. A
MLP aprendeu a classificar corretamente as duas classes distintas com base nas entradas fornecidas. A
superfície de separação plotada ilustra a capacidade da MLP de separar as duas classes. O gráfico de erro x
época mostra a convergência do algoritmo de treinamento e a redução gradual do erro ao longo das épocas.