Anda di halaman 1dari 40

Projeto de Redes

Neurais e MATLAB
Centro de Informtica
Universidade Federal de Pernambuco
Sistemas Inteligentes IF684
Arley Ristar arrr2@cin.ufpe.br
Thiago Miotto tma@cin.ufpe.br
Baseado na apresentao de Alice Lucena
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

Objetivos
Projeto da disciplina
O que o MATLAB?
Como usar o projeto? Alis, o que ser
feito?

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

Objetivos
Projeto da disciplina
Valor: 1 ponto

50% relatrio (coletivo)


50% perguntas aleatrias (individual)

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

MATLAB
MATrix LABoratory um software de alta
performance voltado para o clculo numrico.

Ele integra anlise numrica, clculo com


matrizes, processamento de sinais e
construo de grficos.
Problemas e solues so expressos
matematicamente atravs de matrizes.

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

MATLAB
uma linguagem interpretada, ou seja, cada
comando lido e interpretado um por vez.

Comandos so escritos na janela de comando.


Tudo considerado matriz. Dados escalares
so considerados com matrizes 1x1.
Ex: x = 10; x = [1 2 3]; x = final

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

Arquivos *.m
Os comandos do matlab so normalmente
digitados na janela de comando.

Apenas uma linha de comando introduzida


na janela que posteriormente interpretada.
Porm, o matlab oferece a opo de executar
seqncias de comandos armazenadas em
arquivos.

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

Arquivos *.m
Os arquivos que contm essas declaraes so
chamados de arquivos .m ou tambm
scripts.
Eles consistem de uma seqncia de
comandos normais do matlab.
Exemplo:
O script que ser usado por vocs para
treinarem a rede neural.
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

Grficos
O matlab oferece a opo para visualizar
grficos.

H uma lista com vrios comandos para plotar


diferentes tipos de grficos.
Todos esses comandos recebem como
argumento um vetor numrico.

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

Projeto da Disciplina
Sero usados os problemas disponveis na conhecida base
de dados Proben1.
Cada problema possui 3 arquivos de dados.
Ex: O problema cncer possui os arquivos cancer1.dt, cancer2.dt e
cancer3.dt.

Os arquivos diferem na ordem de apresentao dos


padres, dependendo desta ordem a rede neural pode
gerar resultados diferentes.
No haver equipes com o mesmo arquivo de dados. As equipes
tero no mximo 5 integrantes e a equipe dever mandar email
para Arley (arrr2@cin.ufpe.br) com o subject [SI] Equipe
informando quais so os alunos que compem a equipe. Assim que
o email for recebido, ser enviado ao grupo o nome do
arquivo referente ao seu projeto.
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

O que isso?

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

10

E isso?

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

11

Como vocs sabem?


Como se sabe que
um urso um urso?

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

12

Entendi nada...

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

13

Pr-processamento
Neste projeto, no ser cobrado, pois os dados j foram prprocessados.
comum fazer normalizao (para garantir que os valores
estaro dentro de uma determinado intervalo). Nos problemas
do Proben usado o mtodo min-max[0,1].
Exemplo de escalonamento para o intervalo [0,1]:

xnorm

( x xmin )
( xmax xmin )

Onde xnorm o valor normalizado correspondente ao valor original x, e xmin e


xmax so os valores mnimo e mximo entre todos os valores (ou
separadamente por atributo).

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

14

Particionamento dos Dados


Particionamento de dados utilizado no Proben1:
50% dos padres de cada classe escolhidos
aleatoriamente para treinamento,
25% para validao,
25% para teste.
importante que as propores entre as classes no
conjunto completo de dados sejam mantidas nos
conjuntos de treinamento, validao e teste.

Neste projeto, no ser cobrado, pois cada arquivo de


dados j est dividido em treinamento, validao e
teste.
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

15

Normalizao dos Dados


Exemplo:
1

234 345 456 567 678 789

Classe A

100
1

987 876 765 654 543 432

0 1

Classe A

Normaliza e
acrescenta
sadas

100
1

Classe B
100

0.12 0.23 0.34 0.45 0.56 0.67

0.87 0.76 0.65 0.54 0.43 0.32

1 0

Classe B
100

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

16

Randomiza e Particiona
1

0.12 ... 0.67

0 1

100

0 1

08

0.39 ... 0.27

0 1

Classe A

Particiona

0.87 ... 0.32

1 0

46

0.87 ... 0.32

1 0

61

0.51 ... 0.92

1 0

Randomiza

Classe A (50%)

Classe A (25%)
Classe A (25%)

12

Classe B
100

0.12 ... 0.67

Randomiza

Classe A
1

34

Classe B

Particiona

78

Classe B (50%)
Classe B (25%)
Classe B (25%)

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

17

Diviso dos Dados


Classe A (50%)
Classe A (25%)

Classe A (50%)

Treinamento
Classe B (50%)

Classe A (25%)
Classe A (25%)

Classe B (50%)

Classe B (25%)

Classe B (25%)

Classe A (25%)

Classe B (25%)

Validao
Teste

Classe B (25%)

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

18

Definio da Topologia MLP


Aspectos que sero fixos neste projeto:

N de nodos de entrada: Quantidade de atributos de entrada.


N de nodos de sada:
Em problemas de classificao, a quantidade de classes.
Regra de classificao winner-takes-all: o nodo de sada
que gerar a maior sada define a classe do padro.
Em problemas de aproximao, a quantidade de variveis de
sada.

Uma nica camada escondida.


Funo de ativao dos neurnios: sigmide logstica.
Todas as possveis conexes entre camadas adjacentes,
sem conexes entre camadas no-adjacentes.
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

19

Comeando a entender?
Em que no iremos mexer?
N de nodos de entrada

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

20

Variao
Aspectos que sero variados neste projeto:
N de neurnios escondidos (sero usados
3 valores);
A taxa de aprendizado a ser utilizada
(sero usados 3 valores);
O nmero de mximo de iteraes.

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

21

Nmero de neurnios na camada escondida


Variando o n de neurnios escondidos, estamos variando a
quantidade de pesos da rede.
Explicao: Uma rede neural implementa uma funo.
Os pesos da rede so os parmetros da funo.
Dessa forma, aumentar a quantidade de pesos da rede significa
aumentar a complexidade da funo implementada.
x1

x2

f1

w1
w3

w2
w4

w5

f3

As funes fi so do tipo
sigmide logstica.

w6
f2

y = f3( w5 f1 (w1 x1 + w3 x2) + w6 f2 (w2 x1 + w4 x2) ).


Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

22

Underfitting e Overfitting
ATENO!
Se a quantidade de pesos for pequena demais, pode
haver underfitting.
A funo implementada no tem complexidade
suficiente para resolver o problema abordado.

Se a quantidade de pesos for grande demais, pode haver


overfitting.
A funo implementada tem complexidade demais
para o problema, sendo capaz de modelar detalhes
demais dos dados de treinamento.

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

23

A taxa de aprendizado a ser utilizada


Usando taxa de aprendizado muito baixa, cada
iterao faz um ajuste muito pequeno nos pesos
(passo muito pequeno).
Pode precisar de muitas iteraes para convergir para o
ponto de mnimo desejado na superfcie de busca.

Usando taxa de aprendizado muito alta, cada


iterao faz um ajuste muito grande nos pesos
(passo muito grande).
Pode causar oscilaes em torno de um ponto de mnimo.

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

24

Medidas de Erros
Para ambos os tipos de problema, ser usado o erro SSE (sum
squared error - soma dos erros quadrticos).
Ex.:
Sadas da rede
Padro 1
... N
Nodo 1 0.98 ... 0.12
Nodo 2 0.02 ... 0.96

Sadas desejadas
... N
1.00 ... 0.00
0.00 ... 1.00

Soma dos erros quadrticos (SSE):


SSE = (0.98 1.00)2 + ... + (0.12 0.00)2 +
(0.02 0.00)2 + ... + (0.96 1.00)2.
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

25

Medidas de Erros
Para problemas de classificao, tambm ser calculado o erro de
classificao (neste projeto, s para o conjunto de teste).
Regra de classificao winner-takes-all:
O neurnio de sada que apresentar o maior valor de sada
determina a classe do padro.
Ex.:
Padro
Nodo 1
Nodo 2
Classe

Sadas da rede
1
...
N 1
0.98 ... 0.12
0.02 ... 0.96
1
... 2

Sadas desejadas
... N
1.00 ... 0.00
0.00 ... 1.00
1
... 2

Erro Classif. = 100 x Quant. de padres classificados erradamente


Quant. total de padres
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

26

Backpropagation
Ser usado o algoritmo Backpropagation padro
um algoritmo de gradiente descendente, ou seja, utiliza informaes
de derivada.
Por isso, as funes de ativao devem ser contnuas e diferenciveis (
o caso da sigmide logstica).

Objetivo:
Fazer ajuste de pesos, ou seja, escolher os pesos que geram as sadas mais
corretas possveis (menor erro) de forma iterativa.

Idia geral:
A cada iterao, obter um erro cada vez menor para os dados de treinamento.

Cuidado:
No permitir que a rede aprenda detalhes demais do conjunto de
treinamento (overfitting).
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

27

Grfico
SSE

Parada
Conjunto de
treinamento

Erro mnimo de
treinamento
Iterao

Conjunto de
validao
(neste exemplo,
observado a cada
3 iteraes)

Erro alto para dados no


usados no treinamento
(no generaliza bem)

Iterao
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

28

Parada por Erro Mnimo de Validao


recomendvel que o treinamento seja interrompido
quando o erro no conjunto de validao atingir um
mnimo.
A partir deste ponto, supe-se que a rede s aprenderia
detalhes irrelevantes do conjunto de treinamento.
O erro para dados de treinamento seria cada vez menor,
mas o erro para dados novos (validao) seria cada vez
mais alto.

Neste projeto, ser usado o seguinte critrio de parada:


Interromper o treinamento quando o erro de validao
subir por 5 iteraes consecutivas.
o critrio implementado no Matlab (parmetro
max_fail = 5).
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI

29

O que vocs vo fazer?


Vo escolher:

3 quantidades de neurnios escondidos,


3 taxas de aprendizado.
Temos um total de 9 configuraes a serem testadas.
Para cada configurao, ser realizado um treinamento.
A melhor configurao a ser escolhida a de menor erro
de teste.

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

30

O que vocs vo fazer?


Para a melhor configurao escolhida,
devem ser feitos 10 treinamentos com
diferentes inicializaes de pesos.
O objetivo verificar como a melhor rede
se comporta quando variamos os pesos
iniciais.

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

31

Para comear...

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

32

Ateno, POR FAVOR!!

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

33

Conjunto de Dados

384 linhas

Treinamento.txt

192 linhas
Validacao.txt
192 linhas

Teste.txt

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

34

1. Abra o MATLAB
2. Em "Arquivo", selecione a opo 'Open...';
3. Selecione o Script

ATENO
Na pasta onde estiver o script dever estar os txt
Treinamento, validao e teste.

4. Modifique o Script para que ele se adeque ao seu caso.

5. Rode o script

6. Na janela resultante,
clique em Performace e tire
um print do grfico.

7. Na janela principal
aparecer os resultados.

Dvidas?
Monitores:
Arley Ristar arrr2@cin.ufpe.br
Thiago Miotto tma@cin.ufpe.br

Sistemas Inteligentes IF864


Projeto de Redes Neurais
2013 Monitoria SI

40

Anda mungkin juga menyukai