Redes Neuronales Java y el XML (D. López De Luise) 27/10/05 (19:00hs) La IA en Java (D. López De Luise) 17/11/05 (19:00hs) Cognitive Memory & Java (S. Piedrahita) Webbrowsing con Java informes: [email protected] M. D. López De Luise 21/11/05 (19:00hs) (D. López De Luise) 24/11/05 (19:00hs) [email protected] M. D. López De Luise Por qué RN? Presentar los fundamentos de las Redes Neuronales y su aplicación desde la perspectiva del lenguaje Java. •Terminología de la neurona •El modelo neuronal •Modelos y codificación de información •Algunas redes famosas •Librerías open source 0 M. D. López De Luise 1958 Surge con F. Rosenblat: Perceptrón 1969 M. Minsky y S. Papert: limitaciones del Perceptrón 1982 J. Hopfield: descripción matemática del modelo 1985 American Institute of Physics: annual meeting of NN 1987 IEEE: First International Conference on NN 1990 US Dep. of Defense: Small Business Innovation Research Pgm 2001 IEEE: Neural Networks Society 2003 IEEE: Neural Networks local Chapter 2005 Soft-computing (CIS) Genetic algorithms Heuristics algorithms Neural Networks aplicaciones Fuzzy Logic Evolutionary algorithms 1 M. D. López De Luise Por qué no RN? algunos prejuicios Por qué RN? aplicaciones características RN Parallel Processing Comportamiento interno complicado Precisión menor al 100% Cantidad de datos para entrenar Es un arte? Fault tolerance Self-organization Generalization ability Continuous adaptivity 1 M. D. López De Luise Intelligent Agents Monitoring Sys. Warning Sys. ADSS Process Automation Smart devices Intelligent Personal Assistant 0 M. D. López De Luise 1 Potencial post-sináptico de la neurona i Va±Ve Va’±Vi dendritas soma E axón f(E) >?? S neuronas post-sinápticas Estimulación desde la neurona j=1 potencial de acción ui(t) ? neurona pre-sináptica ei1 ei2 potencial excitatorio acumulado ei3 ureposo t1(1) t2(1) t1(2)t2(2) estimulación en t=2 estimulación en t=1 2 1 M. D. López De Luise M. D. López De Luise Potencial de una red neuronal neuronas presinápticas j ei1(t) ei2(t) j=1 j=2 i=1 neuronas possinápticas i j=1 i=1 j=2 i=2 ui(t)= urep+ Sj Sf eij(t – tj (f)) +? (t –^ ti) i=3 j=3 t1(1) t2(1) i=4 ui(t) = ureposo+ ei1(t – t1(1)) + ei2(t – t2 (1)) +... potencial de acción secuencia f=1,2,3,... ui(t) ? ? (t –^ ti) ui(t) ? ei1 ei2 ei1 ureposo ei2 ui(t) >= ? sii dui(t)>0 dt ^ ti=max{ti (f)| ti (f)<t} ei3 ureposo t1(1) t2(1) t1(2)t2(2) 5 M. D. López De Luise t1(1) t2(1) t1(2)t2(2) ui(t)= urep+Sf[ei1(t – t1 (f)) + ei2(t – t2 (f)) +...] ui(t)= urep+ Sj Sf eij(t – tj (f)) 3 M. D. López De Luise ^ti instante de generación del último potencial de acción : limitaciones del modelo Simplificaciones realizadas con este modelo A B No todos los potenciales postsinápticos tienen igual forma. No es verdad que la dinámica de una neurona i dependa ppalmente del momento del último disparo. Avg. rate Limitaciones provocadas A B C D No modeliza la dependencia del potencial con el estado pre-sináptico No modeliza la dependencia del estado interno de la neurona T Hz Spikes (pulsos) No modeliza la dependencia de la ubicación 1 nsp(T) Vs No modeliza la adaptación celular hasta el estado de régimen M. D. López De Luise ?= 0 M. D. López De Luise 2 Codificación de rates promedio temporal El más común nsp(T) ?= Hz T sobre tiempo Avg adecuado p/señales estacionarias o de lento cambio sistema sensorial: mayor presión sobre la piel=> más pulsos sistema motor: más pulsos => mayor fuerza del músculo sobre muestreos repetidos sobre poblaciones de neuronas problemas: •hay actividades que rondan los 14 ms y no son bien modeladas así •esto no es bueno para señales no estacionarias (mayoría en el mundo real) •una salida neuronal no depende de una simple entrada vmax •no representa las saturaciones (límites físicos en la reacción) (hay una curva de ganancia o función de transferencia) 2 V=g(I/0) 0 M. D. López De Luise M. D. López De Luise promedio sobre repeticiones cant. señales en el lapso 1 ?(t)= ? t PSTH cant de pulsos recibidos de todas las neuronas de la capa previa en ese lapso señal 1° 2° 3°... nk(t, t + ? t) K lapso promedio sobre varias neuronas A(t)= cantidad de repeticiones t+? t (f) 1 ?Sj Sfd (t – tj ) dt t ?t N ?(t) m... aplicable en señales estacionarias o no representa la decodificación de una red de neuronas y no a una sola n... tamaño de la población de neuronas receptoras modeliza cambios en señales cambiantes problema potencial: es poco real que las neuronas sean idénticas ?t 2 1 nact(t, t + ? t) ?t N 0 problema potencial: es poco real que las neuronas estén idénticamente interconectadas M. D. López De Luise M. D. López De Luise Codificación de spikes momento del primer pulso fase estímulo spike neurona 3... neurona 2 neurona 1 estímulo estímulo estímulo ej. hipocampo ej. retina 0 M. D. López De Luise 0 M. D. López De Luise 3 correlaciones y sincronización correlación invertida estímulo ej. córtex visual simultaneidad de los spikes 0 0 M. D. López De Luise M. D. López De Luise reconstrucción de estímulo s(t) Clasificación S ?(t-t(n) ) =Sest(t) f=1..n estímulo e=min {?[S(t) – optimizo la estimación Sest(t)]2 t pulsos dt } feedforward criterios F={t(1), t(2),...,t(f) ,...,t(n)} temporalidad de los pulsos contribución (intensidad) del pulso estímulo estimado ?(t-t(1) ) +... +?(t-t(f) )+... +?(t-t(n) )=Sest(t) conexión entre dos capas consecutivas tipo conexión entre dos capas consecutivas conexión entre neuronas de una misma capa feedfack estructura algoritmo de aprendizaje estimación 0 4 M. D. López De Luise M. D. López De Luise Perceptrón Perceptrón multicapa F. Rosemblatt - 1958 M. Minski & S.Papert - 1969 entrada binaria f f entrada binaria f aprendizaje f wij=xi.?(t) salida 1 M. D. López De Luise f wij=xi.(s– s) Entrada: binaria Tipo: feedforward Capas: 1 de entrada + 1 de salida Aprendizaje: supervisado Algoritmo aprendizaje: Hebbiano Aplicación: clasificación, AND, OR Fn Activación: hard limiter f 0 aprendizaje f f f f f salida Entrada: binaria Tipo: feedforward Capas: 1 de entrada + 1 de salida + n ocultas Fn Activación: hard limiter o sigmoid Aprendizaje: supervisado Algoritmo aprendizaje: delta learning Aplicación: op. lógicas complejas, clasificac. M. D. López De Luise 4 Hopfield Net Backpropagation Net J.J.Hopfield - 1982 G.E.Hinton, E.Rumelhart, R.J.Williams - 1986 entrada binaria f f wij=xi.(s– s) entrada binaria aprendizaje f f f f f f f f f f f f Entrada: binaria Tipo: feedforward Capas: 1 de entrada + 1 de salida + n ocultas Fn Activación: sigmoid Aprendizaje: supervisado Algoritmo aprendizaje: backpropagation Aplicación: op. lógicas complejas, clasificación, análisis de voz 0 r= e-dE/(k.T) salida Entrada: binaria Tipo: feedfack Capas: matricial Fn Activación: hard limiter/signum Aprendizaje: no supervisado Algoritmo aprendizaje: simulated annealing Aplicación: asociación de patrones, optimización de problemas 0 M. D. López De Luise M. D. López De Luise Kohonen Feature Map feature map T.Kohonen - 1982 f f f f f f f f f f f f f f entrada binaria/reales 0 M. D. López De Luise Entrada: binaria/real Tipo: feedfack/feedforward Capas: matricial (mapa) + entrada Fn Activación: sigmoid Aprendizaje: no supervisado Algoritmo aprendizaje: self-organization Aplicación: clasificación, simulación, optimización de problemas GNU jahuwaldt.tools.NeuralNets Neuron NeuronFactory: generador de Neurons BasicNeuron: implementa una neurona BasicNeuronFactory: generador de BasicNeurons HypTangentNeuron: neurona con fn activación = tg hiperbólica HypTangentNeuronFactory: generador de BasicNeurons InputNeuron: implementa una input neuron Serializable FeedForwardNet: implementa una red feedforward FeedForwardNetBP: implementa una red con backpropagation FeedForwardNetSCG:implementa una red con Scaled Conjugated Gradient NeuronObservable implementa una interface observable TrInstGenerator implementa una sesión de training 0 M. D. López De Luise Dep. Computer Science Consiste en un conjunto compacto de clases (sólo 11 en total) Tiene un ejemplo completo de BackPN Tiene Applets de demostración Recetas. Ej: BackpropagationNet 0 M. D. López De Luise 1.object declaration (ej. BackpropagationNet bpn; ) 2.constructor call (ej. bpn = new BackpropagationNet(); ) 3.read conversion file (ej. bpn.readConversionFile("fileName");) 4.create input layer (ej. bpn.addNeuronLayer(i); ) 5.create hidden layer(s) (ej. bpn.addNeuronLayer(h); ) 6.create output layer (ej. bpn.addNeuronLayer(o); ) 7.connect all layers (ej. bpn.connectLayers();) 8.read pattern file (ej. bpn.readPatternFile("fileName"); ) 9.perform a learning cycle (ej. bpn.learn(); ) M. D. López De Luise 5 Usa un conjunto de archivos NNDEF.XML Soporta solo algunas redes simples (ej Perceptron y Perceptron Multilayer) Se pueden generar nuevos XML pero usando NNDEF Generator conforme a NNDEF DTD (document Type Def) debe instalar NNDEFRun Library Versión command line (ej. java -jar NNDefRun.jar) Herramientas de debbuging & testing(java -jar NNDefRun.jar -log ) 0 M. D. López De Luise Puede usarse en multithreading 0 M. D. López De Luise wiki aprendizaje supervisado aprendizaje no supervisado redes feedforward redes feedback redes temporales preprocesamiento de datos posibilidades de uso con JavaScript 0 M. D. López De Luise 0 M. D. López De Luise Un Programa para el problema XOR 0 M. D. López De Luise 0 M. D. López De Luise 6