lunes, 14 de noviembre de 2016

Enfoques de minería de datos distribuida


En la tesis de grado de Mamani, publicada el año 2015 con el título “Aplicación de la minería de datos distribuida usando algoritmos de agrupamiento de k-medias para mejorar la calidad de servicios de las organizaciones modernas” se describen los siguientes algoritmos asociados al enfoque de minería de datos distribuida: (1) Algoritmo k-medias; (2) Modelo base; (3) Densidad en malla; (4) Jerárquicos; (5) Agrupamiento P2P; (6) Algoritmo k-medias P2P. Estos algoritmos se describen a continuación.

Para el algoritmo “k-medias” se consideran los siguientes pasos: (1) Se eligen de manera aleatoria k centroides. (2) Los centroides son enviados a todos los nodos participantes; luego se realiza el agrupamiento k-medias en cada nodo. (3) Cada nodo extrae información estadística de los elementos de sus grupos. (4) Las estadísticas son transferidas hacia un controlador central quien se encargara de consolidar los modelos provenientes de los nodos locales. El hecho de transferir solo información estadística hacia un nodo central y no el conjunto de datos completo permite mantener la confidencialidad y seguridad de la información. Una de las desventajas de este modelo se basa en el hecho de tener que enviar en forma continua la información estadística de los nodos locales hasta lograr convergencia en los resultados lo cual puede generar bastante tráfico en la red y ralentizar el proceso. El algoritmo de “modelo base” utiliza agrupamiento de maximización de expectativas a nivel local, que es similar al algoritmo “k-medias”, excepto que la decisión sobre el agrupamiento final se basa en el uso de funciones adicionales como la función gaussiana. Inicialmente, el sistema local procesa sus elementos individuales, mediante el algoritmo de agrupamiento de maximización de expectativas local, a continuación cada grupo es modelado como una suma de funciones gaussianas. Las funciones resultantes son transferidas a un coordinador central, quien se encarga de reunir las funciones para generar la función global sobre la densidad de la probabilidad de la imagen global. Esta información se envía a cada nodo local con la finalidad que cada uno de ellos pueda utilizarla y reevaluar sus resultados de ser necesario. El algoritmo emplea buenas medidas de confidencialidad y precisión. Sin embargo tiene un problema básico que consiste en que dos grandes grupos conectados mediante un componente con densidad mínima puede resultar constituyéndose en un mismo grupo sin que lo sea.

El algoritmo “densidad en malla” hace uso del algoritmo “clique” con ciertas mejoras enfocadas en el agrupamiento distribuido. El enfoque basado en densidad para el agrupamiento distribuido consiste en que de manera inicial cada atributo definido en la consulta del usuario es explorado y en lugar de definir ciertos valores globales para el tamaño de una malla estos son determinados dinámicamente basándose en información estadística. Los grupos son representados como mallas rellenadas y debido al proceso dinámico de cuadricular el área se tiene que en zonas de intensa densidad la granularidad es bastante fina y en zonas de baja población la densidad es gruesa. El algoritmo genera grupos sólidos, sin embargo estos asumen que los datos están centralizados en un repositorio desde el cual se distribuye a todos los nodos. El algoritmo “jerárquico” es bastante similar al enfoque basado en “densidad en malla”. La idea principal que persigue este algoritmo es empezar con un conjunto de puntos distintos, cada uno formando su propio grupo. A continuación se empieza recursivamente a unir dos grupos cercanos hasta asegurar que todos los puntos lleguen a pertenecer a un mismo grupo. De este modo en los algoritmos jerárquicos paralelos se utilizan dendogramas para crear grupos y sus distancias mínimas y máximas entre ellos. La unión de grupos se basa en distancias mínimas las cuales son transmitidas junto a un objeto identificador. La propiedad reducción es utilizada para crear el modelo global.

Sunny y Thampi, en el artículo publicado el año 2010 con el título “Estudio sobre minería de datos distribuida en redes P2P”, hacen referencia a investigaciones de “algoritmos de agrupamiento P2P”, considerando las siguientes propuestas: (1) Algoritmo exacto para monitoreo de agrupamiento de k-means. Este algoritmo consiste en monitorear la distribución de los centroides de los nodos locales dispersos y realizar el proceso de k-medias cuando se actualizan los grupos. El algoritmo considera dos fases, la primera fase consiste en monitorear la distribución de los datos mediante un algoritmo exacto; la segunda fase consiste en calcular los centroides mediante un enfoque centralizado. (2) Algoritmo k-medias basado en probar y hacer. Esta propuesta consiste en transmitir los centroides a todos los nodos en la red utilizando el mecanismo probar y hacer. Se requiere una sincronización de todos los nodos en cada iteración lo cual genera congestión en la red. De manera adicional se describen otros 3 algoritmos basados en k-medias P2P. En el artículo de Datta y sus colegas, publicado el año 2006 con el título “Minería de datos distribuida en redes punto a punto”, se propone un algoritmo iterativo basado en el intercambio de mensajes entre nodos conectados directamente para resolver el problema de agrupamiento de k-medias en redes P2P. Se eligen aleatoriamente un conjunto de centroides y se distribuyen sobre todos los nodos. Para cada iteración, cada nodo ejecuta un proceso basado en dos pasos: (1) Idéntico a la primera iteración del algoritmo k-medias estándar; en el cual cada nodo asigna cada uno de sus puntos a su centroide más cercano. (2) Un nodo envía un mensaje a los nodos vecinos conteniendo su identificador y el número de la iteración actual en la cual se encuentra. Se repite el paso (1) y paso (2) hasta que los centroides de las iteración actual y la siguiente no presenten cambios significativos con lo cual el algoritmo habrá concluido.

jueves, 10 de noviembre de 2016

Para reforzar investigaciones: Especializan a periodistas bolivianos en datos

Periodismo de Datos es una técnica de investigación que se está desarrollando con mayor énfasis en el mundo debido a que tiene una gran importancia para el periodista que informa a la población sobre la gestión pública y privada, es por ello que la Fundación para el Periodismo ya inició con el primer nivel de Periodismo de Datos con 60 participantes, para la siguiente gestión se proyecta la continuación del nivel 2, indicó el director ejecutivo de la Fundación para el Periodismo, Renán Estenssoro.
Estenssoro, señaló que el objetivo primordial de esta especialidad es lograr estimular la apertura de datos en Bolivia para que las instituciones públicas y privadas comiencen a ofrecer los datos de manera espontánea y por iniciativa propia a través de páginas web de libre acceso para la ciudadanía.
“Esto creo que es un ejercicio democrático y de transparencia en la gestión pública”, dijo.
El taller arrancó en la ciudad de Santa Cruz con la participación de periodistas de Tarija, Beni y Santa Cruz; Olaya Argüeso jefa del equipo de datos del periódico global El País de España junto a Pablo Rivero especialista boliviano en open data fueron los expositores, quienes compartieron sus técnicas y destacaron la importancia de los datos en las investigaciones periodísticas.
Los talleres ahora continúan realizándose en Cochabamba, posteriormente se realizarán en la ciudad de La Paz los días 11y 12 del presente. Como incentivo para los asistentes, la fundación escogió los 10 mejores proyectos de investigación, mismos que serán impresos en un libro que se publicará a mediados de diciembre de 2016.

Difícil acceso a datos en Bolivia

En Bolivia no existe una norma que permita o exija a los funcionarios públicos entregar información de manera libre, ordenando y sistematizada para hacerla de uso público. “Si bien hay recursos jurídicos en decretos supremos no hay una aplicación específica a partir de una norma o un reglamento”, comenta el expositor Rivero.
Al no contar con el marco jurídico se torna difícil avanzar; otro factor importante es que aún existen brechas tecnológicas y brechas de recursos tecnológicos para la difusión y la utilización de datos.
Rivero dijo que la finalidad de los talleres es poder lograr que más periodistas sean capaces de apropiarse de la información para modificarla, entenderla y así construir la información, las historias a partir de datos

lunes, 7 de noviembre de 2016

Primera parte Enfoques de minería de datos distribuida


Fayyad y sus colegas, en el artículo publicado el año 1996 titulado “El proceso de descubrimiento de conocimiento en bases de datos, para la extracción de conocimiento útil de volúmenes grandes de datos”, menciona que la minería de datos es un término genérico que engloba resultados de investigación, técnicas y herramientas usadas para extraer información útil de grandes conjuntos de datos. Los algoritmos de minería de datos se enmarcan en el proceso completo de extracción de información conocido “descubrimiento de conocimiento en bases de datos”, que se encarga de preparar los datos y de interpretar los resultados obtenidos. El análisis de la información recopilada en algunas ocasiones puede llevarse a cabo de forma manual, utilizando para ello algunas técnicas estadísticas. Sin embargo, cuando la cantidad de datos de los que se dispone aumenta, esta forma de estudio se puede complicar. Allí es donde entra en juego el conjunto de técnicas de análisis automático a las que hace referencia la minería de datos o el descubrimiento de conocimiento en bases de datos.

Según López, en la tesis de maestría publicada el año 2012 con el título “Análisis de las posibilidades de uso de Big data en las organizaciones”, las características principales de la minería de datos son: (1) Explorar los datos se encuentran en las profundidades de las bases de datos, como los almacenes de datos, que algunas veces contienen información almacenada durante varios años. (2) El entorno de la minería de datos suele tener una arquitectura cliente-servidor. (3) Las herramientas de la minería de datos ayudan a extraer el mineral de la información enterrado en archivos corporativos o en registros públicos, archivados. (4) El usuario de la minería de datos es muchas veces un usuario final con poca o ninguna habilidad de programación. (5) Hurgar y sacudir a menudo implica el descubrimiento de resultados valiosos e inesperados. (6) Las herramientas de la minería de datos se combinan fácilmente y pueden analizarse y procesarse rápidamente. (7) La minería de datos produce cinco tipos de información: Asociaciones, secuencias, clasificaciones, agrupamientos y pronósticos.

Caridad, en el artículo publicado el año 2001 con el título “La minería de datos: Análisis de bases de datos en la empresa”, menciona que los sistemas informáticos centralizados se difundieron en las décadas de los sesenta y setenta del siglo veinte; luego con la aparición de las mini-computadoras comenzaron a incorporarse procesos automatizados en diferentes campos de aplicación. Finalmente, la difusión masiva de las computadoras personales en la década de los ochenta y de las redes de comunicación generalizaron el uso de los procesos informáticos, obligando así a cambiar las estructuras centralizadas de los centros de procesamiento de datos. Esta idea es complementada por Mitra y Acharya, en el libro publicado el año 2003 con el título “Minería de datos: Multimedia, computación blanda y bioinformática”, quienes señalan que la mayoría de los datos comienzan a ser archivados en varias unidades de almacenamiento, es decir los datos se pueden almacenar en diferentes localidades lógicas, bien sea en un mismo espacio físico o geográficamente distinto. Estas bases de datos relacionadas lógicamente son interconectadas por una red de comunicaciones, dando lugar a las llamadas bases de datos distribuidas.

Han y Kamber, en el libro publicado el año 2006 con el título “Minería de datos: Conceptos y técnicas”, indican que en las bases de datos distribuidas las múltiples computadoras son llamadas nodos o sitios, y pueden tener diferentes esquemas de diseño, como por ejemplo el esquema centralizado, donde la base de datos distribuida está localizada en una sola unidad de almacenamiento y los usuarios están distribuidos. El esquema de réplica, el cual consiste en que cada nodo debe tener su propia copia completa de la base de datos. Esquema fragmentado o particionado, donde solo hay una copia de cada elemento; en este caso la información está distribuida a través de los diferentes nodos y en cada nodo se almacena una o más partes disjuntas de la base de datos. También se puede nombrar el esquema híbrido, el cual no es más que la combinación del esquema de partición y de réplica.

En la tesis de grado de Mamani, publicada el año 2015 con el título “Aplicación de la minería de datos distribuida usando algoritmos de clustering k-means para mejorar la calidad de servicios de las organizaciones modernas”, se menciona que las bases de datos distribuidas se pueden clasificar en homogéneas o heterogéneas. Las bases de datos distribuidas homogéneas son aquellas en las que el mismo esquema de diseño está repetido en cada servidor y los registros se encuentran repartidos en los diferentes nodos. Mientras que, las bases de datos distribuidas heterogéneas son aquellas en las que cada nodo almacena un subconjunto de datos. Mitra y Acharya, en el libro citado anteriormente, señalan que a su vez, el crecimiento de las bases de datos distribuidas dio origen a la necesidad de tratar con grandes cantidades de bases de datos heterogéneas, es decir datos almacenados en múltiples archivos, diferentes unidades de almacenamiento, y diferentes localidades geográficas, por lo que algoritmos más sofisticados en el uso de técnicas de minería de datos deben ser considerados para la integración de las bases de datos distribuidas y la extracción de información de interés de las mismas. Sunny y Thampi, en el artículo publicado el año 2010 con el título “Ensayos sobre minería de datos distribuida en redes P2P”, presentan una taxonomía de los enfoques de minería de datos distribuida, clasifican dicha taxonomía en dos grupos. El primer grupo es conocido como coordinador centralizado y reúne tres subgrupos conocidos como: Agrupamiento distribuido, regla asociativa distribuida y clasificador de aprendizaje distribuido; el segundo grupo es conocido como minería de datos punto a punto y reúne dos subgrupos que se conocen como: Minería de datos compleja y operaciones primitivas.

martes, 1 de noviembre de 2016

Segunda parte Nanotecnología y big data


En el informe de Stokes, publicado el año 2014 con el título “Nanotecnología y Big data: ¿La siguiente revolución industrial?”, se menciona que un grupo de expertos dirigido por el profesor Sir Mark Welland, Director del Centro de Nanociencia de la Universidad de Cambridge, fue organizado y financiado por la Fundación Lloyd en el mes de octubre del año 2013. Se consideraron las implicaciones potenciales de la nanotecnología en la seguridad y el rendimiento de los activos de ingeniería y la infraestructura en la que se basa la sociedad moderna. El panel incluyó a académicos de alto nivel de las instituciones líderes en el mundo: Universidad de Cambridge, Universidad Heriot-Watt y Southampton y el Laboratorio de Seguridad y Salud en el Reino Unido; Universidad Yale en los Estados Unidos; Universidad Nacional de Singapur y Universidad Münster de Alemania.

Entre otras cosas, los expertos analizaron las posibles implicaciones de la nanotecnología en la seguridad y el rendimiento de los activos de ingeniería, así como en la infraestructura en la que se basa la sociedad moderna. El informe, presentado el año 2014 indica que la nanotecnología tendrá un gran impacto en casi todos los sectores, incluyendo la energía, el transporte, la fabricación, la medicina, la informática y las telecomunicaciones. En este sentido, el mencionado informe identifica cinco áreas fundamentales de impacto: (1) Nanopartículas. El informe pone de relieve la necesidad de investigar el desarrollo de nuevos métodos que permitan evaluar la seguridad y garantizar la calidad y la trazabilidad de las nanopartículas en la cadena de suministro. (2) Materiales artificiales inteligentes. El informe prevé el desarrollo de nuevos materiales artificiales y novedosas técnicas de fabricación. El uso de materiales más ligeros y resistentes con propiedades diseñadas específicamente podría dar lugar, por ejemplo, a embarcaciones pegadas entre sí con compuestos ligeros. Paralelamente, los avances en el campo de la impresión en tres dimensiones permitirán la impresión de metales. (3) Almacenamiento de energía. El desarrollo de pequeñas baterías compactas con capacidad de almacenamiento masivo junto con la capacidad de captar energía del entorno podría dar lugar a nuevos sistemas de transporte o electrodomésticos que dispongan de energía para toda su vida útil en el momento de la compra. (4) Miniaturización de sensores. La incorporación de nanosensores en materiales estructurales como el hormigón proporcionará información continua en tiempo real sobre factores de desempeño estructural, como la corrosión o las tensiones. Esta tecnología mejorará también la robótica y los vehículos no tripulados en el sector del transporte. (5) Grandes repositorios de datos o Big data. Se producirá un aumento masivo de los datos recopilados como consecuencia de la colocación de sensores en todas partes. Esto tendrá importantes implicaciones a la hora de garantizar la calidad, seguridad y trazabilidad.

En la tesis de maestría de Manso, publicada el año 2015 con el título “Análisis de Modelos de Negocios Basados en Big Data para Operadores Móviles”, se menciona que el término general que se utiliza para describir la tendencia creciente de datos donde el volumen, variedad, velocidad y veracidad excede a la capacidad de los métodos tradicionales es conocido como Big data. Este fenómeno se caracteriza por cuatro uves: (1) Volumen. Más información de lo que es económicamente factible almacenar, terabytes a petabytes de datos. (2) Variedad. Datos en múltiples formatos tales cómo estructurado, semi-estructurado, no estructurado y de tipo texto, imágenes, videos, audio, interactividad, etc. (3) Velocidad. Análisis en tiempo casi real de flujo de datos para permitir la toma de decisiones en fracciones de segundos. (4) Veracidad. Gestión de la fiabilidad y la previsibilidad de la incertidumbre intrínseca de los datos. Big data es uno de los temas más candentes en la actualidad y su crecimiento se prevé que sea exponencial. ¿Cómo afectará esto a la sociedad? Y, lo más importante ¿puede ayudar los datos a mejorar la vida de las personas? Este boom puede traducirse en mejoras en la gestión de diferentes aspectos de la sociedad, desde las catástrofes del planeta, la salud, la agricultura, la productividad, el medio ambiente, la educación o el gobierno abierto, entre otros. La clave está en encontrar la vía, mediante un uso responsable, para hacer uso de estas grandes cantidades de datos para el beneficio de la sociedad.

Según el informe de Stokes, en los últimos años se le ha dado mucha importancia a la nanotecnología en los medios de comunicación y, más recientemente, han salido a la palestra conceptos como el Internet de las cosas o el ya mencionado Big data. Sin embargo, hace más de treinta años que se investiga en nanotecnología, se han invertido, y se siguen invirtiendo todavía, miles de millones de dólares en investigación en este campo y la gran revolución prometida sigue sin llegar a hacerse realidad. No hay duda de que la nanotecnología seguirá avanzando y conducirá al desarrollo de nuevos productos sorprendentes; y probablemente dará lugar a la tan anunciada revolución en un futuro próximo. Por el momento, hay dos factores fundamentales que lo impiden: (1) Las dificultades para llevar los avances del laboratorio al mercado: Este es uno de los grandes problemas de la nanotecnología actualmente, la dificultad a la hora de escalar la producción lograda en el laboratorio para lograr una producción a escala comercial. Un buen ejemplo es el del grafeno, el nanomaterial del que tanto se ha hablado y que se dice que podría revolucionar la electrónica reemplazando al silicio. Sin embargo, por el momento, la producción de grafeno de alta calidad no es posible, incluso en pequeñas cantidades, por lo que todavía no es viable comercialmente. (2) Las preocupaciones relacionadas con la salud y la seguridad: Es necesario abordar estos temas desde el punto de vista ambiental, médico y legislativo y encontrar una solución que garantice realmente que la nanotecnología no entraña ningún perjuicio para los seres vivos y el medioambiente antes de permitir la salida masiva de nanomateriales al mundo. La nanotecnología está todavía en una etapa conceptual. No obstante, hay que tener en cuenta también que la industria todavía no ha invertido de forma masiva en este campo.

miércoles, 26 de octubre de 2016

Nanotecnología y big data

En la monografía de Briones y sus colegas, publicada el año 2009 con el título “Nanociencia y nanotecnología: Entre la ciencia ficción del presente y la tecnología del futuro”, se menciona que muchas definiciones circulan por la Web para nanociencia y nanotecnología y, como todo lo que aparece en Internet, deben de ser interpretadas con cautela. Hay quien dice que nanociencia es la ciencia de lo infinitamente pequeño. Esto no es estrictamente cierto, ya que esta definición responde mejor, por ejemplo, al tipo de estudios de los que se ocupa la física de altas energías, que trabaja con protones, neutrones o incluso los constituyentes de éstos: Los quarks. Otras personas piensan que la nanotecnología trata de reducir el tamaño de los objetos hasta límites insospechados. Esto tampoco es completamente acertado, ya que la nanotecnología necesita técnicas de fabricación diferentes, basadas en otros conceptos. Por otra parte, a veces se asocia la palabra nanotecnología con la construcción de dispositivos y robots como los que se tiene en el mundo pero de dimensiones bastante pequeñas. Esto, también es un error. Los problemas que presenta la definición de estos términos están relacionados con el hecho de que ni la nanociencia ni la nanotecnología nacieron como disciplinas cerradas, sino que ambas son campos del conocimiento que se han ido construyendo paralelamente a la aparición de nuevos descubrimientos y que, de hecho, no se sabe aun hacia donde evolucionarán.

De manera general, se podría definir nanotecnología como la fabricación de materiales, estructuras, dispositivos y sistemas funcionales a través del control y ensamblado de la materia a la escala del nanómetro, de cero coma uno a cien nanómetros, del átomo hasta por debajo de la célula, así como la aplicación de nuevos conceptos y propiedades, de diferentes ramas de la ciencia, que surgen como consecuencia de esa escala tan reducida. La nanotecnología, de manera obvia, se encarga de manejar grandes volúmenes de datos en equipos computacionales en escala manométrica. Pero como se podrían encarar tareas tan importantes, al interior de la nanotecnología, como son el manejo de las nanopartículas, los nanomateriales artificiales inteligentes, el almacenamiento de energía o la miniaturización de sensores para tareas tan importantes como son las asociadas al manejo del control difuso o el control domótico de la infraestructura de inteligencia ambiental, que permita a las personas “vivir bien”, mas allá de la simple retorica.

En el artículo de Puyol, publicado el año 2014 con el título “Una aproximación a Big data”, cada día en el mundo se generan más de dos punto cinco exabytes de datos, esto equivale a un millón de de terabytes. La generación de datos no solo crece, explota. El crecimiento exponencial es tan grande, que el noventa por ciento de los datos guardados en la actualidad, han sido creados en los dos últimos años. Cada segundo sensores, tabletas, teléfonos y sistemas inteligentes generan cantidades de datos que crecen exponencialmente. Actualmente, la mayoría de los datos almacenados por las nuevas tecnologías no tienen más de dos años. Muchos de estos datos no se procesan porque los sistemas tradicionales de computación no son capaces de procesarlos y muchas empresas no tienen una solución unificada para recogerlos y analizarlos.

Según datos hechos públicos por el Instituto Global McKinsey, en el documento publicado el año 2011 con el título “El despertar de la India urbana: La construcción de ciudades inclusivas”, el noventa por ciento de los datos que existen en el planeta se ha generado en los últimos dos años y durante el año 2011 se rozaron los dos zetabytes, equivalente a más de dos mil millones de terabytes de información en todo el mundo. Este ritmo de generación de datos ha desbordado a los programas informáticos utilizados habitualmente para capturar, gestionar y procesar información. Se requiere de nuevos programas de software y herramientas de hardware para su procesamiento.

En el artículo de Barranco, publicado el año 2012 con el título “¿Qué es Big data?”, se indica que en términos generales el Big data puede ser considerado como a la tendencia en el avance de la tecnología que ha abierto las puertas hacia un nuevo enfoque de entendimiento y toma de decisiones, la cual es utilizada para describir enormes cantidades de datos: Estructurados, no estructurados y semi estructurados, que tomaría demasiado tiempo y sería muy costoso cargarlos a un base de datos relacional para su análisis. De tal manera que, el concepto de Big data aplica para toda aquella información que no puede ser procesada o analizada utilizando procesos o herramientas tradicionales. Sin embargo, Big data no se refiere a alguna cantidad en específico, ya que es usualmente utilizado cuando se habla en términos de petabytes y exabytes de datos. Entonces cabe preguntarse ¿Cuánto es demasiada información de manera que sea elegible para ser procesada y analizada utilizando Big Data?, esto debe ser analizado en términos de bytes: Un gigabyte es equivalente a mil millones de bytes; un terabyte equivale a un millón de bytes; un petabyte equivale a un millón de gigabytes; un exabyte es equivalente a mil millones de gigabytes. Además del gran volumen de información, existe en una gran variedad de datos que pueden ser representados de diversas maneras en todo el mundo, por ejemplo de dispositivos móviles, audio, video, sistemas de posicionamiento global, incontables sensores digitales en equipos industriales, automóviles, medidores eléctricos, veletas, anemómetros, etc., los cuales pueden medir y comunicar el posicionamiento, movimiento, vibración, temperatura, humedad y hasta los cambios químicos que sufre el aire, de tal forma que las aplicaciones que analizan estos datos requieren que la velocidad de respuesta sea lo demasiado rápida para lograr obtener la información correcta en el momento preciso. Estas son las características principales de una oportunidad para Big data.

lunes, 26 de septiembre de 2016

Algoritmos genéticos en optimización multiobjetivo


En la tesis de maestría de Gutiérrez Méndez, publicada el año 2011 con el título “Optimización multiobjetivo usando algoritmos genéticos culturales”, se menciona que la optimización multiobjetivo tiene amplias aplicaciones en distintas aéreas de la ingeniería y las ciencias computacionales. Muchos de estos problemas tienen espacios de búsqueda bastante grandes por lo que, en algunos casos, no pueden ser resueltos mediante técnicas exactas en un tiempo razonable. Para resolver este tipo de problemas suelen utilizarse meta heurísticas. Dentro de las meta heurísticas destacan los algoritmos basados en computación evolutiva, los cuales simulan el proceso de selección del más apto en una computadora, a fin de resolver problemas, por ejemplo de optimización y clasificación. En los algoritmos evolutivos, las soluciones de un problema son modeladas como individuos de una población, a las cuales se les aplican operadores inspirados en la evolución biológica. Este tipo de algoritmos han sido capaces de obtener muy buenos resultados en diversos problemas del mundo real, de alta complejidad.
Nocedal y Wright, en el libro publicado el año 2006 con el título “Optimización numérica”, mencionan que existen problemas para los cuales las variables de decisión solo son validas si sus valores son enteros. A los problemas de este tipo se les denomina problemas de programación entera. Estos son un caso particular de los llamados problemas de optimización discreta. En dichos problemas los valores de las variables de decisión son tomados de un conjunto finito de elementos. En contraste, para los problemas de optimización continua, las variables de decisión toman valores de un conjunto infinito de elementos, en teoría, debido a que los reales se representan de forma finita en una computadora. Los problemas de optimización continua suelen ser más sencillos de resolver pues la información sobre la función objetivo y las restricciones en un punto particular ayudan a deducir información sobre todos los puntos cercanos. En el caso de los problemas discretos el comportamiento de la función objetivo y las restricciones pueden variar considerablemente entre dos puntos considerados cercanos. Esta idea es complementada por Dantzig y Thapa, en el libro publicado el año 1997 con el título “Introducción a la programación lineal”, quienes señalan que un caso particular de los problemas de optimización ocurre cuando la función objetivo y las restricciones son funciones lineales. En este caso se dice que se trata de un problema de programación lineal. Existen varios métodos para resolver problemas de este tipo que garantizan encontrar la solución exacta, como por ejemplo el llamado método simplex.
Jensen, en el artículo publicado el año 2003 con el título “Reducción de la complejidad del tiempo de corrida de algoritmos evolutivos multiobjetivo”, señala que cuando por lo menos una de las restricciones o la función objetivo son funciones no lineales, se dice que el problema es de programación no lineal. Para este tipo de problemas no existe un método general que garantice encontrar la mejor solución posible en tiempo polinomial. La mayoría de los algoritmos para problemas de optimización no lineal encuentran únicamente óptimos locales, es decir, puntos óptimos respecto a una región cercana, en contraste con los óptimos globales, los cuales son los mejores respecto a todos los demás puntos factibles. Según Kirkpatrick y sus colegas, en el artículo publicado el año 1983 con el título “Optimización mediante el recocido simulado”, existen métodos para resolver problemas de optimización no lineal pero generalmente requieren de la primera derivada de la función objetivo. Esta información no siempre se encuentra disponible o es costosa de calcular. En la práctica, suelen utilizarse heurísticas para resolver problemas de programación no lineal. Un ejemplo de heurística es el recocido simulado. Una familia de heurísticas bastante popular es la computación evolutiva, la cual ha mostrado resultados competitivos en una amplia variedad de problemas, según lo indica Lamont y sus colegas en el libro publicado el año 2002 con el título “Algoritmos evolutivos para resolver problemas multiobjetivo”.
Los algoritmos de optimización son métodos iterativos. Comienzan con una aproximación, posiblemente aleatoria, y generan una secuencia de estimaciones hasta alcanzar una cierta condición de paro. La estrategia que decide cómo pasar de una estimación a otra es lo que distingue a un algoritmo de otro. Nocedal y Wright, en el libro mencionado en párrafos anteriores, mencionan que un buen algoritmo de optimización debe tener las siguientes características: (1) Robustez. Debe desempeñarse bien en una amplia variedad de problemas. (2) Eficiencia. No debe requerir de recursos de cómputo excesivos. (3) Exactitud. Debe identificar la solución con precisión. Un buen algoritmo debe ofrecer un compromiso adecuado entre estas características. En el artículo de Lagunas y sus colegas, publicado el año 2013 con el título “Optimización multiobjetivo mediante algoritmos genéticos: Aplicación a controladores PID robustos”, se menciona que el problema de optimización multiobjetivo tiene sentido cuando los índices de desempeño involucrados están en conflicto, de lo contrario el problema de optimización multiobjetivo puede ser considerado como monobjetivo, ya que los mismos valores, podrían minimizar o maximizar todos los objetivos de manera simultánea. Los algoritmos genéticos han sido utilizados exitosamente en optimización multiobjetivo. Una de las primeras aplicaciones fue realizada por Fonseca y Fleming en el año 1988, en el artículo titulado “Optimización multiobjetivo y manejo de restricciones múltiples con algoritmos evolutivos”, donde se utiliza un algoritmo genético multiobjetivo para el control de una turbina de gas. En el año 2000, Herreros propuso en su tesis doctoral, titulada “Diseño de controladores robustos multiobjetivo por medio de algoritmos genéticos”, un algoritmo llamado diseño de control robusto multiobjetivo, para el diseño de controladores robustos. Para la sintonización de los controladores robustos, el problema de control, se presenta como un problema de optimización multiobjetivo, de un conjunto de funciones, donde se incluyen los parámetros del controlador.

lunes, 19 de septiembre de 2016

Algoritmo Levenberg-Marquardt

En la tesis doctoral de Fernández Slezak, publicada el año 2010 con el título “Estimación de parámetros en modelos biológicos complejos: Aplicación a modelos de crecimiento tumoral”, se indica que el objetivo de la optimización es encontrar los parámetros que minimicen la distancia entre los valores experimentales y los de la simulación. Esta distancia, a la que se denomina función de costo, puede ser definida de muchas maneras. Una de las técnicas más utilizadas es la llamada minimización de cuadrados mínimos, cuya función de costo es la suma de las diferencias cuadráticas entre el modelo y los datos. Existe una enorme cantidad de algoritmos aproximados de búsqueda de mínimos locales, que pueden separarse en categorías muy diferentes, por ejemplo métodos de descenso, algoritmos genéticos, etc. Las técnicas para la optimización no lineal de la función de cuadrados mínimos, se agrupan en algoritmos de tres categorías: Métodos de descenso, métodos de búsqueda directa y métodos inspirados en fenómenos físicos. Todos los métodos de minimización no lineal son iterativos, es decir que parten de un punto inicial y el método genera una secuencia de parámetros que, en caso de converger, se acerca a un mínimo local. Entre los métodos más conocidos se encuentra el método de Gauss-Newton, descrito en el artículo de Björck, publicado el año 1996 con el título “Métodos numéricos para problemas de mínimos cuadrados”. El método de minimización Levenberg-Marquardt también pertenece a la familia de problemas llamados métodos de descenso, este algoritmo fue presentado por Levenberg en el artículo publicado el año 1944 con el título “Método para la solución de ciertos problemas no lineales en mínimos cuadrados”, el cual fue complementado con el articulo de Marquardt publicado el año 1963 con el título “Un algoritmo para estimación de mínimos cuadrados de parámetros no lineales”. Este algoritmo propone un esquema de Gauss-Newton amortiguado. Al igual que Gauss-Newton, toma la aproximación lineal del modelo y una determinada dirección de descenso.

El método de Levenberg-Marquardt es conocido hace muchos años, y es altamente utilizado en el ambiente de la optimización, en especial en la minimización de cuadrados mínimos. Por tal motivo, para el uso de este algoritmo, en muchos círculos académicos, se opta por una implementación preexistente de la vasta cantidad de opciones disponibles. Una de las bibliotecas numéricas más conocidas es Linpack, descrita por Bunch y sus colegas en la guía de usuario “Linpack” del año 1979, orientada principalmente a la implementación de rutinas relacionadas con el “algebra lineal para el cálculo de vectores y matrices”. Pensada para el cálculo en supercomputadoras, fue desarrollada a fines de la década de los años 1970 y ha estado en constante evolución desde entonces. Ha sido superada por la biblioteca Lapack, la cual es descrita por Anderson y sus colegas en la guía de usuario de “Lapack” publicada el año 1999. En conjunto con Linpack/Lapack, se desarrolló MinPack, una serie de rutinas dedicadas a la resolución de ecuaciones no lineales y problemas de minimización de cuadrados mínimos, la cual es descrita por Moré y sus colegas en el proyecto “Minpack”, publicado el año 1984.

El algoritmo Levenberg-Marquardt calcula el Jacobiano del modelo con respecto a los parámetros, y utilizando éste busca un mínimo local. El Jacobiano es necesario en cada iteración para calcular la dirección hacia el mínimo local. Debido a que no es bastante difícil el cálculo analítico el Jacobiano es estimado a través de un algoritmo. Para estimar el Jacobiano es necesario realizar numerosas corridas del modelo; por ejemplo, para aproximarlo numéricamente utilizando el método de diferencias finitas centradas es necesario duplicar la cantidad de parámetros variables, que forman parte de las evaluaciones del modelo. El modelo a ser minimizado es muy intensivo en poder de cómputo, por lo que el cálculo del Jacobiano también demanda mucho. Por este motivo se realiza una implementación en paralelo para el cálculo efectivo del Jacobiano. Cada corrida necesaria para la estimación es independiente de la otra, por lo que es trivialmente paralelizable. La implementación de este algoritmo es muy sencilla utilizando un modelo Cliente-Servidor. Al necesitar la estimación del Jacobiano, se reservan nodos para procesamiento. La función para calcular el Jacobiano corre en un nodo principal que distribuye las tareas entre los nodos esclavos disponibles, que sólo espera los parámetros con los cuales deben correr y la señal de inicio. Al recibir esta información, el nodo esclavo ejecuta el modelo con los parámetros recibidos. Luego el amo espera a que cada nodo esclavo haya terminado y junta los resultados de todas las ejecuciones. Por último, realiza el cálculo devolviendo la estimación del Jacobiano.

El algoritmo de retropropagación ha demostrado converger de forma lenta hacia el error mínimo, en especial cuando se tiene una gran cantidad de patrones de entrada. A la fecha existen variados algoritmos que convergen a una velocidad mayor que el algoritmo de retropropagación, como el algoritmo de Levenberg-Marquardt, descrito de manera formal por Bishop, en el libro publicado el año 1995 con el título “Redes neuronales para reconocimiento de patrones”. Hudson y sus colegas, en la guía de usuario publicada el año 2013 con el título “Matlab: Caja de herramientas para redes neuronales”, menciona que este algoritmo se aplica a redes neuronales con un número de patrones de pequeño o mediano tamaño, ya que ocupa demasiada memoria en el cálculo, por lo que su complejidad en cálculos es mayor. Esta mayor complejidad se debe a que se tiene que combinar el gradiente y la aproximación de Gauss-Newton de la matriz Hessiana de la función del error en la regla de actualización de los pesos. El cálculo de la matriz Hessiana es muy costoso computacionalmente hablando, por ello la complejidad del algoritmo crece.