Vous êtes sur la page 1sur 82

Toolbox de Redes

Neurais
Matlab 2011b

Toolbox de Redes
Neurais
Introduo

ao Matlab

Linha de comando
NNTool

Estudo

de Casos

Anlise de Crdito Bancrio (Classificao).


Localizao de Faltas (Inferncia).
Sensao Trmica (Previso).

Toolbox de Redes
Neurais
Introduo

ao Matlab

Linha de comando
NNTool

Estudo

de Casos

Anlise de Crdito Bancrio (Classificao).


Localizao de Faltas (Inferncia).
Sensao Trmica (Previso).

MATLAB

MATrix LABoratory

Programao

baseada em Matrizes

Vetores

e escalares so tratados como


matrizes (1xN, Nx1, NxN)

Introduo ao Ambiente

Tela Principal

Janela de Comando

Tela Principal

Janela de
Histrico

Tela Principal

Workspace

Tela Principal

Diretrio
Atual

Tela Principal

Launch Pad

Tela Principal

Janela de Comando

Matrizes no
Matlab

Quadro Melancholia I, do
artista alemo e matemtico
amador Albrecht Drer

Quadrado
Mgico

Matriz NxN construda a


partir de inteiros de 1 a N2 em
que as somas das colunas so
iguais s somas das linhas.

Quadrado
Mgico

Matriz NxN construda a


partir de inteiros de 1 a N2 em
que as somas das colunas so
iguais s somas das linhas.

Definindo uma
Matriz
Explicitamente
Elementos

de uma linha so
separados por espaos ou
vrgulas.
O

final de cada linha


indicado por um ponto-evrgula.
A

lista de elementos
delimitada por colchetes [ ].

Janela de Comando

Janela de Comando

Toolbox de Redes
Neurais
Introduo

ao Matlab

Linha de comando
NNTool

Estudo

de Casos

Anlise de Crdito Bancrio (Classificao).


Localizao de Faltas (Inferncia).
Sensao Trmica (Previso).

Definio

do problema

Inicializao
Definio

dos parmetros de treinamento

Treinamento
Teste

da rede
da rede

da rede

Passos p/ a criao de uma RN

Definio

do problema

Inicializao
Definio

dos parmetros de treinamento

Treinamento
Teste

da rede
da rede

da rede

Passos p/ a criao de uma RN

Definio do
problema
O problema do OU-Exclusivo
1

x
1

Passos p/ a criao de uma RN

Definio

do problema

Inicializao
Definio

dos parmetros de treinamento

Treinamento
Teste

da rede

da rede

da rede

Passos p/ a criao de uma RN

Definio do
problema
O problema do OU-Exclusivo
1

x
1

Passos p/ a criao de uma RN

# linhas = # de variveis
# colunas = # de padres

Definio do
problema
O problema do OU-Exclusivo
1

x
1

Passos p/ a criao de uma RN

Definio do
problema
O problema do OU-Exclusivo
1

x
1

Passos p/ a criao de uma RN

Definio

do problema

Definio

dos padres

Inicializao
Definio

dos parmetros de treinamento

Treinamento
Teste

da rede
da rede

da rede

Passos p/ a criao de uma RN

Inicializao
da rede
Perceptron:
net =
newff( P,
T,
N_hid

padres entrada
targets
camadas escondidas );

net =
newff( P,
T

padres entrada
targets );

ou

ou
net =
newp( P,
T

Passos p/ a criao de uma RN

padres entrada
targets );

Inicializao
da rede
Perceptron:
net =
newff( P,
T,
N_hid

padres entrada
targets
camadas escondidas );

net =
newff( P,
T

padres entrada
targets );

ou

ou
net =
newp( P,
T

Passos p/ a criao de uma RN

padres entrada
targets );

Inicializao
da rede
MLP:
net =
newff( P,
T,
{H1..Hn-1},
{TF1..TFn},
BTF,
BLF

Passos p/ a criao de uma RN

padres entrada
targets
camadas escondidas
func. transf.
alg. treinamento
alg. aprendizado);

Inicializao
da rede
MLP:
net =
newff( P,
T,
{H1..Hn-1},
{TF1..TFn},
BTF,
BLF

padres entrada
targets
camadas escondidas
func. transf.
alg. treinamento
alg. aprendizado);

Funes de Transferncia:

Passos p/ a criao de uma RN

Inicializao
da rede
MLP:
net =
newff( P,
T,
[H1..Hn-1],
{TF1..TFn},
BTF,
BLF

padres entrada
targets
camadas escondidas
func. transf.
alg. treinamento
alg. aprendizado);

Algoritmos de Treinamento:
traingd

Gradient descent backpropagation

traingdm

Gradient descent backpropagation


com momentum

traingda

Gradient descent backpropagation


com taxa adaptativa

traingdx

Gradient descent backpropagation


com momentum e taxa adaptativa

trainlm

Levenberg-Marquardt
backpropagation (default)

trainrp

Resilient backpropagation (Rprop)

Passos p/ a criao de uma RN

Inicializao
da rede
MLP:
net =
newff( P,
T,
{H1..Hn-1},
{TF1..TFn},
BTF,
BLF

padres entrada
targets
camadas escondidas
func. transf.
alg. treinamento
alg. aprendizado);

Algoritmos de Aprendizado:
learngd

Gradient descent weight and bias learning


function

learngdm Gradient descent with momentum weight


and bias learning function

Passos p/ a criao de uma RN

Definio

do problema

Definio

dos padres

Inicializao

Definio

dos parmetros de treinamento

Treinamento
Teste

da rede

da rede

da rede

Passos p/ a criao de uma RN

Parmetros de
Treinamento
net.trainParam.epochs

Nmero de epochs

net.trainParam.goal

Erro final desejado

net.trainParam.lr

Taxa de aprendizado

net.trainParam.show

Atualizao da tela
(epochs)

net.trainParam.mc

Taxa de momentum

net.trainParam.lr_inc

Taxa de incremento
da l.r.

net.trainParam.lr_dec

Taxa de decremento
da l.r.

net.trainParam.max_perf_inc

Incremento mximo
do erro

Passos p/ a criao de uma RN

Parmetros de
Treinamento (early
stopping)
Divide vectors into three sets using specified indices.
net.divideFcn = 'divideind';
net.divideParam.trainInd = indTreino;
net.divideParam.valInd = indValidacao;
net.divideParam.testInd = indTeste;
Divide vectors into three sets using random indices.
net.divideFcn = 'dividerand';
net.divideParam.trainRatio: 0.6000;
net.divideParam.valRatio: 0.2000;
net.divideParam.testRatio: 0.2000;
Divide vectors into three sets using blocks of indices.
net.divideFcn = 'divideblock';
net.divideParam.trainRatio: 0.6000;
net.divideParam.valRatio: 0.2000;
net.divideParam.testRatio: 0.2000;
net.divideFcn = '';

Passos p/ a criao de uma RN

Definio

do problema

Definio

dos padres

Inicializao
Definio

da rede

dos parmetros de treinamento

Treinamento
Teste

da rede

da rede

Passos p/ a criao de uma RN

Treinando a
rede
net = train(net, P, T);

Passos p/ a criao de uma RN

Treinando a
rede
net = train(net, P, T);

Passos p/ a criao de uma RN

Definio

do problema

Definio

dos padres

Inicializao
Definio

dos parmetros de treinamento

Treinamento

Teste

da rede
da rede

da rede

Passos p/ a criao de uma RN

Testando a rede

C = sim(net, P);

Passos p/ a criao de uma RN

Perceptron
bsico
TESTE 1: Rede neural com apenas
uma camada de processadores

xor1.m

M-file desenvolvida para o XOR

Multi-layer
Perceptron
TESTE 2: Rede neural com uma
camada escondida de
processadores (Multi-Layer
Perceptron);

TAXA de APRENDIZADO CONSTANTE,


sem MOMENTUM

xor2.m

M-file desenvolvida para o XOR

Multi-layer
Perceptron
TESTE 2: Rede neural com uma
camada escondida de
processadores (Multi-Layer
Perceptron);

TAXA ADAPTATIVA e MOMENTUM

xor3.m

M-file desenvolvida para o XOR

Toolbox de Redes
Neurais
Introduo

ao Matlab

Linha de comando
NNTool

Estudo

de Casos

Anlise de Crdito Bancrio (Classificao).


Localizao de Faltas (Inferncia).
Comportamento do Clima (Previso).

Interface grfica NNTool

Definio

do problema

Inicializao
Definio

dos parmetros de treinamento

Treinamento
Teste

da rede
da rede

da rede

Passos p/ a criao de uma RN

Definio

do problema

Inicializao
Definio

dos parmetros de treinamento

Treinamento
Teste

da rede
da rede

da rede

Passos p/ a criao de uma RN

Definio do
problema
O problema do OU-Exclusivo
1

x
1

Passos p/ a criao de uma RN

Definio do
problema
2

O problema do OU-Exclusivo
1

Passos p/ a criao de uma RN

Definio do
problema
O problema do OU-Exclusivo

x
1

Passos p/ a criao de uma RN

Definio do
problema
O problema do OU-Exclusivo
1

T
x
1

Passos p/ a criao de uma RN

Criar a rede
PERCEPTRON

2
3
1
4

Passos p/ a criao de uma RN

Criar a rede
Mult-layer PERCEPTRON

2
3
1
4

Passos p/ a criao de uma RN

Definio

do problema

Inicializao
Definio

dos parmetros de treinamento

Treinamento
Teste

da rede

da rede

da rede

Passos p/ a criao de uma RN

Inicializao
da rede

Passos p/ a criao de uma RN

Definio

do problema

Inicializao

Definio

dos parmetros de treinamento

Treinamento
Teste

da rede

da rede

da rede

Passos p/ a criao de uma RN

Parmetros de
treinamento

Passos p/ a criao de uma RN

Parmetros de
treinamento

Passos p/ a criao de uma RN

Parmetros de
treinamento
(early stopping)
net.divideFcn = 'divideind';
net.divideParam.trainInd = indTreino;
net.divideParam.valInd = indValidacao;
net.divideParam.testInd = indTeste;
net.divideFcn = 'dividerand';
net.divideParam.trainRatio: 0.6000;
net.divideParam.valRatio: 0.2000;
net.divideParam.testRatio: 0.2000;
net.divideFcn = 'divideblock';
net.divideParam.trainRatio: 0.6000;
net.divideParam.valRatio: 0.2000;
net.divideParam.testRatio: 0.2000;
net.divideFcn = '';

Passos p/ a criao de uma RN

Definio

do problema

Inicializao
Definio

da rede

dos parmetros de treinamento

Treinamento
Teste

da rede

da rede

Passos p/ a criao de uma RN

Treinamento da
rede

Passos p/ a criao de uma RN

Definio

do problema

Inicializao
Definio

dos parmetros de treinamento

Treinamento

Teste

da rede
da rede

da rede

Passos p/ a criao de uma RN

Testando a rede

1
2

Passos p/ a criao de uma RN

Testando a rede

Passos p/ a criao de uma RN

Toolbox de Redes
Neurais
Introduo

ao Matlab

Linha de comando
NNTool

Estudo

de Casos

Anlise de Crdito Bancrio (Classificao).


Localizao de Faltas (Inferncia).
Sensao Trmica (Previso).

https://www.dropbox.com/sh/6apam57qlbm7dvy/AABVLfl6nvLObuuT9sPsrn5Ha

Anlise de Crdito Bancrio


Base de Dados: contm informaes sobre 1500 clientes:
715 pagadores; 785 no pagadores.

Atributos da Base de Dados:

ESTC
Estado civil
NDEP
Nmero de dependentes
RENDA
Renda familiar
TIPOR Tipo de Residncia (0=alugada,1=prpria,2=parentes)
VBEM
O valor do bem a ser adquirido
NPARC
O nmero de parcelas a serem pagas
VPARC
O valor de cada parcelas
TEL
Possui telefone (0=no e 1=sim)
IDADE
Quantos anos a pessoa tem
RESMS
Tempo de moradia (em ms)
ENTRADA o valor da parcela paga no dia do emprstimo

Sada:
CLASSE_1 O cliente no pagou o emprstimo
CLASSE_2 O cliente pagou o emprstimo

Anlise de Crdito Bancrio


Amostra da Base de Dados:
ESTC

NDEP

RENDA

TIPOR

VBEM

NPARC

VPARC

TEL

IDADE

RESMS

ENTRADA

CLASSE_1

CLASSE_2

0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0

0
2
1
0
0
0
2
0
0
0
0
0
2
0
0
0
0
2
0

350
580
500
2000
411
500
500
800
300
554
332
342
632
600
800
480
1300
868
300

1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

468
349
828
309
390
614
347
359
309
429
593
453
365
587
495
460
349
567
399

10
10
18
6
12
10
4
6
6
10
4
10
6
10
15
3
10
10
10

65
51
89
66
55
81
101
76
66
60
100
59
78
89
59
135
51
78
55

0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0

33
30
29
29
40
59
44
51
30
46
44
52
49
44
50
59
45
39
29

6
6
6
6
0
6
6
6
6
6
215
6
6
60
6
6
6
6
6

0
0
0
0
0
0
0
0
0
0
198
0
0
0
0
100
0
0
0

0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1

1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0

Anlise de Crdito Bancrio


Estado Civil
Nmero de Dependentes
Renda Familiar
Tipo de Residncia
Valor do Emprstimo

Cliente Pagador

Nmero de Parcelas
Valor da Parcela
Possui Telefone
Idade
Tempo de Moradia
Valor da Entrada

Cliente No-Pagador

Anlise de Crdito Bancrio

Base de Dados:

Anlise de Crdito Bancrio

Neural Network Start:

Classificao

Anlise de Crdito Bancrio


Informao

Selecionar os dados

Anlise de Crdito Bancrio

Padres
Targets

Organizao dos dados

Anlise de Crdito Bancrio


Seleo conjuntos de treino, validao e teste

Anlise de Crdito Bancrio


Nmero de neurnios

Anlise de Crdito Bancrio


Treinamento da rede

Anlise de Crdito Bancrio

Matriz de Confuso

Comportamento do treinamento

Anlise de Crdito Bancrio

Classificao:
Treinamento
Validao
Teste

Anlise de Crdito Bancrio


MSE

Toolbox de Redes
Neurais
Introduo

ao Matlab

Linha de comando
NNTool

Estudo

de Casos

Anlise de Crdito Bancrio (Classificao).


Localizao de Faltas (Inferncia).
Sensao Trmica (Previso).

Localizao de Faltas

Localizao de Faltas

Toolbox de Redes
Neurais
Introduo

ao Matlab

Linha de comando
NNTool

Estudo

de Casos

Anlise de Crdito Bancrio (Classificao).


Localizao de Faltas (Inferncia).
Sensao Trmica (Previso).

Vous aimerez peut-être aussi