You are on page 1of 10

Bienvenidos a nuestro tutorial sobre lgica difusa (fuzzy logic) y conjuntos nebulosos o borrosos (fuzzy sets).

http://www.answermath.com/logica_difusa_conjuntos_nebulosos.htm

Esta teora nos permite manejar y procesar ciertos tipos de informacin en los cuales se manejen trminos 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 teora de conjuntos y la lgica booleana de manera que un individuo pueda pertenecer parcialmente a un conjunto y que las operaciones lgicas adems 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..."; Cunto es "demasiado"?; Que es "joven"?. Con los conjuntos nebulosos (o borrosos, o fuzzy sets) podemos definir sub-conjuntos, 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 contnuas, como el estado de un interruptor o una cantidad de dinero.

LGICA "FUZZY" (DIFUSA) Y CONJUNTOS NEBULOSOS). FUZZY LOGIC, FUZZY SETS.

"FUZZY"

(DIFUSOS,

La matemtica Fuzzy en general involucra a las siguientes operaciones: Fuzzyficacin (Fuzzyfication): Traduccin de los valores del mundo real a valores difusos. Evaluacin de reglas (Rule Evaluation): Determinacin de la fuerza de las reglas basadas en los valores de entrada y las reglas. Defuzzyficacin (Defuzzyfication): Traducir de vuelta los resultados difusos a valores del mundo real.

FUZZYFICACIN (Fuzzyfication)
La traduccin de valores del mundo real al ambiente Fuzzy mediante el uso de funciones de membresa. Las funciones de membresa de la Fig. 1, traducen una velocidad= 55 en los valores difusos (Grados de membresa), SLOW(LENTO)=0.25, MEDIUM(MEDIO)=0.75 y FAST(RPIDO)=0.

EVALUACIN DE LAS REGLAS (Rule Evaluation):


Considere esta: if SPEED=SLOW and una HOME=FAR then regla GAS=INCREASE como

Suponga SLOW=0.25 y FAR=0.82. La validez de la regla ser 0.25 (El mnimo valor entre los antecedentes) y la variable fuzzy INCREASE sera tambin 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 mnimo 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 mximo valor entre los dos operandos). INCREASE=0.5

DEFUZZYFICACIN (Defuzzyfication)
Despus de computar las reglas fuzzy y evaluar las variables fuzzy, necesitaremos transladar estos valores nuevamente hacia el mundo real. Requeriremos entonces de una funcin de membresa (membership functions) para cada una de las variables de salida, tal como se muestra en la Fig. 2.

Cada funcin de membresa (membership function) ser truncada al valor de la respectiva variable fuzzy, tal como se muestra en la Fig.3.

Se construye ahora, una nueva funcin de membresa (membership function) de salida, tomando para cada punto en el eje horizontal, el mximo valor entre las tres funciones de membresa. El resultado de esta operacin es mostrado en Fig. 4.

Para completar el proceso de defuzzyficacin (Defuzzyfication), todo lo que nos resta por hacer es encontrar un punto de equilibrio. Una manera de realizar esto, es mediante el "mtodo del centro de gravedad" ("Center of Gravity method", COG).

Que en nuestro ejemplo, nos suministra el siguiente resultado,

... sigue ahora con el TEST.

Bienvenido a nuestro tutorial sobre Redes Neuronales o Neurales artificiales . Neural Networks.
Esta tecnologa puede ser desarrollada tanto en software como en hardware y con ella se pueden construir sistemas capaces de aprender, de adaptarse a a condiciones variantes, o

inclusive si se dispone de una coleccin suficiente grande de datos, predecir el estado futuro de algunos modelos. Estas tcnicas son adecuadas para enfrentar problemas que hasta ahora eran resueltos slo por el cerebro humano y resultaban difciles o imposibles para las mquinas lgicas secuenciales. Un procesamiento paralelo realizado por un gran nmero de elementos altamente interconectados, es la clave de su funcionamiento. Las Redes Neuronales (Neural Networks) son utilizadas para la prediccin, la minera 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). Las RN pueden ser combinadas con otras herramientas como la lgica difusa (lgica fuzzy), los algoritmos genticos, los sistemas expertos, las estadsticas, las transformadas de Fourier, etc.

Tutorial corto sobre Redes Neuronales (Neurales). (Neural Networks).


Bienvenido a nuestro Tutorial sobre Redes Neuronales (artificiales) (RN); Una tecnologa que puede, en base a software o hardware, aprender a predecir ciertos eventos. Particularmente tiles en reas reservadas hasta ahora para el cerebro humano y en las que las mquinas lgicas secuenciales, han encontrado muchas dificultades.

CONTENIDO
Concepto: Que es una Red Neuronal (Neural Network)? Aplicacin: Para qu son tiles? Diseo: Cmo se construyen? Elemento bsico. Neurona artificial (Artificial Neuron). La estructura de la red. La interconexin de los elementos bsicos. Capas. (The structure of the Net - Interconnection - Layers). Aprendizaje. El proceso de entrenamiento (Learning - Training). Ejecucin. Comportamiento final de la RN.

Concepto: Que es una Red Neuronal (Neural, Neural Networks)?


Es un sistema compuesto por un gran nmero de elementos bsicos (Artificial Neurons), agrupados en capas (Layers) y que se encuentran altamente interconectados (Synapses); Esta estructura posee varias entradas y salidas, las cuales sern entrenadas para reaccionar (valores O), de una manera deseada, a los estmulos de entrada (valores I). Estos sistemas emulan, de una cierta manera, al cerebro humano. Requieren aprender a comportarse (Learning) y alguien debe encargarse de ensearles o entrenarles (Training), en base a un conocimiento previo del entorno del problema.

Aplicacin: Para qu son tiles las Redes Neuronales (Neural Networks)?


Esta tecnologa es muy til 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 parmetros que pudieran modelar el problema. En otras palabras, grandes cantidades de datos y mucha incertidumbre en cuanto a la manera de cmo estos son producidos.

Diseo: Cmo se construyen las Redes Neuronales (Neural Networks)?


Se pueden realizar de varias maneras. Por ejemplo en hardware utilizando transistores a efecto de campo (FET) o amplificadores operacionales, pero la mayora de las RN se construyen en software, esto es en programas de computacin. Existen muy buenas y flexibles herramientas disponibles en internet que pueden simular muchos tipos de neuronas (Neurons), conexiones sinpticas (Synapses) y estructuras. Aspectos a considerar en la red neuronal:

Elemento bsico. Neurona artificial. Pueden ser con salidas binarias, anlogas o con codificacin de pulsos (PCM). Es la unidad bsica de procesamiento que se conecta a otras unidades a travs de conexiones sinpticas (Synaptic Connection). La estructura de la red. La interconexin de los elementos bsicos. Es la manera como las unidades bsicas se interconectan. Un ejemplo de cmo se combinan los aspectos mencionados es el perceptrn multicapa (Multi-Layer Perceptrn), entrenado con el algoritmo del "backpropagation". Se trata de una red compuesta por varios estratos de neuronas con respuestas basadas en funciones exponenciales, y cuyas conexiones sinpticas se determinan de manera de minimizar un error cuadrtico medio. Otro ejemplo es el mapa auto-organizado de Kohonen (Self-organizing Map), en el cual slo se requiere conocer la salida del sistema.

Elemento bsico. Neurona artificial (Artificial Neuron).


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

s = I1 * w1 + I2 * w2 + + In * wn - t o = f (s)
La seal computada de esa manera, es tomada como argumento para una funcin no lineal (f), la cual determinar el tipo de neurona y en parte el tipo de red neuronal (Neural Network). Esta funcin puede tener diferentes formas, siendo la ms comn la funcin sigmoidal (Sigmoid Function). A continuacin se presentan algunos ejemplos:

La estructura de la red (Neural Network). La interconexin de los elementos bsicos.


Es la manera como las unidades (artificial neurons) comunican sus salidas a las entradas de otras unidades. Por lo general estas estn agrupadas en capas (layers), de manera tal, que las salidas de una capa estn completamente conectadas a las entradas de la capa siguiente; en este caso decimos que tenemos una red completamente conectada. Es posible tener redes en las cuales slo algunas de las unidades estn conectadas, tambin podemos tener conexiones (Synapses) de realimentacin, conectando algunas salidas hacia entradas en capas anteriores (no se confunda esto con el "back propagation").

Para obtener un resultado aceptable, el nmero de capas debe ser por lo menos tres. No existen evidencias, de que una red con cinco capas resuelva un problema que una red de cuatro capas no pueda. Usualmente se emplean tres o cuatro capas.

Aprendizaje. El proceso de entrenamiento de las Redes Neuronales (Neural Networks Training).


Este proceso consiste en una adaptacin progresiva de los valores de las conexiones sinpticas (Synaptic Connections), para permitir a la Red Neuronal (Neural Network) el aprendizaje de un comportamiento deseado. Para lograr esto, alimentamos a la red con una entrada de los datos de entrenamiento, comparamos la salida de la red con la salida de los datos de entrenamiento; la diferencia se usa para computar el error (cuadrtico medio) de la respuesta de la red. Con un algoritmo apropiado (como el "Backpropagation") es posible retocar los valores de los pesos sinpticos con el fin de reducir el error. Estas correcciones deben realizarse varias veces o ciclos, para todo el conjunto de entradas-salidas de los datos de entrenamiento.

Ejecucin. Comportamiento final de la Red Neuronal (Neural Network).


Para este trabajo debemos disponer de una red entrenada. Es posible alimentar a este sistema con una nueva entrada (nunca antes vista), una situacin nueva, y nuestra Red Neuronal (Neural Network) producir una respuesta razonable o inteligente en sus salidas. Puede tratarse de la prediccin de un valor en la bolsa en ciertas circunstancias (Forcasting), el riesgo de un nuevo prstamo, una advertencia sobre el clima local o la identificacin de una persona en una nueva imagen (Pattern Recognition). Es sencillo, pero funciona El futuro de las Redes Neuronales (Neural Networks) estar determinado en parte por el desarrollo de chips ad hoc, avances en la computacin ptica/paralela y tal vez en un nuevo tipo de unidad qumica de procesamiento.

Bienvenido a la tutora introductiva sobre Algoritmos Genticos (AG).

En las ltimas dcadas muchas mentes se han esforzado para darle al mundo nuevas herramientas para resolver problemas tanto viejos como nuevos. Si bien los mtodos clsicos son en la mayora de los casos ms elegantes, precisos y eficientes, con frecuencia encuentran limitaciones al momento de representar y manejar situaciones del mundo real. Los Algoritmos Genticos o en general, los mtodos basados en la evolucin nos suministran nuevas maneras de trabajar con cierto tipo de problemas. Estos se inspiran en las leyes sobre la evolucin de Darwin y en los conceptos bsicos de la biologa gentica. No es necesario conocer el comportamiento interno del sistema con el que se va a trabajar. Sin embargo, se debe poseer el conocimiento suficiente de las salidas del sistema y sus efectos en el medio circundante de manera de poder evaluar las posibles soluciones. Demos un vistazo a algunos conceptos bsicos que puedes usar para construir tu propio algoritmo adaptado tus necesidades.

Qu es un Algoritmo Gentico?
Es un procedimiento inspirado en la evolucin (Charles Darwin), programado en computadoras (ordenadores) y orientado a producir soluciones a problemas donde los tratamientos clsicos encuentran dificultades. A partir de esa definicin general, podemos encontrar otras proposiciones y denominaciones tales como Algoritmos Evolucionarios, Estrategias Evolutivas y Programacin Gentica. Todas ellas tienen su origen en los concentos expresados por Nils Aall Barricelli (1954), y John Holland (1970). Aun cuando el ttulo sugiera una secuencia de tareas rgida y bien definida, lo ms importante son los conceptos bsicos asociados con este tema. Una vez que los hemos entendido y una vez realizadas algunas reflexiones sobre ellos, podemos usar estos conceptos para construir nuestro propio algoritmo, pueden utilizarse en conjunto con otros conceptos de la Inteligencia Artificial, o combinarlos con otros mtodos clsicos.

Estructura
Apartando algunos importantes parmetros, la idea central del algoritmo es esta: 1. En cada momento tendremos un conjunto (Generacin) de posibles y diferentes soluciones para el problema (individuos, o fenotipos) con sus respectivas representaciones abstractas (cromosomas, o genotipos). 2. Una evaluacin de cada solucin basada en cuan buena es, establecer una especie de jerarqua. Esta cuantificacin de la adaptacin de las soluciones es una de las partes ms importantes del algoritmo. 3. Podemos decidir si conservar, como miembros para la prxima generacin, a algunos de los mejores individuos de la actual (Elitismo). 4. Una nueva generacin de soluciones (Descendientes) se crea con individuos obtenidos por combinacin (Cruce) de dos soluciones elegidas de la generacin previa (Padres). 5. Otros mecanismos para obtener nuevos individuos es mediante pequeos cambios en una seleccin reducida de individuos (Mutacin). 6. Una vez disponible la nueva generacin de soluciones, necesitaremos evaluarlas como en el punto # 2 para iniciar otro ciclo. El procedimiento finalizar como en muchas otras rutinas recursivas: por tiempo vencido, ausencia de cambios o por que se ha encontrado una solucin aceptable.

Conceptos Bsicos
Los Cromosomas del AG

La representacin abstracta de una solucin puede ser una secuencia de bits, bytes, letras o nmeros. En cada caso la solucin est compuesta por varios elementos (Genes) que pueden cambiar de una solucin a otra. En el clsico problema de optimizacin del vendedor viajero (Dada las distancias entre ciudades, encontrar la secuencia ms econmica para visitarlas a todas), una solucin ser una particular secuencia de las ciudades a ser visitadas. En este caso una mutacin ser el intercambio de lugares ocupados por dos ciudades en el recorrido. Un cruce ser una combinacin de dos ruta anteriores (soluciones padres). Existen muchas maneras de realizar los cruces. Depender del problema el cmo ensamblar una nueva solucin para que refleje parcialmente el comportamiento de cada uno de los padres. Conceptos Bsicos (cont.)

Tamao de la poblacin
La cantidad de soluciones en una generacin (Poblacin) debe ser determinada experimentalmente de acuerdo al problema. Si la poblacin es menos de diez el procedimiento tendr pocas posibilidades de producir soluciones interesantes. Si la poblacin es mayor de cien el algoritmo por lo general no mejorar su rendimiento.

Proporcin de las mutaciones


Las mutaciones aportarn nuevas caractersticas que se traducirn en grandes o pequeos cambios segn el gen cambiado. Una proporcin menor al 1% es una eleccin inicial razonable.

Seleccin tipo ruleta


Junto a los AG encontramos frecuentemente este mecanismo de seleccin que simplemente consiste en dar a un individuo la posibilidad de ser elegido de acuerdo a su jerarqua. Los mejores individuos tendrn ms probabilidades de ser elegidos para convertirse en padres.

Ejemplos
1. Hbrido Red neuronal/AG La combinacin de los AG con las rede neuronales (RN) es un hbrido interesante que ha probado ser exitoso. En lugar de usar el normal algoritmo del back-propagation para el entrenamiento de las RN, se han usado los AG para determinar los valores sinpticos que minimizan el error de la red.

2.

Electromagnetismo/AG en Diseo de antenas El diseo de antenas involucra ecuaciones complicadas que con frecuencia no tiene una solucin analtica conocida. Muchos investigadores alrededor del mundo han utilizado por aos AG junto al electromagnetismo. Bsicamente el problema es determinar las formas y los tamaos de los elementos de la antena, de manera que casi la totalidad de la energa sea irradiada en direcciones deseadas. En este ejemplo la funcin de adaptacin (fitness) consistir en el cmputo de campo irradiado y evaluar en qu medida se satisfacen los requerimientos...

Limitaciones y Posibilidades
La representacin del problema puede resultar difcil. Se requerir identificar cuales variables son adecuadas para ser tratadas como genes y cuales variables deben ser dejadas fuera de proceso del AG. La determinacin de los parmetros convenientes (tamao de la poblacin, proporcin de la mutacin) puede consumir mucho tiempo.

Como en cualquier procedimiento de optimizacin si no se toman las precauciones necesarias, el algoritmo puede converger en un mnimo (o en un mximo) local. Por todas las razones mencionadas, si conoces un mtodo tradicional para resolver el problema, salo! Emplee AG en sistemas parcialmente desconocidos, no-lineales o ruidosos. Pero aun en estos casos se debe estar seguro de poder programar una funcin para evaluar la funcin de adaptacin (fitness). En muchos casos esto resulta ser abrumadoramente la parte ms difcil del trabajo. Por otra parte estos conceptos han sido muy tiles en los esfuerzos para obtener soluciones all donde los mtodos tradicionales han fallado. Como un proceso de computacin paralela, el AG puede explorar el espacio de las soluciones y muchas direcciones y desde varios puntos. Ambientes complejos con comportamientos no-lineales son buenos candidatos a ser trabajados con AG. La funcin de evaluacin de la adaptacin puede ser discontinua y cambiante en el tiempo. Se puede utilizar este algoritmo en sistemas que no se conocen en lo interno. Se debe sin embargo saber cmo computar las salidas cuando una solucin es aplicada al sistema. La inspiracin a partir de la observacin de la sabidura de la madre naturaleza nos proveer de ms herramientas de trabajo. Mi humilde consejo es entonces, observar y tratar de entender a las otras criaturas. Las abejas y las hormigas tienen mucho que contarnos sobre los sistemas descentralizados, paralelos y robustos.