lunes, 15 de julio de 2013

Captación táctil de datos con el propio cuerpo como interfaz digital

Lynette Jones es una científica visionaria impulsora de esta nueva tecnología. Propone una línea de investigación tan fascinante como osada: Utilizar la piel del cuerpo humano como dispositivo de percepción sensorial de datos en una interfaz digital capaz de revolucionar diversos capítulos de la relación entre el “Ser Humano” y las máquinas. En un futuro quizás no muy distante, una vibración característica ejercida cerca del ombligo por un cinturón, u otra de tipo distinto ejercida en el hombro izquierdo por una camiseta, podrían darnos instrucciones para, por ejemplo guiarnos a través de una zona desconocida para nosotros, sin que tuviéramos que depender de la información visual en una pantallita o de las instrucciones habladas de altavoces o auriculares. Podemos pensar en ello como si fuese una especie de código Morse táctil: Vibraciones de un dispositivo que forma parte de nuestra ropa, con un GPS incorporado, que nos dice si debemos doblar a la derecha o a la izquierda, o detenernos, dependiendo del patrón de pulsos que percibamos. Tal dispositivo podría liberar a los conductores de la tarea a veces peligrosa de mirar mapas mientras conducen, y podría también servir como una guía táctil para las personas con problemas graves de visión y/o de audición. Jones, del Instituto Tecnológico de Massachusetts (MIT) en Cambridge, Estados Unidos, está muy segura de las posibilidades de la piel humana para percibir información compleja, codificada en forma de sensaciones táctiles. “Si comparamos la piel con la retina, encontramos casi la misma cantidad de receptores sensoriales. La diferencia es que en la piel están esparcidos por unos dos metros cuadrados de espacio, mientras que en el ojo están todos concentrados en un área extremadamente pequeña”, argumenta Jones. Ella considera que la piel es un medio lo bastante sofisticado para la comunicación, si bien aún no se ha explotado como tal. Basta con distribuir las señales por ese amplio espacio epidérmico para obtener un sistema sofisticado de interpretación de vibraciones. Sin embargo, saber cómo dispersar información táctil a través de la piel es una tarea complicada. Las personas solemos ser mucho más sensibles a los estímulos en áreas como la mano en comparación con el antebrazo, y en tales zonas podemos captar con más nitidez ciertos patrones de vibraciones. Tal información sobre la percepción detallada de estímulos en la piel podría ayudar a los ingenieros a determinar la mejor configuración de los motores en un sistema de transmisión cutánea de datos, dependiendo de en qué punto del cuerpo debiera llevarse puesto la interfaz o interfaces de datos táctiles. Ahora, el equipo de Jones, en el que también ha trabajado Katherine Sofia del MIT, ha construido un dispositivo que monitoriza con precisión las vibraciones de un motor a través de la piel, en tres dimensiones. El dispositivo consiste en ocho acelerómetros miniaturizados y un único motor vibratorio, comparable a los usados en los teléfonos móviles. Jones utilizó el dispositivo para medir las vibraciones del motor en tres sitios: la palma de la mano, el antebrazo y el muslo. En los experimentos que ella ha realizado con ocho participantes en buen estado de salud, Jones midió la percepción de vibraciones en cada una de las personas, incluyendo por ejemplo hasta qué extensión de la piel tales vibraciones se propagan de manera fácilmente localizable por el portador del dispositivo, y examinó otras cuestiones vitales para dar con el mejor enfoque de diseño de estas singulares interfaces. Jones vislumbra aplicaciones prometedoras para dispositivos táctiles incorporados a prendas de vestir. Ella considera que los estímulos táctiles podrían dirigir a los bomberos a través de edificios en llamas, o a otros trabajadores de servicios de emergencias a través de sitios donde ha ocurrido un desastre. En escenarios más mundanos, ella sostiene que los dispositivos táctiles podrían ayudar a las personas al volante de un automóvil a orientarse en zonas que no conocen, sin tener que apartar la vista de la carretera para mirar una pantalla, ni tener que escuchar instrucciones habladas, algo, esto último, que no es fácil en entornos ruidosos.

Adaptación del tamaño de la población

Con lo mencionado se espera destacar la importancia de realizar una correcta asignación del tamaño de la población, muchos trabajos de investigación han tratado de manejarlo de diversas maneras. Lobo, en su tesis de doctorado escrita el año 2000 con el título de “Algoritmo genético sin parámetros: Selección de parámetros racionales y automatizados para un funcionamiento simplificado”, considera la asignación como un problema de toma de decisión estadística en el cual se buscan ecuaciones que determinen el tamaño de la población de acuerdo a la dimensión y al número de bloques útiles inherentes al problema. Se han diseñado estrategias de incremento de tamaño de la población basados en criterios de tiempo de vida, especialmente en el artículo escrito el año 1994 por los investigadores Arabas, Michalewicz y Mulawka titulado “GAVAPS: Algoritmo genético con tamaño de población variable”. Se han diseñado también mecanismos que permiten al algoritmo la reproducción o competencia entre individuos de acuerdo al nivel de recursos de los que dispone, esto se puede observar en el artículo escrito por Schlierkamp-Voosen y Mühlenbein el año 1994 titulado “Estrategia adaptativa mediante competencia de sub-poblaciones”. Las técnicas que han presentado un mejor desempeño son las llamadas de “adaptación de parámetros”, en las cuales se ha tratado de eliminar el proceso de selección, mediante la adaptación del parámetro al mismo tiempo que el algoritmo genético está siendo ejecutado. Los conceptos “edad y tiempo de vida” y “competencia entre poblaciones” han sido los más utilizados para este proceso. Fernando Lobo y Claudio Lima, en el artículo escrito el año 2005 titulado “Una revisión de los esquemas adaptativos del tamaño de la población en algoritmos genéticos”, presentan un resumen de los principales esquemas de adaptación del tamaño de la población: (1) Algoritmo genético con tamaño de población variable. Fue propuesto por Arabas, Michalewicz, y Mulawka, en el artículo citado anteriormente, utilizando el concepto de edad y tiempo de vida. Cuando se crea la primera generación de individuos, para cada uno de ellos es asignada una edad cero, haciendo referencia al nacimiento del individuo. Cada vez que se llega a una nueva generación la edad aumenta. Al mismo tiempo que se crea un individuo se le asigna un tiempo de vida, que representa cuánto tiempo vivirá el individuo dentro de la población, cuando su edad llegue a un tiempo de vida límite, morirá. En cada generación se escoge a los individuos que se utilizarán para generar nuevos individuos, a los cuales también se les asigna un tiempo de vida. El tiempo de vida depende de la comparación entre la adaptabilidad del individuo y el promedio de adaptabilidad de la población, así, si un individuo tiene mejor valor en su función de adaptabilidad tendrá mayor tiempo de vida, dándole mayor posibilidad de generar nuevos individuos. (2) Estrategia de adaptación por competencia de sub-poblaciones. Schlierkamp-Voosen y Mühlenbein el año 1994, en el artículo mencionado anteriormente, propusieron un esquema en el cual la población se divide en varias sub-poblaciones, las cuales compiten entre sí por un recurso, como lo hacen las especies reales por recursos como alimento. La competición se simula evolucionando por separado cada una de las poblaciones, esta evolución se realiza con un algoritmo de búsqueda diferente para cada población. Cada cierto tiempo las poblaciones compiten entre sí, la población con el mejor valor de adaptación aumenta su población, mientras las otras lo disminuyen. Durante todo el proceso de evolución, la suma de los tamaños de población de todas las sub–poblaciones es constante. En 1996, los autores extendieron este esquema agregándole un factor de consumo a cada población, esto con la idea que cada algoritmo trabaja mejor con diferentes tamaños de población. Hinterding, Michalewicz, y Peachey, proponen el Algoritmo Genético Auto Adaptativo, donde se describe un esquema de adaptación del tamaño de la población, en el cual existen tres poblaciones diferentes, las cuales son inicializadas con tamaño de población diferente y además utilizan un algoritmo genético diferente para cada una de estas poblaciones. El mejor valor de adaptación de cada población es utilizado como criterio de ajuste del tamaño de la población utilizando unas reglas globales, las cuales analizan las tres poblaciones y dependiendo del mejor valor de adaptación de cada población se realiza el crecimiento o reducción del tamaño de cada una de las poblaciones. (3) Algoritmo genético sin parámetros. Harik y Lobo, el año 1999 en el artículo titulado “Un algoritmo genético sin parámetros” proponen un nuevo algoritmo en el cual los parámetros de razón de selección y probabilidad de apareamiento son afinados con valores numéricos adecuados a dichos parametros, el operador genético de mutación no es utilizado por los autores, ellos dedican su mayor esfuerzo en encontrar una estrategia para asignar el tamaño de la población, esta estrategia consiste en simular un continuo crecimiento del tamaño de población en busca del tamaño adecuado, estableciendo múltiples poblaciones de varios tamaños, las poblaciones están en diferentes estados de evolución en un momento dado, así cada una estas poblaciones estaría en un número de generación diferente. La creación y eliminación de poblaciones está controlada por un supervisor de promedios de función de adaptabilidad, el cual utiliza esta información para seleccionar el tamaño de población adecuado para el algoritmo.

lunes, 8 de julio de 2013

Adapatación del tamaño de la población

Cuando se habla de algoritmos genéticos, se debe hacer una referencia obligada a la obra de John Holland quien en el año 1975, en el libro titulado “Adaptación en sistemas naturales y artificiales”, asienta las bases para un acelerado desarrollo ulterior hasta llegar a lo que se conoce como algoritmos genéticos. Un algoritmo genético es un método de búsqueda que imita la teoría de la evolución biológica de Darwin para la resolución de problemas. Para ello, se parte de una población inicial de la cual se seleccionan los individuos más capacitados para luego reproducirlos y mutarlos para finalmente obtener la siguiente generación de individuos que estarán más adaptados que la anterior generación. En palabras de los investigadores Arranz de la Peña y Parra Truyol, en el artículo escrito el año 2007 titulado “Algoritmos genéticos”, para el estudio de este tipo de algoritmos se debe tener en cuenta una serie de parámetros: (1) Tamaño de la población. Este parámetro indica el número de cromosomas que se tiene en una población para una generación determinada. En caso de que esta medida sea insuficiente, el algoritmo genético tiene pocas posibilidades de realizar reproducciones con lo que se realizaría una búsqueda de soluciones escasa y poco óptima. Por otro lado si la población es excesiva, el algoritmo genético será excesivamente lento. De hecho estudios revelan que hay un límite a partir del cual es ineficiente elevar el tamaño de la población puesto que no se consigue una mayor velocidad en la resolución del problema. (2) Probabilidad de apareamiento. Indica la frecuencia con la que se producen apareamientos entre los cromosomas padre es decir, que haya probabilidad de reproducción entre ellos. En caso de que no exista probabilidad de reproducción, los hijos serán copias exactas se los padres. En caso de haberla, los hijos tendrán partes de los cromosomas de los padres. Si la probabilidad de cruce es del cien por ciento, el hijo se crea totalmente por apareamiento, no por partes. (3) Probabilidad de mutación. Indica la frecuencia con la que los genes de un cromosoma son mutados. Si no hay mutación, los descendientes son los mismos que había tras la reproducción. En caso de que haya mutaciones, parte del cromosoma descendiente es modificado y si la probabilidad de mutación es del cien por ciento, la totalidad del cromosoma se cambia. En este caso, no se cambian simplemente unos bits del cromosoma sino que se cambian todos, lo que significa que se produce una inversión en el cromosoma y no una mutación por lo que la población degenera muy rápidamente. Como se muestra en el párrafo precedente, el parámetro tamaño de la población es uno de los parámetros necesarios para la ejecución de un algoritmo genético, este parámetro determina el tamaño de la población que el algoritmo utilizará para cada una de sus iteraciones, algunos estudios han demostrado que el utilizar un rango de cincuenta a cien individuos para problemas de baja complejidad es adecuado, pero el tamaño de la población depende de la complejidad del problema, si la población es demasiado pequeña el algoritmo converge hacia pobres soluciones, en caso contrario el algoritmo consume recursos de procesamiento muy altos. Según Cantor, en la tesis de magister escrita el año 2009 titulada “Adaptación del tamaño de la población en los algoritmos genéticos”, el costo computacional de evaluar la función de aptitud de una población es uno de los principales factores a tener en cuenta, cuando se requiere configurar el tamaño de la población. Algunos usuarios de algoritmos genéticos desconocen este factor y configuran tamaños de la población extremadamente elevados sin prestar mayor importancia a este proceso, pero cuando se vean enfrentados a problemas donde la evaluación de la función de aptitud de un individuo es moderadamente alta, se percatan que evaluar en cada iteración la aptitud de una población de gran tamaño, se puede convertir en una tarea de nunca acabar. Por esta razón algunos investigadores evalúan técnicas donde se puedan obtener los beneficios de grandes poblaciones en poblaciones reducidas, uno de los principales beneficios a rescatar es la diversidad de la población.

lunes, 1 de julio de 2013

Red neuronal Hopfield

En palabras de Alejandro Cruz, en la tesis escrita el año 2003 con el título “Estabilidad de entrada-estado para identificación con redes neuronales dinámicas”, sin duda, uno de los principales responsables del desarrollo que ha experimentado el campo de la computación neuronal ha sido J.J. Hopfield físico norteamericano, quién en el año 1982 construyó un modelo de red, descrito en el artículo titulado “Redes neuronales y sistemas físicos con habilidades computacionales colectivas emergentes”, con el número suficiente de simplificaciones como para extraer analíticamente información sobre las características relevantes del sistema, conservando las ideas fundamentales de las redes construidas en el pasado y presentando una serie de funciones básicas de los sistemas neuronales reales. Además, Hopfield supo establecer un paralelismo lo cual ha permitido aplicar todo un conjunto de técnicas bien conocidas en este campo y, con ello, producir un avance en la comprensión del funcionamiento de las redes neuronales. Con su aporte, Hopfield redescubrió el mundo casi olvidado de las redes autoasociativas, caracterizadas por una nueva arquitectura y un nuevo funcionamiento, a las que se tuvo que añadir otro tipo de reglas de aprendizaje. Las consecuencias fueron redes con un comportamiento diferente a las diseñadas con estructura progresiva hacia adelante. El modelo de Hopfield consiste en una red monocapa con varias neuronas cuyos valores de salida son binarios: cero y uno o menos uno y más uno. En la versión original del modelo, conocida como Hopfield discreto, las funciones de activación de las neuronas eran del tipo escalón. Se trataba, por tanto, de una red discreta, con entradas y salidas binarias; sin embargo, posteriormente Hopfield hacia el año 1984 desarrolló una versión continua con entradas y salidas analógicas, descritas en el artículo titulado “Las neuronas con grados de respuesta colectiva tienen propiedades computacionales como las de las neuronas de dos estados”, utilizando neuronas con funciones de activación tipo sigmoidal, conocida como Hopfield continuo. Una de las características del modelo de Hopfield, es que se trata de una red autoasociativa. Así, varios patrones diferentes pueden ser almacenados en la red, como si de una memoria se tratase, durante la etapa de aprendizaje. Posteriormente, si se presenta a la entrada alguna información almacenada, la red evoluciona hasta estabilizarse, ofreciendo entonces en la salida la información almacenada, que coincide con la presentada en la entrada. Si, por el contrario, la información de entrada no coincide con ninguna de las almacenadas, por estar distorsionada o incompleta, la red evoluciona generando como salida la más parecida. Cruz continúa mencionando que la red Hopfield tiene un mecanismo de aprendizaje off-line. Por tanto, existe una etapa de aprendizaje y otra de funcionamiento de la red. En la etapa de aprendizaje se fijan los valores de los pesos en función del conjunto de información que se pretende que memorice o almacene la red. Una vez establecido, la red entra en funcionamiento. Esta red utiliza un aprendizaje no supervisado de tipo hebbiano, de tal forma que el peso de una conexión entre una neurona y otra se obtiene mediante el producto de los componentes asociados a las neuronas del vector que representa la información o patrón que debe almacenar. La elección de esta regla de aprendizaje por Hopfield fue, entre otras razones, debido a que asegura la estabilidad de la red, es decir, la convergencia hacia una respuesta estable cuando se presenta una determinada información de entrada. Muchas de las investigaciones acerca de la estabilidad de las redes se basan en el establecimiento de una función, denominada función de energía de la red, para representar los posibles estados y puntos de equilibrio de la red. De hecho, una de las causas por la que se considera a Hopfield responsable de impulsar el desarrollo en el campo de las redes neuronales, es precisamente el haber aplicado modelos matemáticos como éste, lo cual constituyó la base de posteriores trabajos sobre redes neuronales.