Redes Neurais Artificiais

Documentos relacionados
Redes Perceptron e Multilayer Perceptron aplicadas a base de dados IRIS

2. Redes Neurais Artificiais

Redes Neurais Artificial. Prática. Inteligência Artificial

3 Redes Neurais Artificiais

Redes Neurais Artificiais. Sistemas de Informação/Ciências da Computação UNISUL Aran Bey Tcholakian Morales, Dr. Eng. (Apostila 9)

Classificação Linear. André Tavares da Silva.

Multi-Layer. Perceptrons. Algoritmos de Aprendizado. Perceptrons. Perceptrons

Redes Neurais Artificial. Inteligência Artificial. Professor: Rosalvo Ferreira de Oliveira Neto

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Inteligência Artificial Redes Neurais

Multi-Layer. Perceptrons. Algoritmos de Aprendizado. Perceptrons. Perceptrons

Ambiente MATLAB. Redes Neurais. Tela Principal do MATLAB MATLAB 6.5. MATLAB MATrix LABoratory. Programação baseada em Matrizes

Aprendizado de Máquinas. Multi-Layer Perceptron (MLP)

Regra de Hebb Perceptron Delta Rule (Least Mean Square) Multi-Layer Perceptrons (Back Propagation) Hopfield Competitive Learning Radial Basis Function

2. Redes Neurais Artificiais

Redes Neurais: MLP. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

TÓPICOS EM INTELIGÊNCIA ARTIFICIAL Redes Neurais Artificiais

2. Redes Neurais Artificiais

INTELIGÊNCIA ARTIFICIAL

Aprendizado de Máquina (Machine Learning)

Redes Neurais Artificiais

REDES NEURAIS. Marley Maria B.R. Vellasco. ICA: Núcleo de Pesquisa em Inteligência Computacional Aplicada CONTEÚDO

serotonina (humor) dopamina (Parkinson) serotonina (humor) dopamina (Parkinson) Prozac inibe a recaptação da serotonina

João Paulo Teixeira Departamento de Electrotecnia ESTiG Instituto Politécnico de Bragança

Fundamentos de Inteligência Artificial [5COP099]

SCC Capítulo 4 Perceptron de Camada Única

Redes Neurais. Prof. Aurora Pozo. Obs: slides baseados em Prof. Marcílio Souto e Prof. Marley Vellasco

Multiple Layer Perceptron

Redes Neurais MLP: Exemplos e Características

Sistemas Inteligentes - Redes Neurais -

JAI 6 - Deep Learning Teoria e Prática

Redes Neurais Artificiais - Introdução. Visão Computacional

Previsão de consumos a curto prazo

Rede RBF (Radial Basis Function)

REDES NEURAIS ARTIFICIAIS

Redes Neurais Artificiais

Mineração de Dados em Biologia Molecular

Redes Neurais Artificiais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Algoritmos de Aprendizado. Formas de Aprendizado. Aprendizado Batch x Incremental. Aprendizado Batch x Incremental

PERCEPTRON. Características Básicas Modelo de Neurônio Estrutura da Rede Algoritmo de Aprendizado

4 Redes Neurais Artificiais RNAs

Primeiras Redes Neurais Artificiais: Perceptron e Adaline

Por que Redes Neurais?

Redes Neurais Artificiais na Engenharia Nuclear 1 Aula-2 Ano: 2005

Redes Neurais Artificiais

Introdução às Redes Neurais Artificiais

Redes Neurais 1. Redes Neurais. cont.) Definição (cont( Definição. Histórico. Características básicas

Redes Neurais Artificiais

Aprendizado de Máquina Introdução às Redes Neurais Artificiais

Introdução à Redes Neurais. Prof. Matheus Giovanni Pires EXA 868 Inteligência Artificial Não-Simbólica B Universidade Estadual de Feira de Santana

Redes Neurais Artificial

Algoritmos de Aprendizado. CONTEÚDO Introdução Motivação, Objetivo, Definição, Características Básicas e Histórico. Regra de HEBB.

Redes Neurais no MATLAB 6.1

Redes Neurais Artificiais

Algoritmos de Aprendizado. Formas de Aprendizado. Aprendizado Batch x Incremental. Aprendizado Batch x Incremental

Redes Neurais Artificiais

Introdução às Redes Neurais Artificiais

Redes Neurais Artificiais. Prof. João Alberto Fabro

UM MODELO NEURAL PARA A PREVISÃO DA DEMANDA DE ENERGIA ELÉTRICA NA CIDADE DE FRANCA

Predição genômica de caracteres quantitativos por meio de Redes Neurais Artificias

Redes Neurais e Sistemas Fuzzy

3 REDES CLÁSSICAS PERCEPTRON E ADALINE

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Introdução a Redes Neurais Artificiais com a biblioteca Encog em Java

3 Redes Neurais Introdução

HP UFCG Analytics Abril-Maio Um curso sobre Reconhecimento de Padrões e Redes Neurais. Por Herman Martins Gomes.

Redes Neurais Artificiais

Inteligência Artificial. IA Conexionista: Perceptron de Múltiplas Camadas Mapas Auto-Organizáveis. Renan Rosado de Almeida

SELEÇÃO DE VARIÁVEIS STEPWISE APLICADAS EM REDES NEURAIS ARTIFICIAIS PARA PREVISÃO DE DEMANDA DE CARGAS ELÉTRICAS

4 Redes Neurais Artificiais

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Teorema de Aprox. Universal. Teorema de Aprox. Universal. Teorema de Aprox. Universal. Teorema de Aprox. Universal. Teorema de Aprox.

Transcrição:

Redes Neurais Artificiais Multi Layer Perceptron Adriano Cruz Universidade Federal do Rio de Janeiro 13 de março de 2013 Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 1 / 69 Resumo Seção 1 Introdução 2 Treinamento 3 Treinamento - Teoria 4 Programando Aproximando Função Iris Clustering 5 Referências Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 2 / 69

Onde me achar? 1 mensagem::adriano@nce.ufrj.br 2 página::http://equipe.nce.ufrj.br/adriano 3 sala::nce - Sala E1033 4 tel::2598-3163 Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 3 / 69 Até agora? Perceptron e Adaline resolvem problemas linearmente separáveis. Funções lineares. Somente uma camada. Para problemas mais complexos. Funções não lineares. Mais de uma camada. Uma possível solução é Multi Layer Perceptron. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 4 / 69

MLPs RNAs de múltiplas camadas resolvem problemas não linearmente separáveis. Uma função contínua pode ser aproximada por uma rede com uma camada oculta, desde que a camada de saída seja linear e a camada oculta utilize uma função de propagação contínua, não-constante, limitada e monotonicamente crescente (Teorema da Aproximação Universal). MLPs Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 5 / 69 P1 1 1 1 Y1 P2 2 2 2 Y2 Pn0 n0 n1 nl Ynl C0 C1 CL Camada de Entrada Camadas Escondidas Camada de Saída Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 6 / 69

Neurônio modificado A função de ativação é substituída por uma sigmóide ou tangente hiperbólica. +1 x1 w1 x2 w2 w0 Σ net Y xn wn Correção D Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 7 / 69 Resumo Seção 1 Introdução 2 Treinamento 3 Treinamento - Teoria 4 Programando Aproximando Função Iris Clustering 5 Referências Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 8 / 69

Como é o treinamento? Cada ciclo (epoch) tem duas fases. Forward Da camada de entrada para a camada de saída. Apresentação das entradas e geração das saídas. Backward Da camada de saída para a camada de entrada. Atualização dos pesos. Para camadas intermediárias, estimativa do erro a partir do erro da camada seguinte. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 9 / 69 Estratégias - Período Por padrão (incremental) Os pesos são ajustados após a apresentação de cada exemplo de conjunto de entrada. É estável se a taxa de aprendizado é pequena. É rápida se o conjunto de treinamento é grande e redundante. Requer menos memória. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 10 / 69

Estratégias - Período Por ciclo (batch/epoch) Os pesos são ajustados após a apresentação de todos os exemplos do conjunto de entrada. Geralmente é mais estável. É lenta se o conjunto de treinamento é grande e redundante. Requer mais memória. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 11 / 69 Estratégias - Período Por bloco. Combina os métodos de ajuste por padrão e ciclo. Os pesos são ajustados após a apresentação de k exemplos do conjunto de treinamento. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 12 / 69

Estratégias - Critério de Parada Pelo número de ciclos de treinamento. Pára após a execução de k ciclos de treinamento. Pelo valor do erro (ou métrica usada). Pára quando o valor do erro é menor que ǫ. Pelo critério de validação. Pára quando o erro no conjunto de validação deixa de decrescer. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 13 / 69 Estratégias - Conjunto de Dados Treinamento e teste separados. Aproximadamente 70% treinamento 30% testes. Treinamento, teste e validação. Aproximadamente 50% treinamento, 30% teste e 20% validação. Treinamento e teste juntos. Poucos dados. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 14 / 69

Arquitetura da Rede Número de camadas escondidas da rede? uma, duas ou mais? Número elementos por camada? Maior, menor ou igual ao número de entradas. Funções de propagação? sigmóide. tangente hiperbólica linear Respostas Não existem fórmulas para responder estas questões. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 15 / 69 Sugestões Número de neurônios por camada: Média aritmética entre entradas e saídas. Médio geométrica entre entradas e saídas. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 16 / 69

Convergência Problemas com velocidade da convergência, mínimos locais e platôs. Taxa de aprendizado adaptativa. Momento. Algoritmos alternativos. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 17 / 69 Dificuldades e Soluções Capacidade de Aprendizagem Aumentar o número de elementos na camada escondida. Aumentar o número de camadas escondidas. Trocar/combinar diferentes funções de propagação. Rever a representação dos dados. Utilizar times de redes para resolver partes do problema e despois combinar soluções. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 18 / 69

Dificuldades e Soluções Perda de generalização Como evitar? Pelo critério de validação. reduzir a arquitetura da rede. adicionar ruído aos dados. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 19 / 69 Análise e Tratamento dos Dados Separação dos conjuntos de dados. Tratamento de outliers. Normalização. Redução de Dimensionalidade. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 20 / 69

Separação dos conjuntos Quantidade disponível Pequena Usar cross-validation Gerar dados artificiais (características estatísticas semelhantes) Boa Separar conjuntos de treinamento/teste Treinamento/teste/validação Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 21 / 69 Outliers O que são Pontos fora da curva Qual sua influência? Podem até impedir o aprendizado. Como tratar? Eliminar (pode não ser possível.) Ajustar Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 22 / 69

Normalização Colocar os dados em uma mesma faixa de valores. Por que? Evitar que uma dimensão se sobreponha em relação às outas. Evitar que o aprendizado possa estagnar. Como? Por dimensão do problema. Usando algum dos métodos disponíveis. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 23 / 69 Max-min Emprega os valores máximos/mínimospara normalizar linearmente os dados entre [-1,1) ou (-1,1]. novo x = x max(abs(x)) Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 24 / 69

Max-min Equalizado novo x = x min(x) max(x) min(x) Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 25 / 69 Z-score Os dados são normalizados com base na média e no desvio padrão dos dados. Os dados transformados ficam com média 0 e variância igual a 1. novo x = x x x Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 26 / 69

Sigmoidal Os dados são normalizados com base na média e no desvio padrão dos dados. Sofre pouca influência dos outliers. novo x = 1 1 + e x x x Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 27 / 69 Redução da dimensionalidade Reduzir o número de entradas procurando às que são correlacionadas. Por que? Reduz o custo computacional. Melhora a generalização. Métodos Principal Component Analysis (PCA). Linear Discriminant Analysys (LDA). Clusterização. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 28 / 69

Resumo Seção 1 Introdução 2 Treinamento 3 Treinamento - Teoria 4 Programando Aproximando Função Iris Clustering 5 Referências Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 29 / 69 Treinamento fase forward 1 As entrada são apresentadas à primeira camada da rede (Camada 0). 2 Para cada camada 0 < l L a partir da camada de entrada: 1 Os nós da camada i calculam suas saídas. 2 Saídas da camada i servem de entrada para a camada i + 1 3 As saídas produzidas na camada L são comparadas às saídas desejadas. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 30 / 69

Treinamento fase backward 1 A partir da última camada até chegar na camada de entrada: 1 Os nós da camada atual ajustam seus pesos de forma a reduzir seus erros. 2 O erro de um nó das camadas intermediárias é calculado utilizando-se os erros dos nós da camada seguinte, a ele conectados, ponderados pelos pesos das conexões entre eles. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 31 / 69 Parâmetros da Rede n l : número de neurônios da camada l (0 l L) p i : i-ésima característica da amostra de treinamento (1 i n 0 ) d i : i-ésima característica da saída desejada para a amostra de treinamento (1 i n L ) x li : i-ésima entrada da l-ésima camda (1 l L, 1 i n l 1 ) x li = y (l 1)i w lij : peso do i-ésimo neurônio da l-ésima camada em relação à j-ésima entrada (1 l L, 1 i n l, 1 j n (l 1) ) b li : bias do i-ésimo neurônio da l-ésima camada (1 l L, 1 i n l ) Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 32 / 69

Continuando net li : ativação do i-ésimo neurônio da l-ésima camada (1 l L, 1 i n l ) net li = b li + n (l 1) j=1 w lij x lj f l : função de propagação da l-ésima camada (1 l L) y li : saída do i-ésimo neurônio da l-ésima camada (1 l L, 1 i n l ) y li = { fl (net li ) se l > 0 p i se l = 0 h li : erro do i-ésimo neurônio da l-ésima camada (1 l L, 1 i n l ). Para a última camada, temos: h Li = d i y Li Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 33 / 69 Regra Delta generalizada Avaliação do Erro: E = 1 2 n L w lij : incremento no peso do i-ésimo neurônio da l-ésima camada em relação à j-ésima entrada (1 l L, 1 i n l, 1 j n (l 1) ): i=1 h 2 Li w lij E w lij = w lij = η E w lij w li0 : incremento na polarização do i-ésimo neurônio da l-ésima camada (1 l L, 1 i n l ) (polarização=entrada 0) : w li0 E w li0 = w li0 = η E w li0 Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 34 / 69

Vamos considerar L = 2 Considerando L = 2 Sabendo que: h Li = d i y Li E = E h 2i w 2ij h 2i w 2ij = E h 2i h 2i y 2i = E h 2i h 2i y 2i y 2i w 2ij y 2i net 2i net 2i w 2ij Portanto: E w 2ij = h 2i ( 1) f 2 (net 2i) x 2j Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 35 / 69 Continuando Chamando e li = h li f l (net li) de erro ajustado do i-ésimo neurônio da l-ésima camada, temos Da mesma forma E w 2ij = e 2i x 2j E b 2i = e 2i Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 36 / 69

E a camada intermediária E w 1ij = = = = = = n 2 k=1 n 2 k=1 n 2 k=1 n 2 k=1 n 2 k=1 n 2 k=1 E h 2k h 2k w 1ij E h 2k h 2k y 2k y 2k w 1ij E h 2k h 2k y 2k E h 2k h 2k y 2k E h 2k h 2k y 2k E h 2k h 2k y 2k y 2k net 2k net 2k w 1ij y 2k net 2k net 2k x 2i y 2k net 2k net 2k x 2i y 2k net 2k net 2k x 2i x 2i w 1ij x 2i y 1i x 2i y 1i y 1i w 1ij y 1i net 1i net 1i w 1ij Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 37 / 69 Então... E w 1ij = E w 1ij = n 2 k=1 n 2 k=1 E h 2k h 2k y 2k n 2 = 1 = 1 y 2k net 2k net 2k x 2i x 2i y 1i y 1i net 1i net 1i w 1ij h 2k ( 1) f 2 (net 2k ) w 2ki (1) f 1(net 1i ) x 1j k=1 ( n2 k=1 h 2k f 2 }{{ (net 2k) } e 2k ) e 2k w 2ki w 2ki f 1 (net 1i ) x 1j f 1 (net 1i ) x 1j Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 38 / 69

Finalizando... Definindo h li para l < L. h li = n l+1 k=1 e (l+1)k w (l+1)ki Temos Substituindo e 1i, E w 1ij = h 1i f 1 (net 1i ) x 1j E w 1ij = e 1i x 1j Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 39 / 69 E o bias Da mesma forma, Resumindo: E b 1i = e 1i w lij = η e li x lj b li = η e li Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 40 / 69

Resumo Seção 1 Introdução 2 Treinamento 3 Treinamento - Teoria 4 Programando Aproximando Função Iris Clustering 5 Referências newff Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 41 / 69 newff: cria uma rede feed-forward backpropagation. Syntaxe simplificada: net = newff(p,t,s,tf,btf,blf,pf) P: matriz de tamanho R Q1, onde Q1 é o número de elementos representativos (Patterns) e R o número de entradas. T : matriz de tamanho SNxQ2 onde Q2 é o número de elementos representativos e SN o número de saídas dos valores desejados (Target). S i : Tamanhos das N 1 camadas escondidas, S 1 até S (N 1), default = []. Tamanho da camada de saída S N é determinada a partir de T. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 42 / 69

newff continuando... newff: cria uma rede feed-forward backpropagation. Syntaxe simplificada: net = newff(p,t,s,tf,btf,blf,pf) TF i : Função de transferência da i-ésima camada. Default é tansig para camadas escondidas e purelin para camada de saída. BTF : Função de treinamento, default = trainlm. BLF : Função de aprendizado dos pesos/polarização, default = learngdm. PF : Cálculo do desempenho, default = mse. train Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 43 / 69 Treina o MLP para executar uma tarefa. Forma mais comum: nettreinada = train(net, P, T). net geralmente é a rede gerada por newff. nettreinada é como o nome diz. P e T são matrizes como as já definidas. Parâmetros que podem ser definidos: net.trainparam.epochs número máximo de épocas, net.trainparam.lr taxa de aprendizado, net.trainparam.goal erro máximo desejado. net.trainparam.lm momentum Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 44 / 69

sim Após a criação do MLP, podemos utilizá-lo usando esta função. resp = sim(net, P); forma mais simples. net é a estrutura que contém o MLP. P é uma matriz R Q1, onde Q1 o número de padrões de entrada e R o número de variáveis na entrada. resp é a saída da rede, sendo uma matriz de tamanho S Q1. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 45 / 69 Um exemplo clear close all; all; P = [ 0 1 2 3 4 5 6 7 8 9 10]; T = [ 0 1 2 3 4 3 2 1 2 3 4]; net = newff (P, T, 10) Y = sim(net, P ); plot (P, T, rs -, P, Y, o- ); legend ( T, Y ), xlabel ( P ); net. trainparam. epochs = 100; net = train (net, P, T); Y = sim(net, P ); figure ; plot (P, T, rs -, P, Y, o- ); legend ( T, Y ), xlabel ( P ); Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 46 / 69

Resultado 12 10 T Y 4 3.5 T Y 8 3 6 2.5 2 4 1.5 2 1 0 0.5 2 0 2 4 6 8 10 P (a) Antes do treinamento 0 0 2 4 6 8 10 P (b) Após o treinamento Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 47 / 69 As Famosas Iris (c) Iris Setosa (d) Iris Virginica (e) Iris Versicolor Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 48 / 69

As Famosas Iris O conjunto conhecido como Iris flower data set ou Fisher s Iris data set foi apresentado por Sir Ronald Fisher (1936) como um exemplo de análise discriminante. Também conhecido por Anderson s Iris data set porque Edgar Anderson coletou os dados para quantificar as variações morfológicas de três espécies das flores Iris. Duas das três espécies foram coletadas na península Gaspé (Canadá) sendo todas do mesmo local, coletadas no mesmo dia e medidas ao mesmo tempo, pela mesma pessoa, com os mesmos aparelhos. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 49 / 69 As Famosas Iris O conjunto consiste de 50 amostras de cada uma das três espécies da Iris (Iris setosa, Iris virginica and Iris versicolor). Quatro características foram medidas: comprimento e largura das sépalas e pétalas, em centímetros. Baseado na combinação destas quatro características, Fisher desenvolveu o modelo conhecido como o discriminante linear de Fisher para distinguir cada uma das espécies. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 50 / 69

Exemplo Iris function net = create_fit_net( inputs, targets) % CREATE_FIT_NET Creates and trains a fitting neural netwo % % Create Network numhiddenneurons = 20; % Adjust as desired net = newfit ( inputs, targets, numhiddenneurons ); net. divideparam. trainratio = 70/100; % Adjust as desired net. divideparam. valratio = 15/100; % Adjust as desired net. divideparam. testratio = 15/100; % Adjust as desired % Train and Apply Network [ net, tr] = train ( net, inputs, targets); outputs = sim( net, inputs ); % Plot plotperf( tr) plotfit(net, inputs, targets) plotregression( targets, outputs) Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 51 / 69 Exemplo Iris % Treina uma rede para os dados iris. dat clear all; close all; load iristrain. dat % Parte dos dados para treinament PT = iristrain(:,1:4) ; % Dados de entrada da rede para t TT = iristrain(:,5) ; % Dados de saida da rede para tre net = create_fit_net(pt, TT ); load iris. dat P = iris (:,1:4) ; T = iris (:,5) ; Y = sim(net, P ); BY = Y; BY( find (Y <1.25))= 1; BY( find (Y >=1.25 & Y < 2.25)) = 2; BY( find (Y >=2.25)) = 3; fprintf( Acertou %.2f por cento \n,... 100 * sum( BY == T) / size (T,2)); Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 52 / 69

O problema Quatro classes de dados (A, B, C, D). Espaço bidimensional. Criar uma RNA capaz de classificar um ponto arbitrário em uma das quatro classes. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 53 / 69 Definindo os dados % number of sample of each class K = 100; % Define 4 clusters of input data q = 0.6; % offset of classes A = [ rand (1,K) - q; rand (1,K) + q ]; B = [ rand (1,K) + q; rand (1,K) + q ]; C = [ rand (1,K) + q; rand (1,K) - q ]; D = [ rand (1,K) - q; rand (1,K) - q ]; figure (1); plot (A (1,:), A (2,:), k+ ); hold on; plot (B (1,:),B (2,:), b* ); plot (C (1,:), C (2,:), kx ); plot (D (1,:), D (2,:), bd ); text (.5 -q,.5+2*q, Class A ); text (.5+q,.5+2*q, Class B ); text (.5+q,.5-2*q, Class C ); text (.5 -q,.5-2*q, Class D ); Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 54 / 69

Dados para classificação 2 1.5 Class A Class B 1 0.5 0 0.5 Class D Class C 1 1 0.5 0 0.5 1 1.5 2 Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 55 / 69 Codificação % Define output coding % coding (+1/ -1) of 4 separate classes a = [ -1-1 -1 +1] ; b = [ -1-1 +1-1] ; d = [ -1 +1-1 -1] ; c = [+1-1 -1-1] ; Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 56 / 69

Treinamento % Prepare inputs and outputs f o r network trainig % define inputs ( combine samples from all four classes) P = [ A B C D ]; % define targets T = [ repmat (a,1, length (A)) repmat (b,1, length (B ))... repmat (c,1, length (C)) repmat (d,1, length (D )) ]; % create a neural network net = newff ( minmax (P), minmax (T), [5 3]); % train net net. divideparam. trainratio = 1; % training set % net. divideparam. valratio = 0; % validation set % net. divideparam. testratio = 0; % test set % % train [ net, tr, Y, E] = train ( net, P, T ); view ( net ); Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 57 / 69 Avaliação % Evaluate network performance and plot results [m,i] = max(t ); % Target class [m,j] = max(y ); % predicted class N = length (Y ); % number of all samples k = 0; i f find (i-j), % i f there exist misclassified samples k = length ( find(i -j )); % get the numbber of misclassi end fprintf( Correct classified samples: %.1f %% samples\n, Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 58 / 69

Gráficos % Plot network output figure ; subplot (211); plot (T ); title ( Targets ); ylim ([ -2 2]); grid on; subplot (212); plot (Y ); title ( Network response ); xlabel ( # sample ); ylim ([ -2 2]); grid on; Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 59 / 69 Respostas da rede 2 Targets 1 0 1 2 0 50 100 150 200 250 300 350 400 2 Network response 1 0 1 2 0 50 100 150 200 250 300 350 400 # sample Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 60 / 69

Gráficos % Plot classification result f o r the complete input space span = -1:0.01:2; [ P1 P2] = meshgrid( span, span ); pp = [ P1 (:) P2 (:)] ; % simulate neural network on a grid aa = sim(net, pp ); Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 61 / 69 Gráficos % plot classification regions based on MAX Activation figure(1) m=mesh(p1, P2, reshape(aa(1,:), length(span), length(span))-5); set(m, facecolor, [1 0.2 0.7], linestyle, none ); hold on; m=mesh(p1, P2, reshape(aa(2,:), length(span), length(span))-5); set(m, facecolor, [1 1.0 0.5], linestyle, none ); m=mesh(p1, P2, reshape(aa(3,:), length(span), length(span))-5); set(m, facecolor, [0.4 1.0 0.9], linestyle, none ); m=mesh(p1, P2, reshape(aa(4,:), length(span), length(span))-5); set(m, facecolor, [0.3 0.4 0.5], linestyle, none ); view(2); Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 62 / 69

Dados classificados Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 63 / 69 Resumo Seção 1 Introdução 2 Treinamento 3 Treinamento - Teoria 4 Programando Aproximando Função Iris Clustering 5 Referências Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 64 / 69

Referências I Antônio de Pádua Braga, André Ponce de Leon F. de Carvalho, and Teresa Bernarda Ludermir. Fundamentos de Redes Neurais Artificiais. NCE/UFRJ, Rio de Janeiro, Brasil, 1998. 11 a Escola de Computação. Simon Haykin. Redes neurais : princípios e prática. Bookman, Porto Alegre, 2001. D. O. Hebb. The organization of behavior. Wiley, New York, 1949. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 65 / 69 Referências II J. J. Hopfield. Neural networks and physical systems with emergent collective properties. In Proceedings of the National Academy of Sciences, volume 79, pages 2554 2558, 1982. W. S. McCulloch and W. Pitts. A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics, 5:115 133, 1943. M. Minsky and S. Papert. Perceptrons: an introduction to computational geometry. MIT Press, Massachusetts, 1969. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 66 / 69

Referências III F. Rosenblatt. The perceptron: a probabilistic model for information storage and organization in the brain. Psychol. Review, 65:386 408, 1958. D. E. Rumelhart, G. E. Hinton, and R. J. Williams. Learning representantions by back-propagation errors. Nature, 323:533 536, 1986. doi:10.1038/323533a0. B. Widrow and M. E. Hoff. Adaptative switching circuits. Western Electronic Show and Convention, Institute of Radio Engineers, 1960. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 67 / 69 Referências IV D.H. Wolpert and W.G. Macready. No free lunch theorems for optimization. IEEE Transactions on Evolutionary Computation, 1(1):67 82, april 1997. Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 68 / 69

The End The End Adriano Cruz (UFRJ) MLP - RNA 2013/03/13 69 / 69