Inteligencia Artificial (Materia)
De Computacion
Para el desarrollo de la guía se presentarán los capítulos que van ser desarrollados en base a los objetivos y los capítulos que corresponden a cada uno de ellos. Así el estudio de las redes neuronales mantenidas como herramienta de desarrollo de la Inteligencia Artificial, junto a su concepto, y cada una de las propiedades que completan el estudio y por ende su clasificación en: Supervisadas, Autoorganizada; hasta llegar a su implementación. Para las aplicaciones se recogen elementos como filtros de señales, funciones lógicas y predicciones que en el ámbito práctico son de mucha utilidad. Para el segundo bimestre están los sistemas expertos, aunque en este caso cambiamos la perspectiva, conocer sobre la construcción de este tipo de sistemas nos da la experiencia necesaria para manipular una base de conocimientos y producir uno nuevo, en base a la experiencia de los expertos. Es necesario profundizar un poco con sistemas basados en probabilidad y luego ir analizando cada uno de los aspectos que constituyen involucrar una proposición como conclusión a lo preguntado. En si, la combinación de cada uno de los elementos que forman parte de la Inteligencia Artificial nos han permitido involucrarnos en la amplia gama que la constituye, por lo tanto tener una herramienta importante a la hora de tomar una decisión acertada, para este tipo de sistemas.
Tabla de contenidos |
[editar] Objetivos Generales
- Estudiar la combinación de las distintas tecnologías de inteligencia artificial.
[editar] Objetivos Especificos
Los objetivos específicos de la materia, en función de los capítulos que se van a desarrollar son:
a) Analizar el uso de las redes neuronales en base a cada uno de los comportamientos de los patrones
b) Verificar la combinación existente entre los Sistemas Difusos y las Redes Neuronales
c) Aprender el manejo de los sistemas de información geográfica en base a la integración de distintos conocimientos adquiridos sobre análisis de proposiciones.
d) Estudiar las proposiciones lógicas en base a los métodos de eliminación de las mismas.
e) Estudiar el motor de inferencia adecuado a las características del sistema experto propuesto.
[editar] Bibliografía
Texto Básico:
Primer bimestre
Brío, Sanz. Redes neuronales y sistemas difusos. . Colombia.
Segundo bimestre
Castillo, Gutiérrez, Hadi, Sistemas expertos y modelos de personales.unican.es/gutierjm/papers/BookCGH.pdf
Bibliografía complementaria:
1. Giarritano,Riley. Sistemas Expertos, Principios y Programación. Editores.2001.
2. Jang, Sun, Mizutani. Neuro-Fuzzy and Soft Computing . A Computational to Learning and Machine Intelligence, Prentice-Hall, 1997.
3. Skapura, Freeman. Redes Neuronales , Algoritmos, aplicaciones programación. 1993. Addison-Wesley Iberoamericana S.A.
Referencias
Informe sobre redes neuronales:
Teoría sobre redes neuronales artificiales:
Teoría sobre sistemas expertos:
Se refiere al uso de las redes neuronales artificiales con un buen apoyo científico.
Teoría sobre sistemas expertos basados en reglas.
- http://personal5.iddeo.es/wintrmute/ia/neuronal.htm: Redes neuronales y el pensamiento humano.
El perceptron multicapa.
[editar] Desarrollo del Aprendizaje
[editar] Capitulo 1: REDES NEURONALES
[editar] Datos Generales:
| Texto Base | Brío, Sanz. Redes neuronales y sistemas difusos. Colombia. Alfa-Omega, 2002. |
| Capítulo | Estudio de las Redes Neuronales |
| Páginas | [3-79] [85-113][161-206] |
| 40 horas |
[editar] Propositos:
El propósito de este capítulo es introducir en el conocimiento de las redes neuronales desde su aparecimiento hasta su aplicación en las redes neuronales supervisadas para luego describir las aplicaciones que se pueden producir en base a este concepto. Así mismo una vez analizadas los conceptos de redes neuronales supervisadas es necesario analizar su contraparte conocida como red neuronal autoorganizada o lo que es lo mismo no supervisada. Hasta aquí hemos aprendido los conceptos clave para empezar a implementar y a realizar ejercicios de aplicación sobre redes neuronales, intentaremos entonces proponer algunos de ellos.
[editar] Conceptos Claves:
- Neurona
- Unidad fundamental del sistema nervioso.
- Perceptron
- Unidad fundamental de una red neuronal artificial
- Rede Neuronal Artificial (RNA)
- Conjunto de perceptrones entrenados para la identificación de patrones.
- Patrón
- Elemento o vector con el cual se contrasta el conocimiento.
- Autoorganización
- Forma que tiene una estructura de organizarse por si mismo.
- Memoria
- Elemento principal de una red neuronal para recordar los pasos ya efectuados
- Mapa
- Estructura fundamental de una red neuronal no supervisada.
- Simulación
- Diseñar e implantar un ambiente real o imaginario de cierto tema.
- Emulación
- Diseñar un ambiente real, existente.
- Sistema de control
- Elementos que interactúan entre si para tener el mando de una tarea.
[editar] Esquema de Estudio:
A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que cada estudiante estima que necesita tutoría y realizar anotaciones personales.
| Tema a revisar | Descripción del Contenido a revisar | Actividades Recomendadas | Planificación Personal del estudio (fecha) | ¿Requiero Tutorial? | Anotaciones |
|---|---|---|---|---|---|
| 1.1 Introducción | Se explica los conceptos básicos de las redes neuronales, su aparecimiento, definiciones y algunas de sus aplicaciones. | Realice comparaciones entre las redes neuronales biológicas y las redes neuronales artificiales proponiendo semejanzas y diferencias entre las mismas. | |||
| 1.2. Redes Neuronales Supervisadas | Se explica claramente los conceptos fundamentales de una red neuronal tanto en cuanto esta necesita patrones de comparación para las salidas que produce. | Trate de explicar el concepto de patrón en base a comparaciones entre diferentes vectores de entrada y de salida. | |||
| 1.3 Modelos Neuronales no supervisados | Se explica las claras diferencias entre una red neuronal supervisada y una red neuronal no supervisada, así como las aplicaciones de la última. | Realice ejemplos acerca de las aplicaciones que pueden tener las redes neuronales autoorganizadas y trate de construir aplicaciones de los ejemplos presentados. | |||
| 1.4. Redes neuronales autoorganizadas | Se verificará en este apartado el desconocimiento de la presencia de un patrón el cual en la autoorganización es descubierto por la propia red. | Trate de presentar ejemplos en los cuales no es posible identificar un patrón y luego construya una estructura de red neuronal que sea capas de identificarlo. | |||
| 1.5 Introducción a la implementación de RNA | Se explica con claridad los conceptos que influyen en la conformación de una red neuronal para su implementación sea simulada o a nivel de hardware. | Construya sus primeros ejercicios a mano de redes neuronales, resuélvalos y luego trate de usar los simuladores para probar su estructura. | |||
| 1.6. Implementación de redes neuronales | La implementación de una red neuronal se puede verificar tanto en software como en hardware en este caso probaremos la estructura
a nivel de software | Determine los vectores de entrenamiento y de examen para la red neuronal y luego use los simuladores correspondientes para cada tipo de red | |||
| 1.7. Aplicación de las redes neuronales | Observaremos ejemplos claros y clave para el desempeño adecuado de una red neuronal. | } |
REDES NEURONALES
Empezamos el estudio analizando las redes neuronales, que bajo su definición biológica se refiere a que no son más que una neurona la cual se conecta con otras abarcando todo lo que es el sistema nervioso, por lo tanto la forma como se conduce la información. En cada uno de estos procesos el concepto involucra la sinapsis, que es la forma en que una neurona (perceptron para ser más claros en el sentido de la inteligencia artificial) se intercepta con otra trasladándole información. Más conceptos los puedes encontrar en el libro guía en la página 5. Luego que se ha visto cada uno de los conceptos quisiera concentrarme un poco en la característica de aprendizaje de las redes neuronales de la página 9. En esto se menciona que la intensidad de la sinapsis no viene representada por una cantidad fija, sino que puede ser modulada en una escala temporal mucho más amplia que la del disparo de las neuronas. Matemáticamente hablando este disparo o la fuerza del disparo corresponden a un peso que más adelante inclusive se puede llamar “función de activación”. Observemos la figura 1:

Figura 1. Estructura del Aprendizaje de una Neurona (perceptron)
Esta figura nos describa el espacio sináptico, que es la forma en que una neurona excita a otra, luego está la membrana sináptica que es la que contiene la información, y la membrana presináptica que es el lugar por donde llega la información. El axòn es el brazo de conexión en otras palabras es la arista en un grafo. SI hablamos de historia uno de los primeros modelos que existieron es el de McCulloch y Pitts, cuyo modelo corresponde a la figura 2:

xj = Sum Si wij + Qj i Sj = f(xj)
Donde el término Qj es un valor «umbral», y f(xj) es una función de la activación de la neurona. Por ejemplo, en una de las primeras arquitecturas neuronales, el «Perceptron», se utiliza la siguiente función de salida:
Sj = 0 si xj < h
Sj = 1 si xj >= h
donde la constante h se denomina umbral. Esta es una función de salida de tipo binaria, y existen otras de tipo lineal puro, lineal con umbral, y sigmoidea, entre otras. En este modelo tan sencillo puede verse que la activación de la neurona depende del valor que tomen los pesos y las entradas, de forma que la variación de éstos originan distintas salidas para la misma entrada a la neurona. En la práctica, los pesos de las neuronas se modifican sometiendo a la red a un entrenamiento, permitiendo que la red realice una función determinada. Esta es la característica que diferencia a una red neuronal de una máquina algorítmica clásica: una red neuronal no se programa, se «educa». La red es capaz de retener y asociar el conocimiento a través de la adaptación de los pesos de las neuronas siguiendo una regla de aprendizaje. Estas reglas son ecuaciones expresadas en función de las entradas y salidas de las neuronas y describen la forma de variación de los pesos. En definitiva, son el instrumento empleado por las neuronas para adaptarse a la información que se le presenta.
El aprendizaje de una red se puede producir de tres formas:
-
Aprendizaje supervisado: consiste en introducir una serie de patrones de entrada a la red y a su vez mostrar la salida que se quiere tener. La red es capaz de ajustar los pesos de las neuronas de forma que a la presentación posterior de esos patrones de entrada la red responde con salida memorizada.
Aprendizaje no supervisado: se presentan los patrones de entrada a la red y ésta los clasifica en categorías según sus rasgos más sobresalientes.
- Aprendizaje auto supervisado: la propia red corrige los errores en la interpretación empleando una realimentación.
Una de las primeras reglas de aprendizaje fue propuesta por Donald Hebb en 1949, y se basa en un hecho biológico constatado: cuando dos neuronas se activan simultáneamente su conexión se refuerza. Esta idea se expresa matemáticamente como:
dwij
= alpha Si xj
dt
En la página 10 del libro base también se hace referencia a la estructura de una red neuronal artificial y su comparación con el cerebro humano, por favor revisa estos conceptos hasta la página 20. Una vez revisados quisiera aclarar un poco también los conceptos de los sistemas paralelos, distribuidos y adaptativos en relación a que un sistema paralelo distribuye por lo general su información en dos o más procesadores o unidades centrales de proceso, los distribuidos son capaces en cambio de distribuir una misma tarea en distintos procesadores y un adaptativo en cambio es capaz de formar su conocimiento a partir de la experiencia o a partir de ejemplos. En la página 20 del libro base nos habla de neuronas todo o nada que en definitiva es que como una neurona no hace nada, a menos que la influencia colectiva de todas sus entradas alcance un nivel de umbral. Siempre que se alcanza tal umbral, la neurona produce una salida de potencia completa, que consiste en un pulso estrecho que se desplaza del cuerpo de célula, por el axón, hasta las ramas de éste, en este caso se dice que la neurona de dispara. Debido a que una neurona se dispara o no hace nada, se dice que este es un dispositivo de todo o nada. En la página 21 del libro base se manifiesta un ejercicio con el fin de comprobar si se puede realizar o implementar la función lógica NAND, vamos a realizarlo aunque se nos manifiesta que esto nos puede hacer adelantarnos un poco: El Perceptron aprende bien las funciones OR y AND, sin embargo no ocurre lo mismo con la función XOR. Esto es debido a que a medida que se van presentando los patrones de entrada y su correspondiente salida, la red va adaptando los pesos, pudiendo ocurrir (como en el caso del XOR) que la diferencia entre las entradas y la salida sea muy grande provocando un cambio grande en el valor de los pesos y haciendo que se borre lo aprendido anteriormente. Este problema en el que la red «va olvidando» lo aprendido a medida que aprende nuevas cosas ya ha sido resuelto en otras redes neuronales más modernas. En algunos casos el problema se soluciona presentando las entradas en un orden distinto. Sin embargo, en el caso del Perceptron se ha demostrado que no puede aprender determinadas combinaciones de entrada y salida. En este sentido, en 1969 Minsk y Papert demostraron en su libro Perceptrons que este tipo de redes no puede clasificar patrones de entrada que no sean linealmente separables. Unos patrones de entrada/salida se consideran linealmente separables cuando en una representación geométrica en el plano pueden separarse por una línea recta los grupos de entradas/salidas del mismo tipo. Por ejemplo, en el caso de la función OR, la figura 3 muestra cómo pueden ser separados por una línea recta los patrones de entrada clasificados con una salida 0 de los clasificados con una salida 1. Sin embargo, en el caso del XOR, véase la figura 4, no es posible hacer una separación de este tipo:

Veamos que esto es así. Para que el Perceptron aprenda una función XOR deben cumplirse las siguientes cuatro desigualdades:
0 w1 + 0 w2 < h => 0 < h
1 w1 + 0 w2 < h => w1 > h
0 w1 + 1 w2 < h => w2 > h
1 w1 + 1 w2 < h => w1 + w2 < h
Sin embargo, si w1 y w2 son mayores que el umbral h, su suma nunca podrá ser menor que éste, y por tanto no hay ninguna combinación de estos valores que cumpla simultáneamente las cuatro desigualdades. Para ilustrar estas ideas puede representarse en el espacio de los pesos la superficie del error para cada función. Así, puede tomarse una función de error del tipo:
n
Ej = Sum (djp)2
p=1
donde djp es el error de la neurona j para cada patrón p de entrada. Es decir, la función de error Ej da el error total en la neurona j para un valor dado de los pesos y para un grupo de entradas y salidas. El error se calcula como la suma de los errores elevados al cuadrado cuando se presentan las n entradas a la neurona. En el ejemplo que nos ocupa n=4, puesto que hay cuatro patrones de entrada distintos. La función de error definida de esta manera toma un valor para cada par de valores que tengan los pesos w1j y w2j. De esta forma, en el espacio de los pesos la función de error es una superficie donde podrá observarse qué combinaciones de los pesos hacen mínimo el error. Las figuras 5, 6 y 7 muestran las superficies del error, con un umbral de valor 1, para las funciones OR, AND y XOR, respectivamente. Se ha representado en color más oscuro las porciones de superficie de error 0 en cada caso. Además, los bordes de la función de error se han unido al plano de error 0 para mayor claridad:

Figura 5.

Figura 6

Figura 7.
Como puede observarse hay infinitas combinaciones de los pesos que hacen que hacen el error 0 para la función OR. Igualmente puede verse que hay una única combinación de los pesos que hace que valga 0 en el caso de la función AND. Y por último, que no hay ningún valor de los pesos que haga nulo el error cuando se trata de una función XOR, como era de esperar. Una solución al problema, ya conocida por Minsky y Papert, consiste en introducir una capa adicional de neuronas entre la capa de entrada y la capa de salida. Sin embargo, esta solución implica modificar la regla de aprendizaje para poder enseñar también a las neuronas de la capa intermedia. Bien, una vez resuelto el problema te invito a seguir analizando las páginas del libro base desde la 21 hasta la 26 en donde encontramos los tipos de aprendizaje que existen en redes neuronales y nos detenemos en el aprendizaje supervisado: El análisis fundamentado en este sentido no es más que el entrenamiento de una red con la interacción de programador o del usuario que está realizando su corrida. En definitiva Se asemeja al método de enseñanza tradicional con un profesor que indica y corrige los errores del alumno hasta que éste aprende la lección. Si la red utiliza un tipo de aprendizaje supervisado debemos proporcionarle parejas de patrones entrada-salida y la red neuronal aprende a asociarlos. En terminología estadística equivale a los modelos en los que hay vectores de variables independientes y dependientes: técnicas de regresión, análisis discriminante, modelos de series temporales, etc. El aprendizaje no supervisado en cambio es el proceso totalmente automático del aprendizaje. Las redes con aprendizaje no supervisado, conocido también como Auto supervisado, no requieren 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 a una determinada entrada es o no correcta; por ello, suele decirse que estas redes son capaces de autoorganizarse.
El funcionamiento de estas redes se basa en la búsqueda de:
- Características
- Regularidades
- Correlaciones
- Categorías
Todo ello del conjunto de datos de entrada.
Avanzamos con la lectura hasta la página 33 y nos detenemos sobre el ejercicio de síntesis. Sobre ello, quiero profundizar mucho más en la relación que existe entre un grafo y una red neuronal: Los modelos neuronales son similares o incluso en muchos casos idénticos a otros modelos matemáticos bien conocidos. Se suelen representar mediante grafos, llamados en este contexto neuronas artificiales. Cada neurona realiza una función matemática. Las neuronas se agrupan en capas, constituyendo una red neuronal. Una determinada red neuronal está confeccionada y entrenada para llevar a cabo una labor específica. Finalmente, una o varias redes, más los interfaces con el entorno, conforman el sistema global. Una RNA es muy parecida a lo que en matemática discreta se estudia como “grafos”. En el caso más simple, cada neurona tiene una serie de variables respecto a sí misma:
- Estado de activación: Lo más simple es considerarlo “1” y “0”, como on/off
- Conexiones: Siguiendo el símil del grafo, estos serían los caminos (unidireccionales) que comunican la neurona con otras.
-
Pesos de las conexiones: Se trata de una cantidad que mide la “fuerza” de esta conexión. Multiplicado por el estado de activación daría la cantidad numérica que se envía a otra neurona para su activación. Así, una neurona que está activada (1) conectada con un peso de (5) a otra, le enviará en términos matemáticos “5” de input.
Umbral de activación: La cantidad de “input” necesario para activar la neurona. Para decidir si una neurona está activada o no, tenemos en cuenta su entrada. Pongamos que su umbral es “11” y que recibe de tres neuronas conectadas a ella “+4”, “+9” y “-1”. El resultado es “+12”, lo cual supera el umbral y activa la neurona. Sin embargo, si el “input” fuera “+4” y “+5”, el total sería “+9” lo cual no llega al umbral que hemos definido; la neurona destino estaría por tanto con un estado “0”.
Con estos conceptos en mente - aunque simplificados, pues umbral y activación pueden ser funciones, etc. -, que aclaran mucho incluso las ideas sobre el funcionamiento de las redes de neuronas naturales, toca explicar lo que más intrigante resulta; ¿ cómo aprenden estas redes ? El concepto clave es que los pesos de conexión entre neuronas pueden - y han de ser - modificados. Exceptuando las redes de Hopfield, los modelos conexionistas modifican sus pesos para poder adaptarse al input recibido y al output deseado. Como ejemplo, valga un aprendizaje “supervisado”: supongamos tres capas de neuronas, compuestas por 5, 5 y 2 de ellas respectivamente, y que están conectadas la primera capa (input) con la segunda y la segunda con la tercera (que será la de output). Esto significa que al ser la de 2 la capa final y teniendo 4 combinaciones (00,01,10,11), podemos identificar cuatro “patrones” distintos. Esto es, que quizá si activamos de la primera capa las neuronas 1 y 3 obtengamos que se activa la neurona 1 de la tercera capa por el juego de activaciones/pesos en la segunda y tercera capas. Pongámonos en esa situación, lo siguiente que pensaríamos es, ¿se trata de una respuesta correcta la del output respecto al input recibido? Si esto es así, reforzamos las conexiones que estaban activas, y disminuimos las otras. Así, la próxima vez que se presente un patrón parecido a (1,3) habrá más probabilidades de que la respuesta sea correcta, y menos de que se de esta respuesta en caso de no ser así. Tras hacer mucho estas veces, la red aprenderá a discriminar los patrones que le enseñemos. Seguimos con la lectura y nos trasladamos hacia las REDES NEURONALES SUPERVISADAS.
En este capítulo, puedes contestar cuales son los modelos de Redes Neuronales más conocidos?..................................................................................
En el caso del asociador lineal también es conocido como sumador lineal que en otras palabras significa la combinación entre distintas entradas las cuales van a ser sumadas en el perceptron, de la siguiente forma:

Figura 8. Sumador lineal
z es la combinación lineal de las entradas x(s) y de los pesos sinápticos w(s).
En notación matricial, el sumador lineal para múltiples entradas (x1,x2, …., xn) y múltiples salidas (z1, z2, z3, …., zm), sería: z=Wx, donde W es una matriz de orden mxn (m salidas y n entradas)
SUMADOR LINEAL vs NEURONAS
Similaridades:
- El aprendizaje se logra a través de los cambios en los pesos. En las neuronas lo hacen a través de la sinapsis.
* La suma de las entradas combinadas a sus pesos para producir su asociado z. Las neuronas se inhiben o activan para producir información.
Diferencias:
- La salida del sumador lineal no satura.
- No existen umbrales en los sumadores lineales.
- No hay salidas negativas para las neuronas.
Es necesario ir profundizando acerca del uso de cada uno de los elementos de la red neuronal. Como elemento base tenemos al perceptron simple. Si recordamos los conocimientos anteriores, un perceptron no es más que la representación de una neurona que constituye su funcionamiento.
Limitantes
El perceptron es capaz tan sólo de resolver funciones definidas por un hiperplano (objeto de dimensión N-1 contenida en un espacio de dimensión N). que corte un espacio de dimensión N. Un ejemplo de una función que no puede ser resuelta es el operador lógico XOR. Una explicación mas sencilla de un hiperplano sería, hablando en un plano de dos dimensiones, una línea que separa a los elementos existentes en dos grupos. El perceptron sólo puede resolver una función, si todos los posibles resultados del problema pueden separarse de ésta forma (en dos secciones) es decir, que no se combinen entre sí.
Entrenamiento
El entrenamiento de un perceptron es por medio de la regla de aprendizaje delta:
Para cada peso W se realiza un ajuste dW según la regla: dW = LR ( T - Y ) X
Donde LR es la razón de aprendizaje, T el valor deseado, Y el valor obtenido, y X la entrada aplicada al perceptron.
Aplicaciones del perceptron
El rango de tareas que el perceptron puede manejar es mucho mayor que simples decisiones y reconocimiento de patrones. Por ejemplo, se puede entrenar una red para formar el tiempo pasado de los verbos en ingles, leer texto en ingles y manuscrito. El perceptron multicapa (MLP) puede ser usado para la predicción de una serie de datos en el tiempo; tal a sido su éxito en la medición de la demanda de gas y electricidad, además de la predicción de cambios en el valor de los instrumentos financieros. Predicción de mercados financieros, diagnósticos médicos, el perceptron como una red codificadora, el perceptron aprende a sumar enteros. NETtalk es un perceptron que es capaz de transformar texto en ingles en sonido individual (representaciones fonéticas) y la pronunciación con la utilización de un sintetizador de voz; cuenta con aproximadamente 300 nodos de neuronas (siendo 80 en la capa escondida) y 20,000 conexiones individuales.
Observa la página 52 del libro base, puedes realizar un resumen del algoritmo de aprendizaje del perceptron: ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Estos 3 conceptos (cambio, grupos y sumatorio) deben ayudarte en muchas matemáticas rudimentarias de la IA ( al menos como computarlas a partir de sus fórmulas). Aquí hay algunos ejercicios para asegurarte de que lo has entendido. Intenta calcular el resultado de estos tres ejercicios:

Conclusión
Los símbolos matemáticos pueden parecer muy amenazadores, pero normalmente son simplemente una forma concisa de representar algo largo pero relativamente simple de conseguir. Si eres el tipo de persona que piensa más en términos computacionales (como yo) escribe un programa o en una hoja de papel los pasos necesarios para el cálculo. Estudia el código que implementa estas fórmulas te parecerá mucho más simple. En la página 55 se encuentra la ADALINA, la cual me permito solicitarte que leas la teoría y luego comprendas el siguiente ejercicio: Diseñar una Red Neuronal de tipo Adaline, con 35 entradas y 10 neuronas de salida de forma que pueda ser entrenada a partir del conjunto de muestras y que pueda posteriormente servir para el reconocimiento de caracteres. El archivo de muestras consiste en un conjunto de 10 patrones que representan los caracteres numéricos del 0 al 9. Cada patrón está formado por una matriz de 5 x 7 caracteres que pueden tomar el valor ‘*’ o ‘.’ para dibujar el número. Por ejemplo, el número 5 estaría representado así:
- ....
- ....
- .
....*
- ...*
.***.
Cuando la red reconozca un determinado patrón reaccionará activando la neurona de salida que corresponde a dicho patrón. (Por ejemplo, si introducimos el patrón del carácter correspondiente al número 0, se activará la primera neurona de salida).
Se debe entrenar a la Red para que reconozca los 10 patrones proporcionados.
La implementación de la red se realizará mediante la clase rn en C++, de la que a continuación damos el esqueleto de su prototipo:
class rn { public:
- static const int NM = 10;
- static const int CMAX = 5;
- static const int FMAX = 7;
- rn();
- ~rn();
- void entrena(const char* nomf);
- void prueba(float entrada[FMAX*CMAX+1], float salida[NM]);
- void prueba(const char* nomf);
private:
- float peso[NM][FMAX*CMAX+1];
- void carga_prueba(const char* nomf, float entrada[FMAX*CMAX+1]);
- };
- void rn::carga_prueba(const char* nomf, float entrada[FMAX*CMAX+1])
- {
- FILE* f;
- char cad[10];
- if ( (f=fopen(nomf,”rt”))!=NULL )
- {
- for (int nf=0; nf<FMAX; nf++)
- {
- if ( fgets(cad,8,f)==NULL )
- break;
- entrada[0] = 1.0;
- for (int nc=0; nc<CMAX; nc++)
- entrada[nf*CMAX+nc+1] = (cad[nc]==’.’) ? 0.0 : 1.0;
- }
- fclose(f);
- }
- }
El código del método void prueba(cons char* nomf): void rn::prueba(const char* nomf) {
- float salida[NM];
- float entrada[FMAX*CMAX+1];
- carga_prueba(nomf,entrada);
- // Calcula salidas
- prueba(entrada,salida);
- // Visualiza salidas
- printf(“SALIDAS:\n “);
- for (int ns=0; ns<NM; ns++)
- %6printf(“%6d “,ns);
- printf(“\n “);
- for (int ns=0; ns<NM; ns++)
- printf(“%6.2f “,salida[ns]);
- printf(“\n”);
}
Modelo de Red Neuronal tipo ADALINE:
El algoritmo de aprendizaje de una red ADALINE consta de los siguientes pasos:
1. Se aplica un vector o patrón de entrada, X(k), en las entradas del ADALINE.
2. Se obtiene la salida lineal para cada neurona de salida j:
s(j) = Sum [x(i) * w(ij)] para i = 0..N siendo N el número de entradas. 3. Y se calcula la diferencia con la salida deseada para cada neurona j (el error obtenido):
e(j) = (d(j) - s(j))/M
siendo M el número de salidas
4. Si el error cuadrático medio de todas las neuronas de salida:
ecm = Sum [(1/2)*e(j)2] para j = 1 .. M siendo M el número de salidas no es un valor aceptable (es superior a un cierto valor umbral) se actualizan los pesos: w (ij) = w (ij) + alfa * e (j) * x (i) siendo alfa el factor de aprendizaje (0 .. 1)
5. Se repiten los pasos del 1 al 3 con todos los vectores de entrada.
6. Si no he tenido que ajustar los pesos para ningún patrón de entrada termina el proceso de aprendizaje; sino, se repite otra vez desde el paso 1 con todos los patrones.

NOTA: En el paso 2 se puede observar que utilizamos: para i = 0..N, en vez de: para i = 1..N. Esto se debe a que en este tipo de redes se utiliza una entrada adicional x(0) que siempre toma el valor 1, con lo que el vector de entradas tendrá N + 1 elementos.
Avancemos ahora con la lectura a la página 63 perceptron multicapa.
El perceptron multicapa (MLP)
Este es uno de los tipos de redes más comunes. Se basa en otra red mas simple llamada perceptron simple solo que el número de capas ocultas puede ser mayor o igual que una. Es una red unidireccional (feedforward). La arquitectura típica de esta red es la siguiente:

Figura 9. Representación de un perceptron Multicapa (MLP)
Las neuronas de la capa oculta usan como regla de propagación la suma ponderada de las entradas con los pesos sinápticos wij y sobre esa suma ponderada se aplica una función de transferencia de tipo sigmoide, que es acotada en respuesta.

Figura 10. Forma funcional de una sigmoide
El aprendizaje que se suele usar en este tipo de redes recibe el nombre de retropropagacion del error (backpropagation). Como función de coste global, se usa el error cuadrático medio. Es decir, que dado un par (xk, dk) correspondiente a la entrada k de los datos de entrenamiento y salida deseada asociada se calcula la cantidad:
Ecuación 1. Error cuadrático medio

que vemos que es la suma de los errores parciales debido a cada patrón (índice p), resultantes de la diferencia entre la salida deseada dp y la salida que da la red f(.) ante el vector de entrada xk. Si estas salidas son muy diferentes de las salidas deseadas, el error cuadrático medio será grande. f es la función de activación de las neuronas de la capa de salida e y la salida que proporcionan las neuronas de la ultima capa oculta. Sobre esta función de coste global se aplica algún procedimiento de minimización. En el caso del MLP se hace mediante un descenso por gradiente. Las expresiones que resultan aplicando la regla de la cadena son las siguientes:
Ecuación 2. Términos delta

Siendo yk las salidas de la capa oculta.
El aprendizaje por backpropagation queda como sigue:
1. Inicializar los pesos y los umbrales iniciales de cada neurona. Hay varias posibilidades de inicialización siendo las más comunes las que introducen valores aleatorios pequeños.
2. Para cada patrón del conjunto de los datos de entrenamiento
1. Obtener la respuesta de la red ante ese patrón. Esta parte se consigue propagando la entrada hacia adelante, ya que este tipo de red es feedforward.
Las salidas de una capa sirven como entrada a las neuronas de la capa siguiente, procesándolas de acuerdo a la regla de propagación y la función de activación correspondientes.
- 2. Calcular los errores asociados según la ecuación 2
- 3. Calcular los incrementos parciales (sumandos de los sumatorios). Estos incrementos dependen de los errores calculados en 2.b
3. Calcular el incremento total ,para todos los patrones, de los pesos y los umbrales según las expresiones en la ecuación 2
4. Actualizar pesos y umbrales
5. Calcular el error actual y volver al paso 2 si no es satisfactorio.
El estudio de las redes neuronales se ha ido incrementando en su totalidad por lo que te invito en este punto a tomar un respiro y luego seguir adelante en la página 85 del libro base, Redes Autoorganizadas. Los modelos neuronales para una red con aprendizaje no supervisado se basa en que no existe ninguna persona que controle dicho aprendizaje por lo tanto no existe ningún maestro en el proceso. 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. 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. 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. Otro modelo neuronal que podemos aplicar para diseñar un sistema de ayuda sobre la solvencia de una empresa son los mapas autoorganizados, desarrollado en su forma actual por el finlandés Tuvo Kohonen (1990). La vida nos proporciona abundantes ejemplos de lo que conocemos con el nombre de autoorganización: cuando los alumnos asisten a un curso, el primer día se sientan en las sillas de forma aleatoria. Conforme pasan los días se recolocan en el aula, de forma que paulatinamente se sientan juntos según sus afinidades: a menudo hay grupos exclusivamente formados por chicas o chicos, el típico grupo de alumnos que se sientan en las últimas filas. En determinadas zonas del cerebro se ha encontrado experimentalmente que las neuronas detectoras de rasgos se encuentran topológicamente ordenadas. Es decir, ante un estímulo proveniente de sensores de la piel próximos entre sí, se estimulan neuronas del cerebro pertenecientes a una misma zona. Hay un modelo neuronal que se inspira en estas zonas del cerebro donde la información proveniente de los sentidos se representa topológicamente ordenada: son los mapas autoorganizados. Es un modelo neuronal indudablemente más inspirado en el cerebro que el anterior perceptron multicapa. Algunos problemas reales en los que ha demostrado su eficacia incluyen tareas de clasificación, reducción de dimensiones y extracción de rasgos. Su utilidad más importante se relaciona con la clasificación de información o el agrupamiento de patrones por tipos o clases. La literatura técnica recoge aplicaciones de este modelo muy diversas. Se puede acceder en Internet al ordenador http://cochlea.hut.fi, que almacena más de mil referencias bibliográficas de artículos publicados que contienen aplicaciones prácticas o desarrollos teóricos sobre los mapas autoorganizados. Este modelo neuronal, además de esta inspiración en determinadas zonas del cerebro, utiliza una estrategia de aprendizaje que los humanos utilizamos frecuentemente, el llamado aprendizaje no supervisado. Si el aprendizaje supervisado se asemeja al profesor que enseña y corrige al alumno, el aprendizaje no supervisado o autoorganizado es semejante al alumno que aprende por sí mismo, sin la ayuda de un profesor, pero disponiendo de un material docente, libros, etc. La idea básica del modelo es crear una imagen de un espacio multidimensional de entrada en un espacio de salida de menor dimensionalidad. Se trata de un modelo con dos capas de neuronas, una de entrada y otra de procesamiento. Las neuronas de la primera capa se limitan a recoger y canalizar la información. La segunda capa está conectada a la primera a través de los pesos sinápticos y realiza la tarea importante: una proyección no lineal del espacio multidimensional de entrada, preservando las características esenciales de estos datos en forma de relaciones de vecindad. El resultado final es la creación del llamado mapa autoorganizado donde se representan los rasgos más sobresalientes del espacio de entrada.

Para explicarlo en palabras sencillas, es similar a una cámara fotográfica. Una cámara es capaz de representar en dos dimensiones -una fotografía-, un espacio de tres dimensiones. Realiza una proyección lineal de las tres dimensiones en un plano. Gracias a ello, al contemplar una fotografía tenemos una idea de lo que hay en una habitación, en un paisaje, etc. El modelo de Kohonen realiza una fotografía de un espacio n dimensional, de tal forma que se conserva la topología: los objetos que están cercanos en el espacio de n dimensiones aparecerán próximos en el mapa autoorganizado. Así, al contemplar este mapa, podemos darnos una idea de cómo están situados en el espacio de n dimensiones. Otras técnicas estadísticas tienen un objetivo similar de reducción de la dimensionalidad de un problema: el análisis de componentes principales, las escalas multidimensionales, etc.
Estructura del mapa autoorganizado
El mapa autoorganizado está formado por una matriz rectangular de neuronas, de modo que las relaciones entre los patrones de entrada son mucho más fácilmente visibles en forma de relaciones de vecindad. Cada neurona sintoniza o aprende por sí misma a reconocer un determinado tipo de patrón de entrada. En el espacio de salida la topología esencial del de entrada queda preservada, de manera que neuronas próximas en el mapa aprenden a reconocer patrones de entrada similares, cuyas imágenes, por lo tanto, aparecerán cercanas en el mapa creado. Este espacio de salida se representa por una capa discreta de neuronas artificiales o procesadores elementales, generalmente ordenados formando una matriz rectangular. En el ejemplo con el que empezábamos este apartado, los alumnos sentados en las sillas son como las neuronas alojadas en la estructura reticular. También podemos comparar esta estructura neuronal con una hoja de cálculo. Cada neurona es una celdilla de la hoja de cálculo, que a su vez se encuentra vinculada a otras hojas.
Con una hoja de cálculo podemos simular el comportamiento del modelo neuronal de los mapas autoorganizados.
¿Cómo aprender estas neuronas?
Anteriormente, para explicar el concepto de autoorganización hemos puesto el ejemplo de los alumnos que asisten por primera vez a un curso y que al cabo de un tiempo se sientan juntos según sus afinidades. ¿Como se llega a esta situación? En el caso de los alumnos, hablando entre ellos conocen sus afinidades. ¿Cómo aprenden las neuronas del modelo de Kohonen?, o lo que es lo mismo, ¿qué operación realizan las celdas de esa hoja de cálculo?. Realizan un sencillo cálculo de distancias para incorporar un algoritmo de aprendizaje no supervisado. Vamos a explicarlo mediante un sencillo ejemplo. Imaginemos una serie de personas que están en el bingo. Estas personas se encuentran en una sala y cada uno de ellas posee un cartón con varios números. Estos números son aleatorios. Existe también un maestro de ceremonias que cuando empieza el juego lee varios números. Cada jugador compara los números de su cartón con los que ha leído este empleado del bingo. En este bingo, el ganador es aquel cuyos números son más parecidos a los que ha cantado el empleado. Como en el juego del bingo, esta persona recibe una recompensa. El premio consiste en que va a modificar el cartón que le asignaron, de forma tal que añadiendo o disminuyendo algunas cantidades, sus números se parezcan todavía más a los números cantados. Y no sólo eso, sino que además, a sus vecinos, aunque no hayan ganado, también les van a modificar sus números para que se parezcan más al conjunto de números cantado. El proceso continúa, y nuevamente el empleado del bingo canta otra serie de números. Habrá otro ganador, que, junto a sus vecinos, recibe también la misma recompensa. Como resultado de un número elevado de iteraciones, al final nos encontraremos que de forma natural hay varios grupos formados por jugadores que poseen números semejantes: el proceso de autoorganización ha concluido. Cada vez que se lea un nuevo cartón, en una zona del local se cantará bingo y los vecinos de esa persona ganadora tendrán números semejantes. En este ejemplo los jugadores son como las neuronas del mapa autoorganizado. Cada uno de ellos tiene un cartón, que equivale al vector de pesos sinápticos de las neuronas del mapa. Al principio estos pesos o números del cartón son aleatorios. El maestro de ceremonias que canta una serie de números está presentando a la red neuronal las variables que caracterizan un patrón. Esto equivale a una primera capa de neuronas, que no hacen ningún cálculo, sólo distribuyen información. El hecho de comparar simultáneamente cada jugador sus números con este patrón lo realiza la red neuronal calculando en paralelo la distancia entre el vector de pesos sinápticos de cada neurona y el vector de variables del patrón. Esa es precisamente la operación que realizan las celdas de la hoja de cálculo. El jugador cuyo cartón más se parece al cantado equivale a la neurona ganadora. Los compañeros de mesa forman lo que hemos llamado vecindad.
Aplicación al estudio de la quiebra
Nuevamente hemos tomado los datos de la crisis bancaria española de principios de los años ochenta. Como medida de similaridad se eligió la distancia euclídea entre los valores de los ratios. La estructura neuronal elegida para el mapa fue 14x14. La figura siguiente muestra los resultados obtenidos al proceder a la autoorganización de estas empresas.
Podemos observar cómo aquellos bancos que quebraron al año siguiente, se ubicaron en la zona derecha del mapa. Los solventes se alojaron en la parte izquierda del mapa. Bautizamos esta figura con el nombre de mapa de solvencia, Serrano y Martín (1994). Otros mapas auxiliares del modelo permiten conocer qué rasgos financieros dominan en cada zona del mapa: zonas de alta y baja rentabilidad, liquidez, endeudamiento, etc., véase Serrano (1996). Este sistema neuronal que hemos descrito puede ser de gran utilidad en el análisis de información contable de empresas. Al introducir información contable de un conjunto de empresas se producirá una autoorganización de las mismas, de forma que empresas con características financieras similares se colocarán próximas en el mapa. La situación de una empresa vendrá determinada por su ubicación en el mapa, teniendo en cuenta que una empresa puede excitar a más de una neurona y esto con diferentes intensidades. Este modelo permite, además, estudiar la evolución temporal de una empresa introduciendo información procedente de varios ejercicios, situarla en relación con sus competidores, elaborar mapas sectoriales, introducir ratios financieros o partidas como la cifra de ventas o el activo, información cualitativa, etc. A priori, son muchas las aplicaciones que puede tener, como análisis exploratorio de datos o mediante su integración en un sistema de ayuda a la toma de decisiones. Ya hemos observado el nivel de energía de los mapas autoorganizados, ahora te pido que continúes con la lectura hasta la página 161. Aquí encontraras la implementación de redes neuronales, lo cual te pido que leas detenidamente ya que se encuentra una explicación completa y adecuada. Así mismo voy a proponer un ejercicio más de implementación de redes neuronales: Desde los primeros tiempos del desarrollo de las Redes Neuronales, se implementaron sistemas de software sobre procesadores de arquitectura de Von Neumann. Éstos han gozado de una inmensa popularidad y han adquirido una altísima difusión comercial. Sin embargo, una Red Neuronal construida de ese modo es considerada una simulación y presenta numerosas desventajas sobre sus similares de hardware. El principal motivo para descartar una implementación software es el de la velocidad: a pesar de que los procesadores secuenciales evolucionan continuamente y podrían proveer un alto rendimiento, un chip especializado para ANN, de funcionamiento paralelo, es capaz de ofrecer respuestas totalmente confiables en tiempo real. Actualmente, muchas aplicaciones exigen Redes de menos de 100 neuronas y requieren escaso entrenamiento. Por este motivo, las implementaciones software son suficientes. Sin embargo, cuando los problemas a resolver exijan la utilización de cantidades tales como 1000 neuronas y 10000 sinapsis, será obligatoriamente necesario emplear hardware de alta performance.
Hardware vs. Software
La mayoría de las aplicaciones ANN en uso comercial están implementadas en software, y corren en una computadora de propósito general con un procesador convencional simple. Este hecho es principalmente debido a la flexibilidad del software. Es particularmente importante al usar comparativamente nuevas y desconocidas tecnologías, donde las condiciones pueden ser algo experimentales. En cambio, el hardware especializado (que puede soportar o reemplazar el software) ofrece apreciables ventajas en algunas situaciones.
Las razones más comunes para usar hardware ANN especializado son las siguientes:
Velocidad: la mayoría de las aplicaciones podrían acelerarse por el uso de hardware especializado. El procesamiento más rápido de cálculos repetitivos es un acercamiento. Las ANN tienen la característica adicional de que son intrínsecamente paralelas, y las implementaciones hardware pueden hacer uso de esto. El hardware ANN puede también ofrecer un considerable potencial para mejoramientos en velocidad.
Costo: una implementación hardware puede proveer márgenes para reducir los costos del sistema, bajando la cantidad total de componentes, la potencia de los requerimientos, etc. Esto puede ser importante en algunas aplicaciones de gran volumen tales como productos de consumo, las cuales son muy susceptibles en el precio.
Confiabilidad: por razones similares a la reducción de costo, una implementación hardware puede ofrecer una mayor confiabilidad en la operación, en el sentido de la reducida probabilidad de fallas en el equipo.
Condiciones operativas especiales: en aplicaciones que imponen restricciones tales como tamaño físico o peso limitado, una implementación hardware puede ser esencial.
Seguridad: el hardware especializado puede ofrecer mejor protección contra la “ingeniería inversa” de potenciales competidores que las equivalentes funciones implementadas en software.
Componentes utilizados
Los componentes hardware ANN están disponibles en diferentes formas. La elección entre ellas está gobernada por la naturaleza de la aplicación. Los principales tipos son:
Neurocomputadoras, que proveen un completo sistema basado en técnicas neuronales. Están generalmente apuntadas para solucionar problemas, que demandan significativo poder de procesamiento: por ejemplo, aquellas con largas redes y/o altos requerimientos de velocidad.
Aceleradoras de PC y otras tarjetas, que son generalmente hechas para un bus estándar tal como el ISA (para PCs). Estas ofrecen algunas de las ventajas de las neurocomputadoras, pero en una menor relación performance/precio.
Chips, que pueden ser usados para construir algunas de las formas precedentes o pueden ser incluidos dentro de otros dispositivos para hacer una unidad de aplicación completa. Las últimas son típicamente usadas en aplicaciones donde la unidad no está percibida primariamente como un dispositivo de computadora: por ejemplo, un electrodoméstico.
Bibliotecas celda, que están disponibles para permitir un apropiado nivel de funcionalidad neuronal al ser incluidas dentro de un chip dedicado al lado de otras funciones necesarias. Esto es lo indicado para aplicaciones de gran volumen.
Microcomputadoras embebidas, que pueden ser pensadas como computadoras de propósito general implementando un software ANN en hardware dedicado sin los periféricos normales de una computadora (pantalla, teclado, disco, etc.).
Algunas de las tarjetas aceleradoras también contienen procesadores programables de propósito general. Su incrementado rendimiento es ganado por la aceleración de repetitivos pasos multiplicar-y-sumar, que son requeridos en simulaciones de software de operaciones paralelas.
Implementaciones Digitales
En una implementación digital de una red neuronal, todos los valores pasados en la red están representados por palabras binarias con una longitud de palabra característica. La tecnología digital ofrece muchas ventajas sobre los circuitos analógicos, como la liberación del ruido, la habilidad para usar RAM para almacenar coeficientes de peso por una indefinida longitud de tiempo, tecnologías de fabricación off-the-shelf, precisión exacta en las fases de multiplicación y suma y una fácil incorporación dentro de sistemas existentes. Contra estas ventajas deben ser puestas algunas restricciones impuestas por una tecnología digital. Principalmente, la velocidad de operación es más baja, especialmente en los pasos de multiplicación y suma, y también las entradas desde el mundo real son típicamente analógicas, y deben ser convertidas a una representación digital antes de que el proceso pueda ser llevado a cabo.
Arquitecturas Slice
Las arquitecturas slice proveen bloques de construcción de los cuales pueden ser construidas redes neuronales de tamaño y longitud de palabra arbitraria. Ejemplos de arquitecturas slice son el Philip Lneuro chip, el Micro Devices MD1220 y el Neuralogix NLX-420 Neural Processor.
Chips multiprocesador
El acercamiento multiprocesador consiste en poner muchos procesadores simples en un solo procesador. Esas soluciones pueden ser divididas en dos grupos conocidos como SIMD (Instrucción simple, Datos múltiples) y arreglos sistólicos. En un diseño SIMD, todos los procesadores ejecutan la misma instrucción en paralelo en diferentes datos. En un arreglo sistólico, por otra parte, cada procesador repetidamente realiza un paso de un cálculo antes de pasar su resultado al siguiente procesador en el arreglo. Los chips SIMD incluyen el Inova N64000, que contiene 64 elementos de procesamiento (PEs), el chip HNC 100NAP contiene 4 PEs, y el chip Siemens MA-16, el cual está diseñado para realizar rápidas será obligatoriamente necesario operaciones matriciales.
Funciones Base Radiales
Las redes de Funciones Base Radiales (RBF) operan por la manipulación de vectores prototipo, que definen regiones de influencia alrededor de la formación de datos de entrada. Cada vector puede ser pensado como una esfera en un espacio hiperdimensional definido por el tamaño del vector. Las redes RBF proveen un rápido aprendizaje y una sencilla interpretación. La comparación de vectores de entrada para almacenar vectores de formación puede ser muy rápida si son hechas algunas simplificaciones; por ejemplo, tratando la región de influencia como un hipercubo en vez de una hiperesfera. Los productos RBF comerciales incluyen el chip IBM ZISC (Computadora de Juego de Instrucciones Cero) y el chip Nestor Ni1000. Aunque fabricado por una nominalmente compañía estadounidense, la familia de chips ZISC fue diseñada en Europa.
Otros diseños digitales
Algunas redes neuronales digitales no pueden ser fácilmente clasificadas usando las diferentes categorías expuestas anteriormente. Por ejemplo, el Micro Circuit Engineering MT19003 NISP es esencialmente un procesador RISC, que implementa siete instrucciones optimizadas para redes multicapa. Los chips Hitachi Wafer Scale Integration representan otro acercamiento de implementación. Todos los wafers (galletas) han sido diseñados para implementar redes Hopfield y de retropropagación.
Implementaciones Analógicas
Las redes neuronales de hardware analógico tienen la capacidad de alcanzar altas velocidades y alta densidad de implementación. Contra estas ventajas debe ser fijada la dificultad en la obtención de alta precisión a efectos de diferencias en componentes debido a tolerancias de fabricación, variaciones en temperatura y ruido termal, que limitará las señales prácticas más pequeñas en el sistema. Otros problemas son causados por la dificultad en el almacenamiento a largo plazo de coeficientes de peso analógicos y la implementación de multiplicadores analógicos, que son lineales sobre un amplio rango de operación. Un acercamiento para la implementación de redes analógicas es un diseño neurofórmico, donde la circuitería intenta imitar el comportamiento de neuronas biológicas y sinapsis tan cerca como sea posible. Las redes neuronales vivientes son construidas por neuronas, que son menos que perfectas, con problemas de matching y no linealidades, y confían en las interconexiones entre ellas para compensar sus deficiencias. Similarmente, diseños tales como el Synaptics Silicon Retina realizan útiles funciones de procesamiento de imágenes mediante la emulación de funciones de las celdas en una retina biológica. El Intel 8017NW ETANN es un Electrically Trainable Analogue Neural Network que contiene 64 neuronas y 10280 pesos, que son almacenados para atrapar carga en compuertas flotantes.
Diseños Híbridos
Por la combinación de técnicas digitales y analógicas, los diseños híbridos intentan obtener lo mejor de ambos mundos. En algunos diseños las comunicaciones externas son alcanzadas vía señales digitales, permitiendo una fácil integración con otros sistemas de cómputo, mientras que el procesamiento interno es hecho total o parcialmente en una circuitería analógica. El chip Bellcore CLNN-32 almacena los coeficientes de peso digitalmente pero cumple annealing simulada usando circuitería analógica. Similarmente, el chip AT&T ANNA usa carga almacenada en un capacitor, donde es refrescada periódicamente desde un DAC que almacena los coeficientes de peso. El Neuroclassifier, desarrollado en la Universidad de Twente en Holanda, usa almacenamiento digital de coeficientes de peso junto con un procesamiento analógico para lograr una performance de 20G conexiones por segundo. Otra técnica es usar ratio de pulsos o anchos de pulso en vez de niveles de voltaje en las redes. El chipset Neural Semiconductor, que comprime la unidad SU3232 Synapse y la unidad NU32 Neuron, junto con el Ricoh RN-100 son otros ejemplos de sistemas híbridos.
Implementaciones Ópticas
Las implementaciones ópticas aun no están bien desarrolladas pero ofrecen el potencial más grande para el crecimiento futuro de los sistemas de redes neuronales. En el diseño óptico, los hologramas se usan para implementar la función sináptica. La conectividad se logra a través de la luz. Uno de los grandes problemas que surgían en la implementación de redes neuronales de alta densidad queda aquí eliminado a causa de que los rayos de luz no pueden sufrir interferencias. Sin embargo, la principal dificultad es poder soportar la variedad de tipos de entrada que existen a menudo, como también la generación de atenuadores holográficos.
Ejemplos
Las redes neuronales han sido usadas en la imitación de patrones, para generalizar, para combinar nuevas situaciones con otras anteriores, reflejar estructuras dentro de su entorno, y seleccionar entre diversas posibilidades. Intel Corporation lanzó un chip de red neuronal analógica en Agosto de 1990. Basado en tecnología EPROM, constaba de 64 neuronas totalmente interconectadas y era apto para reemplazar una capa en una red de capa múltiple. Sin embargo, la sinapsis requería un complejo circuito de programación, por lo que el chip era más adecuado para la ejecución a gran velocidad de problemas que exigieran poco reentrenamiento. Las investigaciones prosiguieron además en los laboratorios de AT&T, TRW, Texas Instruments, IBM, General Electric, NASA’s Jet Propulsion Laboratory, entre otros. AT&T Bell puso a prueba un chip de 512 neuronas. NHK Science and Technology Laboratories de Japón está trabajando en una red neuronal de reconocimiento de caracteres. SAIC Technology Research ofrece una placa de circuitos que puede ser agregada a una computadora convencional para simular una red neuronal de una frecuencia de actualización de conexiones sinápticas de 2 millones por segundo. También puede encontrarse en la actualidad otras plaquetas incorporables similares. Los investigadores de Allied Signal entrenaron una red para reconocer objetivos submarinos a partir de un sonar. Con sólo 3 horas de entrenamiento, la red neuronal era capaz de reemplazar a los operarios humanos y a un programa de computadora cuya construcción había insumido más de 10 meses. La Universidad de Pennsylvania creó una red neuronal óptica para detectar objetos mediante un radar, que es capaz de identificar varios tipos de vehículos con sólo el 10% del patrón completo de radar. El soft NestorWriter de Nestor, Inc. utiliza un diseño de red neuronal para interpretar letras manuscritas sobre un pad sensible. Reconoce cualquiera de los 2500 caracteres del idioma japonés. Considerables pericias en el diseño de redes neuronales y sus aplicaciones en la industria están disponibles universidades por toda la Unión Europea. Existe fuerte colaboración en este campo, especialmente entre universidades, como lo expresado mediante programas ESPRIT existentes tales como NEuroNet. Los beneficios de las redes neuronales han sido reconocidos especialmente en Japón, donde un número considerable de bienes de consumo está haciéndose usando esta tecnología. El más prominente producto recientemente ha sido un horno microondas (Sharp) que usa un módulo neuronal desarrollado en el Reino Unido. Otras aplicaciones de consumo de tecnología relacionada incluyen módulos de lógica difusa en cámaras y en aspiradoras. Las soluciones deberían ser hechas a la medida de las necesidades de la industria proveyendo la elección de implementaciones desde módulos software, pasando por FPGAs y chips semi-adecuados hasta VLSI totalmente adecuados a las necesidades. Una biblioteca de funciones neuronales debería estar disponible en software y bibliotecas de celdas (digital, mezcladas y analógicas) para hardware. Las bibliotecas de software existen para los modelos de redes neuronales tradicionales, por ejemplo para usar con MATLAB. Las redes neuronales basadas en hardware son importantes para la industria, ya que ofrecen un reducido tamaño bajo poder de consumo comparado con software corriendo en una estación de trabajo. Por lo tanto tales controladores de redes neuronales pueden ser embebidos en un amplio rango de sistemas grandes y pequeños. Para que la industria se dedique a los diseños basados en universidades, esos diseños deben estar en una forma estándar industrial, por ejemplo el código funcional C++ o VHDL, debería ser modular y debería ser parametrizado para permitir la adecuación a las necesidades de la industria. Las siguientes compañías europeas son conocidas por haber investigado el uso de redes neuronales basadas en hardware: Ericsson (UK y Suecia), Philips Research (NL), Siemens AG Munich, Siemens / Nixdorf Bonn, 3M Laboratories (Europa) GmbH Neuss, XIONICS Document Technologies GmbH dortmund, Robert Bosch GmbH Reutlingen, Spectrum Microelectronics Siek (Alemania), Fiat (Italia), Domain Dynamics Ltd (UK).
Aún deben desarrollarse redes neuronales y algoritmos de aprendizaje que reflejen mejor la mente humana.
Para terminar este capítulo nos adentramos con la lectura a la página 238 de libro base en el título aplicaciones reales de los ANS, y te pido que leas todo el tema obteniendo un resumen del mismo.
[editar] Capitulo 2 : SISTEMAS BORROSOS
[editar] Datos Generales:
| Texto Base | Brío, Sanz. Redes neuronales y sistemas difusos. Colombia. Alfa-Omega, 2002. |
| Capítulo | Estudio de los Sistemas Borrosos |
| Páginas | [243-348] |
| 30 horas |
[editar] Propositos:
La inteligencia artificial posee muchas estrategias para encontrar soluciones a los problemas planteados. Una de estas consiste en determinar el uso de la lógica difusa o borrosa en el campo de los sistemas inteligentes.
[editar] Conceptos Claves:
- Lógica difusa
- Lógica para la cual no existe valores extremos sino mas bien valores intermedios.
Sistema difuso
- Interacción de todos los componentes de la lógica difusa con las variables lingüísticas.
- Variable lingüística
- Valor del lenguaje natural aplicado a la lógica borrosa.
- Fuzzificación
- Convertir el conjunto de valores a ítems válidos para la lógica difusa.
- Desfuzzificación
- Convertir los valores de la lógica difusa a variables lingüísticas.
- Conjunto difuso
- Valores que pertenecen al intervalo de la lógica difusa.
[editar] Esquema de Estudio:
A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que cada estudiante estima que necesita tutoría y realizar anotaciones personales.
| Tema a revisar | Descripción del Contenido a revisar | Actividades Recomendadas | Planificación Personal del estudio (fecha) | ¿Requiero Tutorial? | Anotaciones |
|---|---|---|---|---|---|
| 2.1. Lógica borrosa | Se explica el manejo de la lógica computacional convertida en lógica borrosa, además se presenta el tratamiento de los conjuntos difusos y las variables lingüísticas. | Realice comparaciones entre la lógica difusa y la lógica computacional. Así mismo construya conjuntos matemáticos que puedan convertirse en variables lingüísticas y en conjuntos borrosos. | |||
| 2.2. Sistemas de control borroso | A través de las estructuras de la lógica difusa se pueden obtener detalles de la forma como se pueden controlar sistemas a través de la misma. En este caso se explicará sobre la manera como se pueden manejar sistemas de control de temperatura, péndulos, etc. | Trate de analizar el caso de un sistema de control de temperatura para un horno de cerámica. Efectúe cambios drásticos sobre el sistema y determine cuales son los errores que puede cometer el mismo. |
LOGICA BORROSA
SISTEMAS DE CONTROL BORROSO
El uso de la lógica binaria se adentrado en cada uno de los elementos de participación para la generación de reglas e inclusive lenguajes de programación, en los cuales la generación de bits 1 y 0 se combinan para obtener resultados a bajo nivel. Así las características solo han podido ser emitidas bajo estos parámetros verdadero o falso, pero no existe un valor intermedio que debe ser también tomado en cuenta bajo la lógica humana, pues no todo es solamente 0 y no todo es solamente 1. En la página 244 del libro base encontramos la introducción a la lógica y a los sistemas de control borroso, y ahora una vez que hayas leído estos temas nos vamos a concentrar en el desarrollo de ejercicios. Esta teoría nos permite manejar y procesar ciertos tipos de información en los cuales se manejen términos inexactos, imprecisos o subjetivos. De una manera similar a como lo hace el cerebro humano, es posible ordenar un razonamiento basado en reglas imprecisas y en datos incompletos. Para ello debemos ampliar la teoría de conjuntos y la lógica booleana de manera que un individuo pueda pertenecer parcialmente a un conjunto y que las operaciones lógicas además de unos y ceros, puedan ser 0,01 o 0,75. Nos comunicamos y coordinamos acciones con datos como “...eres demasiado joven para hacer eso...”; Cuanto es “demasiado”?; Que es “joven”?. Con los conjuntos nebulosos (o borrosos, o fuzzy sets) podemos definir subconjuntos, de una manera tal que cualquier elemento pueda pertenecer a ellos en diferentes grados. Con reglas difusas (o fuzzy rules), es posible procesar las relaciones entre las variables fuzzy y producir una salida nebulosa (o borrosos, o fuzzy). Y lo mejor de todo...a partir de esas salidas nebulosas, podemos proporcionar cantidades binarias y cantidades continuas, como el estado de un interruptor o una cantidad de dinero.
La matemática Fuzzy en general involucra a las siguientes operaciones:
Fuzzyficación (Fuzzyfication): Traducción de los valores del mundo real a valores difusos.
Evaluación de reglas (Rule Evaluation): Determinación de la fuerza de las reglas basado en los valores de entrada y las reglas.
Defuzzyficación (Defuzzyfication): Traducir de vuelta los resultados difusos a valores del mundo real
Fuzzyficación
La traducción de valores del mundo real al ambiente Fuzzy mediante el uso de funciones de membresía. Las funciones de membresía de la Fig. 1, traducen una velocidad= 55 en los valores difusos (Grados de membresía), SLOW(LENTO)=0.25, MEDIUM(MEDIO)=0.75 y FAST(RÁPIDO)=0.
EVALUACIÓN DE LAS REGLAS (Rule Evaluation):
Considere una regla como esta: if SPEED=SLOW and HOME=FAR then GAS=INCREASE Suponga SLOW=0.25 y FAR=0.82. La validez de la regla será 0.25 (El mínimo valor entre los antecedentes) y la variable fuzzy INCREASE sería también igual a 0.25.
Tomemos ahora otra regla: If SPEED=MEDIUM and HIGHER=SECURE then GAS=INCREASE
Asumamos en este caso, MEDIUM=0.75 y SECURE=0.5. Ahora la validez de la regla será 0.5 (El mínimo valor entre los antecedentes) y la variable fuzzy INCREASE resultará entonces igual a 0.5. De esta manera, nos encontramos con dos reglas involucrando a la variable fuzzy INCREASE. Un “OR” fuzzy (ó difuso) entre los resultados de las dos reglas, será 0.5 (el máximo valor entre los dos operandos). INCREASE=0.5
DEFUZZYFICACIÓN (Defuzzyfication): Después de computar las reglas fuzzy y evaluar las variables fuzzy, necesitaremos trasladar estos valores nuevamente hacia el mundo real. Requeriremos entonces de una función de membresía (membership functions) para cada una de las variables de salida, tal como se muestra en la Fig. 2.
Asumamos los siguientes valores: DECREASE=0.2 SUSTAIN=0.8 INCREASE=0.5
Cada función de membresía (membership function) será truncada al valor de la respectiva variable fuzzy, tal como se muestra en la Fig.3.
Se construye ahora, una nueva función de membresía (membership function) de salida, tomando para cada punto en el eje horizontal, el máximo valor entre las tres funciones de membresía. El resultado de esta operación es mostrada en Fig. 4.
Para completar el proceso de defuzzyficación (Defuzzyfication), todo lo que nos resta por hacer es encontrar un punto de equilibrio. Una manera de realizar esto, es mediante el “método del centro de gravedad” (“Center of Gravity method”, COG).
Que en nuestro ejemplo, nos suministra el siguiente resultado,
Sigamos con la lectura hasta la página 269 del libro base en el título Sistemas de Control Borroso.
En esta parte se nos manifiesta que los sistemas de control borroso son sistemas expertos y se conocen también como sistemas de inferencia borrosa. El concepto de sistema experto no es más que un conjunto de reglas que movidas por un proceso conocido como motor de inferencia son capaces de producir una conclusión, por lo tango producir conocimiento pero no generarlo.
Analicemos el ejemplo del péndulo inverso en la página 272.
El problema está en equilibrar una pértiga sobre una plataforma móvil que puede moverse en dos únicas direcciones, a la izquierda o a la derecha. Ante todo, nosotros tenemos que definir (subjetivamente) cual es la velocidad del anden: alta, baja, etc. Esto se hace para especificar las funciones pertenecientes al conjunto difuso:
• negativo alto (celeste)
• negativo bajo (verde)
• cero (rojo)
• positivo bajo (azul)
• positivo alto (morado)
Lo mismo se hace para el ángulo entre la plataforma y la pértiga, además de para la velocidad angular de este ángulo:
Apréciese que, para hacerlo más fácil, suponemos que al principio la pértiga está en una posición cercana a la central para que un ángulo mayor de, digamos, 45 grados en cualquier dirección no pueda - por definición - ocurrir.
Ahora daremos varias reglas que dicen qué hacer en situaciones concretas:
Considere por ejemplo que la pértiga está en la posición central (el ángulo es cero) y no se mueve (la velocidad angular es cero). Obviamente esta es la situación deseada, y por lo tanto no tenemos que hacer nada (la velocidad es cero). Consideremos otro caso: el polo está en la posición central como antes, pero está en movimiento a baja velocidad en la dirección positiva. Naturalmente nosotros tendríamos que compensar el movimiento de la pértiga moviendo la plataforma en la misma dirección a baja velocidad.
De esta forma hemos constituido dos reglas que pueden ponerse en una forma más formalizada como esta:
Si el ángulo es cero y la velocidad angular es cero entonces la velocidad será cero.
Si el ángulo es cero y la velocidad angular es positiva baja entonces la velocidad será positiva baja.
A continuación mostraremos como estas reglas pueden aplicarse con valores concretos para el ángulo y velocidad angular. Para ello vamos a definir dos valores explícitos para el ángulo y la velocidad angular para operar con ellos.
Consideremos la situación siguiente:
Un valor actual para el ángulo:
Un valor actual para la velocidad angular:
Ahora mostraremos como aplicar nuestras reglas a esta situación real. Veamos como aplicar la regla.
Si el ángulo es cero y la velocidad angular es cero entonces la velocidad será cero a los valores que hemos definido.
Esta es la variable lingüística “ángulo” donde nos centramos en el conjunto “cero” y el ángulo actual:
Nos damos cuenta que nuestro valor real pertenece al conjunto difuso “cero” en un grado de 0.75:
Ahora mostramos la variable lingüística “velocidad angular” donde nos centramos en el conjunto difuso “cero” y el valor actual de velocidad angular:
Como las dos partes de la condición de nuestra regla están unidas por una Y (operación lógica AND) calculamos el mín(0.75,0.4)=0.4 y cortamos el conjunto difuso “cero” de la variable “velocidad” a este nivel (según nuestra regla):
Por su parte, el resultado de la regla
Si el ángulo es cero y la velocidad angular es negativa baja entonces la velocidad será negativa baja es:
El resultado de la regla Si el ángulo es cero y la velocidad angular es positiva baja entonces la velocidad será positiva baja es:
El resultado de la regla Si el ángulo es positivo bajo y la velocidad angular es negativa baja entonces la velocidad será cero es:
Estas cuatro reglas solapadas desembocan en un resultado único:
El resultado del controlador difuso es un conjunto difuso (de velocidad), así que tenemos que escoger un valor representativo como salida final. Hay varios métodos heurísticos (métodos de claridad o defuzzification), uno de ellos es tomar el centro de gravedad del conjunto difuso:
El procedimiento completo se denomina controlador de Mamdani.
[editar] Capitulo 3: SISTEMAS EXPERTOS
[editar] Datos Generales:
| Texto Base | Castillo, Gutiérrez, Hadi, Sistemas expertos y modelos de redes probabilísticas. |
| Capítulo | Sistemas Basados en Reglas |
| Páginas | 205 – 253 |
| 60 horas |
[editar] Propositos:
Los sistemas expertos son otros de los elementos de la inteligencia artificial que usa el conocimiento de un experto trasladado a un software de manejo del mismo. Bien, la meta consiste en aprender la forma como se maneja un sistema experto desde la concepción de la base de conocimiento, pasando por el motor de inferencia hasta la obtención de las conclusiones.
[editar] Conceptos Claves:
- Sistema Experto
- Conjunto o partes de un todo basado en el conocimiento de un experto
- Regla
- Lógica o proposición que al hacer ejecutada debe cumplirse.
- Probabilidad
- Elemento por el cual un acto debe cumplirse o no.
[editar] Esquema de Estudio:
A continuación se detallan los temas que se deben desarrollar, una descripción general del mismo, y un conjunto de actividades que se recomienda sean desarrolladas para una mejor asimilación de los conceptos. Se han dispuesto las tres columnas de la derecha para llevar un control personal del tiempo de dedicación a cada tema, marcar las actividades que cada estudiante estima que necesita tutoría y realizar anotaciones personales.
| Tema a revisar | Descripción del Contenido a revisar | Actividades Recomendadas | Planificación Personal del estudio (fecha) | ¿Requiero Tutorial? | Anotaciones |
|---|---|---|---|---|---|
| 3.1. Sistemas expertos basados en reglas | Se observará la forma como las proposiciones se pueden convertir en reglas y además la manera como estas se disparan para convertirse en reglas ejecutadas y luego en conclusiones. | Analice la estructura de la lógica proposicional y trate de transformar estas proposiciones en reglas.
Proponga ejemplos de reglas usando las leyes de la lógica proposicional, por ejemplo el modus tollens y el modus ponendo ponems. | |||
| 3.2. Sistemas basados en probabilidades | La manera que ocurra un hecho en un estado específico es analizado en este caso. Se expondrá el teorema de Naybe Bayes, justamente respetando la probabilidad de que cuando ocurra un hecho ocurre también inmediatamente otro. | Analice la teoría de la probabilidad en el caso de p y de q.
Trate de interpretar los resultados de la probabilidad en base de proposiciones por ejemplo si llueve entonces no hace sol por lo que esta proposición tiene como probabilidad cero. |
Para el desarrollo de este bimestre vamos a tomar como fundamento teórico y práctico el libro base más el pdf Sistemas Expertos y Redes Probabilísticas que se encuentra en el Cd. Por lo que te recomiendo ir revisando cada uno de los capítulos que se necesitan. Quisiera empezar con la definición de un sistema experto y nos dirigimos a la página 14 del paper, y allí encontramos una definición de este tipo de sistemas. Para entender un poco mejor un sistema experto no es más que una colección de conocimiento, que es proporcionado por un experto humano, de allí es que viene su nombre. Este conocimiento se lo traduce en reglas conocidas también como proposiciones, en donde cada proposición más tarde se convierte en un objetivo definido, y a la vez en una conclusión. En nuestra vida diaria encontramos muchas situaciones complejas gobernadas por reglas deterministas: sistemas de control de trafico, sistemas de seguridad, transacciones bancarias, etc. Los sistemas basados en reglas son una herramienta eficiente para tratar estos problemas. Las reglas deterministas constituyen la mas sencilla de las metodologías utilizadas en sistemas expertos. La base de conocimiento contiene las variables y el conjunto de reglas que definen el problema, y el motor de inferencia obtiene las conclusiones aplicando la lógica clásica a estas reglas. Por regla se entiende una proposición lógica que relaciona dos o mas objetos e incluye dos partes, la premisa y la conclusión. Cada una de estas partes consiste en una expresión lógica con una o mas afirmaciones objeto-valor conectadas mediante los operadores lógicos y, o, o no. Una regla se escribe normalmente como “Si premisa, entonces conclusión”. Como ejemplo de problema determinista que puede ser formulado usando un conjunto de reglas, considérese una situación en la que un usuario (por ejemplo, un cliente) desea sacar dinero de su cuenta corriente mediante un cajero automático (CA). En cuanto el usuario introduce la tarjeta en el CA, la maquina la lee y la verifica. Si la tarjeta no es verificada conexito (por ejemplo, porque no es legible), el CA devuelve la tarjeta al usuario con el mensaje de error correspondiente. En otro caso, el CA pide al usuario su numero de identificación personal (NIP). Si el numero fuese incorrecto, se dan tres oportunidades de corregirlo. Si el NIP es correcto, el CA pregunta al usuario cuanto dinero desea sacar. Para que el pago se autorice, la cantidad solicitada no debe exceder de una cierta cantidad lımite diaria, además de haber suficiente dinero en su cuenta. En este caso se tienen siete objetos, y cada objeto puede tomar uno y solo un valor de entre sus posibles valores. La Tabla 1 muestra estos objetos y sus posibles valores.
El Motor de Inferencia
Tal como se ha mencionado en la sección anterior, hay dos tipos de elementos: los datos (hechos o evidencia) y el conocimiento
Objeto
Conjunto de posibles valores
Tarjeta
{verificada, no verificada}
Fecha
{expirada, no expirada}
NIP
{correcto, incorrecto}
Intentos
{excedidos, no excedidos}
Balance
{suficiente, insuficiente}
Lımite
{excedido, no excedido}
Pago
{autorizado, no autorizado}
Regla 1
Si
Tarjeta = verificada y
Fecha = no expirada y
NIP= correcto
y
Intentos = no excedidos y
Balance = suficiente y
Límite = no excedido
Entonces
Pago = autorizado
Regla 4
Si
NIP = incorrecto
Entonces
Pago = no autorizado
Regla 5
Si
Intentos = excedidos
Entonces
Pago = no autorizado
Regla 2
Si
Tarjeta = no verificada
Entonces
Pago = no autorizado
Regla 3
Si
Fecha = expirada
Entonces
Pago = no autorizado
Regla 6
Si
Balance = insuficiente
Entonces
Pago = no autorizado
Regla 7
Si
Límite = excedido
Entonces
Pago = no autorizado
El motor de inferencia usa ambos para obtener nuevas conclusiones o hechos. Por ejemplo, si la premisa de una regla es cierta, entonces la conclusión de la regla debe ser también cierta. Los datos iniciales se incrementan incorporando las nuevas conclusiones. Por ello, tanto los hechos iniciales o datos de partida como las conclusiones derivadas de ellos forman parte de los hechos o datos de que se dispone en un instante dado.
SISTEMAS BASADOS EN REGLAS
Nos referimos para este tema a la página 35 del paper, y luego por favor ir tomando apunte de cada una de las explicaciones. Para obtener conclusiones, los expertos utilizan diferentes tipos de reglas y es- Estrategias de inferencia y control. En el resto de este bimestre se discuten las reglas de inferencia.
• Modus Ponens,
• Modus Tollens,
y las estrategias de inferencia
• Encadenamiento de reglas,
• Encadenamiento de reglas orientado a un objetivo,
que son utilizadas por el motor de inferencia para obtener conclusiones simples y compuestas.
Modus Ponens y Modus Tollens
El Modus Ponens es quizás la regla de inferencia mas comúnmente utilizada. Se utiliza para obtener conclusiones simples. En ella, se examina la premisa de la regla, y si es cierta, la conclusión pasa a formar parte del conocimiento. Como ilustración, supóngase que se tiene la regla, “Si A es cierto, entonces B es cierto” y que se sabe además que “A es cierto”. La regla Modus Ponens concluye que “B es cierto.” Esta regla de inferencia, que parece trivial, debido a su familiaridad, es la base de un gran numero de sistemas expertos. La regla de inferencia Modus Tollens se utiliza también para obtener conclusiones simples. En este caso se examina la conclusión y si es falsa, se concluye que la premisa también es falsa. Por ejemplo, supóngase de nuevo que se tiene la regla, “Si A es cierto, entonces B es cierto” pero se sabe que “B es falso.” Entonces, utilizando la regla Modus Ponens no se puede obtener ninguna conclusión pero la regla Modus Tollens concluye que “A es falso”. El rendimiento del motor de inferencia depende del conjunto de reglas en su base de conocimiento. Hay situaciones en las que el motor de inferencia puede concluir utilizando un conjunto de reglas, pero no puede, utilizando otro (aunque estos sean lógicamente equivalentes).
Encadenamiento de Reglas
Una de las estrategias de inferencia mas utilizadas para obtener conclusiones compuestas es el llamado encadenamiento de reglas. Esta estrategia puede utilizarse cuando las premisas de ciertas reglas coinciden con las conclusiones de otras. Cuando se encadenan las reglas, los hechos pueden utilizarse para dar lugar a nuevos hechos. Esto se repite sucesivamente hasta que no pueden obtenerse mas conclusiones. El tiempo que consume este proceso hasta su terminación depende, por una parte, de los hechos conocidos, y, por otra, de las reglas que se activan. Este algoritmo puede ser implementado de muchas formas. Una de ellas comienza con las reglas cuyas premisas tienen valores conocidos. Estas reglas deben concluir y sus conclusiones dan lugar a nuevos hechos. Estos nuevos hechos se añaden al conjunto de hechos conocidos, y el proceso continua hasta que no pueden obtenerse nuevos hechos. Las relaciones entre estos objetos implicadas por las seis reglas pueden representarse gráficamente, tal como se muestra en la Figura 3, donde cada objeto se representa por un nodo. Las aristas representan la conexión entre los objetos de la premisa de la regla y el objeto de su conclusión. Nótese que las premisas de algunas reglas coinciden con las conclusiones de otras reglas. Por ejemplo, las conclusiones de las Reglas 1 y 2 (objetos C y G) son las premisas de la Regla 4.
Si
H
e
I
Entonces
J
Regla 3
Si
D, E
y
F
Entonces
G
Regla 2
Si
A
y
B
Entonces
C
Regla 1
Si
K
y
L
Entonces
M
Regla 6
Si
G
y
J
Entonces
L
Regla 5
Si
C
y
G
Entonces
K
Regla 4
supóngase que se dan los hechos H = cierto, I = cierto, K = cierto y M = falso.
supóngase, en primer lugar, que el motor de inferencia usa las dos reglas de inferencia
SISTEMAS EXPERTOS BASADOS EN LA PROBABILIDAD
Para este caso continuamos con la lectura del paper y te recomiendo ir a la página 69 del mismo. Una vez dada una lectura adecuada continuas con la guía.
Modus Ponens y Modus Tollens.
En este caso, se obtiene
1. La Regla 3 concluye que J = cierto (Modus Ponens).
2. La Regla 6 concluye (Modus Tollens) que K = falso o L = falso, pero, puesto que K = cierto, deberá ser L = falso.
3. La Regla 5 concluye (Modus Tollens) que G = falso o J = falso, pero, puesto que J = cierto, deberá ser G = falso.
4
A
B
C
D
E
F
G
K
M
H
I
J
L
Regla 5
Regla 6
Regla 4
Regla 1
Regla 3
Regla 2
En consecuencia, se obtiene la conclusión G = falso. Sin embargo, si el motor de inferencia solo utiliza la regla de inferencia Modus Ponens, el algoritmo se detendrá en la Etapa 1, y no se concluirá nada para el objeto G. Este es otro ejemplo que ilustra la utilidad de la regla de inferencia Modus Tollens.
Encadenamiento de Reglas Orientado a un Objetivo
El algoritmo de encadenamiento de reglas orientado a un objetivo requiere del usuario seleccionar, en primer lugar, una variable o nodo objetivo; entonces el algoritmo navega a través de las reglas en búsqueda de una conclusión para el nodo objetivo. Si no se obtiene ninguna conclusión con la información existente, entonces el algoritmo fuerza a preguntar al usuario en busca de nueva información sobre los elementos que son relevantes para obtener información sobre el objetivo. Considérense las seis reglas de las Figuras 2 y 3. supóngase que se selecciona el nodo M como nodo objetivo y que se sabe que los objetos D, E, F y L son ciertos. Estos nodos están sombreados en la Figura 4. Las etapas del algoritmo de encadenamiento de reglas orientado a un objetivo se ilustran en la Figura 4, donde el numero en el interior de un nodo indica el orden en el que se visita cada nodo. Estas etapas son: El algoritmo de encadenamiento de reglas orientado al objetivo marcado pro- cedería de la forma siguiente:
• Se asigna el valor cierto a los objetos D, E, F y L y se marcan. Puesto que el nodo objetivo M no esta marcado, entonces
5
A
B
C
D
E
F
G
K
M
H
I
J
L
Regla 1
Regla 2
Regla 3
Regla 4
Regla 5
Regla 6
3
2
6
1
4
5
Objetivo
Los nodos cuyo valor es conocido se han sombreado, el nodo objetivo e ha rodeado por una circunferencia, y el numero en el interior de un nodo indica el orden en el que se visita cada nodo.
– Se designa el objeto M como objeto en curso.
– Se marca el objeto M. Por tanto, se tiene ObjetosMarcados = {D, E, F, L, M}.
– ObjetivosPrevios = ϕ.
– Las seis reglas están activas. Por tanto, se tiene ReglasActivas = {1, 2, 3, 4, 5, 6}.
• Se busca una regla que incluya el objetivo en curso M.
• La Regla 6 no puede concluir puesto que el valor del objeto K es desconocido.
• El objeto K no esta marcado. Entonces
– ObjetivosPrevios = {M}.
– Se elige el objeto K como objetivo en curso.
– El objeto K esta marcado. Por tanto se tiene, ObjetosMarcados = {D, E, F, L, M, K}.
• Se busca una regla que incluya el objetivo en curso K pero no el anterior M.
Se encuentra la Regla 4, y se continua con la Etapa 3.
• La Regla 4 no puede concluir puesto que se desconocen los valores de los objetos C y G.
• Los objetos C y G no están marcados. Entonces
– ObjetivosPrevios = {M, K}.
– Se elige uno de los objetos no marcados C o G como el nuevo objetivo en curso. supóngase que se elige C.
– Se marca el objeto C.
Por tanto, se tiene ObjetosMarcados = {D, E, F, L, M, K, C}.
• Se busca una regla activa que incluya el objetivo en curso C pero no los objetos previos {M, K}. Se encuentra la Regla 1.
• La Regla 1 no puede concluir puesto que se desconocen los valores de los objetos A y B.
• Los objetos A y B no están marcados. Entonces
– ObjetivosPrevios = {M, K, C}.
– Se elige uno de los objetos no marcados A y B como nuevo objetivo en curso. supóngase que se elige A.
– Se marca el objeto A.
Por ello, ObjetosMarcados = {D, E, F, L, M, K, C, A}.
• Se busca una regla activa que incluya el objetivo en curso A pero no los objetivos previos {M, K, C}. No se encuentra ninguna regla que satisfaga estas condiciones.
• Puesto que el objetivo en curso A es diferente del inicial M, se pregunta al usuario por el valor del objeto A. supóngase que A toma el valor cierto, entonces se hace A = cierto.
• El objetivo en curso A no coincide con el previo M. Por tanto, el objeto C se designa como objetivo en curso y se elimina de la lista ObjetivosPrevios. Por ello, ObjetivosPrevios = {M, K}.
• Se busca una regla activa que incluya el objetivo C pero no los anteriores {M, K}. Se encuentra la Regla 1.
• La Regla 1 no puede concluir porque el valor del objeto B es desconocido.
• El objeto B no esta marcado. Entonces
– ObjetivosPrevios = {M, K, C}.
– Se elige como objetivo en curso el único objeto no marcado, B.
– Se marca el objeto B.
Por ello, ObjetosMarcados = {D, E, F, L, M, K, C, A,B}.
• Se busca una regla activa que incluya el objetivo B pero no los objetivos previos {M, K, C}. Como no se encuentra ninguna regla, se va a la Etapa 5.
• Puesto que el objetivo en curso B no coincide con el inicial M, se pregunta al usuario el valor del objetivo en curso B. supóngase que se da un valor cierto a B, entonces se hace B = cierto.
• Como el objetivo en curso B no coincide con el inicial M, se designa el objetivo previo C como objetivo en curso y se elimina de
ObjetivosPrevios. Por ello, ObjetivosPrevios = {M, K}.
• Se busca una regla activa que incluya el objetivo en curso C pero no los anteriores {M, K}. Se encuentra la Regla 1.
• Puesto que A = cierto y B = cierto, entonces C = cierto por la Regla 1.
• El objetivo en curso C no coincide con el inicial M. Entonces, se designa el objetivo previo K como objetivo en curso y se elimina de ObjetivosPrevios.
Por ello, ObjetivosPrevios = {M}.
• Se busca una regla activa que incluya el objetivo en curso K pero no los anteriores {M}. Se encuentra la Regla 4.
• Se busca una regla activa que incluya el objetivo en curso K pero no los anteriores {M}. Se encuentra la Regla 4.
• La Regla 4 no puede concluir puesto que el valor del objeto G es desconocido.
• El objeto G no esta marcado. Entonces
– ObjetivosPrevios = {M, K}.
– El único objeto no marcado G se elige como objetivo en curso.
– Se marca el objeto G.
Por ello, ObjetosMarcados = {D, E, F, L, M, K, C, A,B, G}.
• Se busca una regla activa que incluya el objetivo en curso G pero no los anteriores {M, K}. Se encuentra la Regla 2.
• Puesto que D = cierto, E = cierto y F = cierto, entonces G = cierto por la Regla 2. Ahora se va a la Etapa 6.
• El objetivo en curso G no coincide con el inicial M. Entonces, se designa el objetivo previo K como objetivo en curso y se elimina de ObjetivosPrevios.
Por ello, ObjetivosPrevios = {M}.
• Se busca una regla activa que incluya el objetivo en curso K pero no los anteriores {M}. Se encuentra la Regla 4.
• Puesto que C = cierto y G = cierto, entonces K = cierto por la Regla 4.
El objetivo en curso K no coincide con el inicial M. Entonces, se designa el objetivo previo M como objetivo en curso y se elimina de ObjetivosPrevios.
Por ello, ObjetivosPrevios = ϕ.
• Se busca una regla activa que incluya el objetivo en curso M. Se encuentra la Regla 6.
• Puesto que K = cierto y L = cierto, entonces M = cierto por la Regla 6.
• El objetivo en curso M coincide con el inicial. En consecuencia.
• El algoritmo devuelve el valor M = cierto.
Las estrategias de encadenamiento de reglas se utilizan en problemas en los que algunos hechos (por ejemplo, síntomas) se dan por conocidos y se buscan algunas conclusiones (por ejemplo, enfermedades). Por el contrario, las estrategias de encadenamiento de reglas orientadas a un objetivo se utilizan en problemas en los que se dan algunos objetivos (enfermedades) y se buscan los hechos (síntomas) para que estas sean posibles.
Control de la Coherencia
En situaciones complejas, incluso verdaderos expertos pueden dar información inconsistente (por ejemplo, reglas inconsistentes y/o combinaciones de hechos no factibles). Por ello, es muy importante controlar la coherencia del conocimiento tanto durante la construcción de la base de conocimiento como durante los procesos de adquisición de datos y razonamiento. Si la base de conocimiento contiene información inconsistente (por ejemplo, reglas y/o hechos), es muy probable que el sistema experto se comporte de forma poco satisfactoria y obtenga conclusiones absurdas.
El objetivo del control de la coherencia consiste en
1. Ayudar al usuario a no dar hechos inconsistentes, por ejemplo, dándole al usuario las restricciones que debe satisfacer la información demandada.
2. Evitar que entre en la base de conocimiento cualquier tipo de conocimiento inconsistente o contradictorio.
El control de la coherencia debe hacerse controlando la coherencia de las reglas y la de los hechos.
Coherencia de Reglas
Un conjunto de reglas se denomina coherente si existe, al menos, un conjunto de valores de todos los objetos que producen conclusiones no contradictorias. En consecuencia, un conjunto coherente de reglas no tiene por que producir conclusiones no contradictorias para todos los posibles conjuntos de valores de los objetos.
Es decir, es suficiente que exista un conjunto de valores que conduzcan a conclusiones no contradictorias.
Considérense las cuatro reglas siguientes, que relacionan dos objetos A y B binarios {C, F}:
• Regla 1: Si A = C, entonces B = C.
• Regla 2: Si A = C, entonces B = F.
• Regla 3: Si A = F, entonces B = C.
• Regla 4: Si A = F, entonces B = F.
Las Reglas 1-2 son coherentes puesto que, tal como se muestra en la Tabla 2, para A = F, no producen conclusiones. Sin embargo, las Reglas 1-4 son incoherentes porque producen conclusiones contradictorias para todos los posibles valores de A y
B.
Nótese que un conjunto de reglas puede ser coherente, aunque algunos conjuntos de valores puedan producir conclusiones inconsistentes. Estos conjuntos de valores se llaman valores no factibles. Por ejemplo, las Reglas 1-2 son coherentes, aunque producen conclusiones inconsistentes en todos los casos en que A = C. En consecuencia el subsistema de control de coherencia eliminara automáticamente el valor C de la lista de posibles valores del objeto A, permitiendo de esta forma al usuario seleccionar solo valores factibles de los objetos
Se dice que un valor a para el objeto A no es factible si las conclusiones obtenidas al hacer A = a contradicen cualquier combinación de valores del resto de los objetos. Por ello, cualquier valor no factible debe ser eliminado de la lista de valores posibles de su correspondiente objeto para eliminar la posibilidad de que el motor de inferencia pueda obtener conclusiones inconsistentes.
Coherencia de hechos
Los datos o evidencias suministrados por los usuarios deben ser también consistentes en sıy con el conjunto de reglas de la base de datos. Por ello, el sistema no debe aceptar hechos que contradigan el conjunto de reglas y/o el conjunto de hechos existente en cada instante del proceso. El sistema debe también comprobar si existe o no, una solución factible e informar al usuario en consecuencia. Si en el ejemplo anterior se trata de dar la información A = 0, B = 0 y D = 0, el sistema debe detectar que no existe ningún valor de C que sea consistente con la base de conocimiento. Nótese que antes de conocer los valores de los objetos, existe una solución factible. Por ejemplo, A = 0, B = 0, C = 0 y D = 1 (estos hechos no contradicen la base de conocimiento). Por ello, la inconsistencia surge que los hechos y las reglas sean inconsistentes.
Tratamiento de la Incertidumbre
En la Lógica clásica, lo único que puede deducirse de una regla (“modus ponens” y “modus tollens”) es que si su premisa es cierta, también lo será su conclusión . Por tanto, dada la regla: “Si A es cierto, entonces B es cierto” puede decirse que A implica B con probabilidad 1 (Figura 5)(a)). Sin embargo, este modelo tiene importantes limitaciones, porque son habituales las situaciones practicas en las cuales no es valido el modelo anterior. Por ejemplo, la presencia de algunos síntomas no garantiza siempre la existencia de una enfermedad. Por tanto, serıa muy útil generalizar la lógica clásica y por medio de una lógica “incierta”. En este nuevo contexto, la regla anterior puede generalizarse de la forma siguiente: “A implica B con probabilidad Pr(B|A)”, donde Pr(B|A) es la probabilidad de B dado A (Figura 5)(b)). Además, el otro extremo de la lógica clásica, representado por la regla: “A implica B con probabilidad 0” puede ser generalizado por “A implica Bcon probabilidad 1”, donde B es denota el complementario de B. Uno de los problemas relacionados con este tipo de lógica es la propagación de incertidumbre. Obsérvese que ahora cada sentencia (hecho) debe de estar acompañada de una medida de incertidumbre (probabilidad, factor de certeza, etc.) y que, cuando se combinan varios hechos, ha de darse a las conclusiones obtenidas una medida de su incertidumbre. Sin embargo, el problema principal es que aunque se conozca la medida de incertidumbre asociada con las premisas, las conclusiones pueden tener, en teoría, un numero infinito de valores inciertos. Además, si se permite la posibilidad de reglas inciertas la cosa se complica aun mas.
Este hecho muestra la necesidad del desarrollo de nuevos sistemas expertos, como los basados en probabilidad. A
B
A
B
A
B
(a) Pr(B|A) = 1
(b) 0 < Pr(B|A) < 1
(c) Pr(B|A) = 0
A implica B con Pr(B|A) = 1, (b)
A implica B con Pr(B|A) = p, donde 0 < p < 1, y (c) A implica B con Pr(B|A) = 0.
EJEMPLOS DE APLICACIÓN
MYCYN
MYCIN es un Sistema Experto para la realización de diagnósticos, iniciado pro Ed Feigenbaum y posteriormente desarrollados por E.Shortliffe y sus colaboradores. Su función es la de aconsejar a los médicos en la investigación y determinación de diagnósticos en el campo de las enfermedades infecciosas de la sangre. El sistema MYCIN, al ser consultado por el médico, solicita primero datos generales sobre el paciente: nombre, edad, síntomas, etc. Una vez conocida esta información por parte del sistema, el Sistema Experto plantea unas hipótesis. Para poder verificarlas compru