You are on page 1of 112

Fundamentos de Redes Neurais

Jos Gabriel R. C. Gomes UFRJ EPoli/DEL e COPPE/PEE/PADS CBIC 2011, 8 a 11 de novembro, Fortaleza

Roteiro desta Apresentao


I II Introduo Perceptrons Multicamadas Retropropagao de Erros Implementao Prtica e Exemplos Mtodos de Ordem Superior Regularizao Aproximador Universal Mtodos Geomtricos de Projeto Redes RBF Outros Tipos de Redes Neurais Aplicaes

III IV V VI VII VIII IX

Slide 2 Jos Gabriel R. C. Gomes 08 de novembro de 2011

I. Introduo

O Neurnio Natural Origens: Rosenblatt, Minsky, Papert Perceptron e Redes Neurais Artificiais Backpropagation Situaes em que devem ser usadas Redes Neurais

Slide 3 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Neurnio Natural

Diferenas entre Neurnios Biolgicos e Artificiais Complexidade das conexes Velocidade Densidade Tipos de sinais Implementao de algoritmos Repeties de cadeias de sinais Vdeo (microscopia em culturas de clulas de ratos)

Slide 4 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Vdeo Microscopia Stanford

Prof. Ciro da Silva, USP cultura de clulas do hipocampo de ratos Microscopia com reproduo em velocidades de 30 a 100 vezes o tempo real Destaques Axnio e dendritos Complexidade Crescimento; formao de conexes Atividade

Slide 5 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Origens

McCulloch e Pitts (1943) Modelo do Neurnio Rosenblatt (1958) Algoritmo do Perceptron Minsky e Papert (1969) Perceptrons Rumelhart, Williams, Hinton (1986) Backpropagation

Proceedings IEEE, IEEE Trans. Neural Networks

Slide 6 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Perceptron (Single Layer)

Slide 7 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Detalhada

Slide 8 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Funo de Ativao

Slide 9 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Detalhada

Slide 10 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Idia Bsica (atualizao W e b)

Slide 11 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regra da Cadeia e Derivadas Parciais

Slide 12 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Clculo do Gradiente

Slide 13 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Simplificada

Slide 14 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Simplificada

Slide 15 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Simplificada: du/dW

Slide 16 Jos Gabriel R. C. Gomes 08 de novembro de 2011

II. Multilayer Perceptron (MLP)

Slide 17 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Detalhada

Slide 18 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Gradiente na Camada de Sada

Slide 19 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Gradiente na Camada Escondida

Slide 20 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Gradiente na Camada Escondida

Slide 21 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Gradiente na Camada Escondida (b)

Slide 22 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Alternativamente (dJ/dbi):

Slide 23 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Gradiente na Camada Escondida (W)

Slide 24 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Alternativamente (dJ/dwij):

Slide 25 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Extenso para o Caso Geral

Slide 26 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Extenso para o Caso Geral

Slide 27 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Extenso para o Caso Geral

Slide 28 Jos Gabriel R. C. Gomes 08 de novembro de 2011

du/dz =

T V :

Slide 29 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Simplificada Formal

Slide 30 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Simplificada Formal

Slide 31 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Simplificada Formal

Slide 32 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Simp. Formal 3 Camadas

Slide 33 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Simp. Formal 3 Camadas

Slide 34 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Simp. Formal 3 Camadas

Slide 35 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Notao Simp. Formal 3 Camadas

Slide 36 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Implementao Modo Seqencial

Slide 37 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Implementao Modo Seqencial


% 070626 gabriel@pads.ufrj.br [2] Exemplo1Sequential.m close all; clear all; % [A] Data C = [0 0 1 1 ; 0 1 0 1]; rand('state',0) X = []; P = 1; for k = 1:size(C,2), X = [X 0.7*rand(2,P)+repmat(C(:,k),1,P)]; end; X = X - repmat(mean(X,2),1,size(X,2)); plot(X(1,:),X(2,:),'k.'); t = []; T = [1 -1 -1 1]; for k = 1:size(C,2), t = [t repmat(T(k),1,P)]; end; % [A1] Randomize Data Order randn('state',0); X = [X ; t ; randn(1,size(X,2))]'; X = sortrows(X,4)'; t = X(3,:); X = X(1:2,:); % [B] Network Init % [B1] Parameters K = 2; % Number of Layers eta = 0.5; % Learning Rate Initial Value Delta = 1e-4; % Stop Criterion N = size(X,2); % Number of Input Vectors E = 4*P; % Number of Feed-Forward Iterations per Epoch alpha = 0.999; % Learning Rate Decay Factor eta = 0.5; alpha = 1; % [B2] Layers L(1).W = rand(2,2)-0.5; L(1).b = rand(2,1)-0.5; L(2).W = rand(1,2)-0.5; L(2).b = rand(1,1)-0.5; % [C] Sequential Error Backpropagation Training n=1; i=1; fim=0; while not(fim), % [C1] Feed-Forward L(1).x = X(:,n); for k = 1:K, L(k).u = L(k).W*L(k).x + L(k).b; L(k).o = tanh(L(k).u); L(k+1).x = L(k).o; end; e = t(n) - L(K).o; J(i) = (e'*e)/2; % [C2] Error Backpropagation L(K+1).alpha = e; L(K+1).W = eye(length(e)); for k = fliplr(1:K), L(k).M = eye(length(L(k).o)) - diag(L(k).o)^2; L(k).alpha = L(k).M*L(k+1).W'*L(k+1).alpha; L(k).db = L(k).alpha; L(k).dW = kron(L(k).x',L(k).alpha); end; % [C3] Updates for k = 1:K, L(k).b = L(k).b + eta*L(k).db; L(k).W = L(k).W + eta*L(k).dW; end; % [C4] Stop criterion if (i>1), if (abs(J(i)-J(i-1))/J(i) < Delta)|(i>1000), fim = 1; end; end; if not(fim) i = i+1; n = n+1; if n>N, n=1; end; eta = eta*alpha; end; end; % [D] Test hold on; for n = 1:size(X,2), L(1).x = X(:,n); for k = 1:K, L(k).u = L(k).W*L(k).x + L(k).b; L(k).o = tanh(L(k).u); L(k+1).x = L(k).o; end; if L(K).o < 0, plot(X(1,n),X(2,n),'ko'); end; end; figure; plot(J);

Slide 38 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Exemplo Modo Seqencial

Slide 39 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Implementao Modo Batch

Slide 40 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Implementao Modo Batch


% 070626 gabriel@pads.ufrj.br (2D) Exemplo1Batch.m close all; clear all; % [A] Data C = [0 0 1 1 ; 0 1 0 1]; rand('state',0) X = []; P = 1; for k = 1:size(C,2), X = [X 0.7*rand(2,P)+repmat(C(:,k),1,P)]; end; X = X - repmat(mean(X,2),1,size(X,2)); plot(X(1,:),X(2,:),'k.'); t = []; T = [1 -1 -1 1]; for k = 1:size(C,2), t = [t repmat(T(k),1,P)]; end; % [A1] Randomize Data Order randn('state',0); X = [X ; t ; randn(1,size(X,2))]'; X = sortrows(X,4)'; t = X(3,:); X = X(1:2,:); % [B] Network Init % [B1] Parameters K = 2; % Number of Layers eta = 1; % Learning Rate Initial Value Delta = 1e-6; % Stop Criterion N = size(X,2); % Number of Input Vectors E = 4*P; % Number of Feed-Forward Iterations per Epoch alpha = 0.99; % Learning Rate Decay Factor eta = 0.7; alpha = 1; % [B2] Layers L(1).W = rand(2,2)-0.5; L(1).b = rand(2,1)-0.5; L(2).W = rand(1,2)-0.5; L(2).b = rand(1,1)-0.5; % [C] Batch Error Backpropagation Training n=1; i=1; fim=0; while not(fim), for k=1:K, L(k).db = zeros(size(L(k).b)); L(k).dW = zeros(size(L(k).W)); end; J(i) = 0; for ep=1:E, % [C1] Feed-Forward L(1).x = X(:,n); for k = 1:K, L(k).u = L(k).W*L(k).x + L(k).b; L(k).o = tanh(L(k).u); L(k+1).x = L(k).o; end; e = t(n) - L(K).o; J(i) = J(i) + (e'*e)/2; % [C2] Error Backpropagation L(K+1).alpha = e; L(K+1).W = eye(length(e)); for k = fliplr(1:K), L(k).M = eye(length(L(k).o)) - diag(L(k).o)^2; L(k).alpha = L(k).M*L(k+1).W'*L(k+1).alpha; L(k).db = L(k).db + L(k).alpha; L(k).dW = L(k).dW + kron(L(k).x',L(k).alpha); end; n = n+1; if n>N, n=1; end; end; % [C3] Updates for k = 1:K, L(k).b = L(k).b + eta*L(k).db; L(k).W = L(k).W + eta*L(k).dW; end; J(i) = J(i)/E; % [C4] Stop criterion if (i>1), if (abs(J(i)-J(i-1))/J(i) < Delta)|(i>1000), fim = 1; end; end; if not(fim) i = i+1; if n>N, n=1; end; eta = eta*alpha; end; end; % [D] Test hold on; for n = 1:size(X,2), L(1).x = X(:,n); for k = 1:K, L(k).u = L(k).W*L(k).x + L(k).b; L(k).o = tanh(L(k).u); L(k+1).x = L(k).o; end; if L(K).o < 0, plot(X(1,n),X(2,n),'ko'); end; end; figure; plot(J);

Slide 41 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Exemplo Modo Batch

Slide 42 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Implementao Detalhes Prticos

Pr-processamento ; reduo de dimenso Faixa dinmica adequada (escalamento e normalizao); sada Conjuntos 60/20/20 (N grande); dimensionamento da rede Inicializao Usar taxa de aprendizado baixa Generalizao e overtraining; rudo; outliers Linguagens de programao Extenses: validao cruzada, confuso, outros tipos de J, adaptao
Slide 43 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Momento

At agora:

traingd.m (alpha = 0) traingda.m (alpha <> 0)

Slide 44 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Momento

Slide 45 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Momento Implementao

Inicializao:

Slide 46 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Momento Implementao

Regra delta generalizada:

Se

, tem-se a regra delta basica.

Slide 47 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Momento Implement. Alternativa

traingdm.m

Slide 48 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Momento Implement. Alternativa

Slide 49 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Momento Exemplo Seqencial


% 070627 gabriel@pads.ufrj.br [2] % Exemplo1SequentialMomentum.m close all; clear all; % [A] Data C = [0 0 1 1 ; 0 1 0 1]; rand('state',0) X = []; P = 1; for k = 1:size(C,2), X = [X 0.7*rand(2,P)+repmat(C(:,k),1,P)]; end; X = X - repmat(mean(X,2),1,size(X,2)); plot(X(1,:),X(2,:),'k.'); t = []; T = [1 -1 -1 1]; for k = 1:size(C,2), t = [t repmat(T(k),1,P)]; end; % [A1] Randomize Data Order randn('state',0); X = [X ; t ; randn(1,size(X,2))]'; X = sortrows(X,4)'; t = X(3,:); X = X(1:2,:); % [B] Network Init % [B1] Parameters K = 2; % Number of Layers eta = 0.5; % Learning Rate Initial Value Delta = 1e-4; % Stop Criterion N = size(X,2); % Number of Input Vectors E = 4*P; % Number of Feed-Forward Iterations per Epoch alpha = 0.999; % Learning Rate Decay Factor mu = 0.9; % Momentum constant mu = 0.9; eta = 0.1; alpha = 1; % [B2] Layers L(1).W = rand(2,2)-0.5; L(1).b = rand(2,1)-0.5; L(2).W = rand(1,2)-0.5; L(2).b = rand(1,1)-0.5; for k=1:K, L(k).vb = zeros(size(L(k).b)); L(k).vW = zeros(size(L(k).W)); end; % [C] Sequential Error Backpropagation Training n=1; i=1; fim=0; while not(fim), % [C1] Feed-Forward L(1).x = X(:,n); for k = 1:K, L(k).u = L(k).W*L(k).x + L(k).b; L(k).o = tanh(L(k).u); L(k+1).x = L(k).o; end; e = t(n) - L(K).o; J(i) = (e'*e)/2; % [C2] Error Backpropagation L(K+1).alpha = e; L(K+1).W = eye(length(e)); for k = fliplr(1:K), L(k).M = eye(length(L(k).o)) - diag(L(k).o)^2; L(k).alpha = L(k).M*L(k+1).W'*L(k+1).alpha; L(k).db = L(k).alpha; L(k).dW = kron(L(k).x',L(k).alpha); end; % [C3] Updates for k = 1:K, L(k).vb = eta*L(k).db + mu*L(k).vb; L(k).b = L(k).b + L(k).vb; L(k).vW = eta*L(k).dW + mu*L(k).vW; L(k).W = L(k).W + L(k).vW; end; % [C4] Stop criterion if (i>1), if (abs(J(i)-J(i-1))/J(i) < Delta)|(i>1000), fim = 1; end; end; if not(fim) i = i+1; n = n+1; if n>N, n=1; end; eta = eta*alpha; end; end; % [D] Test hold on; for n = 1:size(X,2), L(1).x = X(:,n); for k = 1:K, L(k).u = L(k).W*L(k).x + L(k).b; L(k).o = tanh(L(k).u); L(k+1).x = L(k).o; end; if L(K).o < 0, plot(X(1,n),X(2,n),'ko'); end; end; figure; plot(J);

Slide 50 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Momento Exemplo Seqencial

Slide 51 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Momento Exemplo Batch


% 070628 gabriel@pads.ufrj.br (2D) % Exemplo1BatchMomentum.m close all; clear all; % [A] Data C = [0 0 1 1 ; 0 1 0 1]; rand('state',0) X = []; P = 1; for k = 1:size(C,2), X = [X 0.7*rand(2,P)+repmat(C(:,k),1,P)]; end; X = X - repmat(mean(X,2),1,size(X,2)); plot(X(1,:),X(2,:),'k.'); t = []; T = [1 -1 -1 1]; for k = 1:size(C,2), t = [t repmat(T(k),1,P)]; end; % [A1] Randomize Data Order randn('state',0); X = [X ; t ; randn(1,size(X,2))]'; X = sortrows(X,4)'; t = X(3,:); X = X(1:2,:); % [B] Network Init % [B1] Parameters K = 2; % Number of Layers eta = 1; % Learning Rate Initial Value Delta = 1e-6; % Stop Criterion N = size(X,2); % Number of Input Vectors E = 4*P; % Number of Feed-Forward Iterations per Epoch alpha = 0.99; % Learning Rate Decay Factor mu = 0.65; % Momentum constant mu = 0.9; eta = 0.1; alpha = 1; % [B2] Layers L(1).W = rand(2,2)-0.5; L(1).b = rand(2,1)-0.5; L(2).W = rand(1,2)-0.5; L(2).b = rand(1,1)-0.5; for k=1:K, L(k).vb = zeros(size(L(k).b)); L(k).vW = zeros(size(L(k).W)); end; % [C] Batch Error Backpropagation Training n=1; i=1; fim=0; while not(fim), for k=1:K, L(k).db = zeros(size(L(k).b)); L(k).dW = zeros(size(L(k).W)); end; J(i) = 0; for ep=1:E, % [C1] Feed-Forward L(1).x = X(:,n); for k = 1:K, L(k).u = L(k).W*L(k).x + L(k).b; L(k).o = tanh(L(k).u); L(k+1).x = L(k).o; end; e = t(n) - L(K).o; J(i) = J(i) + (e'*e)/2; % [C2] Error Backpropagation L(K+1).alpha = e; L(K+1).W = eye(length(e)); for k = fliplr(1:K), L(k).M = eye(length(L(k).o)) - diag(L(k).o)^2; L(k).alpha = L(k).M*L(k+1).W'*L(k+1).alpha; L(k).db = L(k).db + L(k).alpha; L(k).dW = L(k).dW + kron(L(k).x',L(k).alpha); end; n = n+1; if n>N, n=1; end; end; % [C3] Updates for k = 1:K, L(k).vb = eta*L(k).db + mu*L(k).vb; L(k).b = L(k).b + L(k).vb; L(k).vW = eta*L(k).dW + mu*L(k).vW; L(k).W = L(k).W + L(k).vW; end; J(i) = J(i)/E; % [C4] Stop criterion if (i>1), if (abs(J(i)-J(i-1))/J(i) < Delta)|(i>1000), fim = 1; end; end; if not(fim) i = i+1; if n>N, n=1; end; eta = eta*alpha; end; end; % [D] Test hold on; for n = 1:size(X,2), L(1).x = X(:,n); for k = 1:K, L(k).u = L(k).W*L(k).x + L(k).b; L(k).o = tanh(L(k).u); L(k+1).x = L(k).o; end; if L(K).o < 0, plot(X(1,n),X(2,n),'ko'); end; end; figure; plot(J);

Slide 52 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Momento Exemplo Batch

Slide 53 Jos Gabriel R. C. Gomes 08 de novembro de 2011

III. Mtodos de Segunda Ordem

1a ordem (gradiente steepest descent) (Haykin p. 161-175):

Hessiana (Haykin p. 204)

Ordem superior:

Momento (Haykin p. 169-171):

Slide 54 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Mtodos de Segunda Ordem

Mtodo de Newton (2a ordem) (Haykin p. 235):

Exemplo:

Acelera muito a convergncia (1 iterao, se a superfcie de erro J (p) for quadrtica). Problema: clculo de (Haykin p. 224)
Slide 55 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Mtodos de Segunda Ordem

Mtodo Gradiente Conjugado (2a ordem) (Haykin p. 236-243):

traincgp.m

Slide 56 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Mtodos de Segunda Ordem

Mtodo Quasi-Newton (2a ordem) (Haykin p. 242-244):

Positiva Definida

trainbfg.m

Levenberg-Marquardt (LM) (2a ordem):

trainlm.m

Evitar mau-condicionamento de H.

Concluso: algoritmo lento quando nmero de parmetros elevado. Problema de velocidade no resolvido por causa da complexidade computacional dos mtodos de 2a ordem. Usar momento.
Slide 57 Jos Gabriel R. C. Gomes 08 de novembro de 2011

IV. Regularizao Exemplo = 0

Slide 58 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo = 0

Slide 59 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo = 0

Slide 60 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo = 0

Slide 61 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo = 0

Slide 62 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo = 0

Slide 63 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo = 0
clear all; x = ((0:9)/10)'; y = sin(2*pi*x); randn('state',0); t = y + 0.2*randn(10,1); a = 0; b = 1; pts = 5000; stp = (b-a)/pts; h = a:stp:(b-stp); plot(h,sin(2*pi*h),'g-'); X = [ones(size(x)) x]; w = inv(X'*X)*X'*t; H = [ones(size(h))' h']; hold on; plot(h,H*w,'k-'); axis([0 1 -2 2]); grid on; v = y + 0.2*randn(10,1); [mean((X*w-t).^2)/2 mean((X*w-v).^2)/2] X = [X x.^2]; w = inv(X'*X)*X'*t; H = [H (h').^2]; hold on; plot(h,H*w,'k-'); [mean((X*w-t).^2)/2 mean((X*w-v).^2)/2] X = [X x.^3]; w = inv(X'*X)*X'*t; H = [H (h').^3]; hold on; plot(h,H*w,'b-'); [mean((X*w-t).^2)/2 mean((X*w-v).^2)/2] X = [X x.^4]; w = inv(X'*X)*X'*t; H = [H (h').^4]; hold on; plot(h,H*w,'k-'); [mean((X*w-t).^2)/2 mean((X*w-v).^2)/2] X = [X x.^5]; w = inv(X'*X)*X'*t; H = [H (h').^5]; hold on; plot(h,H*w,'k-'); [mean((X*w-t).^2)/2 mean((X*w-v).^2)/2] X = [X x.^6]; w = inv(X'*X)*X'*t; H = [H (h').^6]; hold on; plot(h,H*w,'k-'); [mean((X*w-t).^2)/2 mean((X*w-v).^2)/2] X = [X x.^7]; w = inv(X'*X)*X'*t; H = [H (h').^7]; hold on; plot(h,H*w,'k-'); [mean((X*w-t).^2)/2 mean((X*w-v).^2)/2] X = [X x.^8]; w = inv(X'*X)*X'*t; H = [H (h').^8]; hold on; plot(h,H*w,'k-'); [mean((X*w-t).^2)/2 mean((X*w-v).^2)/2] X = [X x.^9]; w = inv(X'*X)*X'*t; H = [H (h').^9]; hold on; plot(h,H*w,'r-'); [mean((X*w-t).^2)/2 mean((X*w-v).^2)/2] xlabel('x'); plot(x,t,'r.'); plot(x,v,'b.');

Slide 64 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo = 0

A complexidade do modelo pode ser controlada atravs de restrio na norma do vetor w:

Slide 65 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo = 0

Slide 66 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo 0

A complexidade do modelo pode ser controlada atravs de restrio na norma do vetor w:

Considere ento:

Slide 67 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo 0

Slide 68 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo 0

Slide 69 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo 0
M=[]; lambda = 1e-5; w = inv(X'*X + lambda*eye(10))*X'*t; plot(h,H*w,'r-'); M = [M [ [mean((X*w-t).^2)/2 ; mean((X*w-v).^2)/2] ; w ] ]

Problema passa a ser a escolha do valor ideal para , com base em mtodos estatsticos ( p(w|D) = )

Slide 70 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Regularizao Exemplo 0

Slide 71 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Teorema de Bayes

Slide 72 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Teorema de Bayes
Likelihood Prior

Posterior

Likelihood
Estimador freqentista (diversos conjuntos D) Estimador Bayesiano (um s conjunto D)

Bayesian Linear Regression (Bishop, p. 152-161)

trainbr.m

Slide 73 Jos Gabriel R. C. Gomes 08 de novembro de 2011

V. MLP como Aproximador Universal

Mapeamento contnuo qualquer:

Qual o nmero mnimo de camadas escondidas que o MLP deve ter, para que ele possa realizar uma aproximao desta funo contnua ?

Teorema da Aproximao Universal

Slide 74 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Teorema da Aproximao Universal

Seja uma funo limitada, monotonicamente crescente, e contnua. Considere o hipercubo unitrio com dimenses: . O espao das funes contnuas em chamado de . Considere uma funo qualquer, pertencente ao e considere um nmero real arbitrariamente pequeno, .

Slide 75 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Teorema da Aproximao Universal

Ento: existem um nmero inteiro , e existem conjuntos de constantes reais , e (com e tais que:

Aproxima

com erro absoluto menor que , ou seja:

Para qualquer vetor

Slide 76 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Observaes
1. Haykin, Seo 4.13. 2. Teorema de Weierstrass (1885): Qualquer funo contnua sobre um intervalo fechado no eixo real pode ser expressa (neste intervalo) como uma srie de polinmios absoluta e uniformemente convergente. ( srie polinomial ; srie polinomial) 3. Demonstrao rigorosa especfica para MLPs: - G. Cybenko. Approximation by superpositions of a sigmoidal function. Mathematics of Control, Signals, and Systems, 2: pp. 304314, 1989. - Funahashi (1989). - Hornik, Stinchcombe, White (1989). - Light (1992) (desenvolvimentos posteriores).

Slide 77 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Observaes
4. Correspondncia com um MLP tendo uma s camada escondida: Entradas do MLP: at Pesos da camada escondida: Biases da camada escondida: Neurnios da camada escondida: Sadas da camada escondida: Camada de sada: (*)

(*) Um s neurnio se a sada for vetorial ( ), pode-se repetir o procedimento acima vezes e colocar os MLPs em paralelo.
Slide 78 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Observaes
Logo, um MLP com topologia arbitrariamente grande tamanho . (uma s camada escondida, ) aproxima qualquer em

5. Teorema de existncia podemos tentar resolver um problema, porque a soluo por MLP existe. Teorema no-construtivo: no especifica um procedimento para obter o MLP. 6. Outros detalhes no considerados no Teor. Aproximao Universal: Tempo de treinamento (interao entre ) Facilidade de implementao ( muito elevado) Generalizao (overfitting ocorre quando muito elevado) Qualidade de mnimos locais (interao entre )
Slide 79 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Observaes
Com respeito a estes quatro detalhes, pode ser vantajoso usar mais do que uma camada escondida. Consideraes empricas sobre mais de uma camada escondida: - Camada Escondida #1 Local Features - Camada Escondida #2 Global Features

Slide 80 Jos Gabriel R. C. Gomes 08 de novembro de 2011

VI. Mtodos Geomtricos

Diagramas de Voronoi (Bose, 1992) Kernel PCA (Schlkopf, 1998)

Slide 81 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Diagramas de Voronoi

Utilizao da estrutura geomtrica inerente a um dado problema. 1 2 3 4 7 9 8 5 6 10

Sntese no-nica. Algoritmo de difcil extenso para dimenses mais elevadas.


Slide 82 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Diagramas de Voronoi

Reduo de complexidade

Slide 83 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Kernel PCA

Soluo linear em um espao de dimenso muito elevada. Definies:

Slide 84 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Kernel PCA

Autovetor

Slide 85 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Kernel PCA

Normalizao

Slide 86 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Kernel PCA
N Dados Fixos:

Slide 87 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Kernel PCA

Zero-centering

Camada Escondida

Camada de Sada

Slide 88 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Kernel PCA

[Figura gerada com cdigo cedido por Bernhard Schlkopf] Slide 89 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Kernel PCA

[Figura gerada com cdigo cedido por Bernhard Schlkopf] Slide 90 Jos Gabriel R. C. Gomes 08 de novembro de 2011

VII. RBF Radial-Basis Functions

Teorema de Cover (1965) sobre a Separabilidade de Padres:

Um problema complexo de classificao de padres colocado em um espao de dimenso elevada tem mais chance de ser resolvido linearmente (ou seja, de ser um problema descrito por classes linearmente separveis) do que quando colocado em um espao de dimenso baixa.

Slide 91 Jos Gabriel R. C. Gomes 08 de novembro de 2011

RBF Radial-Basis Functions

Exemplo: dicotomia (partio binria do espao)


Dimenso dos Vetores de Entrada

Nmero de Vetores

Classe Classe

: :

Dimenso dos Vetores de Sada

Slide 92 Jos Gabriel R. C. Gomes 08 de novembro de 2011

RBF Radial-Basis Functions

Seja: recebe o nome de funo escondida.

Espao gerado pelo conjunto de vetores : espao escondido ou espao de propriedades (feature space).

Slide 93 Jos Gabriel R. C. Gomes 08 de novembro de 2011

RBF Radial-Basis Functions

Dizemos que as classes se existe tal que:

so linearmente separveis em

No espao escondido um (hiper)plano. No espao dos vetores (espao de entrada), a superfcie no-linear chamada superfcie de separao.

Slide 94 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Exemplo 1 RBF

Slide 95 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Exemplo 1 RBF
Camada Escondida Camada de Sada

Funo de Ativao da Camada de Sada


Linear Interpolao RBF Comparador Classificao RBF

Slide 96 Jos Gabriel R. C. Gomes 08 de novembro de 2011

RBF Radial-Basis Functions

Interpolao RBF:

funo de base radial:

Ento:

Slide 97 Jos Gabriel R. C. Gomes 08 de novembro de 2011

RBF Radial-Basis Functions

Slide 98 Jos Gabriel R. C. Gomes 08 de novembro de 2011

RBF Radial-Basis Functions

Slide 99 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Exemplo 1 RBF
% 070712 gabriel@pads.ufrj.br close all; clear all; C = [0.5 0.5 -0.5 -0.5 ; -0.5 0.5 -0.5 0.5]; t = [-1 1 1 -1]; randn('state',0); E = repmat(C(:,1),1,4) + 0.1*randn(2,4); F = repmat(C(:,2),1,4) + 0.1*randn(2,4); G = repmat(C(:,3),1,4) + 0.1*randn(2,4); H = repmat(C(:,4),1,4) + 0.1*randn(2,4); X = [E F G H]; t = [-1 -1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 -1]; % P = 1; P = 100; for i = 1:16, for j = 1:16, Phi(i,j) = exp(-P*norm(X(:,i)-X(:,j))^2); end; end; w = inv(Phi)*t' X = zeros(2,10000); for i = 1:100, for j = 1:100, X(:,100*(i-1)+j) = [(i-50.5)/50 ; (j-50.5)/50]; end; end; Y = [E F G H]; figure; hold on; for n=1:size(X,2), o = exp(-P*sum((Y-repmat(X(:,n),1,16)).^2,1))*w; if o < 0, plot(X(1,n),X(2,n),'b.'); else plot(X(1,n),X(2,n),'k.'); end; end; plot(Y(1,:),Y(2,:),'r.');

Slide 100 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Exemplo 1 RBF

Slide 101 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Exemplo 2 RBF
% 070712 gabriel@pads.ufrj.br ExemploRBF2.m % RBF close all; clear all; X = [ 1.0000 0.5000 -0.5000 -1.0000 -0.5000 0.5000 ; ... 0 -0.8660 -0.8660 -0.0000 0.8660 0.8660 ]; t = [-1 0 1 -1 0 1]; P = 2; for i = 1:6, for j = 1:6, Phi(i,j) = exp(-P*norm(X(:,i)- X(:,j))^2); end; end; w = inv(Phi)*t' Y = X; X = zeros(2,10000); for i = 1:100, for j = 1:100, X(:,100*(i-1)+j) = [(i-50.5)/50 ; (j-50.5)/50]; end; end; figure; hold on; for n=1:size(X,2), o = exp(-P*sum((Y-repmat(X(:,n),1,6)).^2,1))*w; if o < -0.5, plot(X(1,n),X(2,n),'b.'); elseif o < 0.5, plot(X(1,n),X(2,n),'k.'); else plot(X(1,n),X(2,n),'r.'); end; end; plot(Y(1,:),Y(2,:),'g.'); % MLP % Parameters X = Y; rand('state',0); K = 2; Delta = 1e-5; N = size(X,2); E = 6; eta = 0.02; alpha = 1; mu = 0.65; MaxIter = 400; L(1).W = rand(6,2)-0.5; L(1).b = rand(6,1)-0.5; L(2).W = rand(1,6)-0.5; L(2).b = rand(1,1)-0.5; for k=1:K, L(k).vb = zeros(size(L(k).b)); L(k).vW = zeros(size(L(k).W)); end; % Batch Error Backpropagation Training n=1; i=1; fim=0; while not(fim), for k=1:K, L(k).db = zeros(size(L(k).b)); L(k).dW = zeros(size(L(k).W)); end; J(i) = 0; for ep=1:E, % Feed-Forward L(1).x = X(:,n); for k = 1:K, L(k).u = L(k).W*L(k).x + L(k).b; L(k).o = tanh(L(k).u); L(k+1).x = L(k).o; end; e = t(n) - L(K).o; J(i) = J(i) + (e'*e)/2; % Error Backpropagation L(K+1).alpha = e; L(K+1).W = eye(length(e)); for k = fliplr(1:K), L(k).M = eye(length(L(k).o)) - diag(L(k).o)^2; L(k).alpha = L(k).M*L(k+1).W'*L(k+1).alpha; L(k).db = L(k).db + L(k).alpha; L(k).dW = L(k).dW + kron(L(k).x',L(k).alpha); end; n = n+1; if n>N, n=1; end; end; % Updates for k = 1:K, L(k).vb = eta*L(k).db + mu*L(k).vb; L(k).b = L(k).b + L(k).vb; L(k).vW = eta*L(k).dW + mu*L(k).vW; L(k).W = L(k).W + L(k).vW; end; J(i) = J(i)/E; if rem(i,100)==0, EMQ = J(i) end; % Stop criterion if (i>1), if (abs(J(i)-J(i-1))/J(i) < Delta)|(i>MaxIter), fim = 1; end; end; if not(fim) i = i+1; if n>N, n=1; end; eta = eta*alpha; end; end; % [D] Test X = zeros(2,10000); for i = 1:100, for j = 1:100, X(:,100*(i-1)+j) = [(i-50.5)/50 ; (j-50.5)/50]; end; end; figure; hold on; for n = 1:size(X,2), L(1).x = X(:,n); for k = 1:K, L(k).u = L(k).W*L(k).x + L(k).b; L(k).o = tanh(L(k).u); L(k+1).x = L(k).o; end; if L(K).o < -0.5, plot(X(1,n),X(2,n),'b.'); elseif L(K).o < 0.5, plot(X(1,n),X(2,n),'k.'); else plot(X(1,n),X(2,n),'r.'); end; end; plot(Y(1,:),Y(2,:),'g.');

Slide 102 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Exemplo 2 RBF

Slide 103 Jos Gabriel R. C. Gomes 08 de novembro de 2011

VIII. Outros Tipos de Rede Neural

Redes Neurais Recorrentes (Realimentadas)

Kohonen Self-Organizing Maps (VQ/ECVQ + Vizinhana)


Hopfield (Memria Associativa)

Support Vector Machines


Modelos de Grossberg , ART (Padres) Redes sem Pesos rvores de Deciso
Slide 104 Jos Gabriel R. C. Gomes 08 de novembro de 2011

IX. reas de Aplicaes

Modelos ARMA No-Lineares Predio de Sries Temporais Residuais ; Escolha de Variveis Relevantes Correlao ; Qualidade de Dados ; Tendncia Viso Computacional / Reconhecimento Compresso de Dados Inteligncia Artificial etc.

Slide 105 Jos Gabriel R. C. Gomes 08 de novembro de 2011

IX. Exemplos de Aplicaes

Compresso de Dados com Baixa Complexidade Produo Mensal de Bebida Anlise de Dados Geogrficos Consumo de Gasolina de Veculo Especfico Classificao (Partculas, Sonar, Potncia, TME) www.20q.org
Slide 106 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Referncias

Simon Haykin, Neural Networks and Learning Machines, 3rd Edition, Prentice-Hall, 2008. Christopher M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006. Ivan N. da Silva, Danilo H. Spatti e Rogrio A. Flauzino, Redes Neurais Artificiais: para Engenharia e Cincias Aplicadas, Ed. Artliber, 2010. Russel D. Reed e Robert J. Marks, Neural Smithing: Supervised Learning in Feedforward Artificial Neural Networks, MIT Press, 1999.

Slide 107 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Referncias

Christopher M. Bishop, Neural Networks for Pattern Recognition, Oxford University Press, 1995. Nirmal K. Bose and Ping Liang, Neural Network Fundamentals with Graphs, Algorithms, and Applications, McGraw-Hill, 1996. Teuvo Kohonen, Self-Organizing Maps, 3rd Edition, SpringerVerlag, 2001. Vladimir N. Vapnik, Statistical Learning Theory, Wiley, 1998. David B. Fogel e Charles J. Robinson, Computational Intelligence The Experts Speak, IEEE / Wiley-Interscience, 2003.

Slide 108 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Referncias

MATLAB Help Documentation. P. Wasserman, Neural Computing, Van Nostrand Reinhold, 1989, Captulos 1 a 6. W. S. Sarle - ftp://ftp.sas.com/pub/neural/FAQ.html. IEEE Computational Intelligence Society; IJCNN. IEEE Transactions on Neural Networks.

Slide 109 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Referncias

Sociedade Brasileira de Redes Neurais, SBRN, www.sbrn.org.br. SNNS (Stuttgart Neural Network Simulator) ftp.informatik.uni-stuttgart.de NeuroLab (UFRJ e CEPEL) www.lps.ufrj.br/~caloba B. Wandell, A. El Gamal, B. Girod, Common Principles of Image Acquisition Systems and Biological Vision, Proceedings of the IEEE, vol. 90, no. 1, pp. 5-17, Janeiro 2002.

Slide 110 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Agradecimentos

Prof. Guilherme de Alencar Barreto (UFC/DETI)

Slide 111 Jos Gabriel R. C. Gomes 08 de novembro de 2011

Perguntas e Comentrios ?

gabriel@pads.ufrj.br

You might also like