EE-214/2011 Neurônio -1 .25 x1 .5 x2 .3 x3 .5 a EE-214/2011 Perceptron AND • • -1 Entradas 0 or 1 Saída é 1 quando ambos x1 e x2 são 1 .75 x1 .5 a x2 .5 .5*1+.5*0+.75*-1 = -.25 output = 0 .5*1+.5*1+.75*-1 = .25 output = 1 x1 .5*0+.5*0+.75*-1 = -.75 output = 0 1 0 x2 0 1 EE-214/2011 Perceptron OR -1 • • .25 Entradas 0 or 1 Saída é 1 quando pelo menos um dos dois, x1 ou x2 é 1 x1 .5 a x2 .5 .5*1+.5*1+.25*-1 = .75 output = 1 .5*1+.5*0+.25*-1 = .25 output = 1 x1 .5*0+.5*0+.25*-1 = -.25 output = 0 1 0 x2 0 1 EE-214/2011 Discriminante Linear via Perceptron clear all P = [-1 -1 1 1; -1 1 -1 1]; T = [0 0 0 1]; net=newp(minmax(P),1); net.trainParam.epochs = 20; net = train(net,P,T); plotpv(P,T); plotpc(net.IW{1},net.b{1}); EE-214/2011 Perceptron XOR -1 • • Entradas 0 or 1 Saída é 1 quando somente um dos dois, x1 ou x2 é 1 ??? x1 .5 a x2 .5 x1 Não separável por hiperplano 1 Tentar Associações de Neurônios 0 x2 0 1 EE-214/2011 Timeline • 1943 – Warren S. McCulloch e Walter H. Pitts, modelo de neurônios com limiares binários • 1957 – Frank Rosenblatt, classe de máquinas com aprendizado denominados perceptrons • 1969 – Marvin Minsky e Seymour Papert – apresentam o problema do XOR. • 1980’s – David E. Rumelhart, Geoffrey E. Hinton e Ronald J. Williams, generalized delta rule for learning by back-propagation para treinamento de MLP EE-214/2011 -1 .25 x1 .5 a x2 x1 .5 .25 .5 .75 x2 .5 a x2 .5 .5 .5 -1 x1 OR .5 .5 .75 O -.5 AND x1 x1 1 1 0 x2 0 1 0 x2 0 1 EE-214/2011 Redes Neurais Artificiais Camada 3 Camada 2 Camada 1 EE-214/2011 Tipos de Redes • • • • • • • • • • • • • • • • • • Perceptron Simples Perceptron Multicamadas Redes de Base Radial Redes de Hopfield SOM (Kohonen) Types of neural networks Recurrent network The echo state network Stochastic neural networks Boltzmann machine Modular neural networks Committee of machines Associative neural network (ASNN) Instantaneously trained networks Spiking neural networks (SNNs) Neuro-fuzzy networks ART Grossberg ART Kohonen Hopfield MLP Elman EE-214/2011 Cérebro Humano • • • • • • • • • • • • • Número de Neurônios: Número de Conexões: Taxa de Mortalidade de Neurônios: Taxa de Aumento de Neurônios: Velocidade nas Sinapses: Reestruturação: Consumo de Energia: 4 x 1010 a 1011 até 104 per neuron 105 per day ~0 1 kHz (computer 3.0 GHz) Bebê < 2anos 106 connections/s 10-16 J/operação/s (computador 10-6) Adaptação por meio de aprendizado Comportamento sensível ao contexto Tolerância a incertezas Capacidade de manipular informações incompletas Grande capacidade de memória Capacidade de processamento em tempo real EE-214/2011 Vantagens de Redes Neurais Artificiais • • • • • • • • • • • • • A prendizado a partir de dados, sem necessidade de Engenheiro de Conhecimentos Capacidade de generalização Capacidade de tratar multicolinearidade Obtenção de modelos a partir de dados ruidosos Obtenção de modelos a partir de dados incompletos Permite tratar modelos não lineares Permite tratar dados discontínuos Sem dependência do tipo de distribuição Computação simples em arquitetura massivamente paralela Processamento rápido no modo de aplicação Apresenta conhecimento distribuído Tolerante a falhas nos nós Pode ser dinâmico EE-214/2011 Principais Desvantagens de Redes Neurais Artificiais Entradas Saídas Caixa Preta • • • • • • Dificuldade de interpretação (caixa preta) Dificuldade de debug, por causa da representação distribuída Treinamento pode ser lento Dificuldade em definir topologia Treinamento pode falhar por captura em um mínimo local O problema pode não ser descritível em termos de números EE-214/2011 Aplicações de RNA • • • • • • • • Classificação Agrupamento Aproximação de funções Previsão Otimização Memória endereçável por conteúdo Controle outros ... EE-214/2011 Aplicações de RNA • • • • • • • • Classificação Agrupamento Aproximação de funções Previsão Otimização Memória endereçável por conteúdo Controle outros ... A tarefa de classificação de padrões é atribuir a das classes préespecificadas um objeto ou dado (como forma de onda vocal ou símbolo manuscrito) representado por um vetor de caracteristicas. EE-214/2011 Aplicações de RNA • • • • • • • • Classificação Agrupamento Aproximação de funções Previsão Otimização Memória endereçável por conteúdo Controle outros ... • O agrupamento (clustering) consiste em colocar os padrões similares em um mesmo grupo. EE-214/2011 Estruturas de RNA Requeridas para Separação Estrutura 1 camada 2 camadas 3 camadas Classes Não-Convexas XOR A B B A A B B A A B B A B B B A A A Configurações Possíveis EE-214/2011 Aplicações de RNA f(x) + ruído Pol. grau = 30 (Pol. orig. grau = 5), No de pontos = 31 • • • • • • • • 4 Classificação Agrupamento Aproximação de funções Previsão yk Otimização Memória endereçável por conteúdo Controle outros ... 3 2 1 0 -1 -2 -3 -4 -3 -2 -1 0 xk 1 2 3 fRNA(x,W) Dado um conjunto de N pares entrada-saída, (x1, y1), (x2,y2), ..., (xN,yN), gerados por uma função desconhecida f(x), sujeito a ruído, a tarefa da aproximação de função é achar uma estimativa, fRNA(x,W). EE-214/2011 Aplicações de RNA 5 Classificação Agrupamento Aproximação de funções Previsão Otimização Memória endereçável por conteúdo Controle outros ... 4.5 4 3.5 y 3 y • • • • • • • • 2.5 2 1.5 1 0.5 0 5 10 15 x t 20 25 30 Previsão Dado um conjunto de N amostras (y(t1), y(t2), ..., y(tN)) de uma sequência no tempo, estimar o valor de y(tN+k), k > 0. EE-214/2011 Aplicações de RNA • • • • • • • • Classificação Agrupamento Aproximação de funções Previsão Otimização Memória endereçável por conteúdo Controle outros ... min J(x) xX s.a. h(x) = 0 g(x) 0 O problema de otimização consiste em selecionar um ponto de um conjunto (de pontos viáveis) que resulta no melhor valor de uma função objetivo. O ponto pode pertencer a Rn ou em espaço de funções como L2 (controle ótimo). A função objetivo J(.) pode ser custo (min) ou retorno (max). O conjunto de pontos viáveis é caracterizado por equações h(x) ou inequações g(x). EE-214/2011 Aplicações de RNA • • • • • • • • Classificação Agrupamento Aproximação de funções Previsão Otimização Memória endereçável por conteúdo Controle outros ... Pelo Endereço Pelo Conteúdo Endereço Conteúdo Endereço Conteúdo 0000 1010110 0000 1010110 0001 1100101 0001 1100101 0010 1000111 0010 1000111 0011 0010100 0011 0010100 ... ... 1111 0101111 Existe algum dado do tipo 1111 10xx111 ? 0101111 EE-214/2011 Aplicações de RNA • • • • • • • • Classificação Agrupamento Aproximação de funções Previsão Otimização Memória endereçável por conteúdo Controle outros ... Pelo Endereço Pelo Conteúdo Endereço Conteúdo Endereço Conteúdo 0000 1010110 0000 1010110 0001 1100101 0001 1100101 0010 1000111 0010 1000111 0011 0010100 0011 0010100 ... ... 1111 0101111 1111 Search Existe algum dado do tipo 10xx111 ? 0101111 EE-214/2011 Aplicações de RNA • • • • • • • • Classificação Agrupamento Aproximação de funções r1 + Previsão r2 – + Otimização – Memória endereçável por conteúdo Controle outros ... Dado um sistema dinâmico descrito por Mecanismo de Ajuste u1 u2 y1 Planta Controlador dx f x, u, t dt x(t 0 ) x 0 y h ( x, u, t ) onde u(t) é a entrada do sistema e y(t) é a saída, o problema de controle consiste em obter uma lei de controle u(t) que faça o sistema evoluir conforme especificações desejadas. y2 EE-214/2011 Métodos de Treinamento (Aprendizado) EE-214/2011 Treinamento Supervisionado de RNA • • • • Particionar os dados em: – Conjunto de Treinamento – Conjunto de Teste – Conjunto de Validação Ajustar os Pesos – Variar os pesos de modo que resultem em diminuição do erro na saída para o dados do conjunto de treinamento. – Se o erro na saída para o dados do conjunto de teste começar a aumentar, terminar o treinamento. – Verificar se a rede obtida produz bons resultados para o cojunto de validação. Overfitting: A rede ajustou-se ao ruído Generalização: Produz resultados adequados para dados não utilizados no treinamento (por exemplo, os do conjunto de teste). EE-214/2011 Métodos de Otimização • • • • • • • Back Propagation (mais utilizado) Método dos Momentos Métodos Superlineares (Newton, Kalman) Algoritmos Bioinspirados (p.ex., Genético) Poliedros Flexíveis Otimização Multi-Objetivos ... EE-214/2011 Algoritmo Back-Propagation 1. 2. Inicializar os pesos da rede (por exemplo, aleatoriamente) While (not_critério_parada) For i = 1:Num_Amostras_Entrada_Saída forward pass: Calcular saída Oi para entrada Xi Calcular ei = (Ti - Oi) onde Ti é o target backward pass: Calcular wj,i para cada camada j end atualizar pesos EE-214/2011 Aplicações de RNA • • • • • • • • Classificação Agrupamento Aproximação de funções Previsão Otimização Memória endereçável por conteúdo Controle outros ... EE-214/2011 Previsão de Séries Temporais EE-214/2011 Previsão de Séries Temporais 5 4.5 4 3.5 3 y y 2.5 2 1.5 1 0.5 0 5 10 15 x t 20 25 30 Previsão Dado um conjunto de N amostras (y(t1), y(t2), ..., y(tN)) de uma sequência no tempo, estimar o valor de y(tN+k), k > 0. EE-214/2011 Propriedade de Aproximação Universal x1 x 2 x Função Alvo y = f (x) x y n x1 x 2 x Rede Neural yRNA = fRNA(x,W) n W Propriedade de Aproximação Universal: Dada uma função f(x) sobre um domínio X Rm e > 0, é possível construir fRNA(x,W) de modo que: | f(x) - fRNA(x,W) | < , x X EE-214/2011 Propriedade de Aproximação Universal •Barron, A. R.: Universal approximation bounds for superpositions of a sigmoidal function, IEEE Transactions on Information Theory, 39, 1993, pp. 930-945. •Cybenko, G.: Approximation by superposition of a sigmoidal function, Mathematics of Control, Signals, and Systems, 2, 1989, pp. 303-314. •K. Funahashi, On the approximate realization of continuous mappings by neural networks, Neural Networks, v.2 n.3, 1989, pp.183-192. •Hecht-Nielsen, R.: Kolmogorov's mapping neural network existence theorem, In: International Conference on Neural Networks, vol. 3, IEEE, Washington DC, 1989, pp. 11-14. •K. Hornik , M. Stinchcombe , H. White, Multilayer feedforward networks are universal approximators, Neural Networks, v.2 n.5, 1989 , pp.359-366. •J. Park , I. W. Sandberg, Universal approximation using radial-basis-function networks, Neural Computation, v.3, n.2, Summer 1991, pp.246-257. •F. Scarselli , A. C. Tsoi, Universal approximation using feedforward neural networks: a survey of some existing methods, and some new results, Neural Networks, v.11 n.1, jan, 1998, pp.15-37. EE-214/2011 Alternativa 1 para Previsão de Séries Temporais Aproximação de Funções % % % % % % % Se x é nx1 e há N pares (x,y) Fornecer entradas P na forma [x1(1) x1(2) ... x1(N) ; ... ; xn(1) xn(2) ... xn(N)] Fornecer saida ou target T na forma [y(1) ... y(N)] P=...; T=...; % Especificar estrutura da rede: no caso ‘new feed forward’ net = newff(minmax(P),[2 15 1]); % Treinamento com as entradas P e saidas T net.trainParam.epochs = 200; net = train(net,P,T); % Calcula saidas da rede para as entradas P Y = sim(net,P); EE-214/2011 Alternativa 1 para Previsão de Séries Temporais Aproximação de Funções Pol. grau = 30 (Pol. orig. grau = 5), No de pontos = 31 4 3 2 1 0 -1 -2 -3 -4 -3 -2 -1 0 1 2 3 EE-214/2011 Alternativa 2 para Previsão de Séries Temporais Ajuste de Polinômio % Supondo que os pares y(k),x(k) já estão definidos > coef = polyfit(x,y,10) > plot(x,y,’r’) > hold on > ychapeu = polyval(coef,x) > plot(x,ychapeu) EE-214/2011 Alternativa 3 para Previsão de Séries Temporais NARMA via RNA xk z-1 z-1 xk1 yk1 z-1 z-1 xk-2 xk-n+1 yk- yk- 2 n+1 z-1 z-1 xkn ykn yk = fRNA (yk-1,yk-2,...,yk-n,xk,xk-1,xk-2,...,xk-m) Rede Neural y k EE-214/2011 Alternativa 4 para Previsão de Séries Temporais ARMA ARMAX Computes the prediction error estimate of an ARMAX model. M = ARMAX(Z,[na nb nc nk]) or M = ARMAX(Z,'na',na,'nb',nb,'nc',nc,'nk',nk) M : returns the estimated model in an IDPOLY object format along with estimated covariances and structure information. For the exact format of M see also help IDPOLY. Z : The estimation data in IDDATA object format. See help IDDATA [na nb nc nk] are the orders and delays of the ARMAX model A(q) y(t) = B(q) u(t-nk) + C(q) e(t) If the data have several inputs, nb and nk are row vectors with lengths equal to the number of input channels. EE-214/2011 Agrupamento e Classificação de Padrões EE-214/2011 Agrupamento e Classificação MOT TAC W,t J,B W V Imot A BAT A tarefa de classificação de padrões é atribuir a das classes préespecificadas um objeto ou dado (como forma de onda vocal ou símbolo manuscrito) representado por um vetor de caracteristicas. EE-214/2011 Agrupamento e Classificação MOT TAC E – Escova com R N – Nominal B – Bateria com V C – Curto T – Eixo Travado Q – Eixo Quebrado Imot W,t C J,B W C T T T V Imot E A N E E E E N N B N N B B B B Q Q Q Q Q BAT W A tarefa de classificação de padrões é atribuir a das classes préespecificadas um objeto ou dado (como forma de onda vocal ou símbolo manuscrito) representado por um vetor de caracteristicas. EE-214/2011 Alternativas para Agrupamento: Métodos já vistos % Agrupamento Hierárquico - Dendrograma >> y=pdist(x,'euclidean'); >> z=linkage(y,'average'); >> dendrogram(z) % k-means >> [idx,c]=kmeans(x,2) % Fuzzy c-means >> [CENTER, U, OBJ_FCN] = FCM(x,N_CLUSTER) % Expectation-Maximization >> [W,M,V,L] = EM_GM(x,3,[],[],1,[]) % Competitive Network >> net=newc([0 10 ; 0 20],3); >> net=train(net,x’); >> xsim = sim(net,x’); >> Yc = vec2ind(xsim); % SOM >> net=newsom([0 10;0 20],[13],'gridtop','dist',0.9,200,0.01,0); >> net.trainParam.epochs=100; >> net=train(net,x’); EE-214/2011 Weight Vectors 16 12 14 10 12 x2 W(i,2) 10 8 8 6 6 4 4 2 2 0 1 2 3 4 5 6 7 8 9 -2 0 2 4 W(i,1) x1 6 8 10 1 16 0.9 14 0.8 12 0.7 0.6 x2 x2-norm 10 8 0.5 0.4 0.3 6 0.2 4 0.1 2 0 1 2 3 4 5 x1 6 7 8 9 0 0 0.1 0.2 0.3 0.4 0.5 0.6 x1-norm 0.7 0.8 0.9 1 EE-214/2011 Muito Obrigado!