Você está na página 1de 48
Aula prática: Redes Neurais Tiago Pessoa Ferreira de Lima Teresa Bernarda Ludermir {tpfl2,tbl}@cin.ufpe.br

Aula prática: 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 disponíveis no mercado para

Objetivos

Apresentar

um

breve

panorama

de

uma

das

principais

ferramentas

disponíveis no mercado para se trabalhar com Redes Neurais Artificiais.

breve panorama de uma das principais ferramentas disponíveis no mercado para se trabalhar com Redes Neurais


MATLAB

O que é?

Toolboxs:

Fuzzy Logic;

Global Optimization;

Image Processing;

Neural Network;

Etc.

MATLAB – Interface

MATLAB Interface

MATLAB – Interface
MATLAB – Interface

MATLAB Interface

MATLAB – Interface
MATLAB – Interface

MATLAB Interface

MATLAB – Interface
MATLAB – Interface

MATLAB Interface

MATLAB – Interface
MATLAB – Interface

MATLAB Interface

MATLAB – Interface
 

MATLAB O básico

Matrizes

Operadores

Aritméticos

Para Conjuntos

Relacionais

Lógicos

Scripts & Funções

Condicionais

Repetições



MATLAB Matrizes

São definidos por colchetes.

Espaçoou Vírgulaseparam colunas;

“Ponto e vírgulaou “Enter” separam linhas.

Exemplos:

>> vetor = [1, 2, 3]

vetor =

>> matriz = [1, 2, 3; 4, 5, 6]

matriz =

1

2

3

1

2

3

4

5

6



MATLAB Matrizes

Algumas funções permitem a criação de matrizes:

zeros: cria uma matriz com 0’s

>> m = zeros(2)

m =

0

0

0

0

>> m = zeros(2,3)

m =

0

0

0

0

0

0



MATLAB Matrizes

Algumas funções permitem a criação de matrizes:

ones: cria uma matriz com 1’s

>> m = ones(2)

m =

1 1

1 1

>> m = ones(2,3)

m =

1 1

1

1 1

1



MATLAB Matrizes

Algumas funções permitem a criação de matrizes:

rand: cria uma matriz com números aleatórios (distribuição 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 funções permitem a criação de matrizes:

randn: cria uma matriz com números aleatórios (distribuição 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

Dúvidas em algumas dessas funções?

>> help randn

randn Normally distributed pseudorandom numbers. R = randn(N) returns an N-

by-N matrix containing pseudorandom values drawn from the standard

)

or randn([M,N,P,

])

returns an M-by-N-by-P-by-

normal distribution. randn(M,N) or randn([M,N]) returns an M-by-N matrix.

array. randn

returns a scalar. randn(SIZE(A)) returns an array the same size as A.

randn(M,N,P,



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;
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
 C D
C
D

MATLAB Matrizes

Concatenação de matrizes

>> A = [1, 2];

>> B = [3, 4];

>> C = [A, B]

=

1

2

3

4

>> D = [A; B]

=

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 Aritméticos >> A = [1 2; 4 5]; >> B = [3

MATLAB Operadores Aritméticos

>> A = [1 2; 4 5];

>> B = [3 1; 6 8]; >> C = A / B C =

Operador

Significado

Exemplo

+

Adição de dois valores

A = B + C

-

Subtração de dois valores

A = B - C

*

Multiplicação de dois valores

A = B * C

/

Quociente de dois valores (a direita)

A = B / C

\

Quociente de dois valores (a esquerda)

A = B \ C

^

Exponenciação

A = B ^ C

-0.2222

0.2778

0.1111

0.6111

>> D = A * B

D =

15

17

42

44

MATLAB – Operadores para Conjuntos >> A = [1 2; 4 5]; >> B =

MATLAB Operadores para Conjuntos

>> A = [1 2; 4 5];

>> B = [3 1; 6 8]; >> C = A ./ B

C =

Operador

Significado

Exemplo

.*

Multiplicação de dois valores

A = B .* C

./

Quociente de dois valores (a direita)

A = B ./ C

.\

Quociente de dois valores (a esquerda)

A = B .\ C

.^

Exponenciação

A

= B .^ C

0.3333

2.0000

0.6667

0.6250

>> D = A .* B

D =

3

2

24

40

MATLAB – Operadores Relacionais >> X = 5; >> X > 0 ans = Operador

MATLAB Operadores Relacionais

>> X = 5;

>> X > 0 ans =

Operador

Significado

Exemplo

>

Maior do que

 

X > 5

>=

Maior ou igual a

X

>= 10

<

Menor do que

 

X < 5

<=

Menor ou igual a

X

<= 10

==

Igual a

X == 0

~=

Diferente de

X ~= 0

1

>> A = [1 2;3 4];

>> B = [1 3;3 5];

>> C = A == B

C =

1 0

1 0

Operador Significado Exemplo && Operador E X >= 0 && X <= 9 || Operador
Operador
Significado
Exemplo
&&
Operador E
X
>= 0 && X <= 9
||
Operador OU
X
>= 9 || X <= 0
~
Operador NEGAÇÃO
X ~= 10

MATLAB Operadores Lógicos

>> X = 5;

>> X >= 0 && X <= 9 ans =

1

>> X >= 9 || X <= 0

ans =

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);

texto com a lista de comandos a ser executado. % Exemplo de um script a =


MATLAB Funções

Para criar uma função é 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

…, varN ] = nomeDaFuncao(param1, param2, …, paramM); function indice imc(peso, altura) indice = peso /
 

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, …}

MATLAB Condicionais

switch switch variavel case valor1

sequenciaDeComandos

case {valor2, valor3, …}

sequenciaDeComandos

otherwise

sequenciaDeComandos

end

 

MATLAB Repetições

while

while expressaoCondicional

sequenciaDeComandos

end

for

for variavel = valorInicial : incremento : valorFinal

sequenciaDeComandos

end

MATLAB – Repetições  parfor parfor variavel = valorInicial : incremento : valorFinal sequenciaDeComandos end

MATLAB Repetições

parfor

parfor variavel = valorInicial : incremento : valorFinal

sequenciaDeComandos

end

* parfor só executa com o toolbox de processamento paralelo

MATLAB – Repetições  continue: interrompe a execução atual do laço, avançando para a sua

MATLAB Repetições

continue: interrompe a execução atual do laço, avançando para a sua próxima iteração;

break: interrompe a execução do laço e o termina, avançando para a primeira instrução fora do laço.

MATLAB – NNSTART

MATLAB NNSTART

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 – NPRTOOL

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 NPRTOOL

MATLAB – NPRTOOL
MATLAB – NPRTOOL
MATLAB – NPRTOOL

MATLAB NPRTOOL

MATLAB – NPRTOOL
MATLAB – NPRTOOL

MATLAB NPRTOOL

MATLAB – NPRTOOL
MATLAB – NPRTOOL

MATLAB NPRTOOL

MATLAB – NPRTOOL
% % wineInputs - input data. % wineTargets - target data. inputs = wineInputs; targets
%
%
wineInputs - input data.
%
wineTargets - target data.
inputs = wineInputs;
targets = wineTargets;

MATLAB Script simples

% This script assumes these variables are defined:

MATLAB – Script simples % Create a Pattern Recognition Network hiddenLayerSize = 10; net =

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

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 avançado

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:

Introdução com a descrição do problema abordado;

Descrição dos 3 algoritmos de treinamento utilizados;

Experimentos e resultados com testes estatísticos;

Conclusão e trabalhos futuros.