• Nenhum resultado encontrado

Redes Neurais Artificiais

N/A
N/A
Protected

Academic year: 2021

Share "Redes Neurais Artificiais"

Copied!
35
0
0

Texto

(1)

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

(2)

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.

(3)

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).

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

MLPs

C0 C1 CL 1 n0 1 n1 1 nL Y2 Ynl 2 2 2 Y1 P2 Pn0 P1

(4)

Neurônio modificado

A função de ativação é substituída por uma sigmóide ou tangente hiperbólica. Σ x1 x2 xn w1 w2 wn Y +1 w0 net D Correção

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

(5)

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.

(6)

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.

(7)

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.

(8)

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.

(9)

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.

(10)

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.

(11)

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

(12)

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].

(13)

Max-min Equalizado

novox = max(x) − min(x)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. novox = x − xx

(14)

Sigmoidal

Os dados são normalizados com base na média e no desvio padrão dos dados.

Sofre pouca influência dos outliers.

novox = 1

1 + ex−xx

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

(15)

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

(16)

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

nl: número de neurônios da camada l (0 ≤ l ≤ L)

pi: i-ésima característica da amostra de treinamento (1 ≤ i ≤ n0)

di: i-ésima característica da saída desejada para a amostra de

treinamento (1 ≤ i ≤ nL)

xli: i-ésima entrada da l-ésima camda (1 ≤ l ≤ L, 1 ≤ i ≤ nl−1)

xli = y(l−1)i

(17)

Continuando

netli: ativação do i-ésimo neurônio da l-ésima camada

(1 ≤ l ≤ L, 1 ≤ i ≤ nl) netli = bli +Pnj=1(l−1) wlijxlj

fl: função de propagação da l-ésima camada (1 ≤ l ≤ L)

yli: saída do i-ésimo neurônio da l-ésima camada (1 ≤ l ≤ L, 1 ≤ i ≤ nl)

yli = 

fl(netli) se l > 0

pi se l = 0

hli: erro do i-ésimo neurônio da l-ésima camada

(1 ≤ l ≤ L, 1 ≤ i ≤ nl).

Para a última camada, temos: hLi = di − yLi

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

Regra Delta generalizada

Avaliação do Erro: E = 1 2 nL X i=1 hLi2

∆wlij: incremento no peso do i-ésimo neurônio da l-ésima camada em

relação à j-ésima entrada (1 ≤ l ≤ L, 1 ≤ i ≤ nl, 1 ≤ j ≤ n(l−1)):

∆wlij ∝ − ∂E

∂wlij =⇒ ∆wlij = −η ∂E ∂wlij

(18)

Vamos considerar L = 2

Considerando L = 2 Sabendo que: hLi = di − yLi ∂E ∂w2ij = ∂E ∂h2i ∂h2i ∂w2ij = ∂E ∂h2i ∂h2i ∂y2i ∂y2i ∂w2ij = ∂E ∂h2i ∂h2i ∂y2i ∂y2i ∂net2i ∂net2i ∂w2ij Portanto: ∂E ∂w2ij = h2i · (−1) · f ′ 2(net2i)· x2j

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

Continuando

Chamando

eli = hlifl′(netli)

de erro ajustado do i-ésimo neurônio da l-ésima camada, temos

∂E

(19)

E a camada intermediária

∂E ∂w1ij = n2 X k=1 ∂E ∂h2k ∂h2k ∂w1ij = n2 X k=1 ∂E ∂h2k ∂h2k ∂y2k ∂y2k ∂w1ij = n2 X k=1 ∂E ∂h2k ∂h2k ∂y2k ∂y2k ∂net2k ∂net2k ∂w1ij = n2 X k=1 ∂E ∂h2k ∂h2k ∂y2k ∂y2k ∂net2k ∂net2k ∂x2i ∂x2i ∂w1ij = n2 X k=1 ∂E ∂h2k ∂h2k ∂y2k ∂y2k ∂net2k ∂net2k ∂x2i ∂x2i ∂y1i ∂y1i ∂w1ij = n2 X k=1 ∂E ∂h2k ∂h2k ∂y2k ∂y2k ∂net2k ∂net2k ∂x2i ∂x2i ∂y1i ∂y1i ∂net1i ∂net1i ∂w1ij

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

Então...

∂E ∂w1ij = n2 X k=1 ∂E ∂h2k ∂h2k ∂y2k ∂y2k ∂net2k ∂net2k ∂x2i ∂x2i ∂y1i ∂y1i ∂net1i ∂net1i ∂w1ij ∂E ∂w1ij = n2 X k=1

h2k · (−1) · f2′(net2k)· w2ki · (1) · f1′(net1i)· x1j

= −1    n2 X k=1 h2k · f2′(net2k) | {z }·w2ki    · f1′(net1i)· x1j

(20)

Finalizando...

Definindo hli para l < L. hli = nl+1 X k=1 e(l+1)k · w(l+1)ki Temos ∂E ∂w1ij = −h1i · f ′ 1(net1i)· x1j Substituindo e1i, ∂E ∂w1ij = −e1i · x1j

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

E o bias

Da mesma forma, ∂E ∂b1i = −e1i Resumindo: ∆wlij = η · eli · xlj ∆b

(21)

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 41 / 69

newff

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).

(22)

newff continuando...

newff: cria uma rede feed-forward backpropagation.

Syntaxe simplificada: net = newff(P,T,S,TF,BTF,BLF,PF)

TFi: 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’.

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

train

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:

(23)

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 all; close 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;

(24)

Resultado

0 2 4 6 8 10 −2 0 2 4 6 8 10 12 P T Y

(a) Antes do treinamento

0 2 4 6 8 10 0 0.5 1 1.5 2 2.5 3 3.5 4 P T Y (b) Após o treinamento

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

As Famosas Iris

(25)

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.

(26)

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 );

(27)

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* ’);

(28)

Dados para classificação

−1 −0.5 0 0.5 1 1.5 2 −1 −0.5 0 0.5 1 1.5 2 Class A Class B Class C Class D

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] ’;

(29)

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

(30)

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

0 50 100 150 200 250 300 350 400 −2 −1 0 1 2 Targets 2 Network response

(31)

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’);

(32)

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

(33)

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.

11a 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.

(34)

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.

(35)

The End

The End

Referências

Documentos relacionados

§ Pode ser causada por fatores como redução da secreção do FvW funcionalmente normal ou por depuração apurada desse. o Tipo 2: doença autossômica dominante que leva a

A adaptação com a sociedade paulistana foi um processo que costumou levar pouco tempo segundo os entrevistados, tanto que foi observada a intenção de seguir mantendo

Na Língua Brasileira de Sinais a polissemia acontece da mesma forma, ou seja, quando existe um sinal (Significante) com dois ou mais Significados, ressaltando-se que,

Apesar da existência do projeto desde 2004 e da inserção da ação como área de atuação do Mafra em Forma da SMS - programa institucionalizado por meio de lei - o desafio atual

Raramente podem ocorrer outros efeitos adversos (ocorrem entre 0,01% e 0,1% dos pacientes que utilizam este medicamento), alguns deles potencialmente graves. Pare de

A liquidação financeira no vencimento do contrato, por parte do comprador, relativa à entrega e ao recebimento da mercadoria, será realizada no terceiro dia útil subseqüente à data

• Quando o programa principal chama a função, o controle do fluxo de execução do programa passa para a função.. • Funções não podem ser invocadas antes de

Sci-Fi - Como Escrever Ficção Científica E Fantasia Que Vendem (Segredos Do Best-Seller) (Portuguese Edition).. By