Download 2 Introducción a las redes neuronales
Document related concepts
Transcript
2 Introducción a las redes neuronales 2.1 ¿Qué es una red neuronal? Trabajar con redes neuronales artificiales, comúnmente llamadas ‘redes neuronales’, ha sido motivado desde el principio por la forma diferente de actuación del cerebro frente al computador digital tradicional. A principios del siglo XX, el trabajo del científico Ramón y Cajal supuso un gran avance para entender el comportamiento del cerebro introduciendo las neuronas como constituyentes estructurales del mismo. Aunque normalmente las neuronas son cinco o seis órdenes de magnitud más lentas que las puertas lógicas de silicio, el cerebro compensa esta relativa lenta velocidad de operación de una neurona, teniendo un gran número de ellas con masivas interconexiones entre las mismas; a estas interconexiones se les llama sinapsis. Así, se estima que existen unos 10 billones de neuronas en el cerebro humano estableciendo unas 60 trillones de sinapsis o conexiones entre ellas. El cerebro es un sistema de procesamiento de información altamente complejo, no lineal y paralelo. Éste posee la capacidad de organizar neuronas así como de realizar ciertas operaciones, tales como reconocimiento espacial y temporal de patrones, memoria o visión, que las computadoras digitales no son capaces de llevar a cabo con precisión. Para conseguir esta eficiencia, el cerebro basa su trabajo en las sinapsis, que son las unidades estructurales y funcionales que median las interacciones entre neuronas. La clase más común de sinapsis es una sinapsis química, la cual opera como sigue. Un proceso presináptico libera una sustancia transmisora que se difunde a través de la unión sináptica y luego actúa en un proceso postsináptico. En las tradicionales descripciones de organización neuronal, se asume que una sinapsis es una conexión simple que puede causar excitación o inhibición, pero no ambas cosas, en la neurona receptora. El desarrollo neuronal va íntimamente unido a una característica del cerebro que es la plasticidad, la cual permite el desarrollo del sistema nervioso para adaptarse a su entorno. En un cerebro adulto, la plasticidad puede ser expresada mediante dos mecanismos: la creación de nuevas conexiones sinápticas entre neuronas y la modificación de sinapsis ya existentes. Así, la plasticidad parece ser esencial para el funcionamiento de neuronas como unidades de procesamiento de información en el cerebro humano, constituyendo con sus conexiones las redes neuronales. Podemos, así pues, establecer la siguiente definición de red neuronal: Una red neuronal es un procesador distribuido, con elevada capacidad de cálculo en paralelo y con una tendencia natural a almacenar conocimiento experimental y hacerlo disponible para su uso. Se asemeja al cerebro en dos cosas: 1. El conocimiento es adquirido por la red a través de un proceso de aprendizaje. 2. La fuerza de la conexión entre neuronas se mide con los pesos sinápticos, que son usados para almacenar el conocimiento. El procedimiento usado para realizar el proceso de aprendizaje se llama algoritmo de aprendizaje y la función que tiene es la de modificar los pesos sinápticos de la red de acuerdo a llegar a alcanzar un objetivo de diseño deseado. 1 El poder de cálculo de las redes neuronales se debe, primero, a su estructura distribuida paralela con gran número de neuronas y, segundo, a su habilidad para aprender y luego generalizar; la generalización se refiere a que la red neuronal produce salidas razonables para entradas no sometidas al entrenamiento (fase de aprendizaje). Esas dos capacidades de procesamiento de información le hace posible a las redes neuronales resolver complejos problemas que son frecuentemente inabordables. En la práctica, sin embargo, las redes neuronales no proporcionan la solución trabajando por sí mismas, sino que el problema complejo se descompone en tareas más simples y estas redes son asignadas a subconjuntos de las tareas. El uso de redes neuronales ofrece las siguientes propiedades y capacidades: 1. No linealidad. Una neurona es, básicamente, un dispositivo no lineal, por lo que una red neuronal, constituida por una interconexión de neuronas, es también no lineal. La no linealidad es una propiedad muy importante, sobre todo si el mecanismo físico responsable de la generación de una señal (la señal de voz, por ejemplo) es inherentemente no lineal. 2. Mapeado entrada-salida. Un popular paradigma de aprendizaje llamado aprendizaje supervisado conlleva la modificación de los pesos sinápticos de una red neuronal aplicando un paquete de datos conocido como muestras de entrenamiento. Cada ejemplo consiste en una única señal de entrada y la correspondiente respuesta deseada. Se modifican los pesos de la red neuronal para conseguir minimizar la diferencia entre la respuesta deseada y la real de la red (la obtenida a partir de la señal de entrada tras pasar por la red neuronal). El entrenamiento de la red es repetido con tantos ejemplos como sean necesarios para que ésta alcance un estado estable en el que los pesos sinápticos no se vean modificados seriamente. De este modo, la red aprende de los ejemplos construyendo un mapeado entrada-salida para el problema en cuestión. 3. Adaptabilidad. Las redes neuronales tienen una capacidad intrínseca para adaptar sus pesos sinápticos a cambios en el entorno. En particular, una red neuronal entrenada para operar en un entorno específico puede ser entrenada de nuevo para conseguir que existan menos cambios en las condiciones de operación. Sin embargo, esta adaptabilidad no siempre conduce a una mayor robustez. 4. Respuesta indicativa. En el contexto de patrones de clasificación, una red neuronal puede ser diseñada para proporcionar información, no sólo sobre qué particular patrón seleccionar, sino también sobre la seguridad en la decisión tomada. Esta información puede ser usada más tarde para rechazar patrones antiguos. 5. Información contextual. El conocimiento está representado por la estructura y estado de activación de una red neuronal. Cada neurona en la red está potencialmente afectada por la actividad global de todas las demás neuronas de la red. En consecuencia, la información contextual es tratada con naturalidad por una red neuronal. 2 6. Tolerancia a fallos. Una red neuronal, implementada físicamente es tolerante a fallos en el sentido de que, a pesar de que algunas de sus neuronas o interconexiones estén dañadas, el rendimiento total no se ve seriamente afectado. 7. Implementabilidad como VLSI. La naturaleza masivamente paralela de una red neuronal la hace potencialmente rápida para el cálculo de ciertas tareas. Este hecho hace que una red neuronal sea ideal para ser implementada usando tecnología VLSI (very large scale integrated), fundamentalmente como una herramienta para aplicaciones en tiempo real tales como reconocimiento de patrones, procesamiento de señal o control. 8. Uniformidad en el análisis y en el diseño. Esta uniformidad se manifiesta en el uso de la misma notación en todos los ámbitos que impliquen el uso de redes neuronales, lo cual se manifiesta en la compartición de teorías y algoritmos de aprendizaje y en la posibilidad de crear redes modulares a partir de la integración de diversos módulos. 9. Analogía neurobiológica. El diseño de una red neuronal es motivado por analogía con el cerebro humano. De este modo, los neurobiólogos ven a las redes neuronales como herramientas para la interpretación de fenómenos neurobiológicos. 2.2 Modelos de una neurona Una neurona es una unidad de procesamiento de información fundamental para la operación de una red neuronal. En la figura (2.1) mostramos el modelo de una neurona. Podemos identificar tres elementos básicos en el modelo de una neurona, los cuales son descritos aquí: 1. Un conjunto de conexiones sinápticas, cada una de ellas caracterizado por un peso. Estrictamente, una señal xj, en la entrada de la sinapsis j conectada a la neurona k, es multiplicada por el peso sináptico wkj. Es importante hacer notar la manera en que los subíndices de wkj están escritos. El primer subíndice hace referencia a la neurona en cuestión y el segundo se refiere a la entrada a la sinapsis. El peso wkj es positivo si la sinapsis asociada es excitatoria, y negativo si es inhibidora. 2. Un sumador para sumar las señales de entrada, pesadas por las respectivas sinapsis de la neurona; las operaciones descritas aquí constituyen un combinador lineal. 3. Una función de activación para limitar la amplitud de la salida de la neurona. 3 Señales de entrada x1 wk1 x2 wk2 . . . . . . xp wkp uk (·) Salida yk Umbral k Pesos sinápticos Figura 2.1 Modelo no lineal de una neurona En términos matemáticos, podemos describir una neurona k escribiendo el siguiente par de ecuaciones: uk = p wkj - xj (2.1) j=1 y yk = (uk – k) (2.2) donde x1, x2, … , xp son las señales de entrada; wk1, wk2, … , wkp son los pesos sinápticos de la neurona k; uk es la salida del combinador lineal; k es el umbral (o threshold); (·) es la función de activación; e yk es la señal de salida de la neurona. 2.2.1 Tipos de funciones de activación La función de activación, denotada por (·), define la salida de una neurona en términos de nivel de actividad a su entrada. Podemos identificar tres tipos básicos de funciones de activación: 1. Función threshold. Para esta función tenemos, usando la salida de la neurona k como función threshold, la siguiente expresión: (v) = 1 si vk 0 0 si vk 0 (2.3) 4 donde vk es el nivel de actividad interno de la neurona k, definido por: vk = wkjxj - (2.4) k 2. Función lineal a trozos. Se define con la expresión siguiente: (v) = 1, v ½ v, ½ >v>½ 0, v (2.5) -½ Este tipo de función de activación puede ser visto como una aproximación a un amplificador no lineal. Veamos dos tipos especiales de función lineal a trozos: 1) Un combinador lineal que surge en la zona lineal de operación es mantenido sin entrar en saturación. 2) La función lineal a trozos se reduce a una función threshold si el factor de amplificación de la región lineal es muy grande. 3. Función sigmoide. Es la función de activación más usada en la construcción de redes neuronales artificiales. Se define como una función estrictamente creciente que presenta propiedades asintóticas y de suavidad. Un ejemplo de sigmoide es la función logística, determinada por la siguiente expresión: ϕ (v ) = 1 1 + exp(− av) (2.6) donde a es el parámetro de pendiente de la función sigmoide. Variando el parámetro a, obtenemos funciones sigmoides de diferentes pendientes. En el límite, cuando el parámetro de pendiente es infinito, la función sigmoide se convierte en una threshold. Mientras que una función threshold vale 0 ó 1, la sigmoide tiene un rango continuo de valores entre 0 y 1. Además, la sigmoide es una función diferenciable, mientras que la threshold no lo es. 2.3 Arquitecturas de red La manera en la que las neuronas de una red neuronal están estructuradas está íntimamente relacionada con el algoritmo de aprendizaje empleado para entrenar la red. En general, identificamos cuatro clases diferentes de arquitecturas de red, que explicamos a continuación: 5 2.3.1 Redes monocapa Una red neuronal por capas es una red de neuronas organizadas en capas. En la forma más simple de una red por capas, tenemos una capa de entrada de nodos fuente que se proyecta en una capa de salida. En otras palabras esta estructura es del tipo realimentada (feedforward). En la figura (2.2) se muestra esta estructura para el caso de cuatro nodos en las capas de entrada y salida. Esta red se conoce como red de capa simple, refiriéndose capa simple a la capa de salida de nodos de computación. Es decir, no consideramos la capa de entrada ya que en ella no se produce computación alguna. Como aplicación de este tipo de red neuronal tenemos, por ejemplo, a la memoria asociativa lineal, en la que la red asocia un patrón de salida a un patrón de entrada (ambos son vectores) y la información se va almacenando por medio de las modificaciones realizadas a los pesos sinápticos de la red. Figura 2.2 Red monocapa feedforward 2.3.2 Redes multicapa La segunda clase de red neuronal feedforward existente se caracteriza por la presencia de una o más capas ocultas, cuyos nodos de computación se llaman neuronas ocultas. La función de las neuronas ocultas es intervenir entre la entrada externa y la salida de la red. Añadiendo una o más capas ocultas, la red es capaz de extraer estadísticas de orden más alto, lo que es realmente útil cuando el tamaño de la capa de entrada (número de nodos que posee) es grande. Los nodos fuente en la capa de entrada de la red suministran los elementos del patrón de activación (vector de entrada), lo que constituye el conjunto de señales de entrada aplicadas a las neuronas (nodos de computación) en la segunda capa (es decir, la primera capa oculta). Las salidas de la segunda capa son usadas como entradas de la tercera, y así para el resto de la red hasta llegar a la capa de salida. Generalmente, por tanto, las neuronas de cada capa de la red tienen como entradas las salidas de la capa anterior. El conjunto de señales de salida de las neuronas de salida 6 (capa final) de la red constituye la respuesta global de la red a las señales suministradas a la capa de entrada. Figura 2.3 Red multicapa feedforward completamente conectada Por último, podemos decir que la red mostrada en la figura (2.3) es una red completamente conectada en el sentido de que cada nodo de cada capa está conectado con todos los nodos de la capa adyacente. Sin embargo, si algunas de las sinapsis se pierden, decimos que la red está parcialmente conectada. 2.3.3 Redes recurrentes Una red neuronal recurrente se distingue de una red neuronal feedforward en que posee, al menos, un lazo realimentado. Así, por ejemplo, puede consistir en una capa simple de neuronas en la que cada neurona realimenta su salida a las entradas de todas las otras neuronas, como se refleja en la figura (2.4). En esta figura no se observan lazos de realimentación de una neurona a sí misma, así como que no existen capas ocultas. Los lazos de realimentación conlleva el uso de unidades de retrazo (z-1) que originan un comportamiento dinámico no lineal, el cual juega un papel clave en la función de almacenamiento de información de una red recurrente. 7 z-1 z-1 z-1 z-1 Unidades de retraso Figura 2.4 Red recurrente sin lazos realimentados a sí mismos ni capas ocultas 2.3.4 Estructuras Lattice Este tipo de estructura consiste en un array de neuronas de una, dos o más dimensiones, con un correspondiente paquete nodos fuente que proporcionan las señales de entrada al array; la dimensión de esta estructura es la del espacio en el que se dibuja. En la figura (2.5) se muestra un lattice unidimensional de tres neuronas alimentadas desde una capa de tres nodos fuente, mientras que en la figura (2.6) se describe un lattice bidimensional de tres neuronas por capa, alimentadas por tres nodos fuente. En ambas figuras podemos ver que cada nodo fuente está conectado a cada neurona. Así pues, vemos que una red lattice es, en realidad, una red feedforward con las neuronas de salida dispuestas en filas y columnas. 2.4 Representación del conocimiento Lo primero que vamos a hacer en este apartado es definir lo que es el conocimiento. Podemos realizar la siguiente definición genérica: El conocimiento se refiere a la información almacenada o modelos usados por una persona o máquina para interpretar, predecir y responder adecuadamente al mundo exterior. 8 Capa de entrada Figura 2.5 Estructura Lattice unidimensional Capa de entrada Figura 2.6 Estructura Lattice multidimensional (bidimensional) Las principales características de la representación del conocimiento son qué información está explícita y cómo la información es codificada físicamente para su posterior uso. En el mundo de las máquinas inteligentes, se puede decir que una buena solución depende de una buena representación del conocimiento. Así es con las redes neuronales, que representan una clase especial de máquinas inteligentes. Sin embargo, generalmente, las posibles formas de representación desde las entradas hasta los parámetros de red internos son muy diversas, lo que tiende a provocar el desarrollo de una solución satisfactoria por medio de un diseño real de una red neuronal. Una tarea principal para una red neuronal es aprender un modelo del entorno que la rodea y mantenerlo suficientemente consistente para así alcanzar los objetivos específicos de la aplicación de interés. El conocimiento del mundo consta de dos clases de información: 9 1. Información a priori. La introducimos cuando usamos una determinada arquitectura de red neuronal para una aplicación concreta. 2. Observaciones (medidas). Estas observaciones, inherentemente ruidosas, nos proporcionan los ejemplos necesarios para realizar el entrenamiento de la red neuronal. Cada ejemplo consta de un par entrada-salida: una señal de entrada y la correspondiente respuesta deseada para la red neuronal. Así, un conjunto de ejemplos representa el conocimiento acerca del entorno de interés. Consideremos, por ejemplo, el problema del reconocimiento de dígitos escritos a mano, en el que la entrada consiste en una imagen de píxeles blancos y negros; en cada imagen se representa uno de los diez dígitos posibles. Es decir, en este caso, la entrada es la imagen y la salida es la identidad del dígito. Dado dicho paquete de ejemplos, el diseño de una red neuronal puede proceder como sigue: · Primero, se selecciona una arquitectura apropiada para la red neuronal, con una capa de entrada consistente en un número de nodos fuente igual que el número de píxeles de una imagen de entrada y una salida de diez neuronas (una por dígito). Posteriormente se entrena la red con un conjunto de ejemplos por medio de un algoritmo apropiado. Esta fase es la fase de aprendizaje. · Segundo, para comprobar si el entrenamiento de la red ha sido bueno, se introduce datos que no estaban en el paquete de datos de la fase de entrenamiento. Aquí se presenta una imagen a la red, la cual, por comparación con imágenes introducidas en el entrenamiento, ha de saber de qué dígito se trata. Esta fase se denomina fase de generalización. En una red neuronal, que posea una arquitectura específica, la representación del conocimiento del entorno circundante queda definida por los valores que toman los parámetros libres de la misma, es decir, por los pesos sinápticos y por los umbrales. 2.4.1 Reglas para la representación del conocimiento Hay cuatro reglas para la representación del conocimiento, que son de sentido común. Estas cuatro reglas se describen a continuación: a) Regla 1: entradas similares de clases similares deben producir representaciones similares en la red, y deben, por lo tanto, ser clasificadas como pertenecientes a la misma categoría. Hay muchas medidas para determinar la similitud entre entradas, pero la más comúnmente usada se basa en el concepto de distancia Euclídea. Así definimos un punto en un espacio N-dimensional llamado espacio Euclídeo (RN) como xi = [xi1, xi2, ... , xiN]T (2.7) Podemos definir la distancia Euclídea entre dos vectores genéricos xi y xj de la siguiente forma: 10 dij = ||xi - xj|| = [ N (xin - xjn)2]1/2 (2.8) n=1 donde xin y xjn son los enésimos elementos de los vectores de entrada xi y xj respectivamente. Mientras más cercanos estén los vectores xi y xj el uno del otro, menor será la distancia Euclídea dij y aumentará, por lo tanto, la similitud entre ambos vectores. Otra medida de similitud está basada en la idea del producto interno, que, dados los vectores xi y xj, se define como: xiTxj = N xinxjn (2.9) n=1 Estas dos medidas de similitud definidas aquí están íntimamente relacionadas, como se puede ver en la siguiente figura: xi xiTxj ||xi-xj|| xj Figura 2.7 Relación entre el producto interno y la distancia Euclídea b) Regla 2: elementos que no pertenezcan a la misma clase deben dar diferentes representaciones en la red. c) Regla 3: si una característica particular es importante, debe haber un elevado número de neuronas involucradas en su representación dentro de la red. d) Regla 4: la información prioritaria y las invarianzas se deben incluir en el diseño de una red neuronal, de forma que la red se simplifica ya que no tiene que aprenderlas. Así, la red se diseña pensando en una determinada aplicación con características conocidas, lo que lleva a una estructura especializada. 2.4.2 Cómo incluir información a priori en el diseño de una red neuronal Un importante tema a tratar es cómo desarrollar una estructura especializada para incluir información prioritaria en su diseño. Sin embargo, no existen reglas bien definidas para llevar a 11 cabo esta tarea. No obstante, esta información prioritaria puede ser incluida en el diseño de la red neuronal mediante una combinación de las dos técnicas que se muestran a continuación: 1. Restringir la arquitectura de red por medio del uso de conexiones locales. 2. Forzar la elección de pesos sinápticos por el uso de la compartición de pesos. Naturalmente, la manera en que estas dos técnicas son explotadas en la práctica está fuertemente influenciada por la aplicación de interés. En un contexto más general, el desarrollo de procedimientos bien definidos para el uso de información prioritaria es aún un problema abierto sin resolver. 2.4.3 Cómo incluir invarianzas en el diseño de una red neuronal Un primer requerimiento para un reconocimiento de patrones es diseñar un clasificador invariante a transformaciones de la señal observada. Por tanto, vemos aquí tres técnicas para describir redes neuronales invariantes a transformaciones: 1. Invarianza por estructura La invarianza puede ser impuesta en una red neuronal estructurando su diseño apropiadamente. Concretamente, las conexiones sinápticas entre las neuronas de la red son creadas de igual forma a como las versiones transformadas de la misma entrada son forzadas a producir la misma salida. Si nos fijamos, por ejemplo, en la clasificación de una imagen, nos interesa que la red neuronal sea invariante a rotaciones. Podemos imponer esta invarianza rotacional forzando determinadas conexiones sinápticas en la red. Si consideramos wji como el peso sináptico de la neurona j conectada al píxel i de una imagen de entrada y forzamos que wji = wjk para todos los píxeles i y k que se encuentren a la misma distancia del centro de la imagen, entonces conseguimos que la red neuronal sea invariante a rotaciones en el espacio. 2. Invarianza por entrenamiento Una red neuronal tiene una habilidad natural para la clasificación de patrones que puede ser explotada directamente para obtener invarianza ante transformaciones como sigue. La red es entrenada presentándole muchos ejemplos diferentes del mismo objeto, correspondiéndose estos ejemplos con distintas transformaciones del objeto. Proporcionando un número de ejemplos suficientemente grande y entrenando la red para discriminar las diferentes transformaciones del objeto, podemos esperar que la red generalice correctamente otras transformaciones que no le han sido mostradas. Sin embargo, desde una perspectiva ingeniera, la invarianza por entrenamiento tiene dos desventajas. Primero, cuando una red neuronal ha sido entrenada para reconocer un objeto de manera invariante, no es obvio que este entrenamiento sea capaz de hacer que la red reconozca otros objetos de clases diferentes de forma invariante. Y segundo, los requerimientos de cálculo pueden ser demasiado elevados. 3. Invarianza por extracción de características 12 Este método consiste en extraer características, invariantes a transformaciones de la entrada, que muestren la información esencial contenida en un conjunto de datos de entrada. El uso de un espacio con características invariantes nos proporciona tres ventajas: el número de características aplicadas a la red puede ser reducido a niveles realistas, se relajan los requerimientos impuestos en el diseño de la red y la invarianza para todos los objetos con respecto a las transformaciones conocidas está garantizada. En conclusión, este método es la técnica más adecuada para los clasificadores neuronales. 2.5 Inteligencia artificial y redes neuronales El objetivo de la inteligencia artificial (IA) es el desarrollo de paradigmas o algoritmos requeridos por las máquinas para realizar tareas que aparentemente requieren de conocimiento cuando son realizadas por humanos. En la definición anterior hemos hablado de conocimiento y no de inteligencia, ya que entre las tareas abordadas por la IA se encuentran la percepción y el lenguaje, así como la solución de problemas y procesos conscientes e inconscientes. Un sistema IA debe ser capaz de hacer tres cosas: almacenar conocimiento, aplicar el conocimiento almacenado a resolver problemas, y adquirir nuevos conocimientos a través de la experiencia. Todo sistema IA tiene tres componentes fundamentales: 1. Representación. La característica más distintiva de los sistemas IA es, probablemente, el uso dominante de un lenguaje de estructuras de símbolos para representar tanto el conocimiento general sobre un problema de interés como el conocimiento específico sobre la solución del problema. Los símbolos son formulados, normalmente, en términos familiares, lo que hace que las representaciones simbólicas de los sistemas IA sean fáciles de entender para el ser humano. El término conocimiento no es más que otro término para datos para los desarrolladores de sistemas IA. Éste puede ser declarativo o procesal. En una representación declarativa, el conocimiento es representado como una colección estática de hechos, con un pequeño conjunto de procedimientos generales para manipular los hechos. Una característica de este tipo de representaciones es que estos datos tienen significado por sí mismos. En una representación procesal, por el contrario, el conocimiento está incluido en un código ejecutable. 2. Razonamiento En su forma más básica, el razonamiento es la habilidad para resolver problemas. Un sistema, para que sea capaz de razonar, debe satisfacer ciertas condiciones: · El sistema debe ser capaz de expresar y solucionar un amplio rango de problemas y tipos de problemas. · El sistema debe ser capaz de hacer explícita cualquier información implícita conocida por él. 13 · El sistema de tener un mecanismo de control que determine qué operaciones aplicar a un determinado problema, cuándo se ha obtenido una solución para el problema, o cuándo un trabajo posterior sobre el problema debería ser terminado. En muchas situaciones dadas en la práctica, el conocimiento disponible es incompleto o inexacto. En semejantes situaciones, se usan los procedimientos de razonamiento probabilístico, permitiendo a los sistemas IA tener en cuenta lo incierto del problema. 3. Aprendizaje En un modelo simple de máquina con aprendizaje, el entorno suministra alguna información a un elemento de aprendizaje; esta información es usada luego para realizar mejoras en la base del conocimiento, y, finalmente, el elemento de actuación usa la base del conocimiento para realizar su tarea. Generalmente, la información suministrada por la máquina al entorno es imperfecta, de forma que el elemento de aprendizaje no sabe de antemano cómo rellenar detalles ocultos o ignorar detalles que no son importantes. La máquina opera, por lo tanto, adivinando y recibiendo, más tarde, realimentación por parte del elemento de actuación. El mecanismo de realimentación permite a la máquina evaluar sus hipótesis y revisarlas en caso de que sea necesario. El aprendizaje puede involucrar dos clases diferentes de procesamiento de información: inductivo y deductivo. En el procesamiento de información inductivo, los patrones y reglas generales se determinan por medio de datos sin procesar y de la experiencia. Por otro lado, en el procesamiento de información deductivo, las reglas generales son usadas para determinar hechos específicos. Para poder realizar una comparación entres los sistemas IA y las redes neuronales, tenemos tres niveles o subdivisiones: 1. Nivel de explicación En un sistema IA clásico, el énfasis está en construir representaciones simbólicas que suelen ser discretas y arbitrarias. Desde el punto de vista del conocimiento, es incuestionable que los sistemas IA asumen la existencia de representaciones mentales y modelan el conocimiento como un procesamiento secuencial de representaciones simbólicas. Sin embargo, en las redes neuronales, el énfasis está en el desarrollo de modelos de procesamiento distribuidos en paralelo; modelos que asumen que el procesamiento de la información tenga lugar a través de la interacción de un elevado número de neuronas, cada una de las cuales envían señales excitatorias e inhibitorias a otras neuronas de la red. 2. Estilo de procesamiento Mientras que en los sistemas IA el procesamiento es secuencial (como en un programa típico de ordenador), en las redes neuronales el procesamiento es en paralelo, constituyendo una de sus principales características. 3. Estructura e las representaciones Para los sistemas IA clásicos, nos encontramos con que las representaciones simbólicas poseen una estructura cuasi-lingüística. Sin embargo, en el caso de las redes neuronales, en las que la naturaleza y estructura de las representaciones es un problema crucial, las 14 representaciones son distribuidas Resumiendo, podemos describir a los sistemas IA como una manipulación formal de un lenguaje de algoritmos y representaciones de datos de manera descendente. Por el contrario, podemos describir las redes neuronales como procesadores distribuidos en paralelo con una natural capacidad de aprendizaje, y que, usualmente, operan de manera ascendente. 15