Inteligencia Artificial (IA). A pesar de disponer de herramientas y lenguajes de programación diseñados expresamente para el desarrollo de máquinas inteligentes, existe un enorme problema que limita los resultados que se pueden obtener: estas máquinas se implementan sobre computadoras basadas en la filosofía de Von Neumann, y que se apoyan en una descripción secuencial del proceso de tratamiento de la información. Si bien el desarrollo de estas computadoras es espectacular, no deja de seguir la línea antes expuesta: una máquina que es capaz de realizar tareas mecánicas de forma increíblemente rápida, como por ejemplo cálculo, ordenación o control, pero incapaz de obtener resultados aceptables cuando se trata de tareas como reconocimiento de formas, voz, etc.
La otra línea de la investigación ha tratado de aplicar principios físicos que rigen en la naturaleza para obtener máquinas que realicen trabajos pesados en nuestro lugar. De igual manera se puede pensar respecto a la forma y capacidad de razonamiento humano; se puede intentar obtener máquinas con esta capacidad basadas en el mismo principio de funcionamiento.
No se trata de construir máquinas que compitan con los seres humanos, sino que realicen ciertas tareas de rango intelectual con que ayudarle, principio básico de la Inteligencia Artificial.
Las primeras explicaciones teóricas sobre el cerebro y el pensamiento ya fueron dadas ya por Platón (427-347 a.C.) y Aristóteles (348-422 a.C.). Las mismas ideas también las mantuvo Descartes (1569-1650) y los filósofos empiristas del siglo XVIII. La clase de las llamadas máquinas cibernéticas, a la cual la computación neuronal pertenece, tiene más historia de la que se cree: Herón (100 a.C) construyó un autómata hidráulico.
1936 – Alan Turing. Fue el primero en estudiar el cerebro como una forma de ver el mundo de la computación. Sin embargo, los primeros teóricos que concibieron los fundamentos de la computación neuronal fueron Warren McCulloch, un neurofisiólogo, y Walter Pitts, un matemático, quienes, en 1943, lanzaron una teoría acerca de la forma de trabajar de las neuronas (Un Cálculo Lógico de la Inminente Idea de la Actividad Nerviosa – Boletín de Matemática Biofísica 5: 115-133). Ellos modelaron una red neuronal simple mediante circuitos eléctricos. 1949 – Donald Hebb. Escribió un importante libro: La organización del comportamiento, en el que se establece una conexión entre psicología y fisiología. Fue el primero en explicar los procesos del aprendizaje (que es el elemento básico de la inteligencia humana) desde un punto de vista psicológico, desarrollando una regla de como el aprendizaje ocurría. Aun hoy, este es el fundamento de la mayoría de las funciones de aprendizaje que pueden hallarse en una red neuronal. Su idea fue que el aprendizaje ocurría cuando ciertos cambios en una neurona eran activados. También intentó encontrar semejanzas entre el aprendizaje y la actividad nerviosa. Los trabajos de Hebb formaron las bases de la Teoría de las Redes Neuronales.
1950 – Karl Lashley. En sus series de ensayos, encontró que la información no era almacenada en forma centralizada en el cerebro sino que era distribuida encima de él.
1956 – Congreso de Dartmouth. Este Congreso frecuentemente se menciona para indicar el nacimiento de la inteligencia artificial. 1957 – Frank Rosenblatt. Comenzó el desarrollo del Perceptrón. Esta es la red neuronal más antigua; utilizándose hoy en día para aplicación como reconocedor de patrones. Este modelo era capaz de generalizar, es decir, después de haber aprendido una serie de patrones podía reconocer otros similares, aunque no se le hubiesen presentado anteriormente. Sin embargo, tenía una serie de limitaciones, por ejemplo, su incapacidad para resolver el problema de la función OR-exclusiva y, en general, era incapaz de clasificar clases no separables linealmente. En 1959, escribió el libro Principios de Neurodinámica, en el que confirmó que, bajo ciertas condiciones, el aprendizaje del Perceptrón convergía hacia un estado finito (Teorema de Convergencia del Perceptrón).
1960 – Bernard Widrow/Marcial Hoff. Desarrollaron el modelo Adaline (ADAptative LINear Elements). Esta fue la primera red neuronal aplicada a un problema real (filtros adaptativos para eliminar ecos en las líneas telefónicas) que se ha utilizado comercialmente durante varias décadas. 1961 – Karl Steinbeck: Die Lernmatrix. Red neuronal para simples realizaciones técnicas (memoria asociativa). 1967 – Stephen Grossberg. A partir de sus conocimientos fisiológicos, ha escrito numerosos libros y desarrollado modelo de redes neuronales. Realizó una red: Avalancha, que consistía en elementos discretos con actividad que varía en el tiempo que satisface ecuaciones diferenciales continuas, para resolver actividades como reconocimiento continuo de habla y aprendizaje de los brazos de un robot.
1969 – Marvin Minsky/Seymour Papert. En este año surgieron críticas que frenaron, hasta 1982, el crecimiento que estaban experimentando las investigaciones sobre redes neuronales. Minsky y Papera, del Instituto Tecnológico de Massachussets (MIT), publicaron un libro Perceptrons. Probaron (matemáticamente) que el Perceptrón no era capaz de resolver problemas relativamente fáciles, tales como el aprendizaje de una función no-lineal. Esto demostró que el Perceptrón era muy débil, dado que las funciones no-lineales son extensamente empleadas en computación y en los problemas del mundo real. A pesar del libro, algunos investigadores continuaron su trabajo. Tal fue el caso de James Anderson, que desarrolló un modelo lineal, llamado Asociador Lineal, que consistía en unos elementos integradores lineales (neuronas) que sumaban sus entradas. Este modelo se basa en el principio de que las conexiones entre neuronas son reforzadas cada vez que son activadas. Anderson diseñó una potente extensión del Asociador Lineal, llamada Brain State in a Box (BSB). 1974 – Paul Werbos. Desarrolló la idea básica del algoritmo de aprendizaje de propagación hacia atrás (backpropagation); cuyo significado quedó definitivamente aclarado en 1985. 1977 – Stephen Grossberg. Teoría de Resonancia Adaptada (TRA). La Teoría de Resonancia Adaptada es una arquitectura de red que se diferencia de todas las demás previamente inventadas. La misma simula otras habilidades del cerebro: memoria a largo y corto plazo. 1977 – Teuvo Kohonen. Ingeniero electrónico de la Universidad de Helsinki, desarrolló un modelo similar al de Anderson, pero independientemente.
1980 – Kunihiko Fukushima. Desarrolló un modelo neuronal para el reconocimiento de patrones visuales..
1985 – John Hopfield. Provocó el renacimiento de las redes neuronales con su libro: "Computación neuronal de decisiones en problemas de optimización." 1986 – David Rumelhart/G. Hinton. Redescubrieron el algoritmo de aprendizaje de propagación hacia atrás (backpropagation). A partir de 1986, el panorama fue alentador con respecto a las investigaciones y el desarrollo de las redes neuronales. En la actualidad, son numerosos los trabajos que se realizan y publican cada año, las aplicaciones nuevas que surgen (sobretodo en el área de control) y las empresas que lanzan al mercado productos nuevos, tanto hardware como software (sobre todo para simulación).
Actualmente, son numerosos los trabajos que se realizan y se publican, las aplicaciones nuevas que surgen y las empresas que lanzan al mercado productos nuevos, tanto hardware como software, sobre todo para simulación.
Definiciones de una red neuronal Existen numerosas formas de definir a las redes neuronales; desde las definiciones cortas y genéricas hasta las que intentan explicar más detalladamente qué son las redes neuronales. Por ejemplo:
1) Una nueva forma de computación, inspirada en modelos biológicos.
2) Un modelo matemático compuesto por un gran número de elementos procesales organizados en niveles. 3) …un sistema de computación compuesto por un gran número de elementos simples, elementos de procesos muy interconectados, los cuales procesan información por medio de su estado dinámico como respuesta a entradas externas. 4) Redes neuronales artificiales son redes interconectadas masivamente en paralelo de elementos simples (usualmente adaptativos) y con organización jerárquica, las cuales intentan interactuar con los objetos del mundo real del mismo modo que lo hace el sistema nervioso biológico.
Ventajas que ofrecen las redes neuronales
Debido a su constitución y a sus fundamentos, las redes neuronales artificiales presentan un gran número de características semejantes a las del cerebro. Por ejemplo, son capaces de aprender de la experiencia, de generalizar de casos anteriores a nuevos casos, de abstraer características esenciales a partir de entradas que representan información irrelevante, etc. Esto hace que ofrezcan numerosas ventajas y que este tipo de tecnología se esté aplicando en múltiples áreas. Entre las ventajas se incluyen:
Aprendizaje Adaptativo: capacidad de aprender a realizar tareas basadas en un entrenamiento o en una experiencia inicial.
Auto-organización: una red neuronal puede crear su propia organización o representación de la información que recibe mediante una etapa de aprendizaje.
Tolerancia a fallos: la destrucción parcial de una red conduce a una degradación de su estructura; sin embargo, algunas capacidades de la red se pueden retener, incluso sufriendo un gran daño.
Operación en tiempo real: los cómputos neuronales pueden ser realizados en paralelo; para esto se diseñan y fabrican máquinas con hardware especial para obtener esta capacidad.
Fácil inserción dentro de la tecnología existente: se pueden obtener chips especializados para redes neuronales que mejoran su capacidad en ciertas tareas. Ello facilitará la integración modular en los sistemas existentes.
La capacidad de aprendizaje adaptativo es una de las características más atractivas de redes neuronales. Esto es, aprenden a llevar a cabo ciertas tareas mediante un entrenamiento con ejemplos ilustrativos. Como las redes neuronales pueden aprender a diferenciar patrones mediante ejemplos y entrenamientos, no es necesario elaborar modelos a priori ni necesidad de especificar funciones de distribución de probabilidad. Las redes neuronales son sistemas dinámicos autoadaptativos. Son adaptables debido a la capacidad de autoajuste de los elementos procesales (neuronas) que componen el sistema. Son dinámicos, pues son capaces de estar constantemente cambiando para adaptarse a las nuevas condiciones.
En el proceso de aprendizaje, los enlaces ponderados de las neuronas se ajustan de manera que se obtengan ciertos resultados específicos. Una red neuronal no necesita un algoritmo para resolver un problema, ya que ella puede generar su propia distribución de pesos en los enlaces mediante el aprendizaje. También existen redes que continúan aprendiendo a lo largo de su vida, después de completado su período de entrenamiento.
La función del diseñador es únicamente la obtención de la arquitectura apropiada. No es problema del diseñador el cómo la red aprenderá a discriminar. Sin embargo, sí es necesario que desarrolle un buen algoritmo de aprendizaje que le proporcione a la red la capacidad de discriminar, mediante un entrenamiento con patrones.
Auto-organización Las redes neuronales emplean su capacidad de aprendizaje adaptativo para autoorganizar la información que reciben durante el aprendizaje y/o la operación. Mientras que el aprendizaje es la modificación de cada elemento procesal, la autoorganización consiste en la modificación de la red neuronal completa para llevar a cabo un objetivo específico.
Cuando las redes neuronales se usan para reconocer ciertas clases de patrones, ellas autoorganizan la información usada. Por ejemplo, la red llamada backpropagation, creará su propia representación característica, mediante la cual puede reconocer ciertos patrones.
Esta autoorganización provoca la generalización: facultad de las redes neuronales de responder apropiadamente cuando se les presentan datos o situaciones a las que no había sido expuesta anteriormente. El sistema puede generalizar la entrada para obtener una respuesta. Esta característica es muy importante cuando se tiene que solucionar problemas en los cuales la información de entrada no es muy clara; además permite que el sistema dé una solución, incluso cuando la información de entrada está especificada de forma incompleta.
Tolerancia a fallos Las redes neuronales fueron los primeros métodos computacionales con la capacidad inherente de tolerancia a fallos. Comparados con los sistemas computacionales tradicionales, los cuales pierden su funcionalidad cuando sufren un pequeño error de memoria, en las redes neuronales, si se produce un fallo en un número no muy grande de neuronas y aunque el comportamiento del sistema se ve influenciado, no sufre una caída repentina. Hay dos aspectos distintos respecto a la tolerancia a fallos:
a) Las redes pueden aprender a reconocer patrones con ruido, distorsionados o incompletos. Esta es una tolerancia a fallos respecto a los datos.
b) Las redes pueden seguir realizando su función (con cierta degradación) aunque se destruya parte de la red.
La razón por la que las redes neuronales son tolerantes a los fallos es que tienen su información distribuida en las conexiones entre neuronas, existiendo cierto grado de redundancia en este tipo de almacenamiento. La mayoría de los ordenadores algorítmicos y sistemas de recuperación de datos almacenan cada pieza de información en un espacio único, localizado y direccionable. En cambio, las redes neuronales almacenan información no localizada. Por lo tanto, la mayoría de las interconexiones entre los nodos de la red tendrán sus valores en función de los estímulos recibidos, y se generará un patrón de salida que represente la información almacenada.
Operación en tiempo real Una de las mayores prioridades, casi en la totalidad de las áreas de aplicación, es la necesidad de realizar procesos con datos de forma muy rápida. Las redes neuronales se adaptan bien a esto debido a su implementación paralela. Para que la mayoría de las redes puedan operar en un entorno de tiempo real, la necesidad de cambio en los pesos de las conexiones o entrenamiento es mínimo.
Fácil inserción dentro de la tecnología existente Una red individual puede ser entrenada para desarrollar una única y bien definida tarea (tareas complejas, que hagan múltiples selecciones de patrones, requerirán sistemas de redes interconectadas). Con las herramientas computacionales existentes (no del tipo PC), una red puede ser rápidamente entrenada, comprobada, verificada y trasladada a una implementación hardware de bajo coste. Por lo tanto, no se presentan dificultades para la inserción de redes neuronales en aplicaciones específicas, por ejemplo de control, dentro de los sistemas existentes. De esta manera, las redes neuronales se pueden utilizar para mejorar sistemas en forma incremental y cada paso puede ser evaluado antes de acometer un desarrollo más amplio.
Redes neuronales y computadoras digitales. Para entender el potencial de la computación neuronal, sería necesario hacer una breve distinción entre sistemas de computación neuronales y digitales: los sistemas neurológicos no aplican principios de circuitos lógicos o digitales. Un sistema de computación digital debe ser síncrono o asíncrono. Si fuera asíncrono, la duración de los impulsos neuronales debería ser variable para mantener uno de los valores binarios por periodos de tiempo indefinido, lo cual no es el caso. Si el principio fuera síncrono, se necesitaría un reloj global o maestro con el cual los pulsos estén sincronizados. Éste tampoco es el caso. Las neuronas no pueden ser circuitos de umbral lógico, porque hay miles de entradas variables en la mayoría de las neuronas y el umbral es variable con el tiempo, siendo afectado por la estimulación, atenuación, etc. La precisión y estabilidad de tales circuitos no es suficiente para definir ninguna función booleana. Los procesos colectivos que son importantes en computación neuronal no pueden implementarse por computación digital. Por todo ello, el cerebro debe ser un computador analógico.
Ni las neuronas ni las sinapsis son elementos de memoria biestable. Todos los hechos fisiológicos hablan a favor de las acciones de las neuronas como integradores analógicos, y la eficiencia de la sinapsis cambia de forma gradual, lo cual no es característico de sistemas biestables. Los circuitos del cerebro no implementan computación recursiva y por lo tanto no son algorítmicos. Debido a los problemas de estabilidad, los circuitos neuronales no son suficientemente estables para definiciones recursivas de funciones como en computación digital. Un algoritmo, por definición, define una función recursiva.
Fundamentos de las Redes Neuronales El modelo Biológico Se estima que el cerebro humano contiene más de cien mil millones de neuronas estudios sobre la anatomía del cerebro humano concluyen que hay más de 1000 sinápsis a la entrada y a la salida de cada neurona. Es importante notar que aunque el tiempo de conmutación de la neurona ( unos pocos milisegundos) es casi un millón de veces menor que en los actuales elementos de las computadoras, ellas tienen una conectividad miles de veces superior que las actuales supercomputadoras. Las neuronas y las conexiones entre ellas (sinápsis) constituyen la clave para el procesado de la información.
Algunos elementos ha destacar de su estructura histológica son:
Las dendritas, que son la vía de entrada de las señales que se combinan en el cuerpo de la neurona. De alguna manera la neurona elabora una señal de salida a partir de ellas. El axón, que es el camino de salida de la señal generada por la neurona. Las sinapsis, que son las unidades funcionales y estructurales elementales que median entre las interacciones de las neuronas. En las terminaciones de las sinapsis se encuentran unas vesículas que contienen unas sustancias químicas llamadas neurotransmisores, que ayudan a la propagación de las señales electroquímicas de una neurona a otra.
Lo que básicamente ocurre en una neurona biológica es lo siguiente: la neurona es estimulada o excitada a través de sus entradas (inputs) y cuando se alcanza un cierto umbral, la neurona se dispara o activa, pasando una señal hacia el axón.
Posteriores investigaciones condujeron al descubrimiento de que estos procesos son el resultado de eventos electroquímicos. Como ya se sabe, el pensamiento tiene lugar en el cerebro, que consta de billones de neuronas interconectadas. Así, el secreto de la "inteligencia" -sin importar como se defina- se sitúa dentro de estas neuronas interconectadas y de su interacción. La forma que dos neuronas interactúan no está totalmente conocida, dependiendo además de cada neurona. En general, una neurona envía su salida a otras por su axón. El axón lleva la información por medio de diferencias de potencial, u ondas de corriente, que depende del potencial de la neurona. Este proceso es a menudo modelado como una regla de propagación representada por la función de red u(.). La neurona recoge las señales por su sinápsis sumando todas las influencias excitadoras e inhibidoras. Si las influencias excitadoras positivas dominan, entonces la neurona da una señal positiva y manda este mensaje a otras neuronas por sus sinápsis de salida. En este sentido la neurona puede ser modelada como una simple función escalón f(.). Como se muestra en la próxima figura, la neurona se activa si la fuerza combinada de la señal de entrada es superior a un cierto nivel, en el caso general el valor de activación de la neurona viene dado por una función de activación f(.).
Otras definiciones de redes neuronales
Una red neuronal es un procesador masivamente paralelo distribuido que es propenso por naturaleza a almacenar conocimiento experimental y hacerlo disponible para su uso. Este mecanismo se parece al cerebro en dos aspectos [SH1]: El conocimiento es adquirido por la red a través de un proceso que se denomina aprendizaje.
El conocimiento se almacena mediante la modificación de la fuerza o peso sináptico de las distintas uniones entre neuronas.
Una red neuronal es un modelo computacional con un conjunto de propiedades específicas, como son la habilidad de adaptarse o aprender, generalizar u organizar la información, todo ello basado en un procesamiento eminentemente paralelo. [BJAK] [PPVS]
Elementos de una red neuronal artificial
Las redes neuronales son modelos que intentan reproducir el comportamiento del cerebro. Los mismos constan de dispositivos elementales de proceso: las neuronas. A partir de ellas, se pueden generar representaciones específicas, de tal forma que un estado conjunto de ellas puede significar una letra, un número u otro objeto. Generalmente se pueden encontrar tres tipos de neuronas:
Aquellas que reciben estímulos externos relacionados con el aparato sensorial, que tomarán la información de entrada.
Dicha información se transmite a ciertos elementos internos que se ocupan de su procesamiento.
Es en las sinapsis y neuronas correspondientes a este segundo nivel donde se genera cualquier tipo de representación interna de información. Como no tienen relación directa con la información de entrada ni con la salida, estos elementos se denominan unidades ocultas. Una vez finalizado el período de procesado, la información llega a las unidades de salida, cuya misión es dar la respuesta al sistema.
A continuación se puede ver en la siguiente figura, un esquema de una red neuronal:
La misma está constituida por neuronas interconectadas y arregladas en tres capas (esto último puede variar). Los datos ingresan por medio de la "capa de entrada", pasan a través de la "capa oculta" y salen por la "capa de salida". Cabe mencionar que la capa oculta puede estar constituida por varias capas.
En la siguiente figura se compara una neurona biológica con una neurona artificial. En la misma se pueden observar las similitudes entre ambas (tienen entradas, utilizan pesos y generan salidas).
La neurona artificial pretende mimetizar las características más importantes de las neuronas biológicas. Cada neurona i-ésima está caracterizada en cualquier instante por un valor numérico denominado valor o estado de activación asociado a cada unidad, existe una función de salida, que transforma el estado actual de activación en una señal de salida. Dicha señal es enviada a través de los canales de comunicación unidireccionales a otras unidades de la red; estos canales la señal se modifica de acuerdo con la sinápsis (el peso,) asociada a cada uno de ellos según determinada regla. Las señales moduladas que han llegado a la unidad j-ésima se combinan entre ellas, generando así la entrada total
Una función de activación, F, determina el nuevo estado de activación
de la neurona, teniendo en cuenta la entrada total calculada y el anterior estado de activación
La dinámica que rige la actualización de los estados de las unidades puede ser de dos tipos: asíncrono y modo síncrono. En el primer caso, las neuronas evalúan su estado continuamente según les va llegando información, y lo hacen de forma independiente, En el segundo caso, la información llega de forma continua, pero los cambios se realizan simultáneamente, como si existiera un reloj interno que decidiera cuando cambiar su estado. Los sistemas biológicos quedan probablemente entre ambas posibilidades.
Unidades de proceso:
La neurona artificial Si se tienen N unidades (neuronas), podemos ordenarlas arbitrariamente y designar la j-ésima unidad como Su trabajo es simple y único, y consiste en recibir las entradas de las células vecinas y calcular un valor de salida, el cual es enviado a todas las células restantes.
En cualquier sistema que se esté modelando, es útil caracterizar tres tipos de unidades: entradas, salidas y ocultas. Las unidades de entrada reciben señales del entorno, éstas pueden ser provenientes de censores o de otros sectores del sistema. Las unidades de salida envían la señal fuera del sistema; éstas pueden controlar directamente potencias u otros sistemas. Las unidades ocultas son aquellas cuyas entradas y salidas se encuentran dentro del sistema; es decir no tienen contacto con el exterior.
Se conoce como nivel o capa a un conjunto de neuronas cuyas entradas provienen de la misma fuente, y cuyas salidas se dirigen a un mismo destino.
Estado de Activación Junto al conjunto de unidades, la representación necesita los estados del sistema en un tiempo t. Esto se especifica en un vector de N números reales A(t), que representa el estado de activación del conjunto de unidades de procesamiento. Cada elemento del vector representa la activación de una unidad en el tiempo t. La activación de una unidad Ui en el tiempo t se designa por es decir:
El procesamiento que realiza la red se ve como la evolución de un patrón de activación en el conjunto de unidades que lo componen a través del tiempo.
Todas las neuronas que componen la red se hallan en cierto estado. Podemos decir que hay dos posibles estados, reposo y excitado, a los que denominaremos estados de activación y a cada uno de los cuales se le asigna un valor. Los valores de activación pueden ser continuos o discretos. Además pueden ser limitados o ilimitados. Si son discretos, suelen tomar un conjunto pequeño de valores o bien valores binarios. En notación binaria, un estado activo se indicaría por un 1, y se caracteriza por la emisión de un impulso por parte de la neurona (potencial de acción), mientras que un estado pasivo se indicaría por un 0. En otros modelos se considera un conjunto continuo de estados de activación, en cuyo caso se asigna un valor entre [0,1] o en el intervalo [-1,1], generalmente siguiendo una función sigmoidal.
Los criterios o reglas que siguen las neuronas para alcanzar tales estados dependen de dos factores:
Dado que las propiedades macroscópicas de las redes neuronales no son producto de actuación de elementos individuales, es necesario tener idea del mecanismo de interacción entre las neuronas. El estado de activación estará fuertemente influenciado por tales interacciones ya que el efecto que producirá una neurona sobre otra será proporcional a la fuerza, peso de la conexión entre ambas.
La señal que envía cada una de las neuronas a sus vecinas dependerá de su propio estado de activación.
Función de salida o transferencia
Asociada a cada unidad Ui (neurona) hay una función de salida que transforma el estado actual de activación en una señal de salida: En algunos modelos, esta salida es igual al nivel de activación de la unidad, en cuyo caso la función es la función identidad, A menudo, es de tipo sigmoidal, y suele ser la misma para todas las unidades.
Existen cuatro funciones de transferencia típicas que determinan distintos tipos de neuronas:
Función escalón
Función lineal y mixta
Sigmoidal
Función gaussiana
La función escalón únicamente se utiliza cuando las salidas de la red son binarias. La salida de una neurona se activa sólo cuando el estado de activación es mayor o igual a cierto valor umbral. La función lineal o identidad equivale a no aplicar función de salida. Las funciones mixta y sigmoidal son las más apropiadas cuando queremos como salida información analógica.
Neurona de función escalón La función escalón se asocia a neuronas binarias en las cuales cuando la suma de las entradas es mayor o igual que el umbral de la neurona, la activación es 1, si es menor, la activación es 0 (ó –1). Las redes formadas por este tipo de neuronas son fáciles de implementar en hardware, pero sus capacidades están limitadas.
Neurona de función lineal o mixta La función lineal o mixta corresponde a la función F(x) =x. En las neuronas con función mixta si la suma de las señales de entrada es menor que un límite inferior, la activación se define como 0 (ó –1). Si dicha suma es mayor o igual que el límite superior, entonces la activación es 1. Si la suma de entrada está comprendida entre ambos límites, la activación se define como una función lineal de suma de las señales de entrada. Neurona de función continua (sigmoidal) Cualquier función definida simplemente en un intervalo de posibles valores de entrada, con un incremento monotónico y que tengan ambos limites superiores e inferiores (por ejemplo las funciones sigmoidal y arco tangente), podrá realizar la función de activación o transferencia de forma satisfactoria. Con la función sigmoidal, para la mayoría de los valores del estímulo de entrada, el valor dado por la función es cercano a uno de los valores asintóticos. Esto hace posible que en la mayoría de los casos, el valor de salida esté comprendido en la zona alta o baja del sigmoide. De hecho cuando la pendiente es elevada, esta función tiende a la función escalón. La importancia de ésta función es que su derivada es siempre positiva y cercana a cero para los valores grandes positivos o negativos; además toma su valor máximo cuando x es cero. Esto hace que se puedan utilizar las reglas de aprendizaje definidas para la función escalón, con la ventaja respecto a esta función, que la derivada está definida para todo el intervalo. La función escalón no podía definir la derivada en ele punto de transición y esto no ayuda a los métodos de aprendizaje en los cuales se usan derivadas.
Función de transferencia gaussiana Los centros y anchura de estas funciones pueden ser adaptados, lo cual las hace más adaptativas que las funciones sigmoidales.
Conexiones entre neuronas Las conexiones que unen las neuronas que forman una RNA tienen asociado un peso que es el que hace que la red adquiera conocimiento. Consideremos como el valor de salida de una neurona i en un instante dado. Una neurona recibe un conjunto de señales que le dan información del estado de activación de todas las neuronas con las que se encuentra conectada. Cada conexión (sinápsis) entre la neurona i y la j está ponderada por un peso Normalmente, como simplificación, se considera que el efecto de cada señal es aditivo, de tal forma que la entrada neta que recibe una neurona es la suma de cada señal individual por el valor de la sinapsis que conecta ambas neuronas:
Esta regla muestra el procedimiento a seguir para combinar los valores de entrada a una unidad con los pesos de las conexiones que llegan a esa unidad y es conocida como regla de propagación.
Función o regla de activación Así como es necesario una regla que combine las entradas de una neurona con los pesos de las conexiones, también se requiere una regla que combine las entradas con el estado actual de la neurona para producir un nuevo estado de activación. Esta función F produce un nuevo estado de activación en una neurona a partir del estado que existía y la combinación de las entradas con los pesos de las conexiones ().
Dado el estado de activación de la unidad Ui y la entrada total que llega,, el estado de activación siguiente, se obtiene aplicando una función F, llamada función de activación.
En la mayoría de los casos la función F es la función identidad, por lo que el estado de activación de la neurona en t+1 coincidirá con el Net de la misma t. En este caso, el parámetro que se le pasa a la función de salida de la neurona será directamente el Net. Es estado de activación anterior no se tiene en cuenta. Según esto, la salida de una neurona quedará según la expresión:
Por tanto, y en lo sucesivo, consideraremos únicamente la funciónque denominaremos de transferencia o de activación. Además, la misma no está centrada en el origen del eje que representa el valor de entrada neta sino que existe cierto desplazamiento debido a las características internas de la neurona y que no es igual en todas ellas. Este valor se denota como y representa el umbral de activación de la neurona i.
La salida se obtiene en una neurona para las diferentes forma de la función serán:
Función de activación escalón Si el conjunto de los estados de activación es E ={0,1}, tenemos que:
Si el conjunto es E = {-1,1}, tendremos que:
Función de activación lineal o identidad El conjunto de estados E puede contener cualquier número real; el estado de activación coincide con la entrada total que ha llegado a la unidad.
Función de activación lineal-mixta
Con esta función, el estado de activación de la unidad está obligado a permanecer dentro de un intervalo de valores reales prefijados.
Función de activación sigmoidal Es una función continua, por tanto el espacio de los estados de activación es un intervalo del eje real.
Para simplificar la expresión de la salida de una neurona i, es habitual considerar la existencia de una neurona ficticia, con valor de salida unidad, asociada a la entrada de cada neurona i mediante una conexión con peso de valor
De esta forma la expresión de salida quedará:
Regla de aprendizaje Existen muchas definiciones del concepto aprendizaje, una de ellas podría ser: La modificación del comportamiento inducido por la interacción con el entorno y como resultado de experiencias conducente al establecimiento de nuevos modelos de respuesta a estímulos externos. Biológicamente, se suele aceptar que la información memorizada en el cerebro está mas relacionada con los valores sinápticos de las conexiones entre las neuronas que con ellas mismas. En el caso de las RNA, se puede considerar que el conocimiento se encuentra representado en los pesos de las conexiones entre neuronas. Todo proceso de aprendizaje implica cierto número de cambios en estas conexiones. Puede decirse que se aprende modificando los valores de los pesos de la red. Estructura de una Red Neuronal Artificial Niveles o capas de neuronas La distribución de neuronas dentro de la red se realiza formando niveles o capas de un número determinado cada una. Se pueden distinguir tres tipos de capas:
De Entrada: es la capa que recibe directamente la información proveniente de las fuentes externas de la red.
Ocultas: son internas a la red, no tiene contacto directo con el exterior. El número de niveles ocultos puede ser de cero a un número elevado. Las neuronas de las capas ocultas pueden estar interconectadas de distintas maneras, lo que determina junto a su número, las distintas topologías.
De Salida: transfieren información de la red hacia el exterior.
Se dice que una red es totalmente conectada si todas las salidas desde un nivel llegan a todos y cada uno de los nodos del mismo nivel siguiente.
Formas de Conexión entre neuronas La conectividad entre los nodos de una red neuronal está relacionada con la forma en que las salidas de las neuronas están canalizadas para convertirse en entradas de otras neuronas. La señal de salida de un nodo puede ser una entrada de otro elemento de proceso, o incluso de sí mismo (conexión auto-recurrente).
Cuando ninguna salida de las neuronas es entrada de neuronas del mismo nivel o de niveles precedentes, la red se describe como propagación hacia delante. Cuando las salidas pueden estar conectadas como entradas de neuronas de niveles previos o del mismo nivel, incluyéndose ellas mismas, la red es de propagación hacia atrás. Las redes de propagación hacia atrás que tiene lazos cerrados son sistemas recurrentes.
En la siguiente figura se muestran ejemplos de conexiones.
a) Conexiones hacia delante.
b) Conexiones laterales.
c) Conexiones hacia atrás (o recurrentes).
Características de las redes neuronales
Existen cuatro elementos que caracterizan una red neuronal: su topología, el mecanismo de aprendizaje, tipo de asociación realizada ente la información de entrada y salida y la forma de representación de estas informaciones.
Topología de las redes neuronales
Consiste en la organización de las neuronas en la red formando capas o agrupaciones de neuronas más o menos alejadas de la entrada y salida de la red. Los parámetros fundamentales de la red son: el número de capas, el número de neuronas por capa, el grado de conectividad y el tipo de conexiones ente neuronas.
En términos topológicos podemos clasificar las redes entre: redes de una sola capa y las redes con múltiples capas.
Redes monocapa En las redes monocapa, como la red HOPFIELD y la red BRAIN-STATE-IN-A-BOX, se establecen conexiones laterales entre las neuronas que pertenecen a la única capa de la red. Además pueden existir conexiones auto recurrente.
Las redes monocapa se utilizan típicamente en tareas relacionadas con lo que se conoce como auto asociación, por ejemplo para regenerar informaciones de entrada que se presentan distorsionadas o incompletas.
A continuación se muestran modelos de redes monocapa más conocidos.
TIPOS DE CONEXIONES | MODELO DE RED | ||
CONEXIONES | BRAIN STATE IN A BOX | ||
CONEXIONES | AUTO-RECURRENTES | ADDITIVE GROSSBERG (AG) | |
LATERALES | SHUNTING GROSSBERG (SG) | ||
EXPLICITAS | OPTIMAL LINEAR ASOCIATIVE MEMORY | ||
NO AUTO-RECURRENTES | HOPFIELD | ||
BOLTZMAN MACHINE | |||
CAUCHY MACHINE | |||
CROSSBAR | LEARNING MATRIX (LM) |
Redes Multicapa Son aquellas que disponen las neuronas agrupadas en varias capas. Una las forma para distinguir la capa a la que pertenece una neurona, consistiría en fijarse en el origen de las señales que recibe a la entrada y el destino de la señal de salida. Normalmente, todas las neuronas de una capa reciben señales de entrada de otra capa anterior, más cercana a la entrada de la red, y envían su señal de salida a una capa posterior, más cercana a la salida de la red. A estas conexiones se les denominan conexiones hacia delante o feedforward.
Sin embargo en un gran número de estas redes también existe la posibilidad de conectar las salidas de las neuronas de capas posteriores a las entradas de capas anteriores, a estas conexiones se les denomina conexiones hacia atrás o feedback.
Estas dos posibilidades permiten distinguir entre dos tipos de redes: las redes con conexiones hacia adelantes (redes feedforward), y las redes que disponen de conexiones tanto hacia delante como hacia atrás (redes feedforward/feedback).
Redes con conexiones hacia delante (feedforward)
Las señales través de se propagan hacia adelante a través de las capas de la red. No existen conexiones hacia atrás, y normalmente tampoco auto recurrentes, ni laterales, excepto los modelos de red propuestos por Kohonen.
Las redes feedforward más conocidas son: PERCEPTRON, ADALINE, MADALINE, LINEAR ADAPTATIVE MEMORY, DRIVE-REINFORCEMENT, BACKPROPAGATION. Todas ellas son útiles en aplicaciones de reconocimiento o clasificación de patrones.
Redes con conexiones hacia adelante y hacia atrás (feedforward/feedback)
En éste tipo de redes circula información tanto hacia delante como hacia atrás durante el funcionamiento de la red. Para que eso sea posible existen conexiones feedforward y feedback entre las neuronas.
En general, suelen ser bicapas, existiendo por lo tanto dos conjuntos de pesos: los correspondientes a las conexiones feedforward de la primera capa ( capa de entrada) hacia la segunda (capa de salida) y los de las conexiones feedback de la segunda a la primera. Los valores de los pesos de estos tipos de conexiones no tienen porqué coincidir, siendo diferentes en la mayor parte de los casos.
Este tipo de estructura (bicapa) es particularmente adecuada para realizar una asociación de una información o patrón de entrada (en la primer capa) con otra información o patrón de salida en la segunda capa (lo cual se conoce como heteroasociación), aunque también pueden ser utilizadas para la clasificación de patrones.
Algunas redes tienen un funcionamiento basado en lo que se denomina resonancia, de tal forma que las informaciones en la primera y segundas capas interactúen entre sí hasta que alcanzan un estado estable. Esto permite un mejor acceso a las informaciones almacenadas en la red.
Los dos modelos de red de dos capas más conocidos son la red ART(Adaptative Resonante Theory) y la red BAM (Bidirectional Associative Memory).
También en este grupo de redes existen algunas conexiones laterales entre neuronas de la misma capa. Estas conexiones se diseñan como conexiones excitadotas (con peso positivo) o inhibidoras (con peso negativo), estableciéndose una competición entre las neuronas correspondientes. Mecanismo de Aprendizaje Es el proceso por el cual una red neuronal modifica sus pesos en respuesta a una información de entrada. Los cambios que se producen durante el proceso de aprendizaje se reducen a destrucción, modificación y creación de conexiones entre las neuronas. La creación de una nueva conexión implica que el peso de la misma pasa a tener un valor distinto de cero; una conexión se destruye cuando su peso pasa a ser cero. El proceso de aprendizaje ha terminado (la red ha aprendido) cuando los valores de los pesos permanecen estables ().
Un aspecto importante respecto al aprendizaje es conocer cómo se modifican los valores de los pesos; cuáles son los criterios para cambiar el valor asignado a las conexiones cuando se pretende que la red aprenda una nueva información.
Estos criterios determinan la regla de aprendizaje. Se suelen considerar dos tipos de reglas, las que responden a lo que se conoce como aprendizaje supervisado y aprendizaje no supervisado. Una de las clasificaciones de redes neuronales obedece al tipo de aprendizaje utilizado. Así se pueden distinguir:
Neuronas con aprendizaje supervisado
Neuronas con aprendizaje no supervisado
La diferencia fundamental entre ambos tipos es la existencia o no de un agente externo (supervisor) que controle el proceso de aprendizaje.
Otro criterio para diferenciar las reglas de aprendizaje se basan en considerar si la red puede aprender durante su funcionamiento habitual (aprendizaje ON LINE) ,o si el aprendizaje supone una desconexión de la red; es decir su inhabilitación hasta que el proceso termine (aprendizaje OFF LINE).
Cuando el aprendizaje es OFF LINE se distingue entre una fase de aprendizaje o entrenamiento y una fase de operación o funcionamiento, existiendo un conjunto de datos de entrenamiento y un conjunto de datos de prueba que serán utilizados en la correspondiente fase. En las redes con aprendizaje OFF LINE, los pesos de las conexiones permanecen fijos después que termina el entrenamiento. Debido a su carácter estático, éstos sistemas no presentan problemas de estabilidad en su funcionamiento.
En las redes con aprendizaje ON LINE no se distingue entre fase entrenamiento y operación. Los pesos varían siempre que se presenta una nueva información al sistema. Debido a su carácter dinámico, el estudio de la estabilidad es un aspecto fundamental de estudio.
Redes con aprendizaje supervisado El proceso de aprendizaje se realiza mediante un entrenamiento controlado por un agente externo (supervisor o maestro) que determina la respuesta que debería generar la red a partir de una entrada determinada. El supervisor comprueba la salida de la red y en caso de que ésta no coincida con la deseada, se procederá a modificar los pesos de las conexiones, con el fin de que la salida obtenida se aproxime a la deseada.
Se suelen considerar tres formas de llevar a cabo el aprendizaje:
Aprendizaje por corrección de error
Aprendizaje por refuerzo
Aprendizaje estocástico.
Aprendizaje por corrección de error Consiste en ajustar los pesos de las conexiones de la red en función de la diferencia entre los valores deseado y los obtenidos en la salida de la red; es decir, en función del error cometido en la salida.
Una regla o algoritmo simple podría ser el siguiente:
Siendo:
Variación del peso de la conexión ente las neuronas i y j ().
Valor de la salida de la neurona i.
Valor de salida deseado para la neurona j.
Valor de salida obtenido para la neurona j.
Factor de aprendizaje (0 < 1) que regula la velocidad del aprendizaje.
Un algoritmo muy conocido que permite un aprendizaje rápido es propuesto por [Widrow 60], denominado regla delta o regla del mínimo error cuadrado (LMS Error: Least-Mean-Squared Error), que se aplicó en las redes desarrolladas por los mismos, conocidas como ADALINE y MADALINE).
[Widrow 60] definieron una función que permitiría cuantificar el error global cometido en cualquier momento durante el proceso de entrenamiento de la red, lo cual es importante, ya que cuanta más información se tenga sobre el error cometido, más rápido se puede aprender.
Este error medio se expresa de la siguiente forma:
Siendo:
N: Número de neuronas de salida(en el caso de ADALINE N=1).
P: Número de informaciones que debe aprender la red.
Error cometido en el aprendizaje de la información k-ésima. Se trata de encontrar pesos para las conexiones que minimicen esta función de error. Para ello, el ajuste de los pesos de las conexiones de la red se puede hacer de forma proporcional a la variación relativa del error que se obtiene al variar el peso correspondiente:
Mediante este procedimiento, se llegan a obtener un conjunto de pesos con los que se consigue minimizar el error medio.
Otro algoritmo de aprendizaje por corrección de error lo constituye el denominado regla delta generalizada o algoritmo de retropropagación del error (error backpropagation). Se trata de una generalización de la regla delta para poder aplicarla a redes de conexiones hacia delante(feedforward) con capas o niveles internos ocultos de neuronas que no tienen relación con el exterior. Estas redes multicapa pueden utilizarse en muchas aplicaciones, pero su proceso de aprendizaje es mucho más lento, debido a que durante el mismo se debe explorar el espacio de posibles formas de utilización de neuronas de las capas ocultas; es decir, establecer cuál es su papel en la red.
Aprendizaje por refuerzo Es un aprendizaje más lento que el anterior, que se basa en la idea de no disponer de un ejemplo completo del comportamiento deseado; es decir, de no indicar durante el entrenamiento exactamente la salida que se desea que proporcione la red ante una determinada entrada.
En el aprendizaje por refuerzo la función del supervisor se reduce a indicar mediante una señal de refuerzo si la salida obtenida en la red se ajusta a la deseada (éxito = +1 o fracaso = -1), y en función de ello se ajustan los pesos basándose en un mecanismo de probabilidades.
Un ejemplo de algoritmo es el Linear Reward-Penality o (algoritmo lineal con recompensa y penalización) presentado por Narendra y Thathacher en 1974. Este algoritmo ha sido ampliado por Barto y Anandan, quienes en 1985 desarrollaron el denominado Associative Reward-Penality o (algoritmo asociativo con recompensa y penalización), que se aplica en redes con conexiones hacia delante de dos capas cuyas neuronas de salida presentan una función de activación estocástica. Otro algoritmo conocido es el Adaptive Heuristic Critic, introducido por Barto, Sutton y Anderson en 1983, que se utiliza en redes feedforward de tres capas especialmente diseñadas para que una parte de la red sea capaz de generar una valor interno de refuerzo que es aplicado a las neuronas de salida de la red.
Aprendizaje estocástico Este tipo de aprendizaje consiste básicamente en realizar cambios aleatorios en los valores de los pesos de las conexiones de la red y evaluar su efecto a partir del objetivo deseado y de distribuciones de probabilidad.
En el aprendizaje estocástico se suele hacer una analogía en términos termodinámicos, asociando la red neuronal con un sólido físico que tiene cierto estado energético. En el de caso de la red, la energía de la misma representaría el grado de estabilidad de la red, de tal forma que el estado de mínima energía correspondería a una situación en la que los pesos de las conexiones consiguen que su funcionamiento sea el que más se ajusta al objetivo deseado.
Según lo anterior, el aprendizaje consistiría en realizar un cambio aleatorio de los valores de los pesos y determinar la energía de la red. Si la energía es menor después del cambio; es decir, si el comportamiento de la red se acerca al deseado, se acepta el cambio; de lo contrario, se aceptaría el cambio en función de una determinada y preestablecida distribución de probabilidades.
Redes con aprendizaje no supervisado Las redes con dicho aprendizaje no requieren de influencia externa para ajustar los pesos de las conexiones entre sus neuronas. La red no recibe ninguna información por parte del entorno que le indique si la salida generada en respuesta de una entrada es o no correcta. Suele decirse que estas redes son capaces de autoorganizarse. Estas redes deben encontrar las características, regularidades, correlaciones o categorías que se pueden establecer entre los datos que se presentan en su entrada.
En algunos casos, la salida representa el grado de familiaridad o similitud entre la información que se le está presentando en la entrada y las que se le han mostrado en el pasado. En otro caso podría realizar una clusterización, indicando la red la salida a qué categoría pertenece la información presentada a la entrada, siendo la propia red quien debe encontrar las categorías apropiadas a partir de correlaciones entre las informaciones presentadas. Una variación de esta categorización es el prototipado. En este caso, la red obtiene prototipos representantes de las clases a las que pertenecen las informaciones de entrada.
También el aprendizaje sin supervisión permite realizar una codificación de los datos de entrada, generando a la salida una versión codificada de la entrada, con menos bits, pero manteniendo la información relevante de los datos.
Algunas redes con aprendizaje no supervisado, realizan un mapeo de características, obteniéndose en las neuronas de salida una disposición geométrica que representa un mapa topográfico de las características de los datos de entrada, de tal forma que si se presentan a la red informaciones similares, siempre sean afectadas neuronas de salidas próximas entre sí, en la misma zona del mapa Suelen considerarse dos algoritmos de aprendizaje no supervisado:
Aprendizaje hebbiano
Aprendizaje competitivo y cooperativo.
Aprendizaje hebbiano Este tipo de aprendizaje se basa en el postulado formulado por Donald O. Hebb en 1949: "Cuando un axón de una celda A está suficientemente cerca como para conseguir excitar a una celda B y repetida o persistemente toma parte en su activación, algún proceso de crecimiento o cambio metabólico tiene lugares en una o ambas celdas, de tal forma que la eficiencia de A, cuando la celda a activar es B, aumenta. Por celdas, Hebb entiende un conjunto de neuronas fuertemente conexionadas a través de una estructura compleja. La eficiencia podría identificarse por la intensidad o magnitud de la conexión, es decir, con el peso.
Se puede decir que el aprendizaje consiste en el ajuste de los pesos de las conexiones de acuerdo con la correlación ( multiplicación en el caso de valores binarios +1 y –1) de los valores de activación (salidas) de las neuronas conectadas.
Esta expresión responde a la idea de Hebb, puesto que si las dos unidades son activas (positivas), se refuerza la conexión; por el contrario, cuando una es activa y la otra pasiva, se debilita la conexión. Existen muchas variaciones de dicho aprendizaje, por ejemplo, Sejnowski en 1977 utilizó la correlación de covarianza de los valores de activación de las neuronas. Sutton y Barto en 1981 utilizaron la correlación el valor medio de una neurona con la varianza de la otra. Klopf en 1986 propuso una correlación entre las variaciones de los valores de activación en dos instantes de tiempo sucesivos, aprendizaje que denominó drive-reinforcement y que utilizó en redes del mismo nombre con topología feedforward de dos capas.
Otra versión e este aprendizaje es el hebbiano diferencial, que utiliza la correlación de las derivadas en el tiempo de las funciones de activación de las neuronas.
Aprendizaje competitivo y cooperativo En dicho aprendizaje suele decirse que las neuronas compiten (y cooperan) unas con otras con el fin de llevar a cabo una tarea dada.
La competición ente neuronas se realiza en todas las capas de la red, existiendo en estas neuronas conexiones recurrentes de autoexcitación y conexiones de inhibición por parte de neuronas vecinas. Si el aprendizaje es cooperativo, estas conexiones con las vecinas serán de excitación.
El objetivo de este aprendizaje es clusterizar los datos que se introducen en la red. De esta forma, las informaciones similares son clasificadas formando parte de la misma categoría, y por tanto deben activar la misma neurona de salida. Las categorías deben ser creadas por la misma red, puesto que se trata de aprendizaje no supervisado, a través de las correlaciones ente los datos.
En este tipo de redes, cada neurona tiene asignado un peso total, suma de todos los pesos de las conexiones que tiene a su entrada. El aprendizaje afecta sólo a las neuronas ganadoras (activas), redistribuyendo este peso total entre todas las conexiones que llegan a al neurona vencedora y repartiendo esta cantidad por igual entre todas las conexiones procedentes de unidades activas. Por tanto, la variación del peso de una conexión ente una unidad i y otra j será nula si la neurona j no recibe excitación por parte de la neurona i y otra j será nula si la neurona j no recibe excitación por parte de la neurona i, y se modificará si es excitada por dicha neurona i. Existe otro caso particular de aprendizaje competitivo, denominado teoría de la resonancia adaptativa, desarrollado por Carpenter y Grossberg en 1986 y utilizado en la red feedforward /feedback de dos capas conocida como ART. Esta red realiza un prototipado de las informaciones que recibe a la entrada, generando como salida un ejemplar o prototipo que representa a todas las informaciones que podrían considerarse pertenecientes a la misma categoría.
Las redes ADALINE (Adaptative Linear Element), fueron desarrolladas por Bernie Widrow en la Universidad de Stanford. Dicha red usa neuronas con función de transferencia escalón, y está limitada a una única neurona de salida.
Utiliza la denominada regla Delta de Widrow-Hoff o regla del mínimo error cuadrado medio (LMS), basada en la búsqueda del mínimo de una expresión del error entre la salida deseada y la salida lineal obtenida antes de aplicarle la función de activación escalón. Estas redes pueden procesar información analógica, tanto de entrada como de salida, utilizando una función de activación lineal o sigmoidal.
En cuanto a su estructura, está formada por un elemento denominado combinador adaptativo lineal (ALC) que obtiene una salida lineal(s) que pueda ser aplicada a otro elemento de conmutación bipolar, de forma que si la salida del ALC es positiva, la salida de la red ADALINE es +1; si la salida es negativa, entonces la salida de la red ADALINE es –1.
En la figura siguiente se muestra la red ADALINE, compuesta por un combinador adaptativo lineal y una función de salida bipolar.
El ALC realiza el cálculo de la suma ponderada de las entradas:
El umbral de la función de transferencia se representa a través de una conexión ficticia de peso
Si tenemos en cuenta que para esta entrada se toma el valor de se puede escribir la anterior ecuación de la forma:
Esta es la salida lineal que genera el ALC. La salida binaria correspondiente de la red ADALINE es, por tanto:
La red ADALINE se puede utilizar para generar una salida analógica utilizando un conmutador sigmoidal, en lugar de binario; en tal caso, la salida y se obtendrá aplicando una función tipo sigmoidal, como la tangente hiperbólica (tanh(s)) o la exponencial (1/1+).
Aprendizaje de la red ADALINE La red ADALINE utiliza un aprendizaje OFF LINE con supervisión denominado LMS (Least Mean Squared) o regla del mínimo cuadrado medio. También se conoce como regla delta porque trata de minimizar una delta o diferencia entre el valor observado y el deseado en la salida de la red. La salida considerada es el valor previo a la aplicación de la función de activación de la neurona.
La regla aprendizaje de mínimos cuadrados es un método para hallar el vector de pesos W deseado, el cual deberá ser único y asociar con éxito cada vector del conjunto de vectores o patrones de entrada
con su correspondiente valor de salida correcto (o deseado)
k=1,…L.
El problema hallar un conjunto de pesos W que para un único vector de entrada X dé lugar a un vector de salida correcto resulta sencillo, lo que no ocurre cuando se dispone de un conjunto de vectores de entrada, cada uno con su propio valor de salida asociado. El entrenamiento de la red consiste en adaptar los pesos a medida que se vayan presentando los patrones de entrenamiento y salidas deseadas para cada uno de ellos. Para cada combinación entrada-salida se realiza un proceso automático de pequeños ajustes en los valores de los pesos hasta que se obtienen las salidas correctas.
La primera cuestión a resolver es definir qué significa obtener el mejor vector de pesos obtenido a partir de unas parejas de valores ejemplode forma que, una vez encontrado, desearemos que al aplicar todos los vectores de entrada se obtenga como resultado el valor de salida correcto. Se trata de eliminar, o por lo menos, minimizar la diferencia entre la salida deseada y la real para todos los vectores de entrada.
La regla de aprendizaje LMS minimiza el error cuadrado medio, definido como:
donde L es el número de vectores de entrada (patrones) que forman el conjunto de entrenamiento, y la diferencia entre la salida deseada y la obtenida cuando se introduce el patrón k-ésimo, que, se expresa como
siendo la salida del ALC; es decir:
La función de error es una función matemática definida en el espacio de pesos multidimensional para un conjunto de patrones dados. Es una superficie que tendrá muchos mínimos (global y locales), y la regla de aprendizaje va a buscar el punto en el espacio de pesos donde se encuentra el mínimo global de esta superficie. Aunque la superficie de error es desconocida, el método de gradiente decreciente consigue obtener información local de dicha superficie a través del gradiente. Con esta información se decide qué dirección tomar para llegar hasta el mínimo global de ducha superficie.
Basándose en el método del gradiente decreciente, se obtiene una regla para modificar los pesos de tal manera que hallamos un nuevo punto en el espacio de pesos más próximo al punto mínimo. Es decir, las modificaciones en los pesos son proporcionales al gradiente decreciente de la función error Por tanto, se deriva la función error con respecto a los pesos para ver cómo varía el error con el cambio de pesos.
Aplicamos la regla de la cadena para el cálculo de dicha derivada:
Se calcula la primer derivada:
por tanto, queda:
Teniendo en cuenta que es la salida lineal:
calculamos la segunda derivada de la expresión de
Así pues, el valor del gradiente el error producido por un patrón dado (k) es:
Las modificaciones en los pesos son proporcionales al gradiente descendente de la función error:
siendo la constante de proporcionalidad o tasa de aprendizaje.
En notación matricial, quedaría:
Esta expresión representa la modificación de pesos obtenida al aplicar el algoritmo LMS. es el parámetro que determina la estabilidad y la velocidad de convergencia del vector de pesos hacia el valor de error mínimo. Los cambios en dicho vector deben hacerse relativamente pequeños en cada iteración, sino podría ocurrir que no se encontrase nunca un mínimo, o se encontrase sólo por accidente, en lugar de ser el resultado de una convergencia sostenida hacia él.
La aplicación el proceso iterativo de aprendizaje consta de los siguientes pasos:
Se aplica un vector o patrón de entrada,
en las entradas del ADALINE.
Se obtiene la salida linea
l
y se calcula la diferencia con respecto a la deseada
Se actualizan los pesos
Se repiten los pasos del 1 al 3 con todos los vectores de entrada (L).
Si el error cuadrado medio:
es un valor reducido aceptable, termina el proceso de aprendizaje; sino, se repite otra vez desde el paso 1 con todos los patrones.
Cuando se utiliza una red ADALINE para resolver un problema concreto, es necesario determinar una serie de aspectos prácticos, como el número de vectores de entrenamiento necesarios, hallar la forma de generar la salida deseada para cada vector de entrenamiento, o la dimensión óptima del vector de pesos, o cuales deberían ser los valores iniciales de los pesos, así como si es necesario o no un umbral o cuál debe ser el valor de o cuándo se debe finalizar el entrenamiento, etc.
Respecto al número de componentes del vector de pesos, si el número de entradas está bien definido, entonces habrá un peso por cada entrada, con la opción de añadir o no un peso para la entrada del umbral.
La solución es diferente cuando sólo se dispone de una señal de entrada. En estos casos, la aplicación más común es el filtro adaptativo para, por ejemplo, eliminar ruido de la señal de entrada.
La dimensión del vector de pesos tiene una influencia directa en el tiempo necesario de entrenamiento, generalmente, se debe tomar un compromiso entre este aspecto y la aceptabilidad de la solución (normalmente se mejora el error aumentando el número de pesos).
El valor del parámetro
tiene una gran influencia sobre el entrenamiento. Si es demasiado grande, la convergencia es posible que no se produzca, debido a que se darán saltos en torno al mínimo sin alcanzarlo. Si es demasiado pequeño, alcanzaremos la convergencia, pero la etapa de aprendizaje será más larga.
En cuanto al momento en el que debemos detener el entrenamiento, depende de los requerimientos del sistema. El entrenamiento se detiene cuando el error observado es menor que el admisible en la señal de salida de forma sostenida. Se suele tomar el error cuadrático medio como la magnitud que determina el instante en el que un sistema ha convergido.
Aplicaciones de la red ADALINE
La principal aplicación de las redes ADALINE está en el campo del procesamiento de señales, en concreto, para el diseño y realización de filtros que eliminen el ruido en señales portadoras de información. Se destaca su uso como filtros de ecuación adaptativos en módems de alta velocidad y canceladores adaptativos del eco para el filtrado de señales en comunicaciones telefónicas de larga distancia y comunicaciones vía satélite.
También se han utilizado para la eliminación del ruido materno de las grabaciones electrocardiográficas (ECG) del latido del corazón del feto humano.
Por otro lado los filtros adaptativos también se suelen utilizar para predecir el valor futuro de una señal a partir de su valor actual, basándose en un aprendizaje en el que se emplea como entrada el valor retardado de la señal actual(la señal en algún momento anterior), y como salida esperada, el valor actual de la señal. El filtro intentará minimizar el error entre su salida y la señal actual, basándose en una entrada que es el valor de la señal en algún instante anterior. Una vez que el filtro predice correctamente la señal actual, basándose en la señal anterior, se puede utilizar directamente la actual como entrada sin retardo. El filtro realizará una predicción del valor futuro de la señal.
En 1986, Rumelhart, Hinton y Williams, formalizaron un método para que una red neuronal aprendiera la asociación que existe entre los patrones de entrada y las clases correspondientes, utilizando varios niveles de neuronas. El método backpropagation (propagación del error hacia atrás), basado en la generalización de la regla delta, a pesar de sus limitaciones, ha ampliado de forma considerable el rangote aplicaciones de las redes neuronales.
El funcionamiento de la red backpropagartion (BPN) consiste en el aprendizaje de un conjunto predefinido de pares de entradas-salidas dados como ejemplo: primero se aplica un patrón de entrada como estímulo para la primera capa de las neuronas de la red, se va propagando a través de todas las capas superiores hasta generar una salida, se compara el resultado en las neuronas de salida con la salida que se desea obtener y se calcula un valor de error para cada neurona de salida. A continuación, éstos errores se transmiten hacia atrás, partiendo de la capa de salida hacia todas las neuronas de la capa intermedia que contribuyan directamente a la salida, recibiendo de error aproximado a la neurona intermedia a la salida original. Este proceso se repite, capa por capa, hasta que todas las neuronas de la red hayan recibido un error que describa su aportación relativa al error total. Basándose en el valor del error recibido, se reajustan los pesos de conexión de cada neurona, de manera que en la siguiente vez que se presente el mismo patrón, la más salida esté cercana a la deseada.
La importancia de la red backpropagation consiste en su capacidad de autoadaptar los pesos de las neuronas de las capas intermedias para aprender la relación que existe ente un conjunto de patrones de entrada y sus salidas correspondientes. Es importante la capacidad de generalización, facilidad de dar salidas satisfactorias a entradas que el sistema no ha visto nunca en su fase de entrenamiento. La red debe encontrar una representación interna que le permita generar las salidas deseadas cuando se le dan entradas de entrenamiento, y que pueda aplicar, además, a entradas no presentadas durante la etapa de aprendizaje para clasificarlas.
La regla propuesta por Widrow en 1960 ha sido extendida a redes con capas intermedias con conexiones hacia delante (feedforward) y cuyas células tienen funciones de activación continuas (lineales o sigmoidales), dando lugar a la retropopagación. Estas funciones continuas son no decrecientes y derivables.
Este algoritmo utiliza una función de error asociada a la red, buscando el estado estable de mínima energía o de mínimo error a través del camino descendente de la superficie del error. Por ello realimenta el error del sistema para realizar la modificación de los pesos en un valor proporcional al gradiente decreciente de dicha función de error.
Funcionamiento del algoritmo El método que sigue la regla delta generalizada para ajustar los pesos es exactamente el mismo que el de la regla utilizada en ADALINE; los pesos se actualizan de forma proporcional a la delta, o diferencia entre la salida deseada y la obtenida (= salida deseada – salida obtenida). Dada una neurona (unidad
y la salida que produce,, el cambio que se produce en le peso de la conexión que una salida de dicha neurona con la unidad para un patrón de aprendizaje p determinado es:
En donde el subíndice p se refiere al patrón de aprendizaje concreto, y es la constante o tasa de aprendizaje.
En redes multinivel en principio no se puede conocer la salida deseada de las neuronas ocultas para poder determinar los pesos en la función de error cometido. Inicialmente podemos conocer la salida deseada de las neuronas de salida. Según esto, si consideramos la unidad de salida, entonces definimos:
donde es la salida deseada de la neurona j para el patrón p y es la entrada neta que recibe la neurona j. Esta fórmula es como la de la regla delta, excepto a los se refiere a la derivada de la función de transferencia. Este término representa la modificación que hay que realizar en la entrada que recibe la neurona j. En caso de que dicha neurona no sea de salida, el error que se produce estará en función del error que se cometa en las neuronas que reciban como entrada la salida de dicha neurona. Esto es lo que se denomina como procedimiento de propagación de error hacia atrás.
Según esto, en el caso de que no sea una neurona de salida, el error que se produce está en función del error que se comete en las neuronas que reciben como entrada la salida de
donde el rango de k cubre a todas las neuronas a las que está conectada la salida de De esta forma el error que se produce en una neurona oculta es la suma de los errores que se producen en las neuronas a las que está conectada la salida de ésta, multiplicado cada uno de ellos por el peso de la conexión.
Adición de un momento en la regla delta generalizada
El método de retropopagación del error requiere un importante número de cálculos para lograr el ajuste de los pesos de la red. En la implementación del algoritmo, se toma una amplitud de paso que viene dada por la tasa de aprendizaje. A mayor tasa de aprendizaje, mayor es la modificación de los pesos en cada iteración, con lo que el aprendizaje será más rápido, pero por otro lado, puede dar lugar a oscilaciones. Rumelhart, Hinton y Williams sugirieron que para filtrar estas oscilaciones se añada en la expresión de incremento de los pesos un término (momento),, de manera que dicha expresión quede:
donde es una constante que determina el efecto t+1 del cambio de los pesos en el instante t. Con este momento se consigue la convergencia de la red en menor número de iteraciones, ya que si en t el incremento de un peso era positivo y en t+1 también, entonces el descenso por la superficie de error en t+1 es mayor. Sin embargo, si en t era positivo y en t+1 es negativo, el paso que se da en t+1 es más pequeño, lo cual es adecuado, ya que significa que se ha pasado por un mínimo y que los pesos deben ser menores para poder alcanzarlo.
Resumiendo, el algoritmo Backpropagation queda finalmente:
donde:
si es una neurona de salida.
si no es una neurona de salida.
Estructura y aprendizaje de la red Backpropagation
En una red Backpropagation existe una capa de entrada con n neuronas y una capa de salida con m neuronas y al menos una capa oculta de neuronas internas. Cada neurona de una capa (excepto las de entrada) recibe entradas de todas las neuronas de la capa anterior y envía su salida a todas las neuronas de la capa posterior (excepto las de salida). No hay conexiones hacia atrás feedback ni laterales entre las neuronas de la misma capa.
La aplicación del algoritmo tiene dos fases, una hacia delante y otra hacia atrás. Durante la primera fase el patrón de entrada es presentado a la red y propagado a través de las capas hasta llegar a la capa de salida. Obtenidos los valores de salida de la red, se inicia la segunda fase, comparándose éstos valores con la salida esperada para obtener el error. Se ajustan los pesos de la última capa proporcionalmente al error. Se pasa a la capa anterior con una retropopagación del error, ajustando los pesos y continuando con este proceso hasta llegar a la primer capa. De esta manera se han modificado los pesos de las conexiones de la red para cada patrón de aprendizaje del problema, del que conocíamos su valor de entrada y la salida deseada que debería generar la red ante dicho patrón.
La técnica Backpropagation requiere el uso de neuronas cuya función de activación sea continua, y por lo tanto, diferenciable. Generalmente, la función utilizada será del tipo sigmoidal.
Pasos para aplicar el algoritmo de entrenamiento
Paso 1 Inicializar los pesos de la red con valores pequeños aleatorios.
Paso 2 Presentar un patrón de entrada y especificar la salida deseada que debe generar la red.
Paso 3 Calcular la salida actual de la red. Para ello presentamos las entradas a la red y vamos calculando la salida que presenta cada capa hasta llegar a la capa de salida, ésta será la salida de la red. Los pasos son los siguientes:
Se calculan las entradas netas para las neuronas ocultas procedentes de las neuronas de entrada. Para una neurona j oculta:
en donde el índice h se refiere a magnitudes de la capa oculta; el subíndice p, al p-ésimo vector de entrenamiento, y j a la j-ésima neurona oculta. El término puede ser opcional, pues actúa como una entrada más.
Se calculan las salidas de las neuronas ocultas: Se realizan los mismos cálculos para obtener las salidas de las neuronas de salida:
Paso 4 Calcular los términos de error para todas las neuronas.
Si la neurona k es una neurona de la capa de salida, el valor de la delta es:
La función f debe ser derivable.
En general disponemos de dos formas de función de salida:
La función lineal :
La función sigmoidal :
La selección de la función depende de la forma que se decida representar la salida: si se desea que las neuronas de salida sean binarias, se utiliza la función sigmoidal, en otros casos, la lineal.
Para una función lineal, tenemos: mientras que la derivada de una función sigmoidal es:
por lo que los términos de error para las neuronas de salida quedan:
para la salida lineal.
Página anterior | Volver al principio del trabajo | Página siguiente |