UNIVERSIDAD YACAMBÚ

MAESTRÍA EN GERENCIA DE LAS FINANZAS Y DE LOS NEGOCIOS

 

 

 

SISTEMAS DE INFORMACIÓN GERENCIAL

FECHA: ABRIL - JUNIO 2007

Prof. Msc. Yaros Pérez

 

 

 

 

Home   Trabajo N°1   Trabajo N°2   Foros

Trabajo Final

 

 

FORO

SISTEMAS DE APOYO A LA TOMA DE DECISIONES

Autor:  Franklin Marcano

 

 


 

REDES NEURALES. SISTEMAS DE LÓGICA DIFUSA. REALIDAD VIRTUAL. ALGORITMOS GENÉTICOS.

 

 

1.- Redes neuronales

Introducción

Una Red Neural, es un sistema compuesto por un gran número de elementos básicos (Artificial Neurons), agrupados en capas (Layers) y que se encuentran altamente interconectados (Synapses). Esta estructura posee varias entradas y salidas, las cuales serán entrenadas para reaccionar (valores O), de una manera deseada, a los estímulos de entrada (valores I).

Estos sistemas emulan, de cierta manera, al cerebro humano, pero lo tanto requieren aprender a comportarse (Learning) y alguien debe encargarse de enseñarles o entrenarles (Training), en base a un conocimiento previo del entorno del problema.

1.1.  Definición

Una red neural (o neuronal) es una estructura computacional que permite resolver diversos problemas de optimización o clasificación, para lo que deben ser sometidas a un proceso de entrenamiento usando un conjunto de patrones conocidos. Una vez que la red ha "aprendido" a procesar correctamente estos patrones, ya está lista para responder a cualquier entrada, proporcionando una salida esperada. Desde un punto de vista matemático, el entrenamiento de una red neuronal es una sucesión de funciones de Rn en Rn que deben converger a la función que resuelve el problema para el que se está realizando dicho entrenamiento.

1.2.- Aplicación de las Redes Neurales

Las redes neurales son útiles en unos pocos y muy especiales problemas. A grandes rasgos, estas aplicaciones son aquellas en las cuales se dispone de un registro de datos y nadie sabe exactamente la estructura y los parámetros que pudieran modelar el problema. En otras palabras, grandes cantidades de datos y mucha incertidumbre en cuanto a la manera de como estos son producidos.

Las Redes Neurales (Neural Networks) son utilizadas, entre otras cosas para la predicción, la minería de datos (data mining), el reconocimiento de patrones y los sistemas de control adaptativo. Constituyen una parte muy importante en el estudio y desarrollo de la inteligencia artificial (AI) y el de la vida artificial (a-life).

Es importante considerar, que las Redes Neurales pueden también ser combinadas con otras herramientas, como la lógica difusa (lógica fuzzy), los algoritmos genéticos, los sistemas expertos, las estadísticas, las transformadas de Fourier, etc. para conseguir otras aplicaciones.

1.3.- Diseño de una Red Neural

La construcción de una Red Neural, se puede realizar de varias maneras:

a. A nivel de hardware, utilizando por ejemplo transistores a efecto de campo (FET) o amplificadores operacionales.

b. A nivel de software, con programas de computación.

Por lo tanto, esta tecnología puede ser desarrollada tanto en software como en hardware y con ella se pueden construir sistemas capaces de aprender, de adaptarse a condiciones variantes, o inclusive si se dispone de una colección suficiente grande de datos, predecir el estado futuro de algunos modelos. Estas técnicas son adecuadas para enfrentar problemas  que hasta ahora eran resueltos sólo por el cerebro humano y resultaban difíciles o imposibles para las máquinas lógicas secuenciales. Un procesamiento paralelo realizado por un gran número de elementos altamente interconectados, es la clave de su funcionamiento.

Los aspectos más importantes que se deben considerar en una Red Neural son:

  1. Elemento Básico “Neurona Artificial”: puede ser con salidas binarias, análogas o con codificación de pulsos (PCM). Es la unidad básica de procesamiento que se conecta a otras unidades a través de conexiones sinápticas (Synaptic Connection).
  2. La Estructura de la Red Neural: Interconexión de los elementos básicos

 

1.4.- Elemento Básico: Neurona Artificial

Una neurona artificial es un elemento con entradas, salida y memoria que puede ser realizada mediante software o hardware. Posee entradas (I) que son ponderadas (w), sumadas y comparadas con un umbral (t), como se muestra en la siguiente figura:

Tomado de http://www.answermath.com/

 

    La señal computada de esa manera, es tomada como argumento para una función no lineal (f), la cual determinará el tipo de neurona y en parte el tipo de red neuronal (Neural Network). Esta función puede tener diferentes formas, siendo la más común la función sigmoidal (Sigmoid Function). A continuación se presentan algunos ejemplos:

Tomado de http://www.answermath.com/

 

1.5.-  Estructura de una Red Neural: Interconexión de los Elementos Básicos

Es la manera como las unidades (artificial neurons) comunican sus salidas a las entradas de otras unidades. Por lo general estas están agrupadas en capas (layers), de manera tal, que las salidas de una capa están completamente conectadas a las entradas de la capa siguiente; en este caso se habla de una red “completamente conectada”. Es posible tener redes en las cuales sólo algunas de las unidades están conectadas, también se pueden presentar conexiones (Synapses) de realimentación, conectando algunas salidas hacia entradas en capas.

Tomado de http://www.answermath.com/

 

1.6.- Proceso de Entrenamiento o Aprendizaje de las Redes Neurales

Este proceso consiste en una adaptación progresiva de los valores de las conexiones sinápticas (Synaptic Connections), para permitir a la Red Neural (Neural Network) el aprendizaje de un comportamiento deseado. Para lograr esto, se alimenta la red con una entrada de los datos de entrenamiento, se compara la salida de la red con la salida de los datos de entrenamiento; la diferencia se usa para computar el error (cuadrático medio) de la respuesta de la red. Con un algoritmo apropiado es posible retocar los valores de los pesos sinápticos con el fin de reducir el error. Estas correcciones deben realizarse varias veces o en varios ciclos, para todo el conjunto de entradas-salidas de los datos de entrenamiento.

 

Tomado de http://www.answermath.com/

 

1.7.-  Ejecución: Comportamiento Final de una Red Neural

Una Red Neural, debe ser alimentada con una NUEVA ENTRADA (nunca antes vista), es decir, una situación nueva, así, La Red Neural (Neural Network) producirá una respuesta razonable ó inteligente en sus salidas.

Puede tratarse de la predicción de un valor en la bolsa en ciertas circunstancias (Forcasting), el riesgo de un nuevo préstamo, una advertencia sobre el clima local ó la identificación de una persona en una nueva imagen (Pattern Recognition).

 

2.- Sistemas de Lógica Difusa (Lógica Fuzzy)

Introducción:

Esta área de la Inteligencia Artificial estudia los problemas de hacer que una computadora sea capaz de tomar decisiones (“pensar”) usando conocimiento incompleto o probabilístico.

2.1.- Definición

La Lógica Fuzzy es un tipo de lógica para procesar datos inciertos. En ella, un elemento puede tener infinitas graduaciones entre Verdadero y Falso.

2.2.- Elementos Básicos

La Lógica Difusa o Fuzzy, en general involucra  las siguientes operaciones:

a.      Fuzzificación (Fuzzyfication): Traducción de los valores del mundo real a valores difusos.

b.      Evaluación de Reglas  (Rule Evaluation): Determinación de la fuerza de las reglas, basado en los valores de entrada y las reglas.

c.      Defuzzificación: Traducir de vuelta los resultados difusos a valores del mundo real.

 

2.3.- Fuzzificación (este punto será explicado a través de un ejemplo)

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 siguiente figura 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.

 

Tomado de http://www.answermath.com/

 

2.4.- Evaluación de Reglas (Este punto será explicado a través de un Ejemplo):

 

Considerando la siguiente regla:

If   SPEED=SLOW  and   HOME=FAR

Then   GAS=INCREASE

 

Asumiendo que 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.

 

Considerando ahora otra regla:     

If   SPEED=MEDIUM   and   HIGHER=SECURE  

Then   GAS=INCREASE

Asumiendo 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


 

 

2.5.- Defuzzificación:

Después de computar las reglas fuzzy y evaluar las variables fuzzy, es necesario trasladar estos valores nuevamente hacia el mundo real. Para ello es necesaria una función de membresía (membership functions) para cada una de las variables de salida.

Continuando con el Ejemplo del punto anterior y considerando las siguientes variables:

DECREASE = 0.2 

SUSTAIN= 0.8

INCREASE = 0.5, la siguiente figura ilustra el proceso de Defuzzificación:

Tomado de http://www.answermath.com/

 

Cada función de membresía (membership function) será truncada al valor de la respectiva variable fuzzy, tal como se muestra en la siguiente figura:

 

Tomado de http://www.answermath.com/

 

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 la siguiente figura:

 

Tomado de http://www.answermath.com/

 

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).

En el ejemplo considerado, se suministra el siguiente resultado,

 

COG ≈ 2.6

 

3.- Realidad Virtual

Introducción:

Una de las más recientes aplicaciones de la Inteligencia Artificial (I.A) es la Realidad Virtual. Básicamente consiste en la elaboración de programas que logran engañar a los sentidos del ser humano, haciéndolo creer que se encuentra flotando, corriendo o volando una nave espacial.

Estas aplicaciones han sido de gran utilidad en la simulación de vuelos para el entrenamiento de pilotos, astronautas, buzos, etc.

3.1.- Definición:

La realidad virtual (RV) es una simulación tridimensional generada o asistida comúnmente por computadora de algún aspecto del mundo real o ficticio, en el cual el usuario tiene la sensación de pertenecer a ese ambiente sintético o interactuar con él. La RV permite interactuar con mundos tridimensionales de una manera más natural, por ejemplo, un usuario puede realizar acciones dentro de un modelo virtual, desplazarse, moverse, caminar a través de él o levantar cosas, y de esta forma experimentar situaciones que se asemejan al mundo real.

La Enciclopedia Británica la define como: La utilización de la modelación y simulación que habilitan a la persona a interactuar con una visión tridimensional o a través de sensores ambientales. De tal forma que las aplicaciones inmergen o emergen al individuo en ambientes generados por computadora que simulan la realidad a través del uso interactivo de estos dispositivos, los cuales envían y reciben información.

 

3.2.- Principales Características:

Se destacan tres características idóneas de la RV:

Es inmersiva, es decir, el usuario se siente parte del ambiente virtual

 

3.3.- Aplicaciones:

Una de las principales aplicaciones se da en el área de entrenamiento o capacitación, donde el usuario tiene la oportunidad de poder trabajar en ambientes virtuales sin tener que ponerse en peligro o pagar un alto costo para adquirir cierta experiencia en un área determinada, además la RV se puede utilizar para elaborar prototipos de productos, (simuladores de vuelo) simulaciones de vuelo, educación médica (simulación quirúrgica, entrenamiento, simulaciones para tratamientos psiquiátricos), visualización de datos (como la modelación de moléculas), entre otras.

 

3.4.- Modelo genérico de un Sistema de Realidad Virtual

Las partes básicas de un sistema de realidad virtual son:

a.      El modelo de simulación.

b.      La representación del ambiente virtual.

c.      La entrada/salida y por supuesto el usuario.

La siguiente figura muestra cada una de las partes básicas del Sistema de Realidad Virtual:

Tomado de http://telematica.cicese.mx

3.5.- Tipos de Realidad Virtual

Existen diferentes tipos de realidad virtual, los cuales se describen brevemente a continuación:

  1. Sistemas inmersivos: los sistemas inmersivos son aquellos sistemas donde el usuario se siente dentro del mundo virtual que esta explorando. Este tipo de sistemas utiliza diferentes dispositivos denominados accesorios, como pueden ser guantes, trajes especiales, visores o cascos, estos últimos le permiten al usuario visualizar los mundos a través de ellos, y precisamente estos son el principal elemento que lo hacen sentirse inmerso dentro de estos mundos. Este tipo de sistemas son ideales para aplicaciones de entrenamiento o capacitación.

 

  1. Sistemas semi-inmersivos: los sistemas semi-inmersivos o inmersivos de proyección se caracterizan por ser 4 pantallas en forma de cubo (tres pantallas forman las paredes y una el piso), las cuales rodean al observador, el usuario usa lentes y un dispositivo de seguimiento de movimientos de la cabeza, de esta manera al moverse el usuario las proyecciones perspectivas son calculadas por el motor de RV para cada pared y se despliegan en proyectores que están conectados a la computadora. Este tipo de sistemas son usados principalmente para visualizaciones donde se requiere que el usuario se mantenga en contacto con elementos del mundo real.

 

  1. Sistemas no inmersivos: los sistemas no inmersivos o de escritorio, son aquellos donde el monitor es la ventana hacia el mundo virtual y la interacción es por medio del teclado, micrófono, mouse o joystick, este tipo de sistemas son idóneas para visualizaciones científicas, también son usadas como medio de entretenimiento y aunque no ofrecen una total inmersión son una buena alternativa de bajo costo.

 

4.- Algoritmos Genéticos

Introducción:

Un Algoritmo Genético se define como una técnica computacional inspirada en modelos biológicos que han sido utilizados para realizar búsquedas eficientes en espacios de soluciones altamente complejos y grandes.

Los Algoritmos Genéticos son métodos adaptivos que pueden ser utilizados para implementar búsquedas y problemas de optimización.

Los Algoritmos Genéticos están basados en los procesos genéticos de los organismos biológicos, codificando una posible solución a un problema en un “cromosoma” compuesto por una cadena de bits o caracteres.

 

 

4.1.- Definición

Los algoritmos genéticos son métodos sistemáticos para la resolución de problemas de búsqueda y optimización que aplican a estos los mismos métodos de la evolución biológica: selección basada en la población, reproducción sexual y mutación.

Los algoritmos genéticos son métodos de optimización, que tratan de resolver un conjunto de problemas. En un algoritmo genético, tras parametrizar el problema en una serie de variables, (xi,...,xn) se codifican en un cromosoma. Todos los operadores utilizados por un algoritmo genético se aplicarán sobre estos cromosomas, o sobre poblaciones de ellos. En el algoritmo genético va implícito el método para resolver el problema; son solo parámetros de tal método los que están codificados, a diferencia de otros algoritmos evolutivos como la programación genética. Hay que tener en cuenta que un algoritmo genético es independiente del problema, lo cual lo hace un algoritmo robusto, por ser útil para cualquier problema, pero a la vez débil, pues no está especializado en ninguno.

 

4.2.- Principales aspectos de un Algoritmo Genético:

Un algoritmo genético consiste en lo siguiente:

  1. Hallar de qué parámetros depende el problema.
  2. Codificarlos en un Cromosoma.
  3. Aplicar los métodos de la evolución: selección y reproducción sexual con intercambio de información y alteraciones que generan diversidad.

 

4.3.- Ejecución de un Algoritmo Genético

El algoritmo genético procede de la forma siguiente:

  1. Evaluar la puntuación (fitness) de cada uno de los genes.
  2. Permitir a cada uno de los individuos reproducirse, de acuerdo con su puntuación.
  3. Emparejar los individuos de la nueva población, haciendo que intercambien material genético, y que alguno de los bits de un gen se vea alterado debido a una mutación espontánea.

Cada uno de los pasos consiste en una actuación sobre las cadenas de bits, es decir, la aplicación de un operador a una cadena binaria. Se les denominan, por razones obvias, operadores genéticos, y hay tres principales: selección, crossover o recombinación y mutación; aparte de otros operadores genéticos no tan comunes, que un algoritmo genético tiene también que fijar para cada ejecución, como lo son:

  1. Tamaño de la población: debe de ser suficiente para garantizar la diversidad de las soluciones, y, además, tiene que crecer más o menos con el número de bits del cromosoma, aunque nadie ha aclarado cómo tiene que hacerlo. Por supuesto, depende también del ordenador en el que se esté ejecutando.
  2. Condición de terminación: lo más habitual es que la condición de terminación sea la convergencia del algoritmo genético o un número prefijado de generaciones.

 

 

 

 

 

 

Ultima revisión: Mayo 2007