Desarrollos Inteligentes Redes Neuronales CAPÍTULO 2 REDES NEURONALES “El genio es uno por ciento de inspiración y un noventa y nueve por ciento de transpiración” Thomas A. Edison Objetivo El estudiante comprenderá los conceptos de redes neuronales así como diferentes topologías y modelos de redes neuronales. 28 Desarrollos Inteligentes Redes Neuronales Redes Neuronales. Las redes neuronales artificiales o sistemas neuronales artificiales, representan un área importante de la Inteligencia Artificial (IA), aunque también existen otras disciplinas en las que se incluyen trabajos relativos, entre ellas están la electrónica, física, biología, y la psicología. En el presente capítulo se estudian las redes neuronales artificiales (RNAs) desde la perspectiva de la I A, en principio se presentan algunos conceptos principales siendo el modelo de McCulloch y Pitts el medio por el cual se introduce al lector en este campo. Posteriormente se revisan algunas topologías, sus técnicas de aprendizaje y los métodos de entrenamiento. Un modelo significativo lo constituye la red “Backpropagation” (BPN), debido a que ha sido aplicado por los investigadores y desarrolladores en la mayoría de sus proyectos, por ello se le ha designado para su análisis una sección específica. Resulta conveniente asimismo estudiar otros modelos de RNAs con el propósito de ampliar el conocimiento de las redes neuronales y no permanecer con la idea de que la red BPN es la única a utilizar en los desarrollos inteligentes, un de ellos es el modelo de Cohonen. Se concluye este capítulo con la presentación de diversas aplicaciones. 2.1 Modelo de Mc Culloch – Pitts. Los trabajos desarrollados por Warren Sturgis McCulloch y Walter Pitts en el Departamento de Psiquiatría de la Universidad de Illinois en Chicago, durante el período de 1941 a 1952, establecieron una base importante para el conocimiento de las redes neuronales. En 1943 publican “A logical Calculus of the ideas Immanent in Nervous Activity”, y en 1947 “How We Know Universals: 29 Desarrollos Inteligentes Redes Neuronales The Perception of Auditory and Visual Forms”. Posteriormente en 1952 McCulloch se incorpora al laboratorio de investigaciones electrónicas del Massachusets Institute of Technology, en donde investigó acerca de un modelo de red neuronal para examinar el sistema de percepción visual en el ojo de la rana y el procesamiento de la información en el cerebro. En estos artículos, McCulloch y Pitts analizan los procesos de cómputo realizados por las neuronas, no se ocupan de los aspectos fisiológicos y morfológicos de las neuronas, mas bien se enfocan a estudiar las características y capacidades computacionales del modelo que proponen, caracterizándolo como un dispositivo lógico; de esta forma, el modelo neuronal es planteado a través de un modelo matemático. McCulloch y Pitts parten de cinco consideraciones acerca del comportamiento de las neuronas: 1. La actividad neuronal es un proceso "todo o nada". 2. Un cierto número fijo de sinápsis debe ser excitado dentro de un período de adición latente en orden de excitar una neurona en cualquier intervalo de tiempo, y este número es independiente de la actividad previa y la posición de la neurona. 3. El único retardo significativo dentro del sistema es el retardo sináptico. 4. La actividad de cualquier sinápsis inhibitoria previene absolutamente la excitación de la neurona en ese intervalo de tiempo. 5. La estructura de la red no cambia con el tiempo. ( htpp://proton.ucting.udg.mx/somi/memorias/cibernetica/cib_20.pdf) Como puede verse, han aparecido algunos términos que es conveniente clarificar, a continuación se establecen algunas conceptualizaciones pertinentes. McCulloch y Pitts se basan en el cerebro biológico tal como se encuentra en los seres vivos, entre ellos el hombre y algunos animales. Las células que 30 Desarrollos Inteligentes Redes Neuronales conforman estos órganos son llamadas neuronas, cada unidad presenta una serie de conexiones con otras neuronas mediante una serie de pequeñas ramificaciones llamadas “dendritas” operando a manera de entradas de señales, cada célula realiza una transformación de las entradas generando así una señal de salida, la cual es enviada a través de un componente llamado axón a otras neuronas, el punto preciso de contacto entre el axón y la dendrita se le denomina “sinapsis”, así conectadas las neuronas conforman estructuras similares al concepto de una red. A este conjunto de consideraciones y conceptualizaciones es lo que se ha dado en llamar modelo de neurona de McCulloch y Pitts, de este modelo se pueden obtener algunos razonamientos explicativos: La neurona de McCulloch y Pitts es un modelo lógico binario, ya que solo puede exhibir uno de dos estados. Las entradas pueden ser de dos tipos: las “excitatorias” que operan en forma positiva para que se presente el disparo, es decir la señal de salida, y las “inhibitorias” que operan en forma negativa oponiéndose al disparo. Hay un lapso de tiempo dado fijo para la integración de las entradas sinápticas, basado en el retardo sináptico observado; esto le da a la neurona su carácter de trabajo en tiempo discreto. Efectúan una serie de simplificaciones a la actividad neuronal, como son el considerar que cada entrada sináptica tiene una misma significancia (mismo peso), que no existen ciclos de realimentación en la red, y que existe un valor límite de acumulación de energía entrante (umbral) de valor discreto y fijo, el cual si es rebasado permite que la neurona dispare su señal de salida. 31 Desarrollos Inteligentes Redes Neuronales 2.1.1 Representación y funcionalidad del modelo. El proceso de cálculo en una neurona se puede mostrar utilizando una representación gráfica como se muestra en la figura 2.1. Figura 2.1 Representación gráfica de una neurona y sus tipos de conexiones. (http://es.wikipedia.org/neurona_de_McCulloch-Pitts) Matemáticamente esto se puede expresar mediante: O = s(red) En donde: es la suma pesada. Xi es el valor de la i-ésima entrada (input). Wi es el peso (weights) de la conexión entre la i-ésima entrada y la neurona. θ es el valor umbral (threshold) O es la salida (output) de la neurona. S es la función no-lineal conocida como función de activación. La función de activación que se usa es: 32 Desarrollos Inteligentes Redes Neuronales Un ejemplo de su funcionamiento lo podemos tener si consideramos una neurona de este tipo con dos sinápsis excitatorias a su entrada, considerando unitario el peso de cada una de estas, y un valor umbral de 2. Es decir: Si W1 =w2 = 1 Θ=2 Se pueden presentar las siguientes situaciones: x1 x2 red s(red) 0 0 -2 0 1 0 -1 0 0 1 -1 0 1 1 0 1 Se tendrá por lo tanto un comportamiento lógico de una compuerta tipo AND. 2.1.2 Algunas conclusiones respecto al modelo. McCulloch y Pitts en su trabajo establecieron lo siguiente: "La regla "todo o nada" de la actividad nerviosa es suficiente para asegurar que la actividad de cualquier neurona puede ser representada como una 33 Desarrollos Inteligentes Redes Neuronales proposición. Las relaciones fisiológicas que existen entre las actividades nerviosas corresponden, desde luego, a relaciones entre las proposiciones; y la utilidad de la representación depende de la identidad de estas relaciones con aquellas de la lógica de proposiciones". Resulta claro que si con una neurona se puede obtener el comportamiento de una proposición lógica, entonces con una red de neuronas se puede efectuar el cálculo de una proposición lógica compleja. Sugiere esto que el cerebro era potencialmente un dispositivo lógico y computacional. Es conveniente clarificar en este momento, que los trabajos de McCulloch y Pitts fueron desarrollados en una época en que aún no se contaba con los adelantos científicos en neurofisiología, como para poder contar con principios de funcionamiento iónico y eléctrico de la actividad neuronal, y poder establecer que el comportamiento de las neuronas naturales son más bien de un convertidor frecuencia-voltaje que como simples compuertas lógicas. Sin embargo el potencial de este trabajo sigue siendo de importancia vital, pues su influencia en los modelos subsecuentes de RNAs es innegable. 2.2 Topologías. El número de modelos y tipos de RNAs se ha incrementado considerablemente a tal grado que es necesario establecer una clasificación de ellas, para efectuar una taxonomía se requiere realizar una descripción formal de la topología de las redes, es decir su arquitectura o estructura, que consiste en la organización de las neuronas en la red mediante capas, el número de estas capas, el número de neuronas por capa, el grado de conectividad y el tipo de conexiones entre 34 Desarrollos Inteligentes Redes Neuronales neuronas; asimismo es conveniente definir un modelo genérico de RNA, en la presente sección estableceremos estos elementos. 2.2.1 Modelo genérico de RNA. Definición formal de una RNA. Una definición formal utiliza el concepto de grafo, el cual se establece como un objeto consistente de un conjunto de nodos o vértices, más un conjunto de conexiones (links) entre ellos. Una forma de representar el grafo es, dibujando los nodos como círculos y las conexiones como líneas o flechas. Definición: Una red Neuronal artificial es un grafo dirigido, con las siguientes propiedades: 1)A cada nodo i se asocia una variable de estado Xi. 2)A cada conexión (i,j) de los nodos i,j se asocia un peso Wij є Ŕ. 3)A cada nodo i se asocia un umbral θi. 4)Para cada nodo i se define una función fi(Xj,Wij, θi) que depende de los pesos de sus conexiones, del umbral y de los estados de los nodos j a él conectados. Esta función proporciona el nuevo estado del nodo. (Martín del brío, 2007,pp24) Una red neuronal artificial (RNA) está configurada principalmente por un conjunto de elementos de proceso (EP), los cuales simulan el comportamiento de las neuronas naturales del cerebro, tales elementos se encuentran integrados por capas, siendo así posible tener en una red neuronal una capa de entrada, una o más capas ocultas y una capa de salida ; se tienen conexiones entre neuronas, cada neurona o elemento de proceso, recibe un conjunto de señales de entrada, las cuales pueden provenir de otras neuronas como es el caso de las capas ocultas y de salida ( ver figura 2.1), o bien provenir de algún dispositivo externo 35 Desarrollos Inteligentes Redes Neuronales como es el caso de las neuronas de la capa de entrada, y generan una señal de salida, la cual es el resultado de su proceso interno. Figura 2.2.1 Arquitectura general de una red neuronal Los conectores entre neuronas permiten la conectividad y representan otra parte importante en la topología de las RNA´s, los cuales pueden conectar neuronas de capas diferentes, de la misma capa o a una neurona consigo misma, las conexiones pueden ser totales o parciales entre capas. A cada conector entre neuronas se le asocia un factor de peso (W), el cual simula la sinapsis de las neuronas naturales, la cual es el punto de conexión entre una neurona y otra, y que se le atribuyen propiedades importantes para el aprendizaje. 36 Desarrollos Inteligentes Redes Neuronales El elemento central de una RNA es el elemento de proceso (EP) o neurona, que es en donde se realiza el proceso individual, el cual consiste en obtener primero el cálculo de su entrada neta (Netaj ), mediante la expresión siguiente : n Netaj = Wi *Xi i=1 En donde : Wi es el peso de la conexión de entrada que proviene de la i-ésima neurona. Xi es la señal de entrada que proviene de la i-ésima neurona. n es el número de neuronas de entrada. Posteriormente se obtiene la señal de salida (Yj) de la neurona, mediante la aplicación de una función de activación (treshold) f(Netaj ), de la siguiente manera: Yj = f(Netaj ) En donde: f(Netaj ) es la función de activación de la j-ésima neurona. Al definir la topología y configuración de una red neuronal, se deben establecer todos y cada uno de estos elementos, es decir, se debe especificar: - De cuantas capas constará la red. - Cuantas neuronas se incluirán en cada capa. - Cual será la conectividad en la red. - Qué función de activación se utilizará. - Qué modelo de aprendizaje se utilizará. - Y como estará codificada la información de entrada y de salida de la red. (Hilera González José Ramón,1995,) 37 Desarrollos Inteligentes Redes Neuronales 2.2.2 Tipos de redes neuronales artificiales. En atención a diferentes aspectos de las RNAs, pueden establecerse diferentes tipos de arquitecturas neuronales, a continuación se indican algunas formas de clasificación: En relación a su estructura en capas, se pueden dividir en redes monocapa (constan de una sola capa) y redes multicapa (cuyas neuronas se organizan en múltiples capas). Considerando el flujo de datos en el sistema, se pueden tener redes unidireccionales (en la cuales el flujo es solamente en la dirección que vá de las neuronas de entrada hacia las de salida, también llamadas “feedforward”), y redes recurrentes o realimentadas (la información puede fluir en cualquier sentido, incluido el de la salida hacia la entrada por eso se denominan “feedback”). Atendiendo a la operación de una RNA como a la de una memoria capaz de asociar un cierto patrón de entrada con algún patrón de salida, se puede hablar de una red autoasociativa (si el patrón de entrada es el mismo que el de salida), o una red heteroasociativa (si el patrón de entrada es diferente al de salida). El mecanismo de aprendizaje es otro aspecto que permite clasificar las RNAs, el aprendizaje es el proceso mediante el cual una red modifica sus pesos en función a una información de entrada, es así que dependiendo de la naturaleza de la regla de aprendizaje se pueden tener redes neuronales con aprendizaje supervisado o redes con aprendizaje no supervisado; la diferencia entre ambos consiste en la existencia o no de un agente externo(supervisor) que controle dicho proceso, si coexisten los dos tipos entonces se tendrá una red híbrida, y si se establece un proceso intermedio entre ambos se tendrá una red de aprendizaje reforzado. 38 Desarrollos Inteligentes Redes Neuronales Otro criterio relacionado también con el aprendizaje, lo constituye el hecho si la red puede aprender durante su funcionamiento normal lo cual define a las redes con aprendizaje en línea ( On Line), o bien si el aprendizaje implica la desconexión de la red, es decir opera en otro modo del normal (denominado Of Line ). También se pueden clasificar las RNAs en función de la forma de representación de la información de entrada y la de salida, algunas solo permiten ciertos conjuntos de valores discretos dando así lugar a las redes binarias, otras pueden manejar valores numéricos reales en entradas y salidas lo cual constituye el tipo analógico, asimismo se pueden tener modelos que trabajan con representaciones de datos difusos obteniéndose así las redes difusas (fuzzy). 2.3 Técnicas de aprendizaje. Con el propósito de revisar algunas de las técnicas de aprendizaje, tomaremos como ejemplos algunos de los modelos de redes más típicos como son las redes unidireccionales organizadas en capas con aprendizaje supervisado. Un concepto importante lo constituye el de aprendizaje, la corriente conductista en Psicología establece que: “El aprender consiste en una modificación de la conducta, de tal manera que ante un estímulo A la respuesta ya no es X , sino Y” (Gutierrez Saenz Raúl, 1996, pp 22). Esta definición establecida no en el contexto de las redes neuronales, aplica de una manera casi completa a los procesos y técnicas de aprendizaje utilizadas en ellas. 39 Desarrollos Inteligentes Redes Neuronales En la presente sección se tratarán los siguientes aspectos relacionados con las técnicas de aprendizaje: El mecanismo básico de aprendizaje en las RNAs, las reglas de aprendizaje más comunes y los paradigmas de las arquitecturas empleados en ellas. 2.3.1 El mecanismo básico de aprendizaje. Como se estableció en la sección 2.1, una red neuronal consiste de un conjunto de elementos de proceso (EP) denominados neuronas, las cuales se encuentran agrupadas en subconjuntos llamados “capas”, cada elemento “j” recibe un conjunto de entradas Xi, las cuales provienen de cada una de las neuronas “i” pertenecientes a la capa anterior, a cada una de estas entradas se le asocia un valor numérico Wij llamado peso de conexión entre las neuronas “i” y la “j” según se muestra en la figura 2.3.1. Figura 2.3.1 Elemento de proceso de una red neuronal 40 Desarrollos Inteligentes Redes Neuronales La neurona j-ésima realiza su proceso sumando los productos de los valores de entrada Xi por los pesos Wij, obteniendo así el valor denominado Neta. n Neta = ∑ Wij * Xi i=0 A este valor obtenido de Neta, se le aplica la función “f” conocida como función de transferencia, obteniéndose así el valor de salida Yj. Yj = f(Neta) Se utilizan diferentes tipos de funciones de transferencia, por ejemplo: la función escalón, el sigmoide, el seno, o algunas funciones lineales. Esta función es definida en tiempo de diseño y no se cambia dinámicamente sino que se mantiene fija. Sin embargo los pesos Wij son variables, ellos son ajustados dinámicamente para producir un cierto valor de salida Yj , esta modificación de los pesos es lo que constituye la esencia del aprendizaje en una sola neurona, ajustar los pesos a nivel de toda una red conforma el comportamiento inteligente del sistema emulando el acto de aprender. El proceso de ajuste de los pesos se debe realizar siguiendo una fórmula matemática denominada “regla de aprendizaje”, la cual representa la clave para realizar el objetivo deseado, a dicho proceso se le conoce como “entrenamiento”. Aprendizaje es el proceso por el cual una red neuronal modifica sus pesos en respuesta a una entrada externa (McCord Nelson Marilyn,1991, pp131) . 41 Desarrollos Inteligentes Redes Neuronales 2.3.2 Reglas de aprendizaje más comunes Los investigadores han continuado desarrollando nuevas reglas de aprendizaje, sin embargo existen algunas que normalmente se utilizan. A continuación se revisarán algunas de estas. Regla de Hebb Esta regla es un modelo clásico de aprendizaje, fue establecida por Donald Hebb en 1949, esta basado en una forma de aprendizaje en las neuronas biológicas, y que se puede enunciar de la siguiente manera: “Si un axón presináptico causa la activación de cierta neurona postsináptica, la eficacia de la sinapsis que las relaciona se refuerza” (Martín del Brío Bonifacio, 2007, pp 44) Lo cual aplicado a un elemento de proceso en una RNA, se podría establecer de la siguiente manera: La modificación al peso Wij que conecta la neurona i con la j, de un instante t a otro instante t + Δt , expresado mediante: Wij (t + Δt) = Wij(t) + ΔWij El incremento ΔWij se calcula de una manera proporcional al producto de la entrada Xi por la salida Yj según se indica en la siguiente expresión: ΔWij = αXiYj En donde α es un parámetro de proporcionalidad denominado “ritmo de aprendizaje”, que puede ser un valor entre 0 y 1. Regla delta Está basada en la idea de continuar modificando el refuerzo de las conexiones para reducir la diferencia entre el valor de la salida deseada y el valor de la salida actual de una neurona, a esta regla también se le conoce como regla de 42 Desarrollos Inteligentes Redes Neuronales Widrow – Hoff utilizada en el modelo de red ADALINE e introducida por Widrow en 1959. También se aplica en la regla LMS (Least Mean Squares). Regla del Gradiente descendente Esta regla representa un enfoque matemático para minimizar el error entre la salida actual y la deseada. Los pesos son modificados por una cantidad proporcional a la primera derivada del error con respecto al peso. Ley de aprendizaje de Kohonen Desarrollada por Teuvo Cohonen e inspirada por el aprendizaje en sistemas biológicos, es empleada solamente en aprendizaje no supervisado, en este modelo las neuronas compiten por la oportunidad de aprender, el elemento con la mayor salida es declarado ganador, y tiene la capacidad de inhibir a sus competidores y excitar a sus vecinos. Solamente el ganador puede proporcionar una salida, y junto con sus vecinos puede modificar sus pesos. El tamaño de la vecindad puede variar dinámicamente, inicialmente se emplean valores grandes y posteriormente se va reduciendo el rango de valores. Regla de aprendizaje Back Propagation Esta técnica es la generalización más comúnmente utilizada de la regla delta, involucra dos fases: La primera fase conocida como “fordward phase” ocurre cuando se presenta una entrada a la red, la cual es propagada por toda la red hacia delante en dirección de la capa de salida ; la segunda llamada “Backward phase” se realiza hacia atrás, de la capa de salida hacia la capa de entrada, el error es el que se propaga, es decir, los pesos se ajustan de acuerdo al valor de error cometido. Esta técnica será analizada en detalle posteriormente. 43 Desarrollos Inteligentes Redes Neuronales Regla de Grossberg Stephen Grossberg estableció una regla de aprendizaje combinando el aprendizaje Hebbiano con el olvido biológico. Cada red neuronal es hecha de “instars” y “outstars”, un instar es una neurona recibiendo muchas entradas, un outstar es una neurona enviando su salida a muchas otras neuronas. Si la actividad entrante y saliente de una neurona es alta, los pesos cambiarán significativamente, sin embargo si ambas señales de entrada y salida son pequeñas, entonces los pesos serán modificados en valores muy pequeños, los cuales pueden ser considerados como conexiones sin importancia y pueden ser olvidados. El tipo de red neuronal a la que se aplica esta regla es la ART. 2.4 Métodos de entrenamiento. Entrenamiento es el proceso mediante el cual una red neuronal aprende. El formador provee a la red con ejemplos de las respuestas deseadas, a los cuales se les conoce como “patrones de entrenamiento”, la diferencia entre la salida obtenida y la salida deseada representa la pauta y medida de ajuste de los pesos de conexión, esto se realiza utilizando una regla de aprendizaje, posteriormente se prueba con ejemplos sin salidas para los cuales la red debe crear grupos con características similares, a estos patrones se les denomina “patrones de prueba”. El entrenamiento podría incluir actividades como proveer acceso a bases de datos en donde radican los patrones de entrenamiento, colocar objetos frente a sensores de algún tipo, o bien presentar imágenes. Después del entrenamiento, el sistema está listo para utilizarse. Dependiendo de la tarea a ser realizada, la red podría almacenar los valores de los pesos óptimos, y deshabilitar el proceso de aprendizaje, e iniciar la siguiente fase que es la de operación, esto se realiza en la mayoría de las redes neuronales, excepto para aquellas en las cuales se debe continuar ajustando los pesos para adaptarse 44 Desarrollos Inteligentes Redes Neuronales a condiciones cambiantes, tal como sistemas que efectúan procesos de control en tiempo real. Cuando se diseña una red, se parte de un cierto modelo de neurona y de una cierta arquitectura de la red, para que esta resulte operativa es necesario entrenarla, siendo así requerido utilizar un método apropiado. El entrenamiento se puede realizar en dos niveles, el más utilizado es el modelado de las sinapsis, que consiste en modificar los pesos de conexión siguiendo una cierta regla de aprendizaje, la cual busca optimizar una función de error o costo que mide la eficacia de operación de la red. Otros sistemas neuronales consideran un nivel mayor de aprendizaje, el cual consiste en la creación o destrucción de neuronas modificando inclusive la arquitectura de la red. En la presente sección se revisarán algunos de los métodos básicos de entrenamiento en general y se analizarán ejemplos específicos ilustrativos de entrenamiento, ya que en secciones posteriores se estudiarán a profundidad los métodos que se aplican con más frecuencia. Aprendizaje supervisado En el aprendizaje supervisado se presenta a la red un conjunto de patrones junto con la salida deseada, y en forma iterativa se van ajustando los pesos sinápticos hasta que la salida obtenida observe un error mínimo aceptable. Si E(W) es una función de los pesos W, que representa el error esperado de la salida de la red. En el aprendizaje supervisado se pretende estimar una función f desconocida tal que f: Ŗn Ŗm la cual representa a la red, a partir de muestras o patrones 45 Desarrollos Inteligentes Redes Neuronales (X,Y) siendo X є Ŗn, Y є Ŗm , por medio de la minimización iterativa de E(W) utilizando algún algoritmo del tipo de descenso por el gradiente (Martín del Brío Bonifacio, 2007, pp 27). Aprendizaje no supervisado En este método la red no utiliza influencia externa para ajustar sus pesos, en lugar de ello se tiene un sistema de monitoreo interno de la ejecución del sistema, el cual observa tendencias en las señales de entrada y efectúa adaptaciones de acuerdo a la función de la red, para ello debe contar con alguna información de cómo debe organizarse ella misma. Un ejemplo puede ser una red que aprende a desplazar un objeto móvil en un ambiente dinámico. Un algoritmo de entrenamiento no supervisado podría enfatizar la cooperación entre “clusters” (grupos) de neuronas, cada cluster trabajaría en conjunto con otro cluster y tratar de estimularlo según se presente la señal de entrada. Otra manera de operar podría ser por competencia entre los clusters, de tal manera que se aumente o disminuya la actividad en algunos de ellos según sea la entrada que se presente, así se podrían obtener clusters especializados en cierto tipo de señales entrantes (McCord Nelson Marilyn, Illingwhorth W.T., 1991, pp132) . En el aprendizaje no supervisado se presenta a la red un conjunto de patrones sin adjuntar la salida deseada. La red por medio de la regla de aprendizaje estima p(X), la cual es una función de densidad de probabilidad de los patrones X de entrada, siendo X є Ŗn . A partir de p(X) puede reconocer regularidades en el conjunto de entradas, extraer rasgos, o agrupar patrones según su similitud. Un ejemplo típico de este tipo de aprendizaje es el de los mapas autoorganizados. 46 Desarrollos Inteligentes Redes Neuronales Aprendizaje hibrido En este método de aprendizaje se combinan ambos tipos de entrenamiento, el supervisado y el no supervisado, los cuales tienen lugar normalmente en distintas capas de neuronas. El modelo de contra-propagación es un ejemplo de esta forma de entrenamiento (Martín del Brío Bonifacio, 2007, pp 28). Aprendizaje reforzado Es un tipo de aprendizaje que se puede ubicar entre el supervisado y el autoorganizado. Se emplea información sobre el error cometido, pero existe un única señal de error, no se suministra la salida deseada, también se denomina aprendizaje por premio-castigo. 2.5 Back Propagation. La red de propagación hacia atrás (BPN) fue inicialmente propuesta por Werbos en 1974, posteriormente por Parker en 1982 y finalmente ha sido desarrollada, formalizada y popularizada por David Rumelhart, Hinton y Williams en 1986 ; este modelo es el que mayor aplicación tiene en la actualidad para resolver problemas que requieran el reconocimiento de patrones complejos, o bien el aprendizaje de la asociación entre patrones dados de ejemplos y sus clases correspondientes, en la entrada puede haber tramas incompletas o con ruido, y la red debe asociarlas con mayor aproximación. En esta sección estudiaremos con detalle este tipo de red neuronal y su método de entrenamiento asociado. 47 Desarrollos Inteligentes Redes Neuronales La red “Backpropagation” (propagación hacia atrás) La red BPN debe su nombre al algoritmo de aprendizaje que se utiliza, el cual está basado en una regla denominada “Delta generalizada” que es una versión simplificada del método de gradiente descendente, actualmente se desarrollan trabajos tendientes a mejorar la velocidad de convergencia y la posibilidad de eliminar problemas de llegar a mínimos locales durante el entrenamiento, traduciéndose esto en mejores algoritmos para ésta red. La estructura de la red BPN consiste en una capa de entrada con n neuronas, una capa de salida con m neuronas y una o más capas ocultas con cualquier número de neuronas cada una. Cada neurona de una capa oculta recibe sus entradas desde todas las neuronas de la capa anterior, y envía su salida a todas las neuronas de la capa siguiente, las neuronas de la capa de entrada reciben cada una un componente del patrón de entrada y lo transmiten directamente a todas y cada una de las neuronas de la primera capa oculta (si no hay capas ocultas, lo envían a la capa de salida), las neuronas de la capa de salida reciben sus entradas de todas las neuronas de la última capa oculta y transmiten su salida hacia el exterior directamente. No se tienen conexiones entre neuronas de una misma capa, ni tampoco conexiones hacia atrás de una capa a otra, ni retroalimentación de una neurona consigo misma, existiendo la posibilidad de tener unidades de polarización o de tendencia en todas las capas menos en la de entrada. El funcionamiento de la red BPN se da de la siguiente manera: Suponiendo que en principio ya se ha entrenado debidamente, es decir la red ya puede asociar perfectamente (o aproximadamente) tramas de entrada con sus correspondientes tramas de salida, los pesos W de conexión ya se han determinado aceptablemente. 48 Desarrollos Inteligentes Redes Neuronales Para la explicación siguiente supondremos que tenemos una red de tres capas (sin pérdida de generalidad), una capa de entrada, una capa de salida y una capa oculta. Se presenta una trama de entrada X, sus componentes son recibidos por las neuronas de la capa de entrada (se tienen n neuronas), la propagación hacia adelante se continúa determinando la entrada neta a las neuronas de la capa oculta mediante la fórmula siguiente: Neta hi = X1We1hi + X2We2hi + . . . + XnWenhi + h Para i = 1,m En donde : Xj Representa la entrada j-ésima a la neurona i-ésima de la capa oculta h. We1hi Representa el peso de conexión de la k-ésima neurona de entrada a la i-ésima neurona de la capa oculta h. h Es el factor de tendencia o polarización de la capa oculta h. La función de activación muy frecuentemente utilizada en la red BPN es la función sigmoide dada por la siguiente expresión: y = f(Neta) = 1/(1+e-Neta) Aplicando esta función en cada neurona de la capa oculta, se obtiene la señal de salida dada por los valores siguientes: 49 Desarrollos Inteligentes yi = f(Neta hi ) Redes Neuronales Para i = 1,m Siendo f la función sigmoide. Las señales yi se propagan hacia la capa de salida, ahora la entrada neta a las neuronas de la capa de salida son determinadas mediante la expresión siguiente: Neta oj = Wh1oj Yh1 + Wh2oj Yh2+ . . . + Whmoj Yhm + 0 Para j= 1,s En donde: Wwhoj Es el peso de conexión de la neurona k-ésima de la capa oculta a la unidad j-ésima de salida. Yhk Es la salida de la neurona k-ésima de la capa oculta . s Es el número de neuronas en la capa de salida. 0 Es el valor de tendencia para la capa de salida. Finalmente las señales de salida Y son obtenidas nuevamente aplicando la función f sigmoide de la siguiente manera: Yk = f(Neta ok ) Para k = 1,s Esta señal de salida Y, es el vector que se debe corresponder con el vector de entrada X del mapeo que ha aprendido la red durante su entrenamiento. La regla Delta Generalizada utilizada en el entrenamiento de la red BPN. 50 Desarrollos Inteligentes Redes Neuronales Para entrenar una red, cuya fase se mostrará a continuación, se deben tener los siguientes elementos: - Un conjunto de datos correspondientes a patrones de entrenamiento dados por los vectores Xp, Dp para p = 1,np siendo np el número total de patrones con que se cuenta. - Un conjunto de datos de prueba denominados patrones de prueba Xd, Dd para d= 1,nd siendo nd el número total de patrones. Los pasos a seguir para el entrenamiento de la red se dan a continuación, utilizando para ello la regla de aprendizaje denominada “Delta Generalizada”, que no es otra que el método de gradiente descendiente (Hilera González José Ramón, 1995): 1. Inicializar 2. Presentar los pesos de conexión de la red Wih y Who . un patrón de entrada Xp a la capa de entrada, y mantener su correspondiente salida deseada Dp. 3. Propagar hacia adelante la señal de entrada Xp mediante los siguientes pasos : . Calcular las entradas netas a la capa oculta: Netah . Calcular la salida de la capa oculta Yhr. . Calcular las entradas netas a la capa de salida Netah. . Calcular la salida de la capa de salida Y. 4. Calcular el error () de todas las neuronas de la red : 51 Desarrollos Inteligentes Redes Neuronales Para las neuronas de la capa de salida: opk = (Dpk - Ypk )f’(Netaok ) Considerando que la función “f” es el sigmoide, entonces el error se determina de la siguiente manera: opk = (Dpk - Ypk ) Ypk (1-Ypk ) Por otra parte, para las neuronas de la capa oculta, el error se calcula mediante: hpj = (1 - Xpj ) Xpj opk Wo kj En donde: k = 1,s y j = 1,m. 5. Actualizar los pesos : . De la capa de salida Who mediante la siguiente expresión : Who (t+1) = Who (t) + opk Y pk . De la capa oculta Wih mediante la expresión: Wih (t+1) = Wih (t) + hpj X pi 6. Calcular el error cuadrático dado por la la expresión : Ep = (1/2)(pk)2 k para k=1,np Si Ep es menor que un cierto valor de error aceptable predeterminado, entonces terminar, si no ir al paso 2. 2.6 Modelo de Cohonen. Así como BackPropagation es el tipo de red neuronal mas utilizada en los modelos supervisados, el de Kohonen es uno de los más populares modelos no 52 Desarrollos Inteligentes Redes Neuronales supervisados o autoorganizados, estos últimos se caracterizan porque en su entrenamiento se presentan patrones que solo contienen datos de entrada sin incluir las salidas deseadas, además de no requerir un entrenador externo que indique si la red neuronal está operando debidamente, pues no existen salidas deseadas, sino que la red por sí misma debe descubrir características comunes de los datos, regularidades o tendencias y categorías, de tal manera que durante su entrenamiento la red incorpore a su estructura interna, por esto se conoce también a este modelo como mapa autoorganizado de Kohonen. En esta sección se verá con cierta profundidad lo concerniente a los mapas autoorganizados de Kohonen. En cuanto a su conceptualización, clasificación, entrenamiento y aplicación. Los mapas autoorganizados Durante la década de los ochenta el físico finlandés Teuvo Cohonen desarrolló los mapas autoorganizados SOM ( Self Organizing Maps) o bien SOFM ( Self Organizing Feature Maps), como una continuación de la línea de investigación de las redes competitivas iniciada por Von der Malsburg (Martín del Brío Bonifacio, 2007, pp 88). Se puede observar que en el cortex del cerebro de los animales superiores se presentan zonas en donde las neuronas detectoras de rasgos, se distribuyen topológicamente ordenadas, de tal manera que cada zona posee grupos de neuronas que representan de alguna manera una parte sensora del organismo, como pueden ser las manos, la vista, el oído, etc. Característica que los mapas de Kohonen tratan de reproducir. La arquitectura de las redes SOFM está constituida por dos capas de neuronas, la primera capa que es la de entrada o sensorial esta formada por m neuronas, una por cada variable de entrada comportándose como “buffers” que distribuyen 53 Desarrollos Inteligentes Redes Neuronales la señal proveniente del exterior hacia las neuronas de la segunda capa en forma unidireccional. La segunda capa está integrada por neuronas que conforman el mapa de rasgos y por tanto será la capa de salida, que es en donde se realizan los cálculos, sus neuronas se organizan en una estructura rectangular de nxn elementos, a cada una se le suelen asociar los índices i,j. Cada neurona de entrada (k = 1, m), está conectada a todas las neuronas del mapa de salida (i,j) mediante pesos sinápticos Wkij como se muestra en la figura 2.6.1. (Valluru B. Rao, Hayagriva V. Rao, 1995) Figura 2.6.1 Arquitectura de una red SOFM. La idea común de estos modelos es el agrupamiento de patrones, ya que desarrollan “clusters” (grupos) de neuronas asociadas a dichos patrones. Clasificación de las redes autoorganizadas 54 Desarrollos Inteligentes Redes Neuronales Como ya se mencionó anteriormente este tipo de modelos tienen entrenamiento no supervisado y de acuerdo a la regla de aprendizaje, pueden clasificarse en dos grandes categorías: Los mapas autoorganizados Hebbianos y las redes competitivas. Los mapas autoorganizados Hebbianos como su nombre lo indica utilizan para su aprendizaje una regla tipo Hebb, algunas emplean este modelo directamente, otras derivan reglas diferentes pero basadas en este tipo de modelo de aprendizaje. Estas redes se caracterizan por tener una cantidad numerosa de neuronas de salida que pueden activarse simultáneamente. Otro grupo importante de modelos autoorganizados son las redes no supervisadas competitivas, cuya característica esencial consiste en que solamente una neurona o sus vecinas pueden activarse. Durante el proceso operativo de estas redes se realiza una competencia entre las neuronas, la ganadora tiene la capacidad de inhibir a las demás por eso también se conocen a este tipo de modelo como redes WTA (Winner Take All). En cuanto a su proceso de entrenamiento, también se lleva a cabo mediante competencia, las neuronas ganadoras refuerzan sus conexiones sinápticas. Algoritmo de aprendizaje autoorganizado En principio es importante señalar que no se tiene un algoritmo de aprendizaje único para los modelos SOM, existen diversos con variantes en diferentes aspectos, sin embargo la solución a la que se llega no debe de diferir en forma significativa. A continuación se muestra un algoritmo típico (Martín del Brío Bonifacio, 2007, pp 92): Paso 1. Inicializar los pesos sinápticos Wij. En el instante t = 0, se pueden inicializar de varias 55 Desarrollos Inteligentes Redes Neuronales formas: - En forma aleatoria - Valores nulos - Con un valor preestablecido Paso 2. Presentar un patrón X(t) de entrada. Paso 3. Cada neurona i-ésima (con coordenadas i,j en el mapa) calcula la similitud entre su vector de peso sináptico Wij y el actual vector X de entrada. Un criterio muy común de similitud lo constituye la distancia Euclidiana: n |Wij – X| = d2(Wij,X) = ∑ (Wijk – Xk)2 k=1 Paso 4. Determinar la neurona ganadora c, cuya distancia sea la menor de todas. Paso 5. Actualizar los pesos sinápticos Se actualizan los pesos de la neurona ganadora como los de sus vecinas, para ello se utiliza alguna regla como la siguiente: Wijk(t + 1) = Wijk(t)+ α(t)*h(|i – c| , t)*(Xk(t) – Wijk(t)) En donde: α(t) Es un parámetro llamado ritmo de aprendizaje en t. α disminuye a medida que avanza t, pudiese utilizarse la expresión α(t) = α(0)*(1 – t/T) Siendo T el número total de iteraciones α(0) el valor inicial de α h(.) Se denomina función de vecindad, ya que establece cuales son las neuronas vecinas de c. Depende de la distancia entre la neurona i y la ganadora c, valiendo cero cuando i no pertenece a la vecindad de c. Al igual que α, h puede disminuirse a medida que t Avanza. 56 Desarrollos Inteligentes Redes Neuronales Paso 6. Si se ha alcanzado el número máximo T de iteraciones establecido, entonces el proceso termina. En caso contrario volver al paso 2. El número máximo de iteraciones T debe ser suficientemente grande para proporcionar resultados estadísticos aceptables, valores de 500 iteraciones por neurona de salida suelen ser adecuadas. El ritmo de aprendizaje α debe ser menor a 1.0 y mayor a 0. La función de vecindad h(|i – c|,t) permite establecer si una neurona i pertenece a la vecindad de c en un iteración determinada t. La función de vecindad es simétrica y centrada en c, uno de sus argumentos es la distancia entre la neurona i-ésima con coordenadas (i,j) y la neurona ganadora c cuyas coordenadas las denominaremos (c1,c2), de esta manera la distancia d se puede expresar según la siguiente fórmula: d= |i – c| = ((i-c1)2 + (j – c2)2)1/2 Se tienen diferentes tipos de funciones de vecindad h(.), la más simple es del tipo escalón definida de la siguiente manera: H(i-c,t) = 0, si d> R(t) H(i-c,t) = 1, si d<= R(t) En donde R(t) es el radio de vecindad actual, puede variar con t, se inicia con cierto valor Ro grande que no sobrepase la mitad del mapa en un lado y debe terminar con un valor final Rf = 1, se puede utilizar la siguiente expresión: R(t) = Ro + (Rf – Ro)*(t / T) Otras funciones de vecindad pueden ser: - Gaussiana - Función pipa 57 Desarrollos Inteligentes Redes Neuronales - Sombrero mexicano - Rectangular Procesamiento de datos en una red SOM Una vez entrenada la red, entra a la fase de operación normal, en ella se mantienen los pesos fijos y se efectúan las siguientes operaciones: - Cada neurona (i,j) calcula la similitud entre el vector de pesos Wij con el vector de entrada X, esto de acuerdo con la medida de distancia o criterio de similitud establecido. - Se declara ganadora a la neurona c cuyo vector de pesos Wc es más similar al vector de entrada X. d(Wc, X) = min{ d(Wij,X)} ij Aplicaciones de las redes no supervisadas De acuerdo al procesamiento de datos de este tipo de redes, y a su arquitectura, se pueden utilizar para realizar varios tipos de tareas entre ellas se encuentran las siguientes: - Análisis de similitud entre patrones. Se pretende establecer el grado de similitud entre el patrón de entrada actual y el promedio de los presentados anteriormente. - Análisis de componentes principales. Se desea establecer una asociación entre los pesos sinápticos de un conjunto de neuronas de salida con los rasgos más sobresalientes del espacio sensorial. 58 Desarrollos Inteligentes Redes Neuronales - Clustering (Agrupamiento o clasificación). Cada neurona de salida representa una categoría de patrones, los cuales al presentarse a la red, esta en su operación activa a solamente una neurona, obteniéndose así la indicación de a qué grupo pertenece el patrón de entrada presentado. - Memoria asociativa. Es un caso general del de Clustering, en este caso no solamente se establece a qué categoría pertenece el patrón de entrada, sino que también se puede desplegar información prototipo de la clase. - Codificación. Es similar al caso anterior, solo que en esta ocasión se despliega no información prototipo, sino una etiqueta codificada. - Mapas de rasgos. Las neuronas de salida se ordenan geométricamente ( en forma de matriz bidimensional), realizando una proyección del espacio sensorial de entrada pero preservando la topología del espacio original y reduciendo sus dimensiones o eliminando rasgos insignificantes. Generalmente realizan tareas de clasificación de patrones, sin embargo también pueden ser útiles en tareas como: aproximación funcional, procesamiento de imágenes, análisis estadístico, optimización combinatorial, monitorización de procesos, representación de funciones de densidad de probabilidad y minería de datos. 2.7 Otros modelos En las secciones anteriores se han tratado algunos de los modelos más comunes representativos de las redes neuronales, sin embargo es conveniente completar el panorama con otros modelos que pueden ser también importantes desde la perspectiva histórica y teórica práctica, se verán a continuación los modelos 59 Desarrollos Inteligentes Redes Neuronales Adaline, el Perceptrón y para concluir se revisará un tipo de red realimentada como es el modelo de Hopfield. Modelo de Hopfield El físico norteamericano J. J. Hopfield desarrolló a principios de los años ochenta una arquitectura de red neuronal similar a las denominadas como memorias asociativas, siendo su propuesta muy importante porque inyectó en su momento nuevos impulsos para el avance de la investigación en este campo. Las redes de Hopfield son el modelo clásico de red recurrente, su arquitectura consiste en una única capa de neuronas, todas ellas conectadas entre sí en forma completa y permitiendo la comunicación en ambas direcciones ( ver figura 2.7.1), funciona como una memoria asociativa pudiendo almacenar hasta 0.138 N ejemplos de entrenamiento, siendo N el número de elementos de proceso de la red, cada neurona tiene une estado interno Ui y otro externo Vi, la relación entre ambos estados viene dada por la siguiente expresión: n Ui(t + 1) = ∑Wij*Vj(t) + Ii j=1 1 si Ui > 0 Vi(t + 1) = f(Ui) = 0 si Ui <= 0 En donde: Ii es el valor de entrada a la neurona i, con valores binarios (0,1) o (-1,+1). f(.) es la función de transferencia entre los estados internos y externos. 60 Desarrollos Inteligentes Redes Neuronales Figura 2.7.1 Arquitectura de la memoria de Hopfield Sin conexiones de realimentación. Tiene conexiones bidireccionales con pesos simétricos Wij = Wji que tienen valores continuos (números reales), todas las unidades son de entrada y de salida. La neurona i calcula el potencial postsináptico Hi de acuerdo a la expresión: Hi(t) = ∑ Wij*Ij(t) – θi j Siendo θ un umbral de disparo. Finalmente se aplica al potencial Hi la función f (.) que puede ser de tipo escalón o bien si se emplean valores discretos -1, +1, se puede utilizar la función de transferencia signo: f(x) = sign(x) con valores +1 significa activada y -1 desactivada. De esta manera se obtiene la salida digital de la neurona i Yi(t): Yi(t) = f(Hi(t)) En principio para t = 0, cada neurona i recibe del exterior un valor de entrada Ii. La red interrumpe su comunicación con el exterior y procesa las entradas recibidas, para tiempos sucesivos t + 1, las entradas de cada neurona son el estado en el que se sitúan en el instante anterior t. Normalmente se considera el 61 Desarrollos Inteligentes Redes Neuronales estado X de un red de Hopfield en t como el estado de activación de sus neuronas X(t): X(t) = ( X1(t), X2(t), ..., Xn(t)) El proceso finalizará cuando se alcance un estado estable X* que cumpla con la condición siguiente: X(t + 1) = X(t). El objetivo del entrenamiento de una red de Hopfield es almacenar un conjunto de patrones Xp en forma de estados estables, de tal manera que cuando se presente un patrón de entradas X se obtenga una salida X* que sea uno de los estados estables de la red que coincida con uno de los patrones Xp almacenados. El aspecto interesante de operación de una memoria autoasociativa radica en que si se presenta en la entrada un patrón con ruido, la memoria asocie el estado más próximo al patrón original sin ruido utilizado en el entrenamiento. Considerando que la regla de activación se puede enunciar como se indica a continuación: Xi(t + 1) = f(Hi(t))= 1 si Hi(t) > 0 => ΔXi = Xi(t+1) –Xi(t) ≥ 0 Xi(t + 1) = f(Hi(t))= 0 si Hi(t) < 0 => ΔXi = Xi(t+1) –Xi(t) ≤ 0 Por lo tanto: Hi(t)* ΔXi(t) ≥ 0 es decir: (∑ Wij*Ij(t) – θi)* ΔXi(t) ≥ 0 Se define el incremento de energía de la red ΔEi al valor obtenido de esta expresión, por lo que se tiene: ΔEi = - ( ∑ Wij*Xj(t) – θi))* ΔXi(t) La cual debido a su forma geométrica, se considera <= 0 A partir de la expresión anterior se puede definir la energía de una neurona i específica mediante la fórmula: 62 Desarrollos Inteligentes Redes Neuronales Ei = -Xi(t)* (∑ Wij*Xj(t) – θi) La energía de la red completa se obtiene sumando la energía de cada una de las neuronas, considerando que la matriz de pesos es simétrica (Wij = Wji) y que la diagonal principal es nula (Wii = 0): n n n E = -(1/2)* ∑ ∑ WijXiXj + ∑θi*Xi i=1 j=1 i=1 La energía de la red siempre estará limitada a un valor, por lo que la red siempre llegará a un estado de mínima energía, que será un mínimo local correspondiente a un estado estable. Entrenamiento de la red de Hopfield El aprendizaje de la red consistirá en lograr que almacene como estados estables el conjunto de mínimos locales en la función de energía, y por tanto encontrar el conjunto de pesos sinápticos W que hace que tenga como mínimos locales los patrones de entrenamiento. Si se utiliza la regla de Hebb y suponemos que las neuronas son de tipo Ising (es decir sus estados de activación son -1 y +1) con umbrales nulos, a partir de un conjunto p de patrones, la regla de aprendizaje será la siguiente: p Wij = (1/n) ∑ Xik*Xjk K=1 63 Desarrollos Inteligentes Redes Neuronales 2.8 Aplicaciones Diversas. La mayoría de las aplicaciones de las RNAs, se ubican en alguna de las siguientes categorías: (http://www.dacs.dtic.mil/tech/neural/neural.title.html) - Predicción - Clasificación - Asociación de datos - Conceptualización de datos - Filtración de datos En la presente sección se describirán en forma panorámica estas categorías. Predicción. En este tipo de aplicaciones se utilizan valores de entrada para predecir alguna salida, por ejemplo en las predicciones climatológicas, en el caso de la bolsa de valores pronosticar el comportamiento del mercado, identificación de personas con riesgo de algún tipo de cáncer,etc. Algunos de los tipos de redes neuronales que se han utilizado para resolver estos problemas son: - Back – Propagation - Mapas autoorganizados dentro de Back-Propagation - Delta Bar Delta - Delta Bar Delta extendida - Búsqueda Aleatoria dirigida - Redes Neuronales de Alto Orden 64 Desarrollos Inteligentes Redes Neuronales Clasificación. Se trata de identificar a qué clase de objeto pertenecen los datos de entrada que se presentan a la red, tal es el caso típico de reconocimiento de patrones como puede ser entrar una imagen e identificar el objeto que ahí se presenta. Las redes utilizadas en este caso son: - LVQ (Learning Vector Quantization) - Counter-Propagation - Redes Neuronales Probabilísticas Asociación de datos. Muy similar a la clasificación de datos pero también reconoce datos que contienen errores o ruido, como puede ser en los OCR en donde no solamente se trata de reconocer el caracter que ha sido escaneado, sino también identificar cuándo el escáner está trabajando en forma inapropiada. Algunas redes aplicadas para estos casos son: - Hopfield - Máquina de Boltzman - Red de Hamming - BAM (Bidirectional Asociative Memory) 65 Desarrollos Inteligentes Redes Neuronales Conceptualización de datos. En estas aplicaciones se analizan las entradas con el propósito de inferir relaciones que permitan integrarlas en grupos, por ejemplo en el caso de extraer de una base de datos los nombres de aquellas personas que tienen cierta probabilidad de adquirir un producto en particular. Las redes neuronales para estos casos son: - ART (Adaptive Resonante Network) - SOM (Self Organizing Map) Filtración de datos. Se trata de suavizar una cierta señal de entrada, como en el caso de la eliminación del ruido en una línea telefónica. Las redes para este tipo de problemas son: - Recirculación - Adaline 66 Desarrollos Inteligentes Redes Neuronales PREGUNTAS 1. McCulloch y Pitts parten de cinco consideraciones acerca del comportamiento de las neuronas, ¿Cuáles son?. 2. Proporcione una definición de red neuronal artificial. 3.Considerando el flujo de datos en el sistema, ¿Cómo se pueden clasificar las redes neuronales artificiales?. 4. Atendiendo a la operación de una RNA como a la de una memoria capaz de asociar un cierto patrón de entrada con algún patrón de salida. ¿De qué tipos de redes se puede hablar?. 5. La corriente conductista en Psicología establece una definición de aprendizaje que aplica de una manera casi completa a los procesos y técnicas de aprendizaje utilizadas en las redes neuronales. ¿Qué dice esa definición?. 6. Esta regla es un modelo clásico de aprendizaje, fue establecida por Donald Hebb en 1949, esta basado en una forma de aprendizaje en las neuronas biológicas. ¿De qué manera se puede enunciar ?. 7. ¿En qué consiste el aprendizaje supervisado?. 8. ¿En qué consiste el aprendizaje no supervisado?. 9. ¿Quién propuso inicialmente la red de propagación hacia atrás y cuando?, ¿Quién posteriormente la continuó y cuando? Y ¿Quién posteriormente la desarrolló, la formalizó, la popularizó y cuando?. 10. Describa cómo está constituida la arquitectura de las redes SOFM. 67 Desarrollos Inteligentes Redes Neuronales RETROALIMENTACIÓN SOBRE LAS PREGUNTAS 1. McCulloch y Pitts parten de cinco consideraciones acerca del comportamiento de las neuronas: 1. La actividad neuronal es un proceso "todo o nada". 2. Un cierto número fijo de sinápsis debe ser excitado dentro de un período de adición latente en orden de excitar una neurona en cualquier intervalo de tiempo, y este número es independiente de la actividad previa y la posición de la neurona. 3. El único retardo significativo dentro del sistema es el retardo sináptico. 4. La actividad de cualquier sinápsis inhibitoria previene absolutamente la excitación de la neurona en ese intervalo de tiempo. 5. La estructura de la red no cambia con el tiempo. 2. Una red Neuronal artificial es un grafo dirigido, con las siguientes propiedades: 1) A cada nodo i se asocia una variable de estado Xi. 2) A cada conexión (i,j) de los nodos i,j se asocia un peso Wij є Ŕ. 3) A cada nodo i se asocia un umbral θi. 4) Para cada nodo i se define una función fi(Xj,Wij, θi) que depende de los pesos de sus conexiones, del umbral y de los estados de los nodos j a él conectados. Esta función proporciona el nuevo estado del nodo. 3. Considerando el flujo de datos en el sistema, se pueden tener redes unidireccionales (en la cuales el flujo es solamente en la dirección que va de las neuronas de entrada hacia las de salida, también llamadas “feedforward”), y redes recurrentes o realimentadas (la información puede fluir en cualquier 68 Desarrollos Inteligentes Redes Neuronales sentido, incluido el de la salida hacia la entrada por eso se denominan “feedback”). 4. Atendiendo a la operación de una RNA como a la de una memoria capaz de asociar un cierto patrón de entrada con algún patrón de salida, se puede hablar de una red autoasociativa (si el patrón de entrada es el mismo que el de salida), o una red heteroasociativa (si el patrón de entrada es diferente al de salida). 5. Un concepto importante lo constituye el de aprendizaje, la corriente conductista en Psicología establece que: “El aprender consiste en una modificación de la conducta, de tal manera que ante un estímulo A la respuesta ya no es X, sino Y” (Gutierrez Saenz Raúl, 1996, pp 22). Esta definición establecida no en el contexto de las redes neuronales, aplica de una manera casi completa a los procesos y técnicas de aprendizaje utilizadas en ellas. 6. Esta regla es un modelo clásico de aprendizaje, fue establecida por Donald Hebb en 1949, esta basado en una forma de aprendizaje en las neuronas biológicas, y que se puede enunciar de la siguiente manera: “Si un axón presináptico causa la activación de cierta neurona postsináptica, la eficacia de la sinapsis que las relaciona se refuerza”. 7. En el aprendizaje supervisado se presenta a la red un conjunto de patrones junto con la salida deseada, y en forma iterativa se van ajustando los pesos sinápticos hasta que la salida obtenida observe un error mínimo aceptable. 8. En este método la red no utiliza influencia externa para ajustar sus pesos, en lugar de ello se tiene un sistema de monitoreo interno de la ejecución del sistema, el cual observa tendencias en las señales de entrada y efectúa adaptaciones de acuerdo a la función de la red, para ello debe contar con alguna información de cómo debe organizarse ella misma. 69 Desarrollos Inteligentes Redes Neuronales 9. La red de propagación hacia atrás (BPN) fue inicialmente propuesta por Werbos en 1974, posteriormente por Parker en 1982 y finalmente ha sido desarrollada, formalizada y popularizada por David Rumelhart, Hinton y Williams en 1986. 10. La arquitectura de las redes SOFM está constituida por dos capas de neuronas, la primera capa que es la de entrada o sensorial esta formada por m neuronas, una por cada variable de entrada comportándose como “buffers” que distribuyen la señal proveniente del exterior hacia las neuronas de la segunda capa en forma unidireccional. La segunda capa está integrada por neuronas que conforman el mapa de rasgos y por tanto será la capa de salida, que es en donde se realizan los cálculos, sus neuronas se organizan en una estructura rectangular de nxn elementos, a cada una se le suelen asociar los índices i,j. Cada neurona de entrada (k = 1, m), está conectada a todas las neuronas del mapa de salida (i,j) mediante pesos sinápticos Wkij. 70 Desarrollos Inteligentes Redes Neuronales EJERCICIOS 1. Desarrolle los cálculos necesarios para entrenar un clasificador lineal que realice las operaciones lógicas AND y OR. 2.¿Qué problemas se presentan para que el clasificador lineal del ejercicio 1 realice la operación lógica XOR?¿Porqué?. 3. Diseñe una red BPN tal que pueda realizar todas las operaciones lógicas AND, OR, NOT y XOR. 71 Desarrollos Inteligentes Redes Neuronales REFERENCIAS WEB: Htpp://proton.ucting.udg.mx/somi/memorias/cibernetica/cib_20.pdf Fecha de acceso: 27/Nov/07 El modelo neuronal de McCulloch y Pitts. http://www.geocities.com/fuentesr_99/ia.pdf fecha: 27 / nov/07 tema: Redes neuronales http://es.wikipedia.org/neurona_de_McCulloch-Pitts fecha: 29/ Nov / 07 tema: modelo de Mcculloch y Pitts. http://www2.uca.es/dept/leng_sist_informaticos/preal/23041/transpas/HMapasdeKohonen/ppframe.htm fecha: 12 / Ene/08 tema: modelo de Kohonen http://www.dacs.dtic.mil/tech/neural/neural.title.html fecha: Oct/07 tema: Aplicaciones diversas 72 Desarrollos Inteligentes Redes Neuronales BIBLIOGRAFÍA. Gutierrez Saenz Raúl, (1996).- Introducción a las didáctica, Esfinge Hilera González José Ramón, Martínez Hernando Víctor José ,(1995).- Redes Neuronales Artificiales. Addison-Wesley Iberoamericana, E.U.A. McCord Nelson Marilyn, Illingworth W.T., (1991).- A practical guide to neural nets. Addison-Wesley, Massachusetts, U.S.A. Martin del brío Bonifacio, Sanz Molina Alfredo, (2007).- Redes neuronales y sistemas borrosos, Alfaomega Ra-ma, México D.F. Valluru B. Rao, Hayagriva V. Rao, (1995) .- C++ Neural Networks and Fuzzy Logic. MIS:PRESS, USA. 73