coelce 2 mod 1

Upload: atila-oliveira

Post on 21-Jul-2015

98 views

Category:

Documents


1 download

TRANSCRIPT

Treinamento COELCE-CEFET-UFC MDULO I - 2008.1Redes Neurais Artificiais: Redes Neurais Artificiais: Uma Introduo PrticaUma Introduo PrticaProf. Dr. Guilherme de Alencar BarretoDepto. Engenharia de Teleinformtica (DETI/UFC)URL: www.deti.ufc.br/~guilhermeEmail: [email protected]/20081Ementa1. Funcionalidadesdoneurniobiolgico3.Anlise geomtrica do neurnio MP2.Neurnio artificial de McCulloch-Pitts (MP)4.Portas lgicas AND, OR e NOT5.Rede Perceptron Simples (PS) e aplicaes6.Problemas no-linearmente separveis e a porta lgica XOR7.Implementao da porta lgica XOR via redes multicamadas8.Rede Perceptron Multicamadas (MLP) 9.Algoritmo de retropropagao do erro (error backpropagation)10.Dicas de treinamento, teste e validao da rede MLPMaterial Didtico1. Notas de aula em PDF.2. Principe, J. C., Euliano, N. R. & Levebvre, W. C. (2000). Neural and Adaptive Systems: Fundamentals through Simulations, 1a. Edio, John Wiley and Sons.3. Apostila de Redes Neurais, PPGETI-DETI-UFC.4. Tutorial do Software NeuroSolutions.1. O Neurnio BiolgicoO neurnio antes de tudo uma clula, mas uma clula especial. Partes: (i)dendritos, (ii)sinapses, (iii) corpo celular e(iv) axnio1. O Neurnio Biolgico(i)dendritos Ramificaes correspondentes aos canais de entrada de informao (sinais eltricos, escala mVolts). (ii) sinapses Pontos de contato entre neurnios onde h passagem de neurotransmissores do axnio de um neurnio para osdendritos de outro neurnio.(iii) corpo celular Local onde feito o balano energtico da clulanervosa (soma das contribuies de energia). (iv) Axnio Canal de sada do neurnio, ou seja, caminho de propagao dos impulsos nervosos em direo a outros neurnios ou msculos.1. O Neurnio BiolgicoO fluxo da informao ocorre sempre no sentido:DendritosCorpo Celular sAxnio1. O Neurnio BiolgicoO axnio emite um impulso eltrico (potencial de ao) apenas se o balano energtico realizado no corpo celular for maior que um certo limiar. Neste caso, diz-se que o neurnio disparou ou est ativado.Potencial de repouso: -70mVLimiar de disparo: -55 mV1. O Neurnio BiolgicoUm neurnio devidamente estimulado emite um trem de potenciais de ao ao longo de seu axnio. A informao ento codificada na freqncia dos potenciais de ao!1. O Neurnio BiolgicoA chegada de um trem de pulso no boto sinptico localizado na regioterminal do axnio provoca a liberao de transmissores na fenda sinptica.Sinapses podem ser excitatrias (facilitam a passagem do potencial de ao) ou inibitrias (inibem a passagem do potencial de ao).1. O Neurnio BiolgicoNeurnios podem se conectar com outros neurnios ...1. O Neurnio Biolgico... com os msculos diretamente ...1. O Neurnio Biolgico... ou com orgos sensoriais (e.g. viso).1. O Neurnio BiolgicoFatos CuriososH cerca de 100 bilhes deles no crebro e na coluna vertebral.A maioria deles est localizado no crtex cerebral.O crtex existe apenas nos crebros de mamferos.O crtex a estrutura responsvel pelas habilidades cognitivas superiores,taiscomomemria,raciocniolgico,linguagem, conscincia, dentre outras.O crtex identificado popularmente como massa cinzenta.Cada neurnio tem cerca de 10.000 sinapses com outros neurnios.1. O Neurnio BiolgicoMais Fatos CuriososO crebro produz sim novos neurnios (e.g. hipocampo).O tempo de propagao de um impulso no axnio da ordem de milissegundos!milissegundos????Logo, a freqncia de disparo de um neurnio da ordem de kHz!Como pode um elemento to lento, executar tarefas to rpido??? 1. O Neurnio BiolgicoConsumo Energtico do Crebro HumanoO peso do crebro aprox. 2% do peso de uma pessoa. O crebro consome 10 vezes mais energia que o resto do corpo por grama de tecido. Mesmo em repouso, o crebro consome 20% de suaenergia. Assim, se o consumo mdio de energia de um adulto tpico de 100W. Ento o crebro consome em mdia 20W.Ementa1. Funcionalidadesdoneurniobiolgico3.Anlise geomtrica do neurnio MP2.Neurnio artificial de McCulloch-Pitts (MP)4.Portas lgicas AND, OR e NOT5.Rede Perceptron Simples (PS) e aplicaes6.Problemas no-linearmente separveis e a porta lgica XOR7.Implementao da porta lgica XOR via redes multicamadas8.Rede Perceptron Multicamadas (MLP) 9.Algoritmo de retropropagao do erro (error backpropagation)10.Dicas de treinamento, teste e validao da rede MLP2. Neurnio de McCulloch-PittsModelo matemtico de um neurnio biolgico proposto em bom lembrar que todo modelo apenas uma aproximao do fenmeno ou objeto real cujas funcionalidades se pretende estudar.All models are wrong, but some are useful.George E. P. BoxAssim, o neurnio M-P uma aproximao til do neurnio real, pois serve at hoje como bloco construtivo bsico de algoritmos de redes neurais.2. Neurnio de McCulloch-PittsNaconstruodoneurnioM-Pseestinteressadoemmodelar aspectosligadosaoProcessamentodaInformaoemum neurnio biolgico.Entende-se por processamento da informao os caminhos e etapas pelas quais passam os potenciais de ao que trafegam de (i) um neurnio a outro neurnio,(ii)receptores sensoriais a um neurnio, ou(iii) de um neurnio a um atuador (e.g. msculo).Assim,devemosdesenvolvermodelosmatemticosque representem os dendritos, as sinapses, o corpo celular e o axnio.2. Neurnio de McCulloch-PittsPasso 1: Cada ramo da rvore dendrtica modelado como uma linha ou canal de transmisso por onde flui a informao de entrada (xj, j=1, ..., p).2. Neurnio de McCulloch-PittsPasso2:Afora(oueficincia)dasconexessinpticasdeumacerta rvore dendrtica modelada como um fator (peso sinptico), cujo papel modular o fluxo de sinais passando por uma certa rvore dendrtica.2. Neurnio de McCulloch-PittsPasso3:Afunodocorpocelularderealizarobalanoou acmuloenergticomodeladaporumaoperaodesomatrio sobre as entradas moduladas pelos pesos sinpticos.u = w1x1 + w2x2+ .... + wpxp- 0 x1, x2: entradas w1, w2: pesos sinpticos0: limiar (bias)u : ativao 2. Neurnio de McCulloch-PittsPasso 4: O axnio modelado como uma chave ON-OFF, que indica seoneurniorespondeuaoestmuloatual.Emoutraspalavras,se houve ou no o envio de um potencial de ao.y = sinal(u) = +1, seu > 0 y = sinal(u) =-1, caso contrrio. 2. Neurnio de McCulloch-PittsModelo Completo do Neurnio Artificial de McCulloch-PittsEmenta1. Funcionalidadesdoneurniobiolgico3.Anlise geomtrica do neurnio MP2.Neurnio artificial de McCulloch-Pitts (MP)4.Portas lgicas AND, OR e NOT5.Rede Perceptron Simples (PS) e aplicaes6.Problemas no-linearmente separveis e a porta lgica XOR7.Implementao da porta lgica XOR via redes multicamadas8.Rede Perceptron Multicamadas (MLP) 9.Algoritmo de retropropagao do erro (error backpropagation)10.Dicas de treinamento, teste e validao da rede MLPSeja o neurnio artificial mostrado na figura abaixo.A ativao (u) do neurnio dada por:u = w1x1 + w2x2- 0(1)x1, x2: entradas w1, w2: pesos sinpticos0: limiar (bias)u : ativao 3. Anlise GeomtricaA Eq. (1) define um plano em (x1, x2, u).Obs: O tracejado indica onde o plano est abaixo do plano (x1, x2).3. Anlise Geomtrica3. Anlise GeomtricaIsto equivale a fazer u=0 na equao do plano, ou seja:Para fins de classificao basta trabalhar no plano (x1, x2).Assim, a equao da reta no plano (x1, x2) dada por:u = w1x1 + w2x2- 0 = 0x2= - (w1/w2)x1 + 0/w2 (2)A Eq. (2) define a seguinte reta em (x1, x2).3. Anlise GeomtricaAssim, um neurnio pode ser usado para separar com eficincia duas classes que estejam bem isoladas uma da outra.3. Anlise GeomtricaEmenta1. Funcionalidadesdoneurniobiolgico3.Anlise geomtrica do neurnio MP2.Neurnio artificial de McCulloch-Pitts (MP)4.Portas lgicas AND, OR e NOT5.Rede Perceptron Simples (PS) e aplicaes6.Problemas no-linearmente separveis e a porta lgica XOR7.Implementao da porta lgica XOR via redes multicamadas8.Rede Perceptron Multicamadas (MLP) 9.Algoritmo de retropropagao do erro (error backpropagation)10.Dicas de treinamento, teste e validao da rede MLPQual a relao entre portas lgicas e Inteligncia Artificial?4. Portas Lgicas And, Or e NotGeorgeBoole(1854).AninvestigationintotheLawsof Thought,onWhichareFoundedtheMathematicalTheoriesof Logic and Probabilities.GeorgeBoole(02/11/1815-08/12/1864). Matemticoefilsofobritnico.ocriadorda lgebraBooleana,basedaatualaritmtica computacional.Exemplo 1: Implementando funes lgicas (AND, OR, NOT).Representao do Problema (Funo OR)4. Portas Lgicas And, Or e NotExemplo 1 (cont.): possvel encontrar uma reta que separe os pontos da Classe 1 (y=1) dos da Classe 2 (y=0)? Resposta: SIM!Obs: Na verdade, possvel encontrar infinitas retas que separam as duas classes!4. Portas Lgicas And, Or e NotExemplo 2 : O seguinte neurnio implementa a porta OR. w1= w2=1e0=0,5y = 1, se u 0.y = 0, se u < 0.4. Portas Lgicas And, Or e NotExemplo 3 : O seguinte neurnio implementa a porta AND. w1= w2=1e0=1,5y = 1, se u 0.y = 0, se u < 0.4. Portas Lgicas And, Or e NotExemplo 4 : O seguinte neurnio implementa a porta NOT. w1= -1e0= -0,5y = 1, se u 0.y = 0, se u < 0.4. Portas Lgicas And, Or e NotIMPORTANTE1 4. Portas Lgicas And, Or e NotOneurnioMPpodeserusadoparaimplementarasportas lgicasAND,OReNOTporqueestas,dopontodevista geomtrico,podemserinterpretadascomoumproblemade classificao binria (duas categorias).IMPORTANTE2 4. Portas Lgicas And, Or e NotOneurnioMP,dopontodevistageomtrico,podeser intepretadocomoumareta (2D),ouumplano (3D)ouainda umhiperplano(>3D),queusadoparasepararduas categorias de dados distintas.IMPORTANTE3 4. Portas Lgicas And, Or e NotNaimplementaodasportaslgicasAND,OReNOT,os valoresdospesosedolimiarforamdeterminadospelo projetista com base na anlise geomtrica do problema.ComofazercomqueoneurnioM-Pdeterminedeforma automtica os valores dos pesos e do limiar para um problema especfico?IMPORTANTE4 4. Portas Lgicas And, Or e NotParaqueoneurnioM-Psejacapazdeaprendersozinhoa resolverumproblemadeclassificao necessriodot-lode uma regra de aprendizagem.Uma regra de aprendizagem nada mais do que uma equao que altera os valores dos pesos e do limiar em funo dos erros cometidos durante a execuo da tarefa de classificao.Memorex 14. Portas Lgicas And, Or e NotO neurnio M-P um modelo simplificado do neurnio real.O neurnio M-P possui p variveis de entrada: x1, x2, ..., xp O neurnio M-P possui p pesos sinpticos: w1, w2, ..., wpO neurnio M-P possui uma varivel de ativao: uu = w1x1 + w2x2+ .... + wpxp- 0 O neurnio M-P possui uma varivel de sada: yO neurnio M-P possui um limiar de ativao:0 y = sinal(u) = +1 (seu > 0) ou -1 (se u 0) Memorex 2 4. Portas Lgicas And, Or e NotO neurnio M-P nada mais do que uma chave ON/OFF.Assim, pode ser utilizado em problemas de reconhecimento de padres que envolvam duas categorias (binrios).As condies que definem a ativao (y=1) ou no (y=0 ou -1) do neurnio depende dos valores dos pesos e do limiar. OneurnioM-Ppodeserutilizadoparaimplementarportas lgicas AND, OR e NOT. Ementa1. Funcionalidadesdoneurniobiolgico3.Anlise geomtrica do neurnio MP2.Neurnio artificial de McCulloch-Pitts (MP)4.Portas lgicas AND, OR e NOT5.Rede Perceptron Simples (PS) e aplicaes6.Problemas no-linearmente separveis e a porta lgica XOR7.Implementao da porta lgica XOR via redes multicamadas8.Rede Perceptron Multicamadas (MLP) 9.Algoritmo de retropropagao do erro (error backpropagation)10.Dicas de treinamento, teste e validao da rede MLP5. Rede Perceptron Simples (PS)A rede PS considerada o primeiro algoritmo de redes neurais artificiais. A rede PS foi proposta por Frank Rosenblatt em 1958.Perceptron Simples = Neurnio de M-P + Regra de Aprendizagem A regra de aprendizagem o mecanismo que torna a rede Perceptron Simples um dispositivo inteligente! 5. Rede Perceptron Simples (PS)Parafacilitaraanliseasvariveisdeentradaeospesosvoser representados como vetores de agora em diante.x0 x =x1 :xp-1 = x1 :xpw0 w = w1 :wp0= w1 :wp5. Rede Perceptron Simples (PS)Mtodos GeomtrcosUm vetor uma coordenada (ponto) em um espao de dimenso p.5. Rede Perceptron Simples (PS)Comprimento de um Vetor em 2D v=.x2+y2OBS: Usar teorema de Pitgoras! x=v. cos(o)y=v. sin(o)5. Rede Perceptron Simples (PS)Comprimento de um Vetor em 3D v=.x2+y2+z2OBS: Usar teorema de Pitgoras duas vezes! 5. Rede Perceptron Simples (PS)Produto Escalar entre 2 Vetoresu=wTx=xTwDefinio 1:=w0x0+w1x1+...+wp xpOprodutoescalardefinidocomooprodutodeumvetor-linha porumvetor-coluna,oqueequivaleamultiplicarcada componente de um vetor pelo seu correpondente no outro vetor e depois somar cada produto.5. Rede Perceptron Simples (PS)Produto Escalar entre 2 VetoresDefinio 2:u=w.x. cos(o)Alternativamente,oprodutoescalarpodeserdefinidocomoo produtodoscomprimentosdosvetorescomocossenodomenor ngulo entre eles.OBS: As duas definies so equivalentes!5. Rede Perceptron Simples (PS)Produto Escalar entre 2 VetoresExemplo: Calcule o produto escalar dos 2 vetores abaixo usandoas duas definies anteriores.Definio1: Definio2: w=|w0w1=|01x=|x0x1=|11u=w0 x0+w1x1=( 0)(1)+(1)(1)=1u=w.x. cos(o)=(1). (.2). cos( 45)=(1) .(.2) .(.22 )=15. Rede Perceptron Simples (PS)Produto Escalar entre 2 VetoresO produto escalar uma medida de similaridade entr e vetores.Exxemplo: 0 o 90oPara vetores de comprimento fixo, quanto menoro ngulo entre eles, maior o valor resultante do produto escalar.5. Rede Perceptron Simples (PS)Produto Escalar entre 2 VetoresVimos que o produto escalar uma medida de similaridade entr e vetores.Para vetores de comprimento fixo, quanto menoro ngulo entre eles, maior o valor resultante do produto escalar.O sinal do produto escalar tambm um item importante na anlise da orinetao entre os dois vetores. O sinal depende basicamente do ngulo entre os vetores.5. Rede Perceptron Simples (PS)Produto Escalar entre 2 VetoresCaso 1: 0 o < 90ocos(o) > 0 u > 0 (positivo)5. Rede Perceptron Simples (PS)Produto Escalar entre 2 VetoresCaso 2:90o 0, y=+1):Situao desejada (u0, y=+1)Como houve um acerto, no preciso modificar o vetor w.5. Rede Perceptron Simples (PS)Caso 3b:e = d y =0(d=0 e y=0)Situao ocorrida = Situao desejada (u y(2) = 0, e(2)=1w(3)=w( 2)+je(2) x(2)=|000+( 0,5)(1)|101 =|0,500,5 w(2)=w(1)+je(1) x(1)=|000+(0,5)(0)|100 =|000=w(1)5. Rede Perceptron Simples (PS)t=3: Calcular sada para w(3) = [-0,500,5]ex(3) =[-110].u(3)=(-0,5)(-1)+(0)(1) + (0,5)(0) = 0,5 => y (3)= 1, e(1)=0.t=4: Calcular sada para w(4) = [-0,500,5]ex(4) =[-111].u(4) = (-0,5)(-1) + (0)(1) + (0,5)(1) = 1 => y(4) = 1, e(4)=0.w(5)=w( 4)w( 4)=w(3)t=5: Calcular sada para w(5) = [-0,500,5]ex(5) =[-100].u(5) = (-0,5)(-1) + (0)(0) + (0,5)(0) = 0,5 => y(5) = 1, e(5)=-1.w(6)=w(5)+je( 5) x(5)=|0,500,5 +(0,5)(1)|100 =|000,55. Rede Perceptron Simples (PS)t=6: Calcular sada para w(6) = [000,5]ex(6) =[-101].u(6)=(0)(-1)+(0)(0) + (0,5)(1) = 0,5 => y (6)= 1, e(6)=0.t=7: Calcular sada para w(7) = [000,5]ex(7) =[-110].u(7) = (0)(-1) + (0)(1) + (0,5)(0) = 0 => y(7) = 0, e(7)=1.w( 7)=w(6)t=8: Calcular sada para w(8) = [-0,50,50,5]ex(8) =[-111].u(8) = (-0,5)(-1)+(0,5)(1)+(0,5)(1) = 0,5 => y(8) = 1, e(8)=0.w(8)=w( 7)+je(7) x(7)=|000,5+( 0,5)(1)|110 =|0,50,50,5 w(9)=w(8)5. Rede Perceptron Simples (PS)t=9: Calcular sada para w(9) = [-0,5 0,50,5]ex(9) =[-100].u(9)=(-0,5)(-1)+(0,5)(0) + (0,5)(0) = 0,5 => y (9)= 1, e(9)=-1.t=10: Calcular sada para w(10) = [00,50,5]ex(10) =[-101].u(7) = (0)(-1) + (0,5)(0) + (0,5)(1) = 0,5 => y(10) = 1, e(10)=0.t=11: Calcular sada para w(11) = [00,50,5]ex(11) =[-110].u(11) = (0)(-1)+(0,5)(1)+(0,5)(0) = 0,5 => y(11) = 1, e(11)=0.w(11)=w(10)w(12)=w(11)w(10)=w( 9)+je(9) x(9)=|0,50,50,5 +(0,5)(1)|100 =|00,50,55. Rede Perceptron Simples (PS)t=12: Calcular sada para w(12) = [00,50,5]ex(12) = [-111].u(12)=(0)(-1)+(0,5)(1) + (0,5)(1) = 1 => y (12)= 1, e(12)=0.t=13: Calcular sada para w(13) = [00,50,5]ex(13) =[-100].u(13) = (0)(-1) + (0,5)(0) + (0,5)(0) = 0 => y(13) = 0, e(13)=0.w(14)=w(13)w(13)=w(12)FIM do treinamento!5. Rede Perceptron Simples (PS)Soluo Encontrada:w=| 0w1w2=|00,50,55. Rede Perceptron Simples (PS)w=| 0w1w2=|00,50,5Soluo Encontrada:Note que esta no a melhor das solues, porque a reta passa bem emcimadoponto(0,0).Seospesostivessemsidoiniciados aleatoriamente, dificilmente uma situao como essa ocorreria.5. Rede Perceptron Simples (PS)Um nico neurnio M-P categoriza apenas duas classes de dados.Emproblemascommltiplasclasses,deve-seutilizarvrios neurnios em paralelo.5. Rede Perceptron Simples (PS)O i-simo neurnio da rede PS representado na figura abaixo.5. Rede Perceptron Simples (PS)O funcionamento de cada neurnio individualmente o mesmo.Assim, a ativao do i-simo neurnio da rede PS dada por:ui=wiTx=wi 1x1+wi 2x2+...+wip xp i = 1, ..., Q (Q 1 o nmero de neurnios de sada).yi=sinal (ui)=sinal (wiTx)A sada do i-simo neurnio dada por:O erro do i-simo neurnio dado por:ei=diyionde di a sada desejada do i-simo neurnio.5. Rede Perceptron Simples (PS)Comocadaneurniotemseuprpriovetordepesoswi ,i=1, 2, ...., Q, ento teremos agora Q regras de aprendizagem!Assim, a regra de aprendizagem do i-simo neurnio dada por:wi(t +1)=wi(t )+jei(t ) x(t )Em que 0 < j 2,45 = 3. Os vetores de sadas desejadas so construdos do seguinte modo:d=|001Classe 1:Classe 1:Classe 2: d=|010Classe 2: d=|011Classe 3: E assim por diante at a Classe 6: d = [110]T. 5. Rede Perceptron Simples (PS)Mtodo 2: Codificao 1-out-of-Q.Se tenho C classes, ento Q = C.Exemplo: Se C = 4 classes, ento Q = 4. Nestemtodoapenasumadascomponentesdovetordesadas desejadas tem valor igual a 1, i.e. Os vetores d so ortogonais.d=|1000Classe 1:Classe 2: d=|0100d=|0010Classe 3: E assim por diante at a Classe 4: d = [0001]T. 5. Rede Perceptron Simples (PS)Dicas para Projetar uma Rede PS(1) Usar uma taxa de aprendizagem pequena (e.g. j= 0,1 ou 0,01).(2) Usar valores de sada yi {-1,+1}, em vez de yi {0,+1}.(3) Mudar a ordem de apresentao dos vetores de treinamento a cada poca de treinamento, tornando-a aleatria.(4) Usar o mtodo dois para determinar o nmero de neurnios (Q) e a representao dos vetores de sadas desejadas (d).5. Rede Perceptron Simples (PS)Dicas para Projetar uma Rede PS(5) Normalizar os vetores de entrada se as variveis apresentarem ordens de grandeza muito dspares. xjnorm=xjxjminxjmaxxjminou dentro da faixa [-1,+1]:xjnorm=2.(xjxjminxjmaxxjmin)1Recomenda-se deixar toda varivel com valoresdentro da faixa [0,+1]:5. Rede Perceptron Simples (PS)Exemplo Prtico(1) Problema de auxlio ao diagnstico em dermatologia.(2) Nmero de classes igual a C = 6.Classe Patologia No. de casos 1 psoriasis 112 2 seboreic dermatitis 61 3 lichen planus72 4 pityriasis rosea 49 5 cronic dermatitis52 6 pityriasis rubra pilaris205. Rede Perceptron Simples (PS)(3) Nmero total de casos clnicos N = 366.(4) Porcentagem de casos usados para treinamento = 80%.(5) Representao da sada via Mtodo 2, logo Q = 6.(6) Doadores dos Dados -- 1. Nilsel Ilter, M.D., Ph.D., -- 2. H. Altay Guvenir, PhD., Gazi University,Bilkent University, School of Medicine Dept. Computer Engineering 06510 Ankara, Turkey06533 Ankara, Turkey5. Rede Perceptron Simples (PS)(7) No. de variveis de entrada (p=34)Atributos Clnicos (assumem valores 0, 1, 2, 3, salvo indicao contrria)1: erythema2: scaling3: definite borders4: itching5: koebner phenomenon6: polygonal papules7: follicular papules8: oral mucosal involvement9: knee and elbow involvement 10: scalp involvement 11: family history, (0 or 1) 34: Age (linear)5. Rede Perceptron Simples (PS)Atributos Histopatolgicos 1 (assumem valores 0, 1, 2, 3) 12: melanin incontinence 13: eosinophils in the infiltrate 14: PNL infiltrate 15: fibrosis of the papillary dermis 16: exocytosis 17: acanthosis 18: hyperkeratosis 19: parakeratosis 20: clubbing of the rete ridges 21: elongation of the rete ridges Ementa1. Funcionalidadesdoneurniobiolgico3.Anlise geomtrica do neurnio MP2.Neurnio artificial de McCulloch-Pitts (MP)4.Portas lgicas AND, OR e NOT5.Rede Perceptron Simples (PS) e aplicaes6.Problemas no-linearmente separveis (porta XOR)7.Implementao da porta XOR via redes multicamadas8.Rede Perceptron Multicamadas (MLP) 9.Algoritmo de retropropagao do erro (error backpropagation)10.Dicas de treinamento, teste e validao da rede MLPExemplo: possvel implementar a porta XOR com 1 neurnio? Representao do Problema (Funo XOR)6. Problemas No-Linearmente Separveis (Porta XOR)Exemplo (cont.) : No, porque a funo lgica XOR no-linearmente separvel.6. Problemas No-Linearmente Separveis (Porta XOR)Ou seja, no possvel separar as classes por uma nica reta.Exemplo (cont.) : So necessrios pelo menos TRS neurnios!! 6. Problemas No-Linearmente Separveis (Porta XOR)Exemplo (cont.) : Dois neurnios so necessrios para separar oespao (x1, x2) em 4 regies (R1, R2, R3, R4).6. Problemas No-Linearmente Separveis (Porta XOR)Exemplo (cont.) : Note que a reta em vermelho corresponde a umneurnio que implementa a porta AND, enquanto a reta em azul corresponde a um neurnio que implementa a porta OR.Sejam z1 e z2, as sadas dos neurnios responsveis pelas retas emvermelho e azul, respectivamente. Assim, temos que: Em R1,z1 = 0ez2 = 1. Em R2,z1 = 1e z2 = 1.Em R3,z1 = 1ez2 = 0. Em R4,z1 = 0e z2 = 0. 6. Problemas No-Linearmente Separveis (Porta XOR)Exemplo (cont.) : Precisa-se ainda de um terceiro neurnio para combinar os valores de z1 e z2, a fim de gerar o valor de y correto.Quando um ponto da funo que cair em qualquer uma das regiesR2, R3e R4, deve gerar uma sada igual a y = 0.Quando um ponto da funo que cair em na regio R1, o terceiro neurnio deve gerar uma sada igual a y = 1.6. Problemas No-Linearmente Separveis (Porta XOR)Exemplo (cont.) : Representao da funo XOR no espao (z1, z2).No espao (z1, z2) a funo XOR passa a ser linearmente separvel, pois o ponto (x1, x2) = (1,0) mapeado no ponto (z1, z2) = (0,1)!6. Problemas No-Linearmente Separveis (Porta XOR)Exemplo (cont.) : Assim, devemos projetar um neurnio queimplemente a seguinte funo lgica no espao (z1, z2).6. Problemas No-Linearmente Separveis (Porta XOR)Exemplo (cont.): O neurnio de sada tem a seguinte configurao.6. Problemas No-Linearmente Separveis (Porta XOR)z2=2 z1+0,5Equao da reta:Exemplo (cont.) : Colocando os dois primeiros neurnios em umacamada e o terceiro neurnio na camada seguinte (subseqente), chega-se seguinte rede multicamadas que implementa a porta XOR.7. Implementao da Porta XORExemplo (cont.) : Uma outra possvel rede multicamadas quetambm implementa a porta lgica XOR dada abaixo.7. Implementao da Porta XOREmenta1. Funcionalidadesdoneurniobiolgico3.Anlise geomtrica do neurnio MP2.Neurnio artificial de McCulloch-Pitts (MP)4.Portas lgicas AND, OR e NOT5.Rede Perceptron Simples (PS) e aplicaes6.Problemas no-linearmente separveis (porta XOR)7.Implementao da porta XOR via redes multicamadas8.Rede Perceptron Multicamadas (MLP) 9.Algoritmo de retropropagao do erro (error backpropagation)10.Dicas de treinamento, teste e validao da rede MLPA rede neural conhecida como Perceptron Multicamadas (Multilayer Perceptron MLP) contm os seguintes elementos: 8. Rede Perceptron Multicamadas(i)Unidadesdeentrada:responsveispelasimplespassagemdos valores de entrada para os neurnios das camadas seguintes. (ii) Camada(s) oculta(s): contm neurnios responsveis pelo processamento no-linear da informao de entrada, de modo a facilitara resoluo do problema para os neurnios da camada de sada . (iii) Camada de sada: contm neurnios responsveis pela gerao da sada da rede neural, aps as entradas terem sido devidamente processadas pelos neurnios ocultos. 8. Rede Perceptron MulticamadasUma Rede MLP com 1 camada oculta representada por: MLP(p, q1, m)Onde: p o nmero de variveis de entradaq1 o nmero de neurnios ocultosm o nmero de neurnios de sada.Logo,onmerototaldeparmetros(Z)deumaredeMLPdeuma camada oculta dado por:Z = (p+1)q1 + (q1+1)m8. Rede Perceptron MulticamadasUma Rede MLP com 1 camada oculta representada por: MLP(p, q1, q2, m)Onde: p o nmero de variveis de entradaq1 o nmero de neurnios da 1a. camada ocultaq2 o nmero de neurnios da 2a. camada ocultam o nmero de neurnios de sada.Logo,onmerototaldeparmetros(Z)deumaredeMLPdeduas camadas ocultas dado por:Z = (p+1)q1 + (q1+1)q2+ (q2+1)m8. Rede Perceptron MulticamadasUmaredeMLPcom4variveisdeentrada(p=4),10neurniosocultos (q1=10) e 2 neurnios de sada (m=2) representada como MLP(4,10,2). NOTA1:Aespecificaodep em soditadaspelaformacomoo problema codificado para ser resolvido por uma rede neural.NOTA 2: As especificaes de q1 e q2 dependem da complexidade do problema,ouseja,precisorealizarvriostestesatencontraros valores mais adequados.UmaredeMLPcom15variveisdeentrada(p=15),20neurniosna1a. camadaoculta(q1=20),10neurniosna2a.camadaoculta(q2=10)e4 neurnios de sada (m=4) representada como MLP(15,20,10,2). 8. Rede Perceptron MulticamadasUmneurnioqualquerdaredeMLP,sejaocultooudesada, representado genericamente como na figura abaixo.8. Rede Perceptron MulticamadasNote que a funo de ativao do neurnio M-P, que do tipo Degrau (no-linearidade dura ou hard) foi substituda por uma funo de ativao do tipo Sigmoidal (no-linearidade suave ou soft).Assim, a sada deixa de ser uma varivel do tipo ON-OFF (binria [0,1] ou bipolar [-1,+1]) e passa a ser uma varivel do tipo Real ou Analgica (qq valor entre [0,1] ou [-1,+1]).8. Rede Perceptron MulticamadasFuno de ativao Sigmide Logsticayi(t )=11+exp(ui(t ))yi(t ) ( 0,1)8. Rede Perceptron MulticamadasDerivada da Sigmide Logsticayi,(t )=d yi(t )d ui(t )yi,(t )=yi(t )|1yi(t )8. Rede Perceptron MulticamadasFuno de ativao Tangente Hiperblicayi(t )=1exp(ui(t ))1+exp(ui(t ))yi(t ) (1,1)8. Rede Perceptron MulticamadasDerivada da Tangente Hiperblicayi,(t )=d yi(t )d ui(t )yi,(t )=0,5|1yi2(t )8. Rede Perceptron MulticamadasSobre o Uso de Funes de Ativao Sigmoidais Vantagens: (1) Derivadas fceis de calcular.(2) No-linearidade fraca (trecho central quase linear)(3)Interpretaodasadacomotaxamdiadedisparo (mean firing rate), em vez de simplesmente indicar se o neurnio est ou no ativado (ON-OFF).Desvantagens: (1) Elevado custo computacional para implementao em sistemas embarcados devido presena da funo EXP. exp( x)=1+ x1!+x22!+x33!+8. Rede Perceptron MulticamadasFuncionamento de uma rede MLP com 1 camada oculta(1) A ativao do i-simo neurnio da camada oculta dada por:ui=wiTx=wi 0x0+wi 1x1+wi 2 x2+...+wipxp, i=1, ., q1zi(t )=11+exp(ui( t )), i=1,., q1(2) A sada do i-simo neurnio da camada oculta dada por:ouzi(t )=1exp(ui( t ))1+exp(ui( t )), i=1,., q18. Rede Perceptron MulticamadasFuncionamento de uma rede MLP com 1 camada oculta(1) A ativao do k-simo neurnio de sada dada por:ak=mkTz=mk 0z0+mk1z1+mk 2z2++mkq1zq1, k=1, ., mok(t )=11+exp(ak(t )), k=1, ., m(2) A sada do k-simo neurnio de sada dada por:ouok(t )=1exp(ak(t ))1+exp(ak(t )), k=1, ., m8. Rede Perceptron MulticamadasTreinamento de uma rede MLP (1 camada oculta)O k-simo neurnio de sada tm acesso sada desejada, dk.Assim, possvel calcular o erro associado a esse neurnio:ek= dk- ok Esteerropodeentoserutilizadoemumaregradeaprendizagem similar quela usada pelo algoritmo Perceptron Simples.mk(t +1)=mk( t )+jek(t ) ok,( t ) z(t )z(t) o vetor de entrada da camada de sada. ok,( t )=ok(t )|1ok(t )(p/ sigmide logstica) ok,( t )=0,5|1ok2(t )(p/ tangente hiperblica) Onde:8. Rede Perceptron MulticamadasTreinamento de uma rede MLP (1 camada oculta)Contudo,oi-simoneurnioocultonotemacessoaumasada desejada equivalente, di.Assim, NO possvel calcular o erro associado a esse neurnio.A sada encontrada pelos pesquisadores foi inventar uma espcie de erroparaosneurniosocultos,semquehouvesseanecessidadede uma sada desejada, di.Oerrodosneurniosocultossoobtidosapartirdoserrosdos neurnios de sada por meio de uma projeo no sentido inverso ao do fluxo de informao convencional.8. Rede Perceptron MulticamadasTreinamento de uma rede MLP (1 camada oculta)Estaprojeonosentidoinversodos erros de sada maisconhecida pelo nome de retropropagao dos erros (Error Backpropagation).O algoritmo de backpropagation o mais usado para treinar redes MLP, tendo sido proposto por diferentes autores em diferentes pocas.8. Rede Perceptron MulticamadasP.Werbos(1974).Beyondregression:newtoolsforpredictionandanalysisinthe behavioral sciences, PhD thesis, Harvard University, Boston, MA.D. E. Rumelhart, G. E. Hinton, & R. J. Williams (1986). Learning representations by back-propagating errors. Nature, 323:533-536, 1986.Y. Le Cun, Learning processes in an asymmetric threshold network, In: Disordered Systems and Biological Organization (eds. F. Soulie, E. Bienenstock, and G. Weisbuch, Eds.). Les Houches, France: Springer-Verlag, 1986, pp. 233-340.Parker, D. (1985). Learning Logic, Technical Report TR-87. Cambridge, MA: Center for Computational Research in Economics and Management Science, MIT.8. Rede Perceptron MulticamadasRegras de Aprendizagem da Rede MLP (1 camada oculta)Neurnios Ocultos:wi(t +1)=wi( t )+jei(t ) zi,(t ) x(t )Onde: ei o erro retroprojetado do i-simo neurnio de sadax(t) o vetor de entrada da rede. zi,(t )=zi(t )| 1zi(t )(p/ sigmide logstica) zi,(t )=0,5|1zi2( t )(p/ tangente hiperblica) ei(t )=k=1mmkiok,( t ) ek(t ), i=1,., q18. Rede Perceptron MulticamadasObteno Terica da Regra de Aprendizagem da Rede MLPParaaredePS,aregradeaprendizagemfoiobtidaatravsdeuma anlise geomtrica do problema.Para a rede MLP vamos obter uma regra de aprendizagem semelhante, a partir da minimizao de uma funo-custo (ou funo objetivo).Paraisso,considereinicialmentequeoerroquadrticoinstantneo para todos os m neurnios de sada dado por:J (t )=12k=1mek2(t )=12k=1m(dk(t )ok(t ))28. Rede Perceptron MulticamadasObteno da Regra de Aprendizagem da Rede MLPGrfico hipottico que ilustra o efeito da no-linearidade na funo J(t) para um nico neurnio de sada com peso w mostrado abaixo:8. Rede Perceptron MulticamadasSuperfcie de busca hipottica em trs dimenses8. Rede Perceptron MulticamadasObteno da Regra de Aprendizagem da Rede MLPA funo-custo de interesse o Erro Quadrtico Mdio (EQM), para os N exemplos de treinamento:J (W)=1Nt =1NJ (t )=12 Nt =1Nk=1mek2(t )=12 Nt =1Nk=1m(dk(t )ok(t ))2Note que a funo J(W) pode ser minimizada ao se minimizar J(t)!onde W o conjunto de todos os parmetros (pesos e limiares) da rede.8. Rede Perceptron MulticamadasObteno da Regra de Aprendizagem da Rede MLPComoafunocustono-linear,entooprocessodeminimizao deveserrealizadodemodoiterativopormeiodaseguinteequao recursiva:mk(t +1)=mk(t )j J (t )mk(t )onde j passo de aprendizagem (0 < j < 1).Notequeosegundotermodaequaoacimaoincrementoimposto ao vetor de pesos wk no instante t, ou sejaAmk(t +1)=j J (t )mk( t )8. Rede Perceptron MulticamadasObteno da Regra de Aprendizagem da Rede MLPTemosentoquecalcularaseguintederivada,tambmchamadade gradiente da funo J(t) na direo do vetor mk(t):J (t )mk(t )Para isso, usaremos a regra da cadeia para fatorar esta derivada em vrios termos:J (t )mk(t )=J (t )ek(t )ek(t )ok(t )ok(t )ak(t )ak(t )mk(t )8. Rede Perceptron MulticamadasVamos calcular cada derivada separadamente:J (t )ek(t )=ek(t )J (t )=12k=1mek2(t )(1) SeEntoek(t )ok(t )=1 (2) SeEnto ek= dk- ok (4) SeEnto ok( t )=(ak( t ))ok(t )ak(t )=,(t )=ok,(t ) (3) Seak(t )=mkT( t ) z(t )Entoak(t )mk(t )=z(t )8. Rede Perceptron MulticamadasJuntando novamente cada derivada, chega-se ao seguinte resultado:J (t )mk(t )=J (t )ek(t )ek(t )ok(t )ok(t )ak(t )ak(t )mk(t )=ek( t )(1) o,(t ) z(t )=ek(t )o,( t ) z(t )Assim, obtemos a regra de aprendizagem para os neurnios de sada:mk(t +1)=mk( t )j J (t )mk(t )mk(t +1)=mk( t )+jek(t ) ok,( t ) z(t )8. Rede Perceptron MulticamadasParaobteraregradeaprendizagemdosneurniosocultosadota-se um raciocnio semelhante.Assim, o processo de minimizao deve ser realizado de modo iterativo por meio da seguinte equao recursiva:wi(t +1)=wi( t )j J (t )wi(t )OsegredoestemcalcularogradientedafunofunocustoJ(t) agora na direo do vetor wi(t), ou seja:J (t )wi(t )=J (t ) yi(t ) yi(t )ui(t )ui(t )wi( t )( exerccio)8. Rede Perceptron MulticamadasAvaliao Grfica do TreinamentoA avaliao do treinamento feita atravs do grfico de J(W) versus o nmero de pocas de treinamento, chamado de curva de aprendizagem.8. Rede Perceptron MulticamadasA Rede MLP um Aproximador Universal de FunoUma rede MLP(p, q1, m), ou seja, uma rede com uma camada oculta, capazdeaproximarqualquerfunocontnua,comgraudepreciso arbitrrio, dado um nmero suficientemente grande de neurnios ocultos com funo de ativao sigmoidal.UmaredeMLP(p,q1,q2,m),ouseja,umaredecomduascamadas ocultas,capazdeaproximarqualquerfunodescontnua,comgrau deprecisoarbitrrio,dadoumnmerosuficientementegrandede neurnios ocultos com funo de ativao sigmoidal em cada camada.8. Rede Perceptron MulticamadasA Rede MLP um Aproximador Universal de FunoK. Hornik, M. Stinchcombe & H. White (1989). Multilayer Feedforward Networks are Universal Approximators, Neural Networks, vol. 2, no. 5, p. 359--366.K. Hornik (1991).Approximation Capabilities of Multilayer Feedforward Networks, Neural Networks, vol. 4, no. 2, p. 251--257.R.Hecht-Nielsen(1987).Kolmogorov'smappingneuralnetworkexistencetheorem, Proceedings of the IEEE International Conference on Neural Networks, pp. 11--14.J.L. Castro,C.J. Mantas &J. M.Benitez (1987). Neuralnetworks witha continuous squashing function in the output are universal approximators, Neural Networks, vol. 13, no. 6, pp. 561--563.8. Rede Perceptron MulticamadasA Rede MLP um Aproximador Universal de FunoOsresultadosobtidosnasrefernciasacimasoapresentadosnaforma de teoremas de existncia, ou seja, eles dizem que existe uma rede MLP que pode aproximar uma certa funo, porm no dizem como obt-la.V.Kurkova(1992).Kolmogorov'sTheoremandMultilayerNeuralNetworks, Neural Networks, vol. 5, no. 3, p. 501--506.Exceo:Istoquerdizerque,pormenorquesejaoerroquadrticomdioexigido para uma boa aproximao do problema, a rede MLP ser eventualmente capaz de atingi-lo, desde que o nmero de neurnios ocultos seja elevado.8. Rede Perceptron MulticamadasPapel da Derivada da Funo de Ativao na Regra de AprendizagemAssumindo uma funo de ativao logstica, tem-se queCONCLUSO: Quando a ativao muito alta (ou muito baixa), a sadaestarprximadaregiodesaturaoe,assim,oajuste dos pesos ser muito pequeno e o aprendizado mais lento. eQuando ak(t )-+, ento ok(t ) 1 ok,( t ) 0Quando ak(t )-, ento ok(t ) 0 ok,( t ) 0Logo, se ok,(t ) 0 Amk(t )=jek(t ) ok,(t ) z(t ) 08. Rede Perceptron MulticamadasEste fnomeno recebe o nome de paralisia da rede e pode ser melhor visualizadocolocando-seosgrficosdafunodeativaoedesua derivada lado a lado.8. Rede Perceptron MulticamadasParaminimizaroefeitodaparalisiadarede,recomendvelquea ativaosejamantidaemtornodaregiomaislineardafunode ativao, pelo menos no incio da fase de aprendizado a fim de aceler-la.Dicas para minimizar a paralisia da rede(1)Iniciarospesoselimiarescomvalorespequenos,e.g.nafaixa entre [-1/10, +1/10] ou [-1/2,+1/2].(2) Normalizar as entradas para a faixa [0,+1] ou [-1,+1].(3) Adicionar 0,05 ao valor da derivada da funo de ativao. Assim,Amk(t )=jek( t )( ok,(t )+0,05) z(t ),Awi( t )=jei(t )( zi,(t )+0,05) x(t ),ondeondeei(t )=k=1mmkiok,(t ) ek(t )ek(t)= dk(t) - ok(t)8. Rede Perceptron MulticamadasDeterminao dos Neurnios da Camada OcultaInfelizmente, no existe um mtodo de passo nico para determinar o nmero de neurnios que seja adequado a uma dada tarefa.Em geral, este nmero determinado aps alguma experimentao com os dados (tentativa e erro).Algumas tcnicas heursticas podem fornecer um valor inicial para o nmero de neurnios da camada oculta.Por tentativa-e-erro entende-se repetir o processo de treinamento e teste para cada valor especificado para o nmero de neunios ocultos.8. Rede Perceptron MulticamadasHeursticas para Especificar o No. de Neurnios Ocultos(1) Regra do Valor Mdio:(2) Regra da Raiz Quadrada:(3) Regra de Kolmogorov:q1=p+m2q1=.p. mq1=2 p+1(4) Regra de Fletcher-Gloss:2.p+mq12 p+18. Rede Perceptron MulticamadasHeursticas para Especificar o No. de Neurnios Ocultos(5) Regra de Baum-Haussler:N >ZeondeZ o nmero de parmetros da rede MLP(p, q1, m) N o tamanho do conjunto de treinamento Z = (p+1)q1 + (q1+1)me o erro tolerado durante o teste.Exemplo: Se e = 0,1 (10% de tolerncia), ento N >10 Z8. Rede Perceptron MulticamadasDilema Vis-VarinciaOnmerodeneurniosocultosdeveseradequadamentedeterminado, sob pena de o modelo apresentar uma das seguintes situaes que levam a um desempenho ruim.(1) Underfitting: a rede neural tem poucos parmetros ajustveis e no conseguemodelaroucapturarascaractersticasespecficasdosdados, capturando apenas os detalhes mais gerais. Neste caso, diz-se que a rede generaliza demais.(1)Overfitting:aredeneuraltemmuitosparmetrosajustveise capturaatcaractersticasmuitoespecficasdosdados,quepodemter sido causadas, e.g. pela presena do rudo. Neste caso, diz-se que a rede generaliza pouco.8. Rede Perceptron MulticamadasUnderfitting:Quandoaredegeneralizademais,oerrodeestimao(vis) ALTO, porm a varincia da sada do modelo BAIXA.8. Rede Perceptron MulticamadasOverfitting: Quando a rede generaliza pouco, o erro de estimao (interpolao) BAIXO, porm a varincia do estimador ALTA.8. Rede Perceptron MulticamadasGoodfitting:Quandoaredegeneralizaadequadamente,humcompromisso entre vis (erro de estimao) e a varincia do estimador.8. Rede Perceptron MulticamadasAplicao 1: Identificao de um Aerogerador8. Rede Perceptron MulticamadasAplicao 2: Crdito Bancrio