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?
Objetivos
Projeto da disciplina
Valor: 1 ponto
MATLAB
MATrix LABoratory um software de alta
performance voltado para o clculo numrico.
MATLAB
uma linguagem interpretada, ou seja, cada
comando lido e interpretado um por vez.
Arquivos *.m
Os comandos do matlab so normalmente
digitados na janela de comando.
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.
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.
O que isso?
10
E isso?
11
12
Entendi nada...
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 )
14
15
Classe A
100
1
0 1
Classe A
Normaliza e
acrescenta
sadas
100
1
Classe B
100
1 0
Classe B
100
16
Randomiza e Particiona
1
0 1
100
0 1
08
0 1
Classe A
Particiona
1 0
46
1 0
61
1 0
Randomiza
Classe A (50%)
Classe A (25%)
Classe A (25%)
12
Classe B
100
Randomiza
Classe A
1
34
Classe B
Particiona
78
Classe B (50%)
Classe B (25%)
Classe B (25%)
17
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%)
18
19
Comeando a entender?
Em que no iremos mexer?
N de nodos de entrada
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.
21
x2
f1
w1
w3
w2
w4
w5
f3
As funes fi so do tipo
sigmide logstica.
w6
f2
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.
23
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
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
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)
Iterao
Sistemas Inteligentes IF864
Projeto de Redes Neurais
2013 Monitoria SI
28
29
30
31
Para comear...
32
33
Conjunto de Dados
384 linhas
Treinamento.txt
192 linhas
Validacao.txt
192 linhas
Teste.txt
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.
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
40