You are on page 1of 48

Aula prtica: Redes Neurais

Tiago Pessoa Ferreira de Lima


Teresa Bernarda Ludermir
{tpfl2,tbl}@cin.ufpe.br
Objetivos

Apresentar um breve panorama de uma das principais ferramentas


disponveis no mercado para se trabalhar com Redes Neurais Artificiais.
MATLAB

O que ?
Toolboxs:
Fuzzy Logic;
Global Optimization;
Image Processing;
Neural Network;
Etc.
MATLAB Interface
MATLAB Interface
MATLAB Interface
MATLAB Interface
MATLAB Interface
MATLAB O bsico

Matrizes
Operadores
Aritmticos
Para Conjuntos
Relacionais
Lgicos
Scripts & Funes
Condicionais
Repeties
MATLAB Matrizes

So definidos por colchetes.


Espao ou Vrgula separam colunas;
Ponto e vrgula ou Enter separam linhas.
Exemplos:
>> vetor = [1, 2, 3]
vetor = 1 2 3
>> matriz = [1, 2, 3; 4, 5, 6]
matriz =
1 2 3
4 5 6
MATLAB Matrizes

Algumas funes permitem a criao de matrizes:


zeros: cria uma matriz com 0s
>> m = zeros(2)
m=
0 0
0 0
>> m = zeros(2,3)
m=
0 0 0
0 0 0
MATLAB Matrizes

Algumas funes permitem a criao de matrizes:


ones: cria uma matriz com 1s
>> m = ones(2)
m=
1 1
1 1
>> m = ones(2,3)
m=
1 1 1
1 1 1
MATLAB Matrizes

Algumas funes permitem a criao de matrizes:


rand: cria uma matriz com nmeros aleatrios (distribuio uniforme)
>> m = rand(2)
m=
0.8147 0.1270
0.9058 0.9134
>> m = rand(2,3)
m=
0.6324 0.2785 0.9575
0.0975 0.5469 0.9649
MATLAB Matrizes

Algumas funes permitem a criao de matrizes:


randn: cria uma matriz com nmeros aleatrios (distribuio normal)
>> m = randn(2)
m=
0.3591 -0.2273
-0.7943 1.5938
>> m = randn(2,3)
m=
0.1552 -0.3377 -0.7094
0.1786 -1.5250 -0.8666
MATLAB Matrizes

Dvidas em algumas dessas funes?


>> help randn
randn Normally distributed pseudorandom numbers. R = randn(N) returns an N-
by-N matrix containing pseudorandom values drawn from the standard
normal distribution. randn(M,N) or randn([M,N]) returns an M-by-N matrix.
randn(M,N,P,...) or randn([M,N,P,...]) returns an M-by-N-by-P-by-... array. randn
returns a scalar. randn(SIZE(A)) returns an array the same size as A.
MATLAB Matrizes

Acessando os elementos de uma matriz


>> matriz = [1, 2, 3; 4, 5, 6; 7, 8, 9]
matriz =
1 2 3
4 5 6
7 8 9
>> matriz(3,2)
ans =
8
MATLAB Matrizes

Transposta ()
>> matriz = [1, 2, 3; 4, 5, 6; 7, 8, 9]
matriz =
1 2 3
4 5 6
7 8 9
>> matriz'
ans =
1 4 7
2 5 8
3 6 9
MATLAB Matrizes

Concatenao de matrizes
>> A = [1, 2];
>> B = [3, 4];
>> C = [A, B]
C=
1 2 3 4
>> D = [A; B]
D=
1 2
3 4
MATLAB Matrizes

O operador dois pontos (:)


valorInicial : incremento : valorFinal
>> 5 : -1 : 1
ans =
5 4 3 2 1
valorInicial : valorFinal
>> 1 : 5
ans =
1 2 3 4 5
MATLAB Operadores Aritmticos

>> A = [1 2; 4 5];
>> B = [3 1; 6 8];
>> C = A / B
Operador Significado Exemplo C=
+ Adio de dois valores A=B+C
- Subtrao de dois valores A=B-C -0.2222 0.2778
* Multiplicao de dois valores A=B*C
/ Quociente de dois valores (a direita) A = B / C 0.1111 0.6111
\ Quociente de dois valores (a esquerda) A = B \ C
^ Exponenciao A=B^C >> D = A * B
D=
15 17
42 44
MATLAB Operadores para Conjuntos

>> A = [1 2; 4 5];
>> B = [3 1; 6 8];
>> C = A ./ B
Operador Significado Exemplo
.* Multiplicao de dois valores A = B .* C
C=
./ Quociente de dois valores (a direita) A = B ./ C
.\ Quociente de dois valores (a esquerda) A = B .\ C
0.3333 2.0000
.^ Exponenciao A = B .^ C
0.6667 0.6250
>> D = A .* B
D=
3 2
24 40
MATLAB Operadores Relacionais

>> X = 5;
>> X > 0
ans =
Operador Significado Exemplo 1
> Maior do que X>5
>= Maior ou igual a X >= 10 >> A = [1 2;3 4];
< Menor do que X<5
<= Menor ou igual a X <= 10 >> B = [1 3;3 5];
== Igual a X == 0
~= Diferente de X ~= 0 >> C = A == B
C=
10
10
MATLAB Operadores Lgicos

>> X = 5;
>> X >= 0 && X <= 9
ans =
1
Operador Significado Exemplo
>> X >= 9 || X <= 0
&& Operador E X >= 0 && X <= 9
|| Operador OU X >= 9 || X <= 0 ans =
~ Operador NEGAO X ~= 10
0
>> X ~= 0
ans =
1
MATLAB Scritps

Arquivo texto com a lista de


comandos a ser executado.

% Exemplo de um script
a = sin(0.5);
fprintf('a = %d\n', a);
MATLAB Funes

Para criar uma funo preciso


que a primeira linha do arquivo
contenha a seguinte forma:
function [var1, var2, , varN] =
nomeDaFuncao(param1,
param2, , paramM);

function indice imc(peso, altura)


indice = peso / altura^2;
end
MATLAB Condicionais

if
if expressaoCondicional
sequenciaDeComandos
end
if-else
if expressaoCondicional
sequenciaDeComandos
else
sequenciaDeComandos
end
MATLAB Condicionais

switch
switch variavel
case valor1
sequenciaDeComandos
case {valor2, valor3, }
sequenciaDeComandos

otherwise
sequenciaDeComandos
end
MATLAB Repeties

while
while expressaoCondicional
sequenciaDeComandos
end
for
for variavel = valorInicial : incremento : valorFinal
sequenciaDeComandos
end
MATLAB Repeties

parfor
parfor variavel = valorInicial : incremento : valorFinal
sequenciaDeComandos
end

* parfor s executa com o toolbox de processamento paralelo


MATLAB Repeties

continue: interrompe a execuo atual do lao, avanando para a sua


prxima iterao;
break: interrompe a execuo do lao e o termina, avanando para a
primeira instruo fora do lao.
MATLAB NNSTART
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB NPRTOOL
MATLAB Script simples

% This script assumes these variables are defined:


%
% wineInputs - input data.
% wineTargets - target data.

inputs = wineInputs;
targets = wineTargets;
MATLAB Script simples

% Create a Pattern Recognition Network


hiddenLayerSize = 10;
net = patternnet(hiddenLayerSize)

% Setup Division of Data for Training, Validation, Testing


net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
MATLAB Script simples

% Train the Network


[net,tr] = train(net,inputs,targets);

% Test the Network


outputs = net(inputs);
errors = gsubtract(targets,outputs);
performance = perform(net,targets,outputs)

% View the Network


view(net)
MATLAB Script avanado

% Choose Input and Output Pre/Post-Processing Functions


% For a list of all processing functions type: help nnprocess
net.inputs{1}.processFcns = {'removeconstantrows','mapminmax'};
net.outputs{2}.processFcns = {'removeconstantrows','mapminmax'};

% For help on training function 'trainscg' type: help trainscg


% For a list of all training functions type: help nntrain
net.trainFcn = 'trainscg'; % Scaled conjugate gradient
MATLAB Projeto

Escolha uma base em UCI Machine Learning Repository e desenvolva um


artigo usando o template do IEEE contendo:
Introduo com a descrio do problema abordado;
Descrio dos 3 algoritmos de treinamento utilizados;
Experimentos e resultados com testes estatsticos;
Concluso e trabalhos futuros.

UCI Machine Learning: https://archive.ics.uci.edu/ml/datasets.html


Template IEEE: https://www.ieee.org/conferences_events/conferences/publishing/templates.html