lunes, 28 de enero de 2008

Modelos Supervisados de Redes Neuronales

Modelos Supervisados

Las ANNs de entrenamiento supervisado constituyen la línea fundamental de desarrollo en este campo. Algunos ejemplos bien conocidos de las primeras redes son red perceptrón , ADALINE/MADALINE, y varias redes multicapa. En el entrenamiento supervisado hay dos fases a realizar: fase de prueba and fase de entrenamiento.

En el entrenamiento Supervisado, los patrones de entrenamiento se dan en forma de pares de entrada/maestro, , donde M es el número de pares de entrenamiento. Dependiendo de la naturaleza de la información del maestro, hay dos aproximaciones al entrenamiento supervisado. Uno se basa en la corrección a partir dde una decisión y la otra se basa en la optimización de un criterio de coste. De la última, la aproximación del error cuadrático medio es el más importante. Las formulaciones de decisión y aproximación difieren en la información que tienen los maestros y la forma de usarla.


Modelos No Supervisados de Redes Neuronales

MODELOS NO SUPERVISADOS

La capacidad de clasificación de la red neuronal depende del valor de los pesos sinápticos, que pueden ser preestablecidos o entrenados adaptativamente mediante mecanismos de aprendizaje. Las NNs se pueden clasificar, atendiendo a como sean entrenados los pesos sinápticos, en dos grandes categorías: estas son los modelos supervisados y los no supervisados.

Una clase de modelos de entrenamiento no supervisado son las redes de pesos fijos Un ejemplo son las redes de Memoria Asociativa, que se usan para obtener patrones originales libres de ruido a partir de señales incompletas o distorsionadas. La principal característica de las redes asociativas de pesos fijos es que sus pesos son preestablecidos y precalculados. Aquí se encuentran los modelos de Redes de Memoria proasociativa y las Redes de Memoria Retroasociativa, tambien llamadas Modelos de Hopfield.

Los modelos de pesos fijos tienen aplicaciones limitadas ya que no se pueden adaptar a "ambientes cambiantes". Hay otra variedad de redes no supervisadas, llamadas Redes de Aprendizaje Competitivo , cuyos pesos se adaptan de acuerdo con reglas de aprendizaje no supervisadas. Estas redes pueden aprender en ausencia de un maestro. En otras palabras, el entrenamiento se basa únicamente en la información de los patrones de entrada. La clase de redes de aprendizaje competitivo se componen, por ejemplo, de la Red de Autoorganización.

Redes de Memoria Proasociativa

Como se muestra en la siguiente figura, una red de asociación básica tiene una capa de neuronas de entrada y una capa de neuronas de salida. Un patrón de entrada X se representa como un punto en el espacio vectorial real-continuo o binario, llamado o , respectivamente.

Memoria Asociativa Lineal (LAM)

Una red de memoria asociativa es matemáticamente un mapeado de un espacio de entrada sobre uno de salida. Las redes de memoria asociativa se pueden usar tanto para las aplicaciones autoasociativas como para las heteroasociativas. En las aplicaciones autoasociativas, la dimensión del espacio de entrada es igual al de salida. Por otro lado, en la aplicación heteroasociativa, la dimensión del espacio de entrada y del espacio de salida son en general diferentes. Los valores de entrada y de salida pueden ser reales o binarios.

Una LAM es una red de una capa de propagación. La LAM se deriva de un conjunto de pares de patrones de entrada/salida . Aquí la entrada es , y la salida es para m=1, 2,...., M, donde denota la traspuesta del vector o matríz. El objetivo de LAM es recuperar el patrón de salida basado en la información total o parcial del patrón de entrada. Revisaremos dos casos: Patrones de Entrada de valor Continuo y Patrones de entrada de valor binario.

Redes de Aprendizaje Competitivo

Una red básica de aprendizaje competitivo tiene una capa de neuronas de entrada y una capa de neuronas de salida. Un patrón de entrada x es un simple punto en el espacio real o binario de vectores n-dimensional. Los valores binarios (0 ó 1) de representación local son más usados en los nodos de salida. Esto es, hay tantas neuronas de salida como número de clases y cada nodo de salida representa una categoría de patrones.

Una red de aprendizaje competitivo está formada por una(s) red(es) excitadora hacia adelante y la(s) red(es) inhibidora(s) lateral(es). La red hacia adelante normalmente implementa una regla de excitación de aprendizaje de Hebb . Esta regla consiste en que cuando una neurona participa constantemente en activar una neurona de salida, la influencia de la neurona de entrada es aumentada. La red lateral es inhibidora por naturaleza. Esta red realiza la misión de selecionar el ganador, normalmente por medio de un método de aprendizaje competitivo, de entre los que podemos reseñar el esquema de "winner-take-all"(el ganador lo toma todo) . En un circuito "winner-take-all", la neurona de salida que da el valor más alto se le asigna el valor total (por ejemplo, 1), mientras que todas las demás se le da un valor de 0. El circuito de "winner-take-all" se implementa por una red (digital o analógica) MAXNET. Otro ejemplo de una red lateral son los Mapas de Kohonen en las cuales, se deja que las neuronas de salida interactúen por medio de la red lateral, con lo que el modelo se puede entrenar para guardar cierto orden topológico.

Los procedimientos de clasificación no supervisados se basan a menudo en algunas técnicas de clasificación, que forman grupos de patrones parecidos. Estaa técnica de clasificación es muy útil para la clasificación. Además, juega un papel muy importante en las redes de aprendizaje competitivo. Para un procedimiento de clasificación, es necesario definir una distancia o medida de similaridad, para evaluar el grado de semejanza de los patrones. Alguna de estas distancias están en la siguiente lista, y entre ellas la más común es la distancia euclídea.

  1. Producto interno:
  2. Distancia Euclídea con Pesos.

Redes de Aprendizaje Competitivo básicas

Sin la supervisión de ningún maestro, las redes no supervisadas adaptan los pesos y verifican los resultados únicamente a partir de los patrones de entrada. Un esquema que se usa mucho para la adaptación de los pesos es la regla de aprendizaje competitivo, que hace que las células compitan por el derecho a responder por ellas mismas por un determinado tipo de entrada. Esto se puede ver como un sitema muy sofisticado de clasificación, cuyo objetivo es dividir un conjunto de patrones de entrada en un número de clases tal que los patrones de la misma clase exhiben un cierto grado de similaridad. Las reglas de entrenamiento suelen ser la regla de Hebb para la red de propagación y la regla de "winner-take-all" (WTA) para la red lateral.

Modelo básico de Aprendizaje

Un sistema de este tipo consiste en redes laterales y de propagación hacia adelante con un número fijo de nodos de salida, esto es, un número fijo de clases. Los nodos de entrada y salida tienen valores binarios únicamente. Cuando y sólo cuando los dos, la entrada ith y la salida j th; de otra forma . Dado el valor de los pesos sinápticos i con la salida j, wij, y el estímulo k-th, una posible regla de aprendizaje es están activadas,
donde g es una pequeña constante, es el número de unidades de entradas activas del patrón k, si la señal de entrada i es alta para el patrón kth y en otro caso .

Reglas de entrenamiento basadas en pesos normalizados

Con el fin de asegurar un ambiente de competición equitativo, las suma de todos los pesos que van a dar las neuronas de salida deben estar normalizados. Si los pesos conectados a un nodo de salida j son , entonces .
Entonces, si una unidad gana la competición, cada una de sus líneas de entrada cede una proportción g de su peso, y la l distribuye igualmente entre las líneas de entrada activas.

Una característica importante de esta regla de entrenamiento es que la normalización es incorporada en el momento de la actualización, de forma que la suma de los pesos sinápticos a cualquier salida es 1.

Reglas de aprendizaje para "Leaky Learning" (aprendizaje débil)

Con el fin de preveer la existencia de neuronas que no aprenden en totalidad, se usa el aprendizaje débil. Puesto que una neurona solo aprende si gana en algún momento, es posible que una célula nunca gane, y por lo tanto nunca aprenda. Una forma de solucionar este problema es que todos los pesos de la red intervengan en el entrenamiento con distintos niveles de aprendizaje. Esto se practica en la siguiente regla de aprendizaje débil:
En esta regla el parámetro es unas ordenes de magnitud más pequeño que . Por lo tanto, las neuronas que pierden en la competición sufren un aprendizaje menor que las neuronas ganadoras. Este cambio tiene la propiedad de que las neuronas perdedoras se van desplazando hacia la región donde yace el estímulo actual, donde empiezan a capturar algunas unidades, superando a las técnicas dinámicas convencionales.

Redes Neuronales

Las Redes Neuronales

Las Redes Neuronales Artificiales
(ANNs de Artificial Neural Networks) fueron originalmente una simulación abstracta de los sistemas nerviosos biológicos, formados por un conjunto de unidades llamadas "neuronas" o "nodos" conectadas unas con otras. Estas conexiones tienen una gran semejanza con las dendrítas y los axones en los sistemas nerviosos biológicos.

El Primer modelo de red neuronal fue propuesto en 1943 por McCulloch y Pitts en términos de un modelo computacional de "actividad nerviosa". El modelo de McCulloch-Pitts es un modelo binario, y cada neurona tiene un escalón o umbral prefijado. Este primer modelo sirvió de ejemplo para los modelos posteriores de Jhon Von Neumann, Marvin Minsky, Frank Rosenblatt, y muchos otros.

Una primera clasificación de los modelos de ANNs podría ser, atendiendo a su similitud con la realidad biológica:

  1. Los modelos de tipo biológico. Este comprende las redes que tratan de simular los sistemas neuronales biológicos así como las funciones auditivas o algunas funciones básicas de la visión.
  2. El modelo dirigido a aplicación. Estos modelos no tienen porque guardar similitud con los sistemas biológicos. Sus arquitecturas están fuertemente ligadas a las necesidades de las aplicaciones para las que son diseñados.

Redes Neuronales de tipo Biológico

Se estima que el cerebro humano contiene más de cien mil millones () de neuronas y sinápsis en el sistema nervioso humano. 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 las actuales elementos de las computadoras, ellas tienen una conectividad miles de veces superior que las actuales supercomputadoras.
El objetivo principal de de las redes neuronales de tipo biológico es desarrollar un elemento sintético para verificar las hipótesis que conciernen a los sistemas biológicos.

Las neuronas y las conexiones entre ellas (sinápsis) constituyen la clave para el procesado de la información. Observe la figura:

La mayor parte de las neuronas poseen una estructura de árbol llamadas dendritas que reciben las señales de entrada que vienen de otras neuronas a través de la uniones llamadas sinápsis. Algunas neuronas se comunican solo con las cercanas, mientras que otras se conectan con miles.

Hay tres partes en una neurona:

  1. el cuerpo de la neurona,
  2. ramas de extensión llamadas dentrías para recibir las entradas, y
  3. un axón que lleva la salida de la neurona a las desdirías de otras neuronas.
La forma que dos neuronas interactuan 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(.).



Redes Neuronales para aplicaciones concretas

Las ANNs dirigidas a aplicación están en general poco ligadas a las redes neuronales biológicas. Ya que el conocimiento que se posee sobre el sistema nervioso en general no es completo, se han de definir otras funcionalidades y estructuras de conexión distintas a las vistas desde la perspectiva biológica. Las características principales de este tipo de ANNs son los siguientes:
  1. Auto Organización y Adaptatividad: utilizan algoritmos de aprendizaje adaptativo y auto organización, por lo que ofrecen posibilidades de procesado robusto y adaptativo (véase entrenamiento adaptativo y redes auto organizativas).

  2. Procesado No Lineal: aumenta la capacidad de la red de aproximar, clasificar y su inmunidad frente al ruido.

  3. Procesado paralelo: normalmente se usa un gran número de células de procesado por el alto nivel de interconectividad.
Estas características juegan un importante papel en las ANNs aplicadas al procesado de señal e imagen. Una red para una determinada aplicación presenta una arquitectura muy concreta, que comprende elementos de procesado adaptativo masivo paralelo combinadas con estructuras de interconexión de red jerárquica.

Taxonomía de las Redes Neuronales

Existen dos fases en toda aplicación de las redes neuronales: la fase de aprendizaje o entrenamiento y la fase de prueba. En la fase de entrenamiento, se usa un conjunto de datos o patrones de entrenamiento para determinar los pesos (parámetros de diseño) que definen el modelo neuronal. Una vez entrenado este modelo, se usará en la llamada fase de prueba o funcionamiento directo, en la que se procesan los patrones de prueba que constituyen la entrada habitual de la red, analizándose de esta manera las prestaciones definitivas de la red.

  • Fase de Prueba: los parámetros de diseño de la red neuronal se han obtenido a partir de unos patrones representativos de las entradas que se denominan patrones de entrenamiento. Los resultados pueden ser tanto calculados de una vez como adaptados iteractivamente, según el tipo de red neuronal, y en función de las ecuaciones dinámicas de prueba. una vez claculados los pesos de la red, los valores de la neuronas de la última capa, se comparan con la salida deseada para determinar la validez del diseño.
  • Fase de Aprendizaje: una característica de las redes neuronales es su capacidad de aprender. Aprenden por la actualización o cambio de los pesos sinápticos que caracterizan a las conexiones. Los pesos son adaptados de acuerdo a la información extraída de los patrones de entrenamiento nuevos que se van presentando. Normalmente, los pesos óptimos se obtienen optimizando (minimizando o maximizando) alguna "función de energía". Por ejemplo, un criterio popular en el entrenamiento supervisado es minimizar el least-square-error (error cuadrático medio) entre el valor del maestro y el valor de salida actual.
Las aplicaciones del mundo real deben acometer dos tipos diferentes de requisitos en el procesado. En un caso, se requiere la prueba en tiempo real pero el entrenamiento ha de realizarse "fuera de linea". En otras ocasiones, se requieren las dos procesos, el de prueba y el de entrenamiento en tiempo real. Estos dos requisitos implican velocidades de proceso muy diferentes, que afectan a los algoritmos y hardware usados.

Atendiendo al tipo de entrenamiento, una posible taxonomía de las redes neuronales es:

 
Redes Neuronales
Fijo
No supervisado
Supervisado
Red de Hamming
Mapa de características
Basadas en decisión
Red de Hopfield
Aprendizaje competitivo
Perceptrón


ADALINE (LMS)


Perceptrón Multicapa


Modelos Temporales Dinámicos


Modelos Ocultos de Markov

Redes Neuronales Supervisadas y no Supervisadas

Las redes neuronales se clasifican comúnmente en términos de sus correspondientes algoritmos o métodos de entrenamiento: redes de pesos fijos, redes no supervisadas, y redes de entrenamiento supervisado. Para las redes de pesos fijos no existe ningún tipo de entrenamiento.

Reglas de entrenamiento Supervisado

Las redes de entrenamiento supervisado han sido los modelos de redes más desarrolladas desde inicios de estos diseños. Los datos para el entrenamiento están constituidos por varios pares de patrones de entrenamiento de entrada y de salida. El hecho de conocer la salida implica que el entrenamiento se beneficia la supervisión de un maestro. Dado un nuevo patrón de entrenamiento, por ejemplo, (m+1)-ésimo, los pesos serán adaptados de la siguiente forma:
Se puede ver un diagrama esquemático de un sistema de entrenamiento supervisado en la siguiente figura:

Reglas de entrenamiento No Supervisado

Para los modelos de entrenamiento No Supervisado, el conjunto de datos de entrenamiento consiste sólo en los patrones de entrada. Por lo tanto, la red es entrenada sin el beneficio de un maestro. La red aprende a adaptarse basada en las experiencias recogidas de los patrones de entrenamiento anteriores. Este es un esquema típico de un sistema "No Supervisado":
Ejemplos típicos son La Regla de Aprendizaje de Hebb, y la Regla de Aprendizaje Competitiva. Un ejemplo del primero consiste en reforzar el peso que conecta dos nodos que se excitan simultáneamente.

Como ejemplo de aprendizaje competitivo, si un patrón nuevo se determina que pertenece a una clase reconocida previamente, entonces la inclusión de este nuevo patrón a esta clase matizará la representación de la misma. Si el patrón de la entrada se determinó que no pertenece a ninguna de las clases reconocidas anteriormente, entonces la estructura y los pesos de la NN serán ajustados para reconocer la nueva clase.

Estructuras de las Redes Neuronales Artificiales

Los aspectos más característicos de las estructuras son la estructura de conexión, el tamaño de la red y la elección entre ACON y OCON.

Estructuras de conexión de atrás hacia delante

Una red neuronal se determina por la neurona y la matriz de pesos . El comportamiento de la red depende en gran medida del comportamiento de la matriz de pesos. Hay tres tipos de capas de neuronas: la de entrada, las ocultas y la de salida. Entre dos capas de neuronas existe una red de pesos de conexión, que puede ser de los siguientes tipos: Hacia delante, hacia atrás, lateral y de retardo, tal como puede verse en la siguiente figura:

  1. Conexiones hacia delante: para todos los modelos neuronales, los datos de las neuronas de una capa inferior son propagados hacia las neuronas de la capa superior por medio de las redes de conexiones hacia adelante.
  2. Conexiones hacia atrás: estas conexiones llevan los datos de las neuronas de una capa superior a otras de la capa inferior.
  3. Conexiones laterales. Un ejemplo típico de este tipo es el circuito "el ganador toma todo" (winner-takes-all), que cumple un papel importante en la elección del ganador.
  4. Conexiones con retardo: los elementos de retardo se incorporan en las conexiones para implementar modelos dinámicos y temporales, es decir, modelos que precisan de memoria.
Las conexiones sinópticas pueden ser total o parcialmente interconectadas, como muestra la figura. También es posible que las redes sean de una capa con el modelo de pesos hacia atrás o bien el modelo multicapa hacia adelante. Es posible así mismo, el conectar varias redes de una sola capa para dar lugar a redes más grandes.

Tamaño de las Redes Neuronales

En una red multicapa de propagación hacia delante, puede haber una o más capas ocultas entre las capas de entrada y salida. El tamaño de las redes depende del numero de capas y del número de neuronas ocultas por capa.
  • Número de capas: en una red multicapa, hay una o más capas de neuronas ocultas entre la entrada y la salida. El número de capas se cuenta a menudo a partir del número de capas de pesos (en vez de las capas de neuronas).
  • Número de unidades ocultas: El número de unidades ocultas está directamente relacionado con las capacidades de la red. Para que el comportamiento de la red sea correcto (esto es, generalización), se tiene que determinar apropiadamente el número de neuronas de la capa oculta.

AproximacionesACON frente a OCON

Abordamos el problema de cuantas redes son necesarias para la clasificación en multicategorias. Típicamente, cada nodo de salida se usa para representar una clase. Por ejemplo, en un problema de reconocimiento alfanumérico, hay 36 clases; así que en total habrá 36 nodos de salida. Dado un patrón de entrada en la fase de prueba, el ganador (i.e., la clase que gana) es normalmente el nodo que tiene el valor más alto a la salida.

Dos posibles tipos de arquitectura son "All-Class-in-One-Network" (ACON), esto es, todas las clases en una red y "One-Class-in-One-Network" (OCON), esto es, una red para cada clase. En la aproximación ACON, todas las clases son reconocidas dentro de una única súper red. En algunos casos es ventajoso descomponer esta macro red en varias subredes mas pequeñas. Por ejemplo, una red de 36 salidas se puede descomponer en 12 subredes, cada una responsable de tres salidas. La descomposición mas extrema es la llamada OCON, donde una subred se dedica para una sola clase. Aunque el número de subredes en la estructura OCON es relativamente largo, cada subred individual tiene un tamaño menor que la red ACON. Esto se puede explicar con las siguientes figuras,

la red entera

se divide en

varias subredes.


Aplicaciones

Con el fin de llegar al entendimiento global de ANNs, adoptamos la siguiente perspectiva, llamada top-down que empieza por la aplicación se pasa al algoritmo y de aquí a la arquitectura:

Esta aproximación a las ANNs está motivada por la aplicación, basada en la teoría y orientada hacia la implementación. Las principales aplicaciones son para el procesado de señal y el reconocimiento de patrones. La primera etapa algorítmica representa una combinación de la teoría matemática y la fundamentación heurística por los modelos neuronales. El fin último es la construcción de neurocomputadores digitales, con la ayuda de las tecnologías VLSI y el procesado adaptativo, digital y paralelo.

Aplicaciones

Desde el punto de vista de la aplicaciones, la ventaja de la ANNs reside en el procesado paralelo, adaptativo y no lineal. Las ANNs han encontrado muchas aplicaciones con éxito en la visión artificial, en el procesado de señales e imágenes, reconocimiento del habla y de caracteres, sistemas expertos, análisis de imágenes médicas, control remoto, control de robots, inspección industrial y exploración científica. El dominio de aplicación de las ANNs se puede clasificar de la siguiente forma: asociación y clasificación, regeneración de patrones, regresión y generalización, y optimización.

Asociación y Clasificación

En esta aplicación, los patrones de entrada estáticos o señales temporales deben ser clasificadas o reconocidas. Idealmente, un clasificador debería ser entrenado para que cuando se le presente una versión distorsionada ligeramente del patrón, pueda ser reconocida correctamente sin problemas. De la misma forma, la red debería presentar cierta inmunidad contra el ruido, esto es, debería ser capaz de recuperar una señal "limpia" de ambientes o canales ruidosos. Esto es fundamental en las aplicaciones holográficas, asociativas o regenerativas.

  • Asociación: de especial interés son las dos clases de asociación: autoasociación y heteroasociación. El problema de la autoasociación es recuperar un patrón enteramente, dada una información parcial del patrón deseado. La heteroasociación es recuperar un conjunto de patrones B, dado un patrón de ese conjunto. Los pesos en las redes asociativas son a menudo predeterminados basados en la regla de Hebb. Normalmente, la auto correlación del conjunto de patrones almacenado determina los pesos en las redes auto asociativas. Por otro lado, la correlación cruzada de muchas parejas de patrones se usa para determinar los pesos de la red de Heteroasociación.
  • Clasificación no Supervisada: para esta aplicación, los pesos sinápticos de la red son entrenados por la regla de aprendizaje no supervisado, esto es, la red adapta los pesos y verifica el resultado basándose únicamente en los patrones de entrada.
  • Clasificación Supervisada: esta clasificación adopta algunas formas del criterio de interpolación o aproximación. En muchas aplicaciones de clasificación, por ejemplo, reconocimiento de voz, los datos de entrenamiento consisten de pares de patrones de entrada y salida. En este caso, es conveniente adoptar las redes Supervisadas, como las bien conocidas y estudiadas redes de retropopagación. Este tipo de redes son apropiadas para las aplicaciones que tienen una gran cantidad de clases con límites de separación complejos.
Completar los patrones

En muchos problemas de clasificación, una cuestión a solucionar es la recuperación la información, esto es, recuperar el patrón original dada sola una información parcial. Hay dos clases de problemas: temporales y estáticos. El uso apropiado de la información con textual es la llave para tener éxito en el reconocimiento.

Generalización

La Generalización. Se puede extender a un problema de interpolación. El sistema es entrenado por un gran conjunto de muestras de entrenamiento basados en un procedimiento de aprendizaje supervisado. Una red se considera que esta entrenada con éxito si puede aproximar los valores de los patrones de entrenamiento y puede dar interpolaciones "suaves" para el espacio de datos no entrenado. El objetivo de la Generalización es dar una respuesta correcta a la salida para un estímulo de entrada que no ha sido entrenado con anterioridad. El sistema debe inducir la característica saliente del estímulo a la entrada y detectar la regularidad. Tal habilidad para el descubrimiento de esa regularidad es crítica en muchas aplicaciones. Esto hace que el sistema funcione eficazmente en todo el espacio, incluso ha sido entrenado por un conjunto limitado de ejemplos. Observe la siguiente figura:

Optimización

Las ANNs son una herramientas interesantes para la optimización de aplicaciones, que normalmente implican la búsqueda del mínimo absoluto de una función de energía:

Una vez que se define la función de energía, entonces la determinación de los pesos sinápticos se hace rápidamente. Para algunas aplicaciones, la función de energía es fácilmente deducible. En otras, sin embargo, esta función de energía se obtiene de ciertos criterios de coste y limitaciones especiales. El mayor problema asociado al problema de optimización es la alta posibilidad de converger hacia un mínimo local, en vez de hacia el mínimo absoluto. Para combatir este problema se utilizan algunas propuestas estadísticas, como por ejemplo procedimientos estocásticos.


Robótica

¿Qué es la robótica?:

La robótica es la ciencia encaminada a diseñar y construir aparatos y sistemas capaces de realizar tareas propias de un ser humano.

Con esta definición tan general, la palabra 'robótica' cubre muchos conceptos diferentes, pero todos giran en torno a la misma idea.

Robots Físicos

Robótica Industrial: Es la parte de la Ingeniería que se dedica a la construcción de máquinas capaces de realizar tareas mecánicas y repetitivas de una manera muy eficiente y con costes reducidos.

Robótica de Servicio: Es la parte de la Ingenieria que se centra en el diseño y construcción de máquinas
capaces de proporcionar servicios directamente a los miembros que forman sociedad.

Robótica Inteligente: Son robots capaces de desarrollar tareas que, desarrolladas en un ser humano, requieren el uso de su capacidad de razonamiento.

Robótica Humanoide: Es la parte de la ingeniería que se dedica al desarrollo de sistemas robotizados para imitar determinadas pecualiaridades del ser humano.

Robots Software

Robótica de Exploración: Es la parte de la Ingenieria del Software que se encarga de desarrollar programas capaces de explorar documentos en busca de determinados contenidos. Existen diversos servicios en Internet dedicados a esta parcela de la robótica.

Con la aparición del concepto 'robot' a principios de siglo XX, se dio el pistoletazo de salida para el desarrollo de sistemas cada vez más autónomos.

Un robot autónomo es un dispositivo robótico capaz de operar por si mismo, en la robótica de servicio es donde más se están prodigando los robots de servicio. ¿En que tipo de situaciones puede ser interesante un robot que sea completamente autónomo? por ejemplo en entornos hostiles:

- Conflictos bélicos.

- Exploración espacial.

- Exploración submarina.

- Rescate en catastrofes.

Pero sin irnos tan lejos, la robótica de servicio combinada con la robótica inteligente nos permitira en un futuro tener conductores autónomos para nuestros coches, entre otras cosas.

Sistemas Expertos: Un gran avance...




DEFINICIÓN DE SISTEMAS EXPERTOS

Bajo el termino de sistemas expertos se encuentran un nuevo tipo de software que imita el comportamiento de un experto humano en la solución de un problema. puede almacenar conocimientos de expertos para un campo determinado y solucionar un problema mediante deducción lógica de conclusiones.

VENTAJAS DE SISTEMAS EXPERTOS

Se crearon sistemas expertos que además basándose en algunas de acción (silogismos) y el análisis de posibilidades nos dan una ayuda muy útil, en todas las ramas de la acción humana. De este modo se crearon sistemas expertos para tareas genéricas: es decir para la monitorización y el diagnostico, además de los trabajos de simulación de la realidad. se esta usando en gran medida para la monitorización y diagnóstico: como en plantas de energía, grandes industrias, cohetes, control de trafico aéreo, búsqueda de yacimientos petrolíferos y hasta hospitales.


DESVENTAJAS DE SISTEMAS EXPERTOS


Tiene sus limitaciones propias, al ser un especialista en tan solo un área, pero un completo idiota en casi todas las otras ramas del pensamiento humano y al ser rule-base-sistgms (sistemas basados en reglas fijas), donde se pierden algunas veces la creatividad y un sentido común.


CAPACIDADES DE LOS SISTEMAS EXPERTOS

Los siguientes expertos se aplican por norma general en problemas que implican un procedimiento basado en el conocimiento. Un procedimiento de solución basado en el conocimiento comprende las siguientes capacidades.

  1. Utilización de normas o estructuras que contengan conocimiento y experiencias de expertos especializados.

  2. Deducción lógica de conclusiones.

  3. Capaz de interpretar datas ambiguos.

  4. Manipulación de conocimientos afectados por valores de probabilidad


    FUNCIÓN DE SISTEMAS EXPERTOS

    La función de un sistemas experto es la de aportar soluciones a problemas, como si de humanos se tratara, es decir, capaz de mostrar soluciones inteligentes. Es posible gracias a que al sistema lo crean con expertos (humanos), que intentan estructuran y formatean conocimientos poniéndolos a disposición del sistema, para que este pueda resolver una función dentro del ámbito del problemas, de igual forma que lo hubiera hecho un experto acceder a los conocimientos adquiridos por experiencia es lo mas difícil, ya que los expertos, al igual que otras personas, apenas lo reconocen como tales. Son buscados con mucho esfuerzo y cuidado siendo descubiertos de uno en uno, poco a poco.

COMPONENTES DE UN SISTEMAS EXPERTOS


La base de conocimientos:

La base de conocimientos contiene todos los hechos, las reglas y los procedimientos del dominio de aplicación que son importantes para la solución del problema. Contiene el conocimiento de los hechos y la experiencia de los expertos de un dominio determinado.

Un sistema experto contiene conocimiento de los hechos y de las experiencias de los expertos en un dominio determinado.

El mecanismo de inferencia de un sistema experto puede simular la estrategia de solución de un experto. Es la unidad lógica con la que se extraen conclusiones de la base de conocimiento, según un método fijo de solución de problemas que esta configurado, limitando el procedimiento humano de los expertos para solucionar problemas.

Una conclusión se produce mediante aplicación de las reglas sobre hechos presentes. Las funciones de mecanismo de inferencia son:


    1. Determinación de las acciones que tendrá lugar, el orden en que lo harán y como lo harán entre las diferentes partes del sistema experto.

    2. Determinar como y cuando se procesaran las reglas, y dado el caso también la elección de que reglas deberán procesarse.

    3. Control de dialogo con el usuario.

El componente explicativo:

Explica al usuario la estrategia de solución encontrada y el porque de las decisiones tomas. Las soluciones descubiertas por los expertos deben poder ser repetibles, tanto por lo el ingeniero del conocimiento en la base de comprobación, así como por usuario. La exactitud de los resultados, sólo podrá ser controlada, naturalmente por los expertos. siempre es deseable que durante el trabajo de desarrollo del sistema se conozca el grado de progreso en el procesamiento del problema.

A pesar de insistir sobre la importancia del componente explicativo es muy difícil y hasta ahora no se han conseguido cumplir todos los requisitos de un buen componente explicativo. Muchos representan el progreso y la consulta al sistema de forma gráfica, además los componentes explicativos intentan ajustar su función rastreando hacia atrás el camino de la solución. aunque encontrar la forma de representar finalmente en un texto lo suficiente inteligible las soluciones encontradas depara las mayores dificultades.

Los componentes explicativos pueden ser suficientes para el ingeniero del conocimiento, ya que esta muy familiarizado con el entorno del conocimiento de datos y a veces basta también para el experto, pero para el usuario, que a menudo desconoce las sutilizas del conocimiento de datos, los compones explicativos son todavía un poco satisfactorios.


La interfaz del usuario:

Sirve para que éste pueda realizar una consulta en un lenguaje lo más natural posible. Este componente es la forma en la que el sistemas se presenta ante el usuario.

Requisitos o características de la interfase que se presenta al usuario al desarrollar el sistema.

1. El aprendizaje del manejo debe ser rápido.
2. Debe evitarse en lo posible la entrada de datos erróneos.
3. Los resultados deben presentarse en una forma clara para el usuario.
4. Las preguntas y explicaciones deben ser comprensibles.


El componente de adquisición

Ofrece ayuda a la estructuración e implementación del conocimiento en la base de conocimientos. Un buen componente de adquisición ayudara considerablemente la labor del ingeniero del conocimiento. Este puede concentrarse principalmente en la estructuración del conocimiento sin tener que dedicar tanto tiempo en la actividad de programación. Daremos una reglas o requisitos de nuestro componente de adquisición.

Requisitos o características del componentes de adquisición.

1. El conocimiento, es decir, las reglas, los hechos, las relaciones entre los hechos, debe poder introducirse de la forma mas sencilla posible.

2. Posibilidades de representación clara en todas la informaciones contenida en una base de conocimientos.

3. Comprobación automática de la sintaxis.

4. Posibilidad constante de acceso al lenguaje de programación.



CARACTERÍSTICAS


CAPACIDAD DE INFERENCIA DEDUCTIVA:


Esto significa que los agentes no solo deben recuperar la información almacenada en la base de datos, sino hacer deducciones usando información para hacer deducciones que produzcan nuevas informaciones para la base de datos.

CRECIMIENTO DINÁMICO:

Porque los datos y las reglas están sujetas a constante revisión, es decir, es fácil devorar o modificar los datos.

COLECCIÓN INTEGRADA DE CONOCIMIENTO:

Los agentes que constituyen el sistema pueden representar los juicios de muchos expertos en varias partes del globo. Estas experiencias son guardadas en un solo lugar por lo que es posible la utilización luego por los expertos o no expertos también. Sin embargo, la real utilidad de ese sistema es que permite un constante intercambio de datos y juicios de lideres expertos, y esto permite la formación de nuevas reglas e ideas acerca del tema.

DIFERENCIA ENTRE EXPERTO HUMANO Y EXPERTO ARTIFICIAL


EXPERTO HUMANO
EXPERTO ARTIFICIAL
NO PERDURABLE PERMANENTE
DIFÍCIL DE TRANSFERIR FÁCIL
DIFÍCIL DE DOCUMENTAR FÁCIL
IMPREDECIBLE CONSISTENTE
CARO ALCANZABLE
CREATIVO NO INSPIRADO
ADAPTATIVO NECESITA SER ENSEÑADO
EXPERIENCIA PERSONAL ENTRADA SIMBÓLICA
ENFOQUE AMPLIO ENFOQUE CERRADO
CONOCIMIENTO DEL SENTIDO COMÚN CONOCIMIENTO TÉCNICO



DESARROLLO DE LOS SISTEMAS EXPERTOS


Para desarrollar el software primero conocemos el equipo de gente necesario, después los métodos que y utiliza ese equipo de gente y por ultimo como prueban y construyen prototipos de software para terminar en el sistema final.

    1. Equipos de desarrollo
1.1 Expertos
1.2 El ingeniero del conocimiento
1.3 El usuario


    2. Métodos auxiliares en el desarrollo:
La eficiencia en la creación de sistemas expertos puede aumentarse en gran medida con la aplicación de shells.

Un shell es un sistema experto que contiene una base de conocimientos vacía. Existe el mecanismo de inferencia, el componente explicativo y a veces también la interfaz del usuario.


    3. construcción de prototipos
la implantación de un prototipo de sistema experto que le permite llevar a cabo las funciones mas importantes de éste, aunque con esfuerzo de desarrollo considerablemente inferior al de una implementación convencional. Este proceder se define bajo el nombre de “rapid prototyping”.


SISTEMAS EXPERTOS UTILIZADOS EN EL MUNDO


DENDRAL::
Es capaz de calcular o descubrir hechos relativos a las estructuras moleculares a partir de unos datos químicos sin elaborar.

MYCIN:
el mas famoso de todos, diagnostica infecciones en la sangre y meningitis y además sugiere el tratamiento que se debe seguir en cada caso.

PUFF:
el hermano menor de MYCIN, que diagnostica y trata enfermedades del pulmón.

MOLGENO:
ayuda a los biólogos que trabajan en el campo del DNA y la ingeniería genética.

PROGRAMMERS APPRENTICE:
Se trata de un sistema que ayuda a la escritura de programas.

EURISKO:
Sistema experto capaz de aprender a medida que funciona, que crea circuitos microelectricos

GENESIS:
Permite a los científicos planificar y simular experimentos en el campo de la unión de genes

EXPERT SYSTEMAS TO COMBAT INETRNATIONAL TERRORRISM:
ayuda a los expertos a la escritura de programas

LEGAL DECISIONMAKING


TATR

TWIRL:
Simulaciones de guerras completas y guia de mejores acciones posibles a realizar, en casi todas las situaciones.

RI:
Programa utilizado para el descubrimiento de yacimientos petrolíferos bajo aguas marinas.

Concepto, Características y Metodologías de La Inteligencia Artificial


Concepto

La Inteligencia Artificial es una combinación de la ciencia del computador, fisiología y filosofía, tan general y amplio como eso, es que reune varios campos (robótica, sistemas expertos, por ejemplo), todos los cuales tienen en común la creación de máquinas que pueden pensar.

La de idea construir una máquina que pueda ejecutar tareas percibidas como requerimientos de inteligencia humana es un atractivo. Las tareas que han sido estudiadas desde este punto de vista incluyen juegos, traducción de idiomas, comprensión de idiomas, diagnóstico de fallas, robótica, suministro de asesoría experta en diversos temas.
Es así como los sistemas de administración de base de datos cada vez más sofisticados, la estructura de datos y el desarrollo de algoritmos de inserción, borrado y locación de datos, así como el intento de crear máquinas capaces de realizar tareas que son pensadas como típicas del ámbito de la inteligencia humana, acuñaron el término Inteligencia Artificial en 1956.

La Inteligencia Artificial trata de conseguir que los ordenadores simulen en cierta manera la inteligencia humana. Se acude a sus técnicas cuando es necesario incorporar en un sistema informático,conocimiento o características propias del ser humano.

Podemos interrogar a algunas bases de datos de Internet en lenguaje natural, o incluso charlar con ellas nuestro idioma, porque por detrás se está ejecutando un programa de Inteligencia Artificial.

Otras herramientas inteligentes pueden utilizarse para escrutar entre los millones de datos que se generan en un banco en busca de patrones de comportamiento de sus clientes o para detectar tendencias en los mercados de valores.

Características de la Inteligencia Artificial.

  1. Una característica fundamental que distingue a los métodos de Inteligencia Artificial de los métodos numéricos es el uso de símbolos no matemáticos, aunque no es suficiente para distinguirlo completamente. Otros tipos de programas como los compiladores y sistemas de bases de datos,también procesan símbolos y no se considera que usen técnicas de Inteligencia Artificial.

  2. El comportamiento de los programas no es descrito explícitamente por el algoritmo. La secuencia de pasos seguidos por el programa es influenciado por el problema particular presente. El programa especifica cómo encontrar la secuencia de pasos necesarios para resolver un problema dado (programa declarativo). En contraste con los programas que no son de Inteligencia Artificial, que siguen un algoritmo definido, que especifica, explícitamente, cómo encontrar las variables de salida para cualquier variable dada de entrada (programa de procedimiento).

  3. Las conclusiones de un programa declarativo no son fijas y son determinadas parcialmente por las conclusiones intermedias alcanzadas durante las consideraciones al problema específico. Los lenguajes orientados al objeto comparten esta propiedad y se han caracterizado por su afinidad con la Inteligencia Artificial.

  4. El razonamiento basado en el conocimiento, implica que estos programas incorporan factores y relaciones del mundo real y del ámbito del conocimiento en que ellos operan. Al contrario de los programas para propósito específico, como los de contabilidad y cálculos científicos; los programas de Inteligencia Artificial pueden distinguir entre el programa de razonamiento o motor de inferencia y base de conocimientos dándole la capacidad de explicar discrepancias entre ellas.

  5. Aplicabilidad a datos y problemas mal estructurados, sin las técnicas de Inteligencia Artificial los programas no pueden trabajar con este tipo de problemas. Un ejemplo es la resolución de conflictos en tareas orientadas a metas como en planificación, o el diagnóstico de tareas en un sistema del mundo real: con poca información, con una solución cercana y no necesariamente exacta.

Diferentes metodologías:

1.La lógica difusa: permite tomar decisiones bajo condiciones de incerteza.

2.Redes neuronales: esta tecnología es poderosa en ciertas tareas como la clasificación y el reconocimiento de patrones. Está basada en el concepto de "aprender" por agregación de un gran número de muy simples elementos.

Este modelo considera que una neurona puede ser representada por una unidad binaria: a cada instante su estado puede ser activo o inactivo. La interacción entre las neuronas se lleva a cabo a través de sinapsis. Según el signo, la sinapsis es excitadora o inhibidora.
El perceptrón está constituido por las entradas provenientes de fuentes externas, las conexiones y la salida. En realidad un perceptrón es una Red Neuronal lo más simple posible, es aquella donde no existen capas ocultas.

Para cada configuración de los estados de las neuronas de entrada (estímulo) la respuesta del perceptrón obedece a la siguiente dinámica: se suman los potenciales sinápticos y se comparan con un umbral de activación. Esta suma ponderada es también llamada campo. Si el campo es mayor que un umbral, la respuesta de la neurona es activa, si no, es inactiva.
Con una arquitectura tan simple como la del perceptrón no se puede realizar más que una clase de funciones "booleanas" muy simples, llamadas linealmente separables. Son las funciones en las cuales los estados de entrada con salida positiva pueden ser separados de aquellos a salida negativa por un hiperplano. Un hiperplano es el conjunto de puntos en el espacio de estados de entrada, que satisfacen una ecuación lineal. En dos dimensiones, es una recta, en tres dimensiones un plano, etc.

Si se quieren realizar funciones más complejas con Redes Neuronales, es necesario intercalar neuronas entre las capas de entradas y de salida, llamadas neuronas ocultas. Una red multicapas puede ser definida como un conjunto de perceptrones, ligados entre si por sinapsis y dispuestos en capas siguiendo diversas arquitecturas. Una de las arquitecturas más comúnmente usada es llamada feedforward: con conexiones de la entrada a las capas ocultas y de éstas hacia la salida.
El funcionamiento de una Red Neuronal es gobernado por reglas de propagación de actividades y de actualización de los estados.

Experiencia, Habilidades y Conocimiento

Los tipos de experiencia que son de interés en los sistemas basados en
conocimiento, pueden ser clasificados en tres categorías: asociativa, motora y teórica.

Los sistemas basados en conocimiento son excelentes para representar conocimiento asociativo. Este tipo de experiencia refleja la habilidad heurística o el
conocimiento que es adquirido mayoritariamente, a través de la observación. Puede ser que no se comprenda exactamente lo que ocurre al interior de un sistema (caja negra), pero se pueden asociar entradas o estímulos con salidas o respuestas, para resolver problemas que han sido previamente conocidos.

La experiencia motora es más física que cognitiva. La habilidad se adquiere fundamentalmente a través del ejercicio y la práctica física constante. Los sistemas basados en
conocimiento no pueden emular fácilmente este tipo de experiencia, principalmente por la limitada capacidad de la tecnología robótica.

La experiencia teórica y el
conocimiento profundo permite que los humanos puedan resolver problemas que no se han visto antes, es decir, no existe una posibilidad asociativa. El conocimiento teórico y profundo se adquiere a través de estudio y entrenamiento formal, así como por medio de la resolución directa de problemas.

Debido a su naturaleza teórica, este
conocimiento se puede olvidar fácilmente, a no ser que se use en forma continua. Al momento, los sistemas convencionales basados en conocimiento tienen muchas dificultades para duplicar este tipo de experiencia. Sin embargo, los Sistemas de Razonamiento Basado en Modelos representan un notable intento de encapsular este conocimiento profundo y razonar con él.

Evolución de la I.A.

La historia de la Inteligencia Artificial ha pasado por diversas situaciones:
  • El término fue inventado en 1956, en la Conferencia de Darmouth, un congreso en el que se hicieron previsiones triunfalistas a diez años que jamás se cumplieron, lo que provocó el abandono casi total de las investigaciones durante quince años.
  • En 1980 la historia se repitió con el desafío japonés de la quinta generación de computadoras, que dio lugar al auge de los sistemas expertos pero que no alcanzó muchos de sus objetivos, por lo que este campo sufrió una nueva interrupción en los años noventa.
  • En la actualidad se está tan lejos de cumplir la famosa prueba de Turing como cuando se formuló: Existirá Inteligencia Artificial cuando no seamos capaces de distinguir entre un ser humano y un programa de computadora en una conversación a ciegas.
  • Como anécdota, muchos de los investigadores sobre IA sostienen que "la inteligencia es un programa capaz de ser ejecutado independientemente de la máquina que lo ejecute, computador o cerebro".

Los juegos matemáticos antiguos, como el de las Torres de Hanoi (hacia el 3000 a.C.), demuestran el interés por la búsqueda de un bucle resolutor, una IA capaz de ganar en los mínimos movimientos posibles.

En 1903 Lee De Forest inventa el triodo, también llamado bulbo o válvula de vacío. Podría decirse que la primera gran máquina inteligente diseñada por el hombre fue el computador ENIAC, compuesto por 18.000 válvulas de vacío, teniendo en cuenta que el concepto de "inteligencia" es un término subjetivo que depende de la inteligencia y la tecnología que tengamos en esa época.

En 1937 Turing publicó un artículo de bastante repercusión sobre los "Números Calculables", que puede considerarse el origen oficial de la informática teórica. En este artículo introdujo el concepto de Máquina de Turing, una entidad matemática abstracta que formalizó el concepto de algoritmo y resultó ser la precursora de las computadoras digitales. Con ayuda de su máquina, Turing pudo demostrar que existen problemas irresolubles, de los que ningún ordenador será capaz de obtener su solución, por lo que se le considera el padre de la teoría de la computabilidad. También se le considera el padre de la Inteligencia Artificial por su famosa Prueba de Turing, que permitiría comprobar si un programa de ordenador puede ser tan inteligente como un ser humano.

En 1951 William Shockley inventa el transistor de unión. El invento hizo posible una nueva generación de computadoras mucho más rápidas y pequeñas.

En 1956 se acuñó el término "inteligencia artificial" en Dartmouth durante una conferencia convocada por McCarthy, a la cual asistieron, entre otros, Minsky, Newell y Simon. En esta conferencia se hicieron previsiones triunfalistas a diez años que jamás se cumplieron, lo que provocó el abandono casi total de las investigaciones durante quince años.

En 1980 la historia se repitió con el desafío japonés de la quinta generación, que dio lugar al auge de los sistemas expertos pero que no alcanzó muchos de sus objetivos, por lo que este campo sufrió una nueva interrupción en los años noventa.

En 1987 Martin Fischles y Oscar Firschein describieron los atributos de un agente inteligente. Al intentar describir con un mayor ámbito (no sólo la comunicación) los atributos de un agente inteligente, la IA se ha expandido a muchas áreas que han creado ramas de investigación enormes y diferenciadas. Dichos atributos del agente inteligente son:

  1. Tiene actitudes mentales tales como creencias e intenciones.
  2. Tiene la capacidad de obtener conocimiento, es decir, aprender.
  3. Puede resolver problemas, incluso particionando problemas complejos en otros más simples.
  4. Entiende. Posee la capacidad de crearle sentido, si es posible, a ideas ambiguas o contradictorias.
  5. Planifica, predice consecuencias, evalúa alternativas (como en los juegos de ajedrez)
  6. Conoce los límites de su propias habilidades y conocimientos.
  7. Puede distinguir a pesar de las similitud de las situaciones.
  8. Puede ser original, creando incluso nuevos conceptos o ideas, y hasta utilizando analogías.
  9. Puede generalizar.
  10. Puede percibir y modelar el mundo exterior.
  11. Puede entender y utilizar el lenguaje y sus símbolos.

Podemos entonces decir que la IA incluye características humanas tales como el aprendizaje, la adaptación, el razonamiento, la autocorrección, el mejoramiento implícito, y la percepción modular del mundo. Así, podemos hablar ya no sólo de un objetivo, sino de muchos, dependiendo del punto de vista o utilidad que pueda encontrarse a la IA.

Muchos de los investigadores sobre IA sostienen que "la inteligencia es un programa capaz de ser ejecutado independientemente de la máquina que lo ejecute, computador o cerebro".