viernes, 28 de mayo de 2010

Análisis de secuencias genómicas

La bioinformática, según una de sus definiciones más sencillas, es la aplicación de la tecnología de computadoras a la gestión y análisis de datos biológicos. Los términos bioinformática, biología computacional y, en ocasiones, biocomputación, utilizados en muchas situaciones como sinónimos, hacen referencia a campos de estudios interdisciplinarios muy vinculados, que requieren el uso o el desarrollo de diferentes técnicas que incluyen informática, matemática aplicada, estadística, ciencias de la computación, inteligencia artificial, química y bioquímica para solucionar problemas, analizar datos, o simular sistemas o mecanismos, todos ellos de índole biológica, y usualmente, pero no de forma exclusiva, en el nivel molecular. El núcleo principal de estas técnicas se encuentra en el uso de recursos computacionales para solucionar o investigar problemas sobre escalas de tal magnitud que sobrepasan el discernimiento humano. La investigación en biología computacional se solapa a menudo con la biología de sistemas.

Las técnicas computacionales han pasado a ser una herramienta fundamental para el manejo y análisis de la información biológica. Si bien esto es aplicable a cualquier área de la biología, es particularmente importante en la biología molecular. Esto se evidencia en el desarrollo, mantenimiento y permanente actualización de gigantescas bases de datos públicas de secuencias biológicas tanto de ácidos nucléicos como de proteínas; y en la tendencia creciente en el uso de herramientas bioinformáticas o de biocomputación como apoyo a las técnicas experimentales. Los proyectos de secuenciamiento como el del “Genoma Humano” y el de varios organismos de estudio, están generando enormes cantidades de información imposible de analizar sin el uso de herramientas computacionales. El desarrollo de la bioinformática y la biocomputación ha generado técnicas de análisis de secuencias de ácidos nucléicos y proteínas con múltiples objetivos: determinación de homología, alineamiento de secuencias homólogas, predicción de estructura, filogenia, evolución molecular, diseño de fármacos, entre otros.

La revolución en instrumentación para la secuenciación eficiente y automatizada de genomas ha generado una explosión en la cantidad de datos de tipo biológico almacenados en diferentes bases de datos públicas, datos que se han acumulado principalmente en las dos últimas décadas a partir del proyecto genoma humano, estas bases de datos crecen constantemente de tal forma que existe una brecha creciente entre la capacidad de generar nuevos datos y la capacidad para analizarlos. El verdadero reto está en extraer información útil y con sentido biológico a partir del análisis de la información almacenada en las bases de datos de genomas, en vista de lo anterior el desarrollo de nuevos algoritmos y técnicas de análisis de datos de secuencias de genomas debe ser estratégica para cualquier grupo de investigación interesado en generar nuevo conocimiento o valor agregado a partir de los datos experimentales generados en sus laboratorios o a partir de la información disponible en forma pública.

Las características particulares de las secuencias de genomas tales como redundancia, degeneración, discontinuidad de la información y baja relación señal/ruido; hacen que el desarrollo de algoritmos para la búsqueda e identificación de patrones de interés en secuencias genómicas sea una tarea no trivial, un patrón de interés en general presenta un alto grado de incertidumbre. En el análisis de secuencias de genomas se han aplicado una diversidad de técnicas desarrolladas no necesariamente para el análisis de información de carácter biológico, tal es el caso de las caminatas aleatorias, el juego del caos, análisis de propiedades lingüísticas y gramaticales, función de autocorrelación, análisis de Fourier, análisis de mapas de recurrencia, etc. Este conjunto de técnicas matemáticas, lingüísticas, y computacionales; generan información de aspectos no biológicos del genoma a diferentes escalas dentro de una secuencia, ya que algunas técnicas generan información de carácter global sobre una secuencia y otras generan información de tipo local permitiendo estudiar el comportamiento a lo largo de una secuencia. Sin embargo, la información generada o su interpretación no se integra a detalle con la información biológica para dar un mejor análisis de las características del genoma.

Por otra parte, las técnicas de mayor uso en bioinformática se basan principalmente en propiedades estadísticas de los datos, y la visualización de dicha información se limita al uso de elementos básicos tales como tablas, motifs logos, árboles de clasificación, etc. La falta de integración de la información generada por diferentes técnicas de análisis no convencionales en bioinformática con el conocimiento biológico, así como las limitaciones de la información que es posible generar a partir de análisis estadísticos, base de buena parte de las técnicas más utilizadas en el análisis de genomas, motiva esta línea de investigación en la cual se propone la aplicación de conceptos de fusión de datos, con el objetivo de reducir la incertidumbre en la identificación de patrones de interés biológico en secuencias de genomas. La fusión de datos requiere de la integración de diversas áreas de la computación tales como: bases de datos, tecnologías para la Web, aprendizaje de máquina, procesamiento y análisis de gran cantidad de datos, visualización de información, interfaces humano-computadora, entre otras.

Desde que el fago Φ-X174 fuera secuenciado el año 1977 de manera provisional, un año más tarde se publicaría la secuencia completa definitiva, las secuencias de ácido desoxirribonucleico de cientos de organismos han sido decodificadas y guardadas en bases de datos. Esos datos son analizados para determinar los genes que codifican para ciertas proteínas, así como también secuencias reguladoras. Una comparación de genes en una especie o entre especies puede mostrar similitudes entre funciones de proteínas, o relaciones entre especies. Con la creciente cantidad de datos, desde hace mucho se ha vuelto poco práctico analizar secuencias de ácido desoxirribonucleico manualmente. Hoy se usan programas de computadora para estudiar el genoma de miles de organismos, conteniendo miles de millones de nucleótidos. Estos programas pueden compensar mutaciones, con bases intercambiadas, borradas o insertadas en la secuencia de ácido desoxirribonucleico, para identificar secuencias que están relacionadas, pero que no son idénticas. Una variante de este alineamiento de secuencias se usa en el proceso de secuenciación.

La secuenciación conocida como “perdigonada” o su equivalente en el idioma inglés "shotgun", fue usada por el Instituto de Investigación Genómica “TIGR”, conocido más tarde como el “Instituto Craig Venter” para secuenciar el primer genoma de bacteria, el Haemophilus influenzae. Esta secuenciación proporciona una lista secuencial de nucleótidos y ofrece las secuencias de miles de pequeños fragmentos de ácido desoxirribonucleico, cada uno de aproximadamente 600 a 800 nucleótidos de largo. Las terminaciones de estos fragmentos se superponen y, cuando son alineados de la manera correcta, constituyen el genoma completo del organismo en cuestión. El secuenciamiento shotgun proporciona datos de secuencia rápidamente, pero la tarea de ensamblar los fragmentos puede ser bastante complicada para genomas muy grandes. En el caso del proyecto “Genoma Humano”, llevó varios meses de tiempo de procesador, en una estación DEC Alpha, para ensamblar los fragmentos. El secuenciamiento shotgun es el método utilizado como favorito para secuenciar los genomas y los algoritmos de ensamblado genómico constituyen un área crítica de la investigación en bioinformática.

Otro aspecto de la bioinformática en análisis de secuencias es la búsqueda automática de genes y secuencias reguladoras dentro de un genoma. No todos los nucleótidos dentro de un genoma son genes. Dentro del genoma de organismos más avanzados, grandes partes del ácido desoxirribonucleico no sirven a ningún propósito obvio. Este ácido desoxirribonucleico, conocido como “ácido desoxirribonucleico basura”, puede, sin embargo, contener elementos funcionales todavía no reconocidos. La bioinformática sirve para estrechar la brecha entre los proyectos de genoma y proteoma, por ejemplo, en el uso de secuencias de ácido desoxirribonucleico para la identificación de proteínas.

Algunas herramientas para analizar secuencias son: (1) GCG Accelrys. El paquete Accelrys GCG es una herramienta muy potente para el análisis de secuencias de ácidos nucléicos y proteínas con más de ciento treinta herramientas distintas. El paquete es de uso completo con una interfaz gráfica XWindow que utiliza la herramienta SeqLab. Existe una versión web accesible desde máquinas virtuales Seqweb, más fácil de usar pero con un número limitado de herramientas. (2) EMBOSS. El EMBOSS es un paquete de aplicaciones gratuito, de código abierto, específicamente desarrollado para el análisis de secuencias de ácidos nucléicos y de aminoácidos. Para evitar el uso de líneas de comandos, EMBOSS proporciona a los usuarios con una interfaz gráfica agradable utilizando el wEMBOSS accesible desde máquinas virtuales. Como característica adicional, EMBOSS incluye más de ciento cincuenta aplicaciones distintas. (3) SeqTrim. Constituye un programa desarrollado en la Universidad de Málaga para el pre-procesamiento de secuencias de nucleótidos. Es capaz de detectar las trazas de secuencias de mala calidad así como distintos tipos de contaminación: restos de vector, adaptadores, secuencias genómicas bacterianas y otros.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Marzo 22 de 2010


viernes, 21 de mayo de 2010

Elitismo en algoritmos genéticos

Dentro del cómputo evolutivo existen diferentes paradigmas. Aunque todos los paradigmas se basan en la misma idea del neo-darwinismo y en el uso de una población de soluciones, difieren entre ellos por la forma de implementar los mecanismos de selección, apareamiento, mutación y elitismo. Los principales paradigmas son: los algoritmos genéticos, las estrategias evolutivas y la programación evolutiva. Aunque también existen otras técnicas como la programación genética, la evolución diferencial, la optimización mediante cúmulos de partículas, la optimización por colonia de hormigas, los algoritmos culturales, los sistemas inmunes artificiales y la búsqueda dispersa.

En la actualidad, el paradigma de algoritmos genéticos se presume como el más popular. Aunque existen propuestas similares, como la de Fraser, y la de Bremermann, se considera a John Holland como el que definió las bases de los algoritmos genéticos modernos. En cuanto a la representación, tradicionalmente hace uso de una cadena binaria, es decir, trabajan a nivel de genotipo, lo que equivale a transformar el problema de un espacio cualquiera al binario. Por ello, en el algoritmo genético una representación adecuada es un factor importante para obtener buenos resultados. Tradicionalmente, los algoritmos genéticos hacen uso de la selección proporcional con base en la adaptabilidad. Le da mayor importancia al operador de apareamiento que al de mutación, y no cuenta con mecanismos de auto-adaptación. En cuanto a la probabilidad de apareamiento se utilizan valores altos, al contrario de la probabilidad de mutación donde los valores usualmente son bajos.

Los algoritmos genéticos son técnicas de optimización que se basan en la evolución de las especies, son utilizados especialmente en problemas bastante complicados donde las técnicas tradicionales de optimización no obtienen buenos resultados. El pensamiento evolutivo actual gira en torno al Neo-Darwinismo, que está basado principalmente en las ideas de Darwin, Weismann y Mendel, el cual establece que toda la vida en el planeta puede ser explicada a través de: selección, apareamiento, mutación y competencia. En sí, en los algoritmos evolutivos se requiere codificar las estructuras del problema de optimización, definir las operaciones entre los individuos, una función de adaptabilidad y los mecanismos de selección. Los algoritmos genéticos inicialmente se conocieron como planes reproductivos, y fueron introducidos por John H. Holland a principios de los años sesenta y fueron utilizados en el aprendizaje automático. El algoritmo genético es un algoritmo evolutivo en el cual el apareamiento es el operador principal y la mutación es un operador secundario, en cuanto al otro operador se utiliza a manera de selección probabilística

Coloquialmente, por élite se entiende un grupo pequeño que por algún motivo, característica, facultad o privilegio es superior o mejor en comparación al grueso de una población determinada; con cualidades o prerrogativas de las que la gran mayoría no disfrutan. En general, se habla de élite como sinónimo de elegido, escogido, eminente o distinguido. Esta concepción tiene más o menos el mismo significado con que éste término es manejado en las ciencias sociales. Es común también que se le llame elitista a quienes son selectivos, a quienes discriminan a otros, a los que manifiestan repulsión por lo común o popular, que le dan una valoración negativa o califican peyorativamente a los conceptos de masa y mayoría. Un algoritmo genético, desde el punto de vista de la optimización, es un método poblacional de búsqueda dirigida basada en probabilidad. Bajo una condición bastante débil, que el algoritmo mantenga elitismo, es decir, guarde siempre al mejor elemento de la población sin hacerle ningún cambio, se puede demostrar que el algoritmo converge en probabilidad al óptimo. En otras palabras, al aumentar el número de iteraciones, la probabilidad de tener el óptimo en la población tiende a uno. Un algoritmo genético emula el comportamiento de una población de individuos que representan soluciones y que evoluciona en base a los principios de la evolución natural: reproducción mediante operadores genéticos y selección de los mejores individuos, correspondiendo éstos a las mejores soluciones del problema a optimizar.

El método más utilizado para mejorar la convergencia de los algoritmos genéticos es el elitismo. Este método consiste básicamente en realizar la etapa de selección en dos partes: (1) Se realiza un muestreo en una élite de “ere” miembros de entre los mejores de la población inicial y se incorporan directamente a la población final, sin pasar por la población intermedia. (2) La población auxiliar de criadores se muestrea de entre los “total menos ere” restantes miembros de la población inicial. Normalmente, el tamaño de la élite “ere” es bastante pequeño y el tipo de muestreo es bien directo o bien por sorteo, ambos en la variedad diversa.

Para aprovechar las ventajas del modelo del proceso evolutivo en la resolución de un problema de optimización, se deben establecer las siguientes correspondencias: (1) Una apropiada codificación de las posibles soluciones del problema representará a éstas de la misma forma que el cromosoma. Representa a los individuos de la especie. Dada esta unívoca relación, se usarán indistintamente los términos solución, codificación, cromosoma o individuo. (2) La adecuación de cada solución será una medida del comportamiento de ésta en el problema particular considerado. Normalmente, es el valor objetivo de la solución. Así, una solución está más adecuada a un problema cuanto mejor sea su valor objetivo. (3) La definición de algunos operadores genéticos que, al actuar sobre una o varias soluciones, suministren una o más soluciones al alterar genéticamente los cromosomas. Juegan el papel del apareamiento y la mutación en el proceso evolutivo natural.

En principio aparenta una cierta conveniencia contar con una estrategia de selección estricta para que mejore rápidamente la población y converja el algoritmo, es decir, que la población se acumule alrededor de un genotipo óptimo. Esto no es cierto. Lo que ocurre es que la población se acumula rápidamente alrededor de algún individuo que es bueno, comparativamente con el resto de los individuos considerados a lo largo de la ejecución del algoritmo, pero este individuo puede no ser el mejor posible. A esto se le suele llamar convergencia prematura. No se puede asegurar pero sí procurar que lo anterior no ocurra. Además de la explotación es necesario que exista exploración. El algoritmo genético debe, no sólo seleccionar de entre lo mejor que ha encontrado, sino procurar encontrar mejores individuos. En la estrategia de selección normalmente se incluye un elemento extra que sirve de “ancla”. Si sólo se hace selección forzando que sea más probable elegir al mejor individuo de la población pero sin asegurarlo, es posible que este individuo se pierda y no forme parte de la siguiente generación. Para evitar lo anterior se fuerza la selección de los mejores individuos de la generación para pasar intactos a la siguiente. A esta estrategia se le denomina elitismo y puede ser generalizada especificando que permanezcan en la población los mejores individuos de las pasadas generaciones.

El mecanismo elitista pretende asegurar que aquel o aquellos individuos que son los más aptos de la población actual sobrevivan y continúen participando en el proceso evolutivo, pasando a la siguiente generación de manera intacta, sin recombinarse ni mutarse. Implementar este mecanismo asegura que la mejor aptitud encontrada hasta el momento, el mejor individuo hasta el momento, no se perderá en la siguiente generación. El elitismo es importante, pues garantiza, a través de pruebas matemáticas, la convergencia global del algoritmo genético. Se acepta que con el elitismo, cuando se mantiene una copia del mejor individuo es posible garantizar convergencia global para un problema de optimización. En este dominio existen variantes de modelos elitistas a las que se denominan elitismo parcial y elitismo total. Por elitismo parcial se quiere decir que en una población de tamaño “ene” se mantiene una copia de los mejores “eme” individuos hasta el total de generaciones definidas. Por elitismo total se quiere decir que se mantiene una copia de los mejores “ene” individuos, el total de individuos de la población, hasta el total de generaciones definidas.

Bajo ciertas condiciones muy generales, la introducción del elitismo garantiza la convergencia teórica al óptimo global; en la práctica, mejora la velocidad de convergencia de los algoritmos genéticos cuando la función de evaluación es unidmodal, es decir, no hay subóptimos, sin embargo la velocidad de convergencia empeora con funciones fuertemente multimodales. Con tamaños de población pequeños se consiguen efectos similares a los del elitismo introduciendo un proceso de reinicialización periódica en los algoritmos genéticos: cada vez que el algoritmo genético converge se salvan los mejores individuos, se reinicializan los demás y se vuelve a comenzar. La reinicialización tiene efectos beneficiosos sobre las prestaciones del método debido a que introduce diversidad, requisito especialmente crítico en los algoritmos genéticos con poblaciones pequeñas.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Marzo 15 de 2010


viernes, 14 de mayo de 2010

Reconocimiento facial

En los últimos años, el desarrollo de ingenios y programas informáticos para sistemas de seguridad ha experimentado un gran impulso. Entre ellos, destacan los sistemas biométricos de reconocimiento facial, que se perfilan como los más prometedores. El concepto biometría proviene de las palabras “bio” que significa vida y “metría” cuyo significado es medida, lo que representa que todo equipo biométrico mide e identifica alguna característica propia de la persona. Todos los seres humanos tienen características morfológicas únicas que los diferencian. Por tanto, la medición biométrica se puede considerar como el método ideal de identificación humana. La identificación de características faciales ha recibido un fuerte impulso gracias al cambio en la tecnología de vídeo multimedia. Esto ha propiciado un aumento de cámaras en los lugares de trabajo y en el hogar. El reconocimiento por características faciales es inherente a todas las personas. Individuos específicos pueden ser distinguidos de una multitud sólo con verles la cara. Por tanto, este tipo de identificación es considerada como la más natural dentro de los sistemas biométricos.

El reconocimiento biométrico responde a un sistema automático basado en la inteligencia artificial y el reconocimiento de patrones, que permite la identificación o verificación de la identidad de las personas a partir de características morfológicas o de comportamiento, propias y únicas del individuo, conocidas como autentificadores. Como principales autentificadores se encuentran las huellas dactilares, la geometría de la mano, la cara, el termograma facial, el iris, la retina, la voz, el estilo de escritura...etc. Asimismo, la naturaleza del tipo de característica, morfológica o de comportamiento, se encuentra directamente relacionada con el grado de variación de las mismas con el paso del tiempo, siendo mucho más inferior en el primer caso que en el segundo, ya que como se conoce, el comportamiento está íntimamente relacionado con factores psicológicos y éstos son función directa del tiempo. Este tipo de reconocimiento se ha convertido en una herramienta habitual en las fuerzas de la policía durante los procesos de investigación criminal, posibilitando la detención de delincuentes a nivel mundial, aunque también se le reconocen otras aplicaciones específicas tales como el control de acceso a cualquier tipo de transacción o acceso a datos protegidos.

El reconocimiento facial automatizado es relativamente un concepto nuevo. Desarrollado en los años 1960, el primer sistema semiautomático para reconocimiento facial requería del administrador para localizar rasgos, como ojos, orejas, nariz y boca, en las fotografías antes de que este calculara distancias a puntos de referencia en común, los cuales eran comparados luego con datos de referencia. En los años 1970 los investigadores Goldstein, Harmon y Lesk, usaron veintiún marcadores subjetivos específicos tales como el color del cabello y grosor de labios para automatizar el reconocimiento facial. El problema con estas soluciones previas era que se calculaban manualmente. En 1988, otro par de investigadores llamados Kirby y Sirobich, aplicaron análisis de componentes principales, una técnica estándar del álgebra lineal, al problema del reconocimiento facial. Esto fue considerado algo así como un hito al mostrar que eran requeridos menos de cien valores para cifrar acertadamente la imagen de un rostro convenientemente alineado y normalizado. En 1991 Turk y Pentland utilizando la técnica Eigenfaces, donde el error residual podía ser utilizado para detectar caras en las imágenes, hicieron un descubrimiento que permitió el logro de sistemas automatizados de reconocimiento facial en tiempo real fidedignos. Si bien la aproximación era un tanto forzada por factores ambientales, originó sin embargo un interés significativo en posteriores desarrollos de éstos sistemas.

Un sistema de reconocimiento facial es una aplicación dirigida por computadora para identificar automáticamente a una persona en una imagen digital, mediante la comparación de determinadas características faciales a partir de una imagen digital o un fotograma de una fuente de vídeo. Una de las maneras de hacer esto es mediante la comparación de determinados rasgos faciales de la imagen facial y una base de datos. Es utilizado principalmente en “sistemas de seguridad” para el reconocimiento de los usuarios. Consiste en un lector que define las características del rostro, y al solicitar acceso se verifica que coincidan las características del usuario con la base de datos. Es poco confiable ya que las características del rostro de las personas, al paso de tiempo, tienden a cambiar. El proceso de identificación facial se divide en dos tareas: “detección” y “reconocimiento”. La primera comprende la localización de los rostros que existen en una fotografía o en una secuencia de vídeo. La segunda tarea compara la imagen facial con caras previamente almacenadas en una base de datos. Se suele cotejar una serie de puntos clave, como la boca, nariz y ojos.

Existen dos enfoques predominantes en el problema de reconocimiento facial: El geométrico qué está basado en rasgos y el fotométrico, basado en lo visual. Conforme a que el interés investigador en reconocimiento facial continuó, fueron desarrollados muchos algoritmos diferentes, tres de los cuales han sido bien estudiados en la literatura del reconocimiento facial: (1) Análisis de componentes principales, (2) Análisis lineal discriminante y (3) Correspondencia entre agrupaciones de grafos elásticos. El análisis de componentes principales es comúnmente referido como el uso de eigenfaces, es la técnica impulsada por Kirby y Sirivich el año 1988. Con el análisis de componentes principales, el sondeo y la galería de imágenes deben ser del mismo tamaño y deben ser normalizadas previamente para alinear los ojos y bocas de los sujetos en las imágenes. La aproximación de análisis de componentes principales es luego utilizada para reducir la dimensión de los datos por medio de fundamentos de compresión de datos y revela la estructura de baja dimensión de los patrones faciales. Esta reducción en las dimensiones elimina información que no es útil y descompone de manera precisa la estructura facial en componentes ortogonales, no correlativos, conocidos como eigenfaces. Cada imagen facial puede ser representada como una suma ponderada, vector de rasgo, de los eigenfaces, las cuales son almacenadas en un conjunto unidimensional.

En el rostro existe abundante información para reconocer el estado mental y humor de un individuo. En todas las caras existen al menos dos ojos, dos cejas, la nariz, la boca y la barbilla. La distancia entre los ojos, la sombra de las cejas, la nariz y la barbilla son diferentes para cada individuo. Al igual que cambia el tamaño, los ángulos o la expresión de la cara, varían también las imágenes de la cara. La relación de la posición de las distintas partes de la cara, así como sus sombras y tamaños, ha contribuido a la clasificación de los rostros y a la posibilidad de reconocer a una persona. El autentificador en este tipo de reconocimiento es de tipo morfológico y además es variable en el tiempo. Aquí se pueden dar dos tipos de cambios temporales: la variación no agresiva y la variación agresiva. La no agresiva responde a los cambios efectuados en el rostro por el paso del tiempo y la agresiva a factores externos al paso del tiempo como pueden ser operaciones, accidentes, etc. En función del tipo de aproximación que se use, las técnicas del reconocimiento facial se engloban dentro de dos categorías: (1) Holística, utiliza las consideraciones globales de un patrón. (2) Analítica, utiliza un conjunto de características geométricas de la cara. Dentro de las analíticas se puede hacer una subdivisión en función de dónde se extraigan los vectores para comparar: (2.1) Extracción de vectores del perfil de la cara. (2.2) Extracción de vectores de la parte frontal de la cara.

Como cierre se señalan dos aplicaciones actuales de gran importancia: (1) La oficina del FBI ha comenzado a usar una tecnología de reconocimiento facial con fotos de convictos, que hacen un análisis detallado del tamaño del mentón y la nariz. Los agentes están listos para identificar a muchos delincuentes y posiblemente ampliar el programa a nivel nacional. Pero los defensores de la privacidad temen que el método pueda hacer que las autoridades busquen a personas que no han hecho nada malo. Los programas informáticos de reconocimiento facial no son nuevos, pero el proyecto de Carolina del Norte es el primer paso importante del FBI, que prevé la posibilidad de extender su uso. (2) Google continúa con su proceso de investigación constante y esta vez se centra en la imagen. El buscador está estudiando técnicas para discriminar si una imagen contiene una figura humana. Al parecer, dentro de sus búsquedas planea introducir una nueva variable: el reconocimiento facial. Esta posibilidad se relacionaría con la compra reciente de Never Vision, una empresa que realiza este tipo de actividad. Al parecer, la búsqueda de palabras normalmente da como resultado una serie de imágenes relacionadas pero si a este indicio se le agrega el parámetro “&imgtype=face” sólo arrojaría resultados que tienen que ver con personas. Se ha probado con el parámetro “Paris”, relacionado tanto con la ciudad como con el personaje Paris Hilton. Cuando se agregó este parámetro que les contaba, automáticamente los resultados se asociaron al rostro de la heredera norteamericana.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Marzo 8 de 2010


viernes, 7 de mayo de 2010

Base de datos difusa

La información es uno de los factores que más peso específico tiene en el desarrollo de un país, por este motivo, cualquier sociedad que pretenda crecer debe estar al tanto de las técnicas que van surgiendo en el almacenamiento, transmisión y análisis de la información. Históricamente las bases de datos han sido las herramientas diseñadas para llevar a cabo las tareas de almacenamiento y para proporcionar algunos de los mecanismos necesarios para el análisis de la información. El objetivo de una base de datos es el de almacenar la información de manera adecuada, permitir su modificación de manera segura y facilitar el proceso de recuperación de aquella información que en un momento dado resulte necesaria, todo ello en un formato adecuado a las necesidades de los usuarios. La evolución de las bases de datos comenzó con el uso, de forma elemental, de archivos secuenciales. Con el tiempo se fueron creando aplicaciones para estos archivos y fueron surgiendo diversos problemas, como son la eficiencia en la recuperación de información, la redundancia, la seguridad, etc. De esta manera nacieron los primeros “sistemas gestores de bases de datos”, como programas encargados de gestionar el almacenamiento y recuperación de la información, teniendo en cuenta los aspectos y problemas que esto plantea.

Una de las características del lenguaje natural, que hace difícil su utilización en sistemas computacionales es su imprecisión. Por ejemplo conceptos como pequeño o grande, tienen significados diferentes de acuerdo al contexto en el que se estén utilizando, e incluso dentro del mismo contexto, pueden significar cosas diferentes para diferentes individuos. La teoría de los conjuntos difusos desarrollada por el investigador Lofti A. Zadeh, provee una poderosa herramienta para la representación y manejo de la imprecisión por lo que actualmente está siendo utilizada en varios campos para el diseño de sistemas basados en reglas difusas. La teoría de conjuntos difusos, extiende la teoría clásica de conjuntos al permitir que el grado de pertenencia de un objeto a un conjunto sea representada como un número real entre cero y uno en vez del concepto clásico en el que solo se tiene la posibilidad de pertenecer a un conjunto o no pertenecer al mismo; en otras palabras, el grado de pertenencia a un conjunto en la teoría clásica tiene solo dos valores posibles: cero y uno.

Los modelos tradicionales de base de datos que aparecen en la literatura, sólo son capaces de manejar y representar datos ideales, y suponen que la información en ellas almacenada es exacta, correcta y está bien definida. Sin embargo, en el mundo real existe una gran cantidad y variedad de datos cuya naturaleza no permite que sean formulados de forma precisa. Esto significa que la información que se posee sobre un atributo, existe o no existe, pero no se permite ningún grado de incertidumbre o de imprecisión respecto de la misma, es decir, no se puede representar ni tratar informaciones del tipo "Eddy es más o menos flaco". Tampoco se contempla la obtención de información en términos imprecisos a partir de la que se encuentra en la base de datos almacenada en forma precisa; así, por ejemplo, no se ofrecen mecanismos para obtener, de un atributo que almacene información sobre las características físicas de una población, aquellos individuos que sean "flacos".

En el sentido más amplio, un sistema basado en reglas difusas es un sistema basado en reglas donde la lógica difusa es utilizada como una herramienta para representar diferentes formas de conocimiento acerca del problema a resolver, así como para modelar las interacciones y relaciones que existen entre sus variables. Debido a estas propiedades, los sistemas basados en reglas difusas han sido aplicados de forma exitosa en varios dominios en los que la información vaga o imprecisa emerge en diferentes formas. Actualmente, el modelo relacional no permite el procesamiento de consultas del tipo "Encontrar a todos los gerentes cuyo sueldo no sea muy alto" dado que ni el cálculo ni el álgebra relacional, que establecen el resultado de cualquier consulta como una nueva relación, tienen la capacidad de permitir consultas de una manera difusa.

En Francia, a principios de los años 1980, surge uno de los primeros estudios matemáticos sobre el tratamiento de la información difusa, es decir, la información que encierra alguna imprecisión o incertidumbre en una base de datos relacional. Estos fueron realizados, simultáneamente, por los investigadores Dubois y Prade, en dos tesis doctorales, a partir de los trabajos sobre la incertidumbre de Lofti Zadeh, específicamente, la teoría de la posibilidad, que tiene sus raíces en otras dos investigaciones de Zadeh: la teoría de conjuntos difusos y la lógica difusa. Sin embargo, no es hasta el año 1984, que la tesis doctoral de Testemale, propone un modelo de datos difusos, para la implementación de una base de datos relacional difusa. En los últimos años, algunos investigadores han lidiado con el problema de extender el modelo relacional para permitirle admitir algunas imprecisiones; esto conduce a sistemas de bases de datos que encajan en el campo de la inteligencia artificial, ya que permiten el manejo de información con una terminología que es muy similar a la del lenguaje natural. Una solución que aparece recurrentemente en los trabajos de investigación actuales en esta área es la fusión de los sistemas gestores de bases de datos relacionales con la lógica difusa, lo que da lugar a lo que se conoce como sistemas gestores de bases de datos difusas. El término "bases de datos difusas" designa al área de investigación que trata sobre la aplicación de los conjuntos difusos y la lógica difusa en bases de datos. Esta área busca compensar la deficiencia de los sistemas de bases de datos clásicos en representar y manipular data imperfecta y consultas flexibles o graduales. A este problema se le conoce como el problema de rigidez de las bases de datos convencionales, así que los sistemas de bases de datos que tratan de resolver este problema se califican como "flexibles".

El problema de la implementación de los sistemas gestores de bases de datos difusas ha sido tratado en dos vertientes principales: (1) Iniciar con un sistema gestor de bases de datos relacionales con información precisa y desarrollar una sintaxis que permita formular consultas imprecisas, lo cual da origen a extensiones de consultas estructuradas, como consultas estructuradas difusas, con capacidades de manejar la imprecisión. (2) Construir un gestor de bases de datos relacionales difusas, prototipo que implemente un modelo concreto de base de datos relacional difusa en el que la información imprecisa pueda ser almacenada. Dentro de esta vertiente existen dos grandes ramas: Los modelos a través de unificación por relaciones de similitud y los modelos relacionales basados en distribuciones de probabilidades.

Los elementos relacionados con el manejo de información difusa pueden tener representaciones diferentes. Por ejemplo, una distribución normalizada de probabilidades puede ser representada por diferentes tipos de funciones: trapezoidal, triangular, intervalar, etc. Lo más usual, es que se usen funciones de tipo trapezoidal. Lo mismo puede decirse de la forma en la que se modelan los operadores relacionales difusos así como los demás elementos difusos que aparezcan en el sistema. El criterio empleado para seleccionar la forma de representación de los múltiples elementos difusos del sistema gestor de base de datos, puede afectar de manera determinante la funcionalidad y desempeño de la base de datos, por lo que debería ser uno de los puntos centrales en los que el experto ajuste la arquitectura del sistema gestor de base de datos difusa al problema específico a tratar mediante el mismo. Puede decirse entonces que este criterio de selección y ajuste constituye un paso entre la formulación de una base de datos relacional difusa y la implementación de un sistema basado en la misma.

La información que se puede manejar en una base de datos difusa puede dividirse en dos tipos principales: (1) Datos precisos. Manejados usualmente mediante la representación provista por la base de datos relacional huésped. (2) Datos imprecisos. Los modelos usualmente consideran dos tipos de representación para los datos imprecisos además de la información desconocida o indeterminada que se maneja mediante los tipos desconocido, indefinido y nulo. El primer tipo de datos imprecisos se define sobre dominios ordenados, que contiene distribuciones de probabilidad definidas en dominios continuos o discretos, pero ordenados. Los datos con analogías sobre dominios discretos se construyen sobre dominios discretos en los que existen definidas relaciones de proximidad entre sus valores. En este caso se debe almacenar la representación de los datos además de la representación de las relaciones de proximidad definidas para los valores en el dominio. El tipo de dato indefinido surge cuando un atributo toma el valor no definido, esto refleja el hecho de que ningún valor de su dominio es permitido. Por ejemplo: el número de teléfono de alguien que no tiene teléfono. El tipo de dato desconocido expresa la ignorancia sobre el valor que el atributo toma, sin embargo expresa también que puede tomar uno de los valores del dominio. Por ejemplo la fecha de nacimiento de alguien, se la desconoce pero tiene que tener alguna. El tipo de dato nulo expresa ignorancia total, en definitiva no se sabe nada sobre dicho dato.

Guillermo Choque Aspiazu
http://www.eldiario.net/
Marzo 1 de 2010