Projeto de Redes Neurais e MATLAB



Documentos relacionados
MLP (Multi Layer Perceptron)

Matlab - Neural Networw Toolbox. Ana Lívia Soares Silva de Almeida

Inteligência Artificial. Redes Neurais Artificiais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

MANUAL C R M ÍNDICE. Sobre o módulo de CRM Definindo a Campanha... 3

ROTINAS PADRÕES DO SISTEMAS

DESENVOLVIMENTO DE SOFTWARE. Introdução ao Visual Studio VB.Net. Programação Estruturada. Prof. Celso Candido ADS / REDES / ENGENHARIA

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

Como funciona? SUMÁRIO

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

PALAVRAS-CHAVE: Massas Nodulares, Classificação de Padrões, Redes Multi- Layer Perceptron.

Como gerar arquivos para Sphinx Operador

Versão /Set/ WeDo Soluções para Contact Center Consultorias

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Relatório de uma Aplicação de Redes Neurais

LINGUAGEM C UMA INTRODUÇÃO

Redes Neurais. Profa. Flavia Cristina Bernardini

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

Capacitação Aula4: Utilizando o Imagination e o Avidemux (GTK+)

2. A FERRAMENTA SOLVER (EXCEL)

Fluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos

Oficina de MATLAB Nível Básico Aula 1

3 Metodologia de Previsão de Padrões de Falha

Arquitetura de Rede de Computadores

Orientação a Objetos

Tutorial de Matlab Francesco Franco

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Procedimentos para configurar o Motion Detection no D-ViewCam 1 Para configurar o Motion Detection no D-ViewCam, é necessário que a câmera IP esteja

16.36: Engenharia de Sistemas de Comunicação Aula 14: Códigos cíclicos e detecção de erros

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

3. REDES DE CAMADA ÚNICA

Trecho retirando do Manual do esocial Versão 1.1

Controladores Lógicos Programáveis CLP (parte-3)

MANUAL DE UTILIZAÇÃO REDE CREDENCIADA

Follow-Up Acompanhamento Eletrônico de Processos (versão 3.0) Manual do Sistema. 1. Como acessar o sistema Requisitos mínimos e compatibilidade

PÉGASUS (ETHERNET POCKET) STUDIO V1.00 MANUAL DE INSTALAÇÃO E OPERAÇÃO

Estabilidade. Carlos Alexandre Mello. Carlos Alexandre Mello 1

BC-0005 Bases Computacionais da Ciência. Modelagem e simulação

Ambiente Moodle 2º Semestre de 2010 Modelo A4

SAD Gestor Gerenciador de Backup

CRIANDO BANCOS DE DADOS NO SQL SERVER 2008 R2 COM O SQL SERVER MANAGEMENT STUDIO

Manual de Conversão para PDF Envio de Arquivos ao Diário Oficial

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

PHP Material de aula prof. Toninho (8º Ano)

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO

MySQL Query Browser. Professor Victor Sotero SGD

Professor: Macêdo Firmino Disciplina: Sistemas Operacionais de Rede

Introdução ao Processamento de Imagens com o IRIS Por Rodolfo Barros

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

UNIVERSIDADE GAMA FILHO Laboratório de Controle I - MATLAB

Relatório da Aula Prática sobre Redes Neurais Artificiais

Manual do Utilizador

Aprendizagem de Máquina

Redes Neurais no MATLAB 6.1

Diferenças da versão 6.3 para a 6.4

Guia Prático. Sistema EAD PRO-CREA

Sistema Click Principais Comandos

CONSTRUINDO CONSULTAS NO KOSMO 1.2

Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Felippe Scheidt IFPR Campus Foz do Iguaçu 2014/2

1) Botão "Ler Versão": apresenta a versão do firmware do leitor de cartões acoplado;

Rational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto

2. Representação Numérica

Jogos. Redes Sociais e Econômicas. Prof. André Vignatti

BEM VINDOS AO DHL WEB SHIPPING GUIA DE USO

Resolução de problemas e desenvolvimento de algoritmos

MANUAL DE UTILIZAÇÃO DO SISTEMA DE NOTA FISCAL ELETRÔNICA e-nota

Este software resolve todos esses problemas.adobe reader é um software free, para ler os arquivos pdf..

Sistema Modelix-G (Modelix-Grafix)

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Manual Administrador - Mídia System

Sistemas Distribuídos

Módulo 5 JPATransaction Camadas Turma Turma TurmaBC TurmaBC TurmaBC TurmaBC

Lógica de Programação

MC-102 Aula 01. Instituto de Computação Unicamp

AULA: BrOffice Impress terceira parte. Ao final dessa aula, você deverá ser capaz de:

GEADA. Gerador de Expressões Algébricas em Digrafos Acíclicos. para versão 1.0, de agosto/2008. Autor: Márcio Katsumi Oikawa

Figura 5.1.Modelo não linear de um neurônio j da camada k+1. Fonte: HAYKIN, 2001

Daruma NFCe Conheça todos os passos para testar a NFCe Daruma

Manual Sistema MLBC. Manual do Sistema do Módulo Administrativo

A4 Projeto Integrador e Lista de Jogos

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 20 - Backpropagation

Microsoft Excel 2007

1. Um servidor rodando Windows 7 (um computador onde o SIPAR ficará instalado e com os dados neste computador);

Unidade 3: Linguagem de programação

Instalando software MÉDICO Online no servidor

Manual do Visualizador NF e KEY BEST

Previsão do Mercado de Ações Brasileiro utilizando Redes Neurais Artificiais

MICROSOFT EXCEL - AULA NÚMERO 06

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Extração de Árvores de Decisão com a Ferramenta de Data Mining Weka

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS COTAS DE DISCO. Professor Carlos Muniz

1. Desativar o Firewall do computador. Clique em Iniciar Clique em Painel de Controle, como mostra a figura a seguir.

QGIS 2.4 Estatísticas de Grupo Somatório de Áreas

CODE IGNITER INSTALAÇÃO & BANCO DE DADOS

CRIANDO MDT. Para criar o MDT Selecione o botão Modelagem ou clique na área esquerda da do programa onde se terá a opção criar Nova Modelagem.

TUTORIAL DE INSTALAÇÃO APACHE PHP POSTGRESQL 8.2

Prática 6 ActionScript

Transcrição:

Projeto de Redes Neurais e MATLAB Centro de Informática Universidade Federal de Pernambuco Sistemas Inteligentes IF684 Arley Ristar arrr2@cin.ufpe.br Thiago Miotto tma@cin.ufpe.br Baseado na apresentação de Alice Lucena

Objetivos Projeto da disciplina O que é o MATLAB? Como usar o projeto? Aliás, o que será feito? 2

Objetivos Projeto da disciplina Valor: 1 ponto 50% relatório (coletivo) 50% perguntas aleatórias (individual) 3

MATLAB MATrix LABoratory é um software de alta performance voltado para o cálculo numérico. Ele integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos. Problemas e soluções são expressos matematicamente através de matrizes. 4

MATLAB É uma linguagem interpretada, ou seja, cada comando é lido e interpretado um por vez. Comandos são escritos na janela de comando. Tudo é considerado matriz. Dados escalares são considerados com matrizes 1x1. Ex: x = 10; x = [1 2 3]; x = final 5

Arquivos *.m Os comandos do matlab são normalmente digitados na janela de comando. Apenas uma linha de comando é introduzida na janela que posteriormente é interpretada. Porém, o matlab oferece a opção de executar seqüências de comandos armazenadas em arquivos. 6

Arquivos *.m Os arquivos que contêm essas declarações são chamados de arquivos.m ou também scripts. Eles consistem de uma seqüência de comandos normais do matlab. Exemplo: O script que será usado por vocês para treinarem a rede neural. 7

Gráficos O matlab oferece a opção para visualizar gráficos. Há uma lista com vários comandos para plotar diferentes tipos de gráficos. Todos esses comandos recebem como argumento um vetor numérico. 8

Projeto da Disciplina Serão usados os problemas disponíveis na conhecida base de dados Proben1. Cada problema possui 3 arquivos de dados. Ex: O problema câncer possui os arquivos cancer1.dt, cancer2.dt e cancer3.dt. Os arquivos diferem na ordem de apresentação dos padrões, dependendo desta ordem a rede neural pode gerar resultados diferentes. Não haverá equipes com o mesmo arquivo de dados. As equipes terão no máximo 5 integrantes e a equipe deverá mandar email para Arley (arrr2@cin.ufpe.br) com o subject [SI] Equipe informando quais são os alunos que compõem a equipe. Assim que o email for recebido, será enviado ao grupo o nome do arquivo referente ao seu projeto. 9

O que é isso? 10

E isso? 11

Como vocês sabem? Como se sabe que um urso é um urso? 12

Entendi nada... 13

Pré-processamento Neste projeto, não será cobrado, pois os dados já foram préprocessados. É comum fazer normalização (para garantir que os valores estarão dentro de uma determinado intervalo). Nos problemas do Proben é usado o método min-max[0,1]. Exemplo de escalonamento para o intervalo [0,1]: x norm ( x x ( x x max min ) min ) Onde x norm é o valor normalizado correspondente ao valor original x, e x min e x max são os valores mínimo e máximo entre todos os valores (ou separadamente por atributo). 14

Particionamento dos Dados Particionamento de dados utilizado no Proben1: 50% dos padrões de cada classe escolhidos aleatoriamente para treinamento, 25% para validação, 25% para teste. É importante que as proporções entre as classes no conjunto completo de dados sejam mantidas nos conjuntos de treinamento, validação e teste. Neste projeto, não será cobrado, pois cada arquivo de dados já está dividido em treinamento, validação e teste. 15

Normalização dos Dados Exemplo: 1 234 345 456 567 678 789 1 0.12 0.23 0.34 0.45 0.56 0.67 0 1 Classe A Classe A 100 1 987 876 765 654 543 432 Normaliza e acrescenta saídas 100 1 0.87 0.76 0.65 0.54 0.43 0.32 1 0 Classe B Classe B 100 100 16

Randomiza e Particiona 1 0.12... 0.67 0 1 34 0.12... 0.67 0 1 Classe A (50%) 08 0.39... 0.27 0 1 Classe A Randomiza Classe A Particiona Classe A (25%) 100 12 Classe A (25%) 1 0.87... 0.32 1 0 46 0.87... 0.32 1 0 61 0.51... 0.92 1 0 Classe B (50%) Classe B Randomiza Classe B Particiona Classe B (25%) 100 78 Classe B (25%) 17

Divisão dos Dados Classe A (50%) Classe A (25%) Classe A (25%) Classe B (50%) Classe A (50%) Classe B (50%) Classe A (25%) Classe B (25%) Treinamento Validação Classe B (25%) Classe B (25%) Classe A (25%) Classe B (25%) Teste 18

Definição da Topologia MLP Aspectos que serão fixos neste projeto: Nº de nodos de entrada: Quantidade de atributos de entrada. Nº de nodos de saída: Em problemas de classificação, é a quantidade de classes. Regra de classificação winner-takes-all: o nodo de saída que gerar a maior saída define a classe do padrão. Em problemas de aproximação, é a quantidade de variáveis de saída. Uma única camada escondida. Função de ativação dos neurônios: sigmóide logística. Todas as possíveis conexões entre camadas adjacentes, sem conexões entre camadas não-adjacentes. 19

Começando a entender? Nº de nodos de entrada Em que não iremos mexer? 20

Variação Aspectos que serão variados neste projeto: Nº de neurônios escondidos (serão usados 3 valores); A taxa de aprendizado a ser utilizada (serão usados 3 valores); O número de máximo de iterações. 21

Número de neurônios na camada escondida Variando o nº de neurônios escondidos, estamos variando a quantidade de pesos da rede. Explicação: Uma rede neural implementa uma função. Os pesos da rede são os parâmetros da função. Dessa forma, aumentar a quantidade de pesos da rede significa aumentar a complexidade da função implementada. x 1 w 1 f 1 w 3 w 5 f 3 y As funções f i são do tipo sigmóide logística. x 2 w 4 w 2 f 2 w 6 y = f 3 ( w 5 f 1 (w 1 x 1 + w 3 x 2 ) + w 6 f 2 (w 2 x 1 + w 4 x 2 ) ). 22

Underfitting e Overfitting ATENÇÃO! Se a quantidade de pesos for pequena demais, pode haver underfitting. A função implementada não tem complexidade suficiente para resolver o problema abordado. Se a quantidade de pesos for grande demais, pode haver overfitting. A função implementada tem complexidade demais para o problema, sendo capaz de modelar detalhes demais dos dados de treinamento. 23

A taxa de aprendizado a ser utilizada Usando taxa de aprendizado muito baixa, cada iteração faz um ajuste muito pequeno nos pesos (passo muito pequeno). Pode precisar de muitas iterações para convergir para o ponto de mínimo desejado na superfície de busca. Usando taxa de aprendizado muito alta, cada iteração faz um ajuste muito grande nos pesos (passo muito grande). Pode causar oscilações em torno de um ponto de mínimo. 24

Medidas de Erros Para ambos os tipos de problema, será usado o erro SSE (sum squared error - soma dos erros quadráticos). Ex.: Saídas da rede Padrão 1... N 1... N Saídas desejadas Nodo 1 0.98... 0.12 1.00... 0.00 Nodo 2 0.02... 0.96 0.00... 1.00 Soma dos erros quadráticos (SSE): SSE = (0.98 1.00) 2 +... + (0.12 0.00) 2 + (0.02 0.00) 2 +... + (0.96 1.00) 2. 25

Medidas de Erros Para problemas de classificação, também será calculado o erro de classificação (neste projeto, só para o conjunto de teste). Regra de classificação winner-takes-all: O neurônio de saída que apresentar o maior valor de saída determina a classe do padrão. Ex.: Saídas da rede Saídas desejadas Padrão 1... N 1... N Nodo 1 0.98... 0.12 1.00... 0.00 Nodo 2 0.02... 0.96 0.00... 1.00 Classe 1... 2 1... 2 Erro Classif. = 100 x Quant. de padrões classificados erradamente Quant. total de padrões 26

Backpropagation Será usado o algoritmo Backpropagation padrão É um algoritmo de gradiente descendente, ou seja, utiliza informações de derivada. Por isso, as funções de ativação devem ser contínuas e diferenciáveis (é o caso da sigmóide logística). Objetivo: Fazer ajuste de pesos, ou seja, escolher os pesos que geram as saídas mais corretas possíveis (menor erro) de forma iterativa. Idéia geral: A cada iteração, obter um erro cada vez menor para os dados de treinamento. Cuidado: Não permitir que a rede aprenda detalhes demais do conjunto de treinamento (overfitting). 27

Gráfico SSE Parada Conjunto de treinamento Erro mínimo de treinamento Iteração Conjunto de validação (neste exemplo, observado a cada 3 iterações) Erro alto para dados não usados no treinamento (não generaliza bem) Iteração 28

Parada por Erro Mínimo de Validação É recomendável que o treinamento seja interrompido quando o erro no conjunto de validação atingir um mínimo. A partir deste ponto, supõe-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 (validação) seria cada vez mais alto. Neste projeto, será usado o seguinte critério de parada: Interromper o treinamento quando o erro de validação subir por 5 iterações consecutivas. É o critério implementado no Matlab (parâmetro max_fail = 5 ). 29

O que vocês vão fazer? Vão escolher: 3 quantidades de neurônios escondidos, 3 taxas de aprendizado. Temos um total de 9 configurações a serem testadas. Para cada configuração, será realizado um treinamento. A melhor configuração a ser escolhida é a de menor erro de teste. 30

O que vocês vão fazer? Para a melhor configuração escolhida, devem ser feitos 10 treinamentos com diferentes inicializações de pesos. O objetivo é verificar como a melhor rede se comporta quando variamos os pesos iniciais. 31

Para começar... 32

Atenção, POR FAVOR!! 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 opção 'Open...'; 3. Selecione o Script ATENÇÃO Na pasta onde estiver o script deverá estar os txt Treinamento, validação 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 gráfico.

7. Na janela principal aparecerá os resultados.

Dúvidas? Monitores: Arley Ristar arrr2@cin.ufpe.br Thiago Miotto tma@cin.ufpe.br 40