Algoritmos de Computación Paralela aplicados al Aprendizaje de Máquina: una revisión del estado del arte



Documentos relacionados
4. Programación Paralela

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK.

Elementos requeridos para crearlos (ejemplo: el compilador)

Capítulo 5. Cliente-Servidor.

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

forma de entrenar a la nuerona en su aprendizaje.

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

4 Teoría de diseño de Experimentos

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

SISTEMAS DE INFORMACIÓN II TEORÍA

Estructura de Computadores I Arquitectura de los MMOFPS

Ofrezca la nueva tendencia de innovación empresarial con un entorno de red abierta

UN ENTORNO A MEDIDA PARA EL DISEÑO Y LA SIMULACIÓN DE MAQUINARIA POR COMPUTADOR

DE VIDA PARA EL DESARROLLO DE SISTEMAS

Gestión de la Configuración

7. Conclusiones. 7.1 Resultados

Fundamentos y Aplicaciones Prácticas del Descubrimiento de Conocimiento en Bases de Datos. - Sesión 9 -

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web

Propuesta de proyecto de investigación: desarrollo de un rastreador web capaz de aprender a identificar la información más relevante

INGENIERÍA DEL SOFTWARE

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo

Resolución de problemas en paralelo

App para realizar consultas al Sistema de Información Estadística de Castilla y León

Sistema de Gestión de Proyectos Estratégicos.

Administración del conocimiento y aprendizaje organizacional.

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI)

Capítulo IV. Manejo de Problemas

CLASIFICACIÓN DE LAS COMPUTADORAS. Ing. Erlinda Gutierrez Poma

M.T.I. Arturo López Saldiña

Software de Simulación aplicado a entornos de e-learning

Trabajo final de Ingeniería

Gestión de Oportunidades

Arquitectura de sistema de alta disponibilidad

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Conclusiones. Particionado Consciente de los Datos

Escogiendo un sistema host


CAPÍTULO 1 Instrumentación Virtual

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

comunidades de práctica

2. MÉTODOS, INSTRUMENTOS Y ESTRATEGIAS

Facultad de Ingeniería ISSN: Universidad Pedagógica y Tecnológica de Colombia. Colombia

Fundamentos del diseño 3ª edición (2002)

Yersinio Jiménez Campos Analista de datos Banco Nacional de Costa Rica

Servicios avanzados de supercomputación para la ciència y la ingeniería

CMMI (Capability Maturity Model Integrated)

Profunda comprensión de que valores son o podrían ser percibidos por los clientes.

ING. YURI RODRIGUEZ ALVA

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Modelos de Ciclo de Vida de Desarrollo de Software en el Contexto de la Industria Colombiana de Software

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

Sesión No. 12. Contextualización: Nombre de la sesión: SAP segunda parte PAQUETERÍA CONTABLE

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

GUIA SOBRE LOS REQUISITOS DE LA DOCUMENTACION DE ISO 9000:2000

Capítulo 5: Pruebas y evaluación del sistema. A continuación se muestran una serie de pruebas propuestas para evaluar varias

Evaluación, limpieza y construcción de los datos: un enfoque desde la inteligencia artificial

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

CÓMO MEJORAR LA GESTIÓN DE SERVICIOS TI USANDO MEJORES PRÁCTICAS?

Clasificación de Música por Genero Utilizando Redes Neuronales Artificiales. Elkin García, Germán Mancera, Jorge Pacheco

Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad

Capítulo 5: METODOLOGÍA APLICABLE A LAS NORMAS NE AI

Catoira Fernando Fullana Pablo Rodriguez Federico [MINERIA DE LA WEB] Proyecto Final - Informe Final

INTEGRACIÓN DE LA TECNOLOGÍA DENTRO DEL ÁREA EDUCATIVA

Unidad III. Planificación del proyecto de software

Inteligencia de Negocio

GeneXus BPM Suite X. Última actualización: 01 de Setiembre de 2008

Cuándo y qué virtualizar? Cuándo y qué virtualizar? 1

CAPITULO III MARCO METODOLÓGICO. La presente investigación plantea como objetivo el diseño de un prototipo

Laboratorio III de Sistemas de Telecomunicaciones Departamento de Telemática

CAPITULO 4 JUSTIFICACION DEL ESTUDIO. En este capítulo se presenta la justificación del estudio, supuestos y limitaciones de

Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011

Document Management: La mejor forma de agilizar procesos

Guía para padres sobre Accelerated Math Live

CONCEPTOS DE LA FUERZA

INTRODUCCION. Ing. Camilo Zapata Universidad de Antioquia

Recuperación de información Bases de Datos Documentales Licenciatura en Documentación Curso 2011/2012

Sistemas Operativos Windows 2000

CRM Gestión de Oportunidades Documento de Construcción Bizagi Process Modeler

CAPITULO V. Conclusiones y recomendaciones. Este capítulo tiene como objetivo mostrar las conclusiones más significativas que se

Aplicación de la inteligencia artificial a la resolución del problema de asignación de estudiantes del departamento de PDI

Portafolio de Servicios y Productos

Desarrollo de un cluster computacional para la compilación de. algoritmos en paralelo en el Observatorio Astronómico.

Introducción a las redes de computadores

SISTEMAS DE INFORMACIÓN I TEORÍA

Métodos Heurísticos en Inteligencia Artificial

MARCO METODOLÓGICO CAPITULO III

Arquitectura: Clusters


Base de datos en Excel

Titulo del Elemento. Soluciones Innovadoras para el Éxito de su Negocio

TECNÓLOGO EN INFORMÁTICA PLAN DE ESTUDIOS

revista transparencia transparencia y UNIVERSIDADES

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Guía Metodológica para el diseño de procesos de negocio

El proyecto Innova Cesal tiene como propósito llevar a cabo innovaciones en

Diseño orientado al flujo de datos

Transcripción:

ESTADO DEL ARTE VERSION FINAL 1 Algoritmos de Computación Paralela aplicados al Aprendizaje de Máquina: una revisión del estado del arte Raul E. Torres, Estudiante de la Maestría en Ingeniería de Sistemas y Computación, Universidad Nacional de Colombia Abstract The application of parallel computing to machine learning techniques is a relatively young and wide field of research. We present in this paper a state of the art survey, identifying the associate concepts and related work in the domain, that shows, in contrast to monolithic learners, a significant increase in execution speed of the algorithms and in the capacity to handle big data sets. Finally we conclude that the parallel approach highly improves Machine learning techniques. Index terms distributed learning, machine learning, metalearning, parallel computing Resumen La computación paralela aplicada a las técnicas de aprendizaje de máquina es relativamente un área joven y con un campo amplio, susceptible de investigación. Se presenta en este artículo el estado del arte, identificando los conceptos asociados al tema y los trabajos realizados, que muestran, en comparación con aprendices monolíticos, un aumento significativo en la velocidad de ejecución de los algoritmos y en la capacidad de manejar grandes conjuntos de datos. Se concluye que el enfoque paralelo mejora en gran medida las técnicas de Aprendizaje maquinal. Palabras clave aprendizaje de máquina, aprendizaje distribuido, computación paralela, meta-aprendizaje INDICE I. Introducción.. 1 II. Paralelismo y aprendizaje de máquina.....1 A. Motivación...2 B. Marco Teórico..2 C. El problema del aprendizaje de máquina paralelo..5 III. Aproximación a los trabajos realizados en el área 5 IV. Aplicaciones de computación paralela en aprendizaje... maquinal. 7 A. NCV.7 B. Weka-Parallel...7 C. Hardware autoconfigurable. 7 Este trabajo fue creado como parte del Seminario de Investigación I de la Maestría en Ingeniería de Sistemas y Computación de la Universidad Nacional de Colombia, en diciembre de 2008. Raul Ernesto Torres es Ingeniero de Sistemas de la Universidad de Nariño y actualmente trabaja en el Departamento de Sistemas de Riesgo de Fractura S.A (e-mail: raultorrescarvajal@gmail.com) D. Hadoop. 8 E. Aplicaciones en Grid Computing. 8 V. Presente y futuro.8 VI. Conclusiones 8 Apéndice...9 Referencias.10 S I. INTRODUCCIÓN egún [22], ante la complejidad de los algoritmos de aprendizaje de máquina y la gran cantidad de datos que manejan, se hace necesario aprovechar la propiedades de robustez, tolerancia a fallos, escalabilidad y velocidad de ejecución que ofrece la computación en paralelo, disponible gracias al rápido desarrollo en hardware de los últimos años: altas velocidades de las redes de datos, máquinas con procesadores múltiples y procesadores con múltiples núcleos, para citar algunos ejemplos; para tal efecto se deben identificar las diferentes clasificaciones que se dan en el paralelismo y más específicamente aquellas aproximaciones que se ajustan a las propiedades de concurrencia en los algoritmos de Aprendizaje de Máquina. La figura 1 muestra el mapa conceptual de este estado del arte; en la sección II se desarrollan conceptos como los tipos y clasificaciones del paralelismo, así como también las plataformas de programación más utilizadas y los objetivos de estas estrategias. En la sección III y IV se profundiza en los estudios realizados en cada tipo de aprendizaje y sus aplicaciones. Finalmente en la sección V se proyecta el trabajo futuro que se puede desarrollar en el área y en la VI se emiten las conclusiones obtenidas. Para una mayor comprensión de las relaciones entre los conceptos se incluye en el apéndice un diagrama más detallado del mapa conceptual. II. PARALELISMO Y APRENDIZAJE DE MÁQUINA Antes de abordar los trabajos realizados en este dominio de las ciencias de la computación, es indispensable hacer un recorrido por los conceptos que se han construido a su alrededor, lo que permitirá al lector obtener una mejor comprensión de la necesidad imperante de desarrollar algoritmos de aprendizaje de máquina en paralelo.

ESTADO DEL ARTE VERSION FINAL 2 A. Motivación Se puede afirmar que para poder asegurar una mayor precisión en las predicciones de los algoritmos de aprendizaje es necesario que se escale el conjunto de datos. Por ejemplo, Provost et al. [15] definen las disyunciones pequeñas (small disjuncts) como reglas correspondientes a casos especiales que no es posible encontrar cuando el tamaño de la muestra es pequeña; si se incrementa el tamaño del conjunto de datos se aumenta el tiempo de ejecución del algoritmo, por lo que la computación paralela entra en juego para obtener mayores velocidades en comparación con el modelo secuencial clásico. B. Marco Teórico continuación. Dichos conceptos han sido aplicados independiente o conjuntamente en los estudios que se relacionan en la sección III. Paralelismo según la granularidad Uno de los problemas más comunes que ser debe manejar en computación paralela es el tamaño del conjunto de datos; la granularidad hace referencia al grado de subdivisiones que se hace a este conjunto de datos para que sea procesado por diferentes instancias; puede ser: Fina: Cuando el conjunto de datos se divide en un número grande de subconjuntos. Gruesa: el conjunto de datos se divide en un número pequeño de grupos. El paralelismo en el aprendizaje de máquina se basa en ciertos conceptos teóricos que se describen con brevedad a Fig. 1. Mapa conceptual del estado del arte A mayor granularidad (fina) se obtiene mayor velocidad y balance de carga pero se los procesos de comunicación entre procesadores se aumentan. Al contrario, a menor granularidad (gruesa) se disminuye esa sobre carga en detrimento de la velocidad y el balance en la distribución de los trabajos de procesamiento. También se debe tener en cuenta que al dividir el conjunto de datos se pueden presentar que los subconjuntos sean o no disyuntos, es decir, que un ejemplo se repita o no en varios subconjuntos. Existe un caso de granularidad fina especializada que se utilizó en máquinas de paralelismo masivo como la Connection Machine [15] denominado Parallel Matching, en la que cada elemento del conjunto de datos es asignado a un procesador; en caso de que el número de elementos sea mayor al número de procesadores se utilizan procesadores virtuales, como lo detalla el trabajo realizado por Blelloch en [2]. Paralelismo según el modo de ejecución Este modo de computación paralela tiene que ver con la relación de dependencia entre los nodos de ejecución. Se consideran dos modelos con sus ventajas y desventajas en el estudio realizado por Blesa et al. [3]. Modelo de ejecución independiente (Figura 2): consiste en la ejecución simultánea del mismo algoritmo sobre diferentes partes del conjunto de datos para después seleccionar la mejor de las soluciones. Modelo Maestro/Esclavo (o Maestro/Trabajador en [11]): el maestro controla toda la ejecución y utiliza a los esclavos para realizar determinadas tareas. La solución puede ser alguna función de las respuestas obtenidas por cada nodo dependiente (Figura 4).

ESTADO DEL ARTE VERSION FINAL 3 entre los nodos; esta aproximación minimiza el riesgo de convergencia en óptimos locales. En los algoritmos genéticos de granularidad fina a cada procesador le corresponde una muestra muy pequeña de la población y dichas poblaciones interactúan solamente con sus vecinos. Como es evidente, la evaluación de cada individuo en la generación actual es independiente; aparte de la reducción del tiempo de ejecución, la ventaja de los algoritmos genéticos paralelos sobre los secuenciales reside en su capacidad de manejar poblaciones más grandes y de mantener su diversidad por más tiempo. Fig. 2. Modelo de ejecución independiente. (Tomada de [3]) Paralelismo en Redes Neuronales Rogers et al. identifican en [17] tres tipos de estrategias de paralelización en redes neuronales. Paralelismo de ejemplos: Es aquel que divide el conjunto de datos entre los procesadores (granularidad); no aprovecha el paralelismo implícito en las redes neuronales pero es el que mejor rendimiento ofrece. Paralelismo de bloque: Divide la red en bloques disyuntos de neuronas adyacentes y asigna cada bloque a un procesador. Aprovecha la localidad. Paralelismo Neuronal: Distribuye aleatoriamente las neuronas entre los procesadores. No saca partido de la localidad. Algoritmos Genéticos Paralelos En términos generales, Grefenstette [11] y Thompson et al. [21] establecen los algoritmos genéticos como técnicas de búsqueda adaptativas capaces de imitar la evolución natural sobre poblaciones de soluciones que se evalúan periódicamente y de las cuales se escogen las mejores para combinarse y pasar a las siguientes generaciones (Figura 3). Se espera que al final la población se homogenice en una solución óptima (convergencia). Estos Algoritmos Genéticos constituyen un ejemplo de paralelización inherente a su naturaleza basada en la granularidad en aprendizaje de máquina; los algoritmos genéticos de granularidad gruesa son ideales para el modelo de islas en que cada procesador evoluciona independientemente su población con poca intercomunicación Fig. 3. Modelo de algoritmo genético (Tomada de [11]) Meta-Aprendizaje Consiste en el aprendizaje basado en la información que ofrecen diferentes algoritmos de aprendizaje (Chan et al. [5]). Es una técnica que cohesiona los resultados de múltiples aprendices maquinales; esta multiplicidad permite la paralelización de las ejecuciones de cada uno de los agentes. Los Meta-Clasificadores citados en [26] se aplican al aprendizaje supervisado. Este método combina los resultados de clasificadores entrenados independientemente con el fin de crear un clasificador general para el conjunto de datos de entrenamiento (Figuras 5 y 6). Cabe recordar que en el aprendizaje supervisado se considera que el conjunto de datos tanto de ejemplo como de prueba se encuentran clasificados correctamente. En aprendizaje no supervisado su utilizan los Meta- Categorizadores. En la categorización no existe una correcta clasificación de los datos, por lo que diferentes algoritmos de aprendizaje aplicados al conjunto de datos no van a generar la misma categoría. El meta-aprendizaje presenta algunas limitaciones, detalladas por Thompson et al [20]: la complejidad del clasificador no es transparente para el humano y el árbol jerárquico no aprovechará toda la capacidad de cómputo del sistema.

ESTADO DEL ARTE VERSION FINAL 4 Fig. 4. Modelo de ejecución Maestro/Esclavo. (Tomada de [8]) Agentes Múltiples En contraste, los agentes múltiples son una alternativa al meta-aprendizaje que descentraliza el poder de procesamiento entre varios nodos sin dependencia jerárquica; dichos nodos se consideran entidades activas algunas veces autónomas e inteligentes. Fig. 5. Meta clasificador con regla de arbitraje. (Tomada de [26]) Aprendizaje Reforzado Paralelo Usando múltiples agentes se puede abordar el aprendizaje reforzado de una tarea en particular como lo demuestra Kretchmar [13]. Simultáneamente, como lo muestra la figura 7, cada agente emprende su tarea de aprendizaje sobre el mismo problema que los demás y acelera su ganancia de experiencia a medida que comparte información con otros agentes. Fig. 6. Meta clasificador con combinación. (Tomada de [26])

ESTADO DEL ARTE VERSION FINAL 5 C. El Problema del Aprendizaje de Máquina Paralelo En la siguiente sección se revisan los más relevantes trabajos realizados en el área, cuyo problema es posible generalizar como la necesidad de reducir los tiempos de ejecución de los algoritmos de aprendizaje de máquina, aumentar la precisión de las predicciones y/o incrementar la capacidad de manejar cantidades de información cada vez más grandes, a través de la paralelización de todas o algunas partes del algoritmo y la distribución total, disyunta o no disyunta de la conjunto de datos. El objetivo: crear aprendices maquinales más exitosos que aprendan (valga la redundancia) cada vez más rápido. III. APROXIMACIÓN A LOS TRABAJOS REALIZADOS EN EL ÁREA Fig. 7. Aprendizaje reforzado con agentes parelelos. La experiencia propia (elipse gruesa) y la compartida (elipse delgada) se almacenan en variables diferentes. (Tomada de [13]) Validación Cruzada en Paralelo Es una metodología para medir el éxito de un algoritmo de aprendizaje de máquina, que divide el conjunto de datos en varios segmentos, ejecuta la labor de aprendizaje en paralelo en algunos de ellos y utiliza el resto para evaluar la estrategia [4] [8]. API S de programación más comunes La plataforma sobre la cual se ejecutan las implementaciones es también de vital importancia a la hora de realizar un estudio en este dominio del conocimiento. Muchos de estos estudios en aprendizaje de máquina en paralelo se han desarrollado bajo MPI (Message Passing Interface), como los realizados por Wooley et al. [26] y Sommer et al. [8]. MPI usa un modelo de memoria distribuida y un sistema de comunicación a través de mensajes que se envían las máquinas cuando requieren los datos. Detalles de esta implementación se pueden encontrar en [1], [10] y [12]. Por otro lado encontramos a PVM (Parallel Virtual Machine), que se erige como un entorno de programación cuyo objetivo es la emulación de una sola máquina en paralelo con un conjunto de máquinas de cómputo de diferentes características a través de un red (ver [19]). En este estudio no se encontraron aplicaciones de Aprendizaje de Máquina bajo esta plataforma. Recientemente, MapReduce se ha constituído en una herramienta de software para el abordaje de problemas de computación que implica el manejo de cantidades grandes de información en un entorno paralelo usando clusters de computadores [9], desarrollada por Google. Existe una implementación de software libre basada en Java y soportada por Apache Group denominada Hadoop en la cual es posible implementar algoritmos de aprendizaje de máquina de acuerdo al patrón de procesamiento: aprendizaje de una sola pasada, aprendizaje iterativo y aprendizaje basado en consultas. Tomando prestado el concepto de agentes múltiples de la inteligencia artificial, se han realizado algunas investigaciones acerca de su posible paralelización, debido a la independencia innata de cada agente. Por ejemplo, Megank et al. en [14] proponen un algoritmo que induce el aprendizaje en Modelos Causales de agentes múltiples. Se asume que la información se encuentra distribuida entre varias máquinas y en cada máquina existe un agente con sus propias reglas de aprendizaje locales. El algoritmo se desarrolla entonces en cuatro fases: 1) Aprendizaje local: las reglas se aplican sin considerar el ámbito global 2) Negociación: si es permitido, se computan las reglas entre dos nodos y la perspectiva se acercaría un poco más a la forma global 3) Post-procesamiento: toda regla del ámbito local que no se vea repetida en todos los nodos se elimina. Por ende, el esquema final diferirá en gran medida cada esquema local 4) Direccionamiento: la direccionalidad de las reglas se mantiene. Lastimosamente este estudio carece de datos experimentales. En [22] se aplica una versión paralelizada de algoritmos de agentes múltiples de aprendizaje de máquina al problema de asignación de tareas (JAP). Los experimentos demuestran que este enfoque acelera el encuentro con el óptimo y es más preciso que una búsqueda aleatoria, pero no se puede asegurar si el óptimo encontrado es global o local. Se da pie para más investigaciones al respecto. En otra dirección, aunque la concurrencia es inherente en los algoritmos genéticos, los investigadores se enfrentan a problemas complejos; por un lado Thompson et al. en [21] presentan la estrategia de paralelizar un algoritmo genético de granularidad fina para reconocimiento de rostros y holografía laser; las recombinaciones se hicieron entre individuos del vecindario cercano pues experimentos con recombinación entre toda la población arrojaron resultados muy pobres. A pesar de los esfuerzos, los resultados no son totalmente asertivos, pues las tasas de clasificación en algunos casos no superan el 60% de éxito. Grefenstette [11] utiliza un algoritmo genético paralelo de granularidad gruesa con el modelo de ejecución Maestro/Esclavo para evaluar estrategias o un conjunto de reglas; la experimentación se hizo sobre dos problemas de optimización para robots: El Gato y el Ratón,

ESTADO DEL ARTE VERSION FINAL 6 donde el gato debe mantener a su objetivo (ratón) dentro de su campo de visión sin invadir el campo de visión de su presa; el otro problema es el de la lucha por recursos donde dos robots compiten por ellos con funciones de energía intrínsecas diferentes. A diferencia del estudio de Thompson, este tuvo éxito al obtener una aumento de velocidad de hasta 10 veces con respecto a un algoritmo secuencial. Cambiando de ámbito, en las redes neuronales, en [17] se evalúan los tres tipos de estrategias de paralelización. Para tal efecto, se utiliza una red neuronal en un equipo con 16 procesadores y se evalúan los costos desde la perspectiva del modelo Bulk de paralelismo sincrónico. Las experimentaciones arrojan que el paralelismo de ejemplares minimiza el tiempo por instrucción requerido, debido a que requiere menos intercomunicación entre procesadores; le sigue el paralelismo por bloques y en último lugar aparece el paralelismo neuronal. Anteriormente, Blelloch también había adelantado un trabajo de investigación cuya pretensión original era la de aprovechar el paralelismo fino que ofrecía la Connection Machine [2] y demostrar el incremento de la velocidad de aprendizaje; se implementó un algoritmo que le permitiera a la máquina aprender la pronunciación de palabras en inglés. Los resultados arrojaron que dicho algoritmo en este tipo de hardware superaba en velocidad de aprendizaje hasta en un 40% a la Cray 2, uno de los supercomputadores de aquellos días (1987). Tres años más tarde en otro estudio [6], Cook et al. demuestran en la misma Connection Machine que la paralelización del cálculo de las salidas y el reacomodamiento de los pesos en el algoritmo del Perceptrón, reduce enormemente el tiempo necesario para aprender. Otro de los problema frecuentemente abordado es el del escalamiento del conjunto de datos. En [15] Provost et al. evidencian que la paralelización de los procesos de aprendizaje inductivo es absolutamente necesaria cuando el conjunto de datos debe ser grande (del orden de los 100.000 y más), y aseveran que entre más grande este conjunto, más precisa es la predicción; lógicamente una sola máquina no podría procesar rápidamente estos datos por lo que se propone la paralelización de una parte del algoritmo. Debido a que la división del conjunto de datos entre los procesadores lleva a una disminución en la precisión, se desecha esta aproximación. Si se dividen las reglas, significaría que cada procesador debe cargar todo el conjunto de datos y las limitaciones de memoria en cada equipo bloquearían el proceso. Se opta por paralelizar las funciones de comparación de los datos con el conjunto de datos de entrenamiento, debido a que este es un proceso intuitivamente paralelizable. Se usan dos conjuntos de datos: uno artificial y otro correspondiente a una base de datos del sistema de salud de los Estados unidos. Los resultados arrojan que esta paralelización supera notablemente a la ejecución secuencial. En otro estudio diferente ([16]) se muestra cómo se puede mejorar el rendimiento de un algoritmo de aprendizaje de máquina cuando de divide el conjunto de datos entre varios equipos de cómputo y se establecen reglas de cooperación entre los mismos para generar una predicción global; una de las ventajas reside en que los requerimientos de máquina no son exigentes; otra consiste en la capacidad de poder manejar cantidades grandes de datos que una sola máquina sería incapaz de direccionar. Las pruebas realizadas arrojan una mejora significativa en el tiempo de procesamiento a medida que el conjunto de datos aumenta. Igualmente en [20] los autores realizan experimentaciones con varios repositorios de datos para aprendizaje de máquina tomados de la UCI. Dicha experimentación consiste en dividir el conjunto de datos entre varios procesadores y analizar los resultados. Los resultados muestran que sí existe una disminución en la precisión de la predicción. A pesar de la simplicidad de los algoritmos de aprendizaje reforzado, no se han realizado muchos trabajos al respecto. En [13] Huang et al. definen un modelo matemático simple para mejorar el aprendizaje basado en el refuerzo usando varios agentes paralelos que comparten sus experiencias después de cada intento; una de las dificultades que se presentan es que la combinación de la experiencia puede conllevar a resultados erróneos. Lo solucionan manteniendo separadas las valoraciones de experiencia propias del agente y las de los demás. Para demostrarlo utilizan el problema de los múltiples bandidos armados (n-arm bandit); la experimentación demuestra que un sólo agente aprende menos que varios, pues sólo puede disponer de su propia experiencia (Figura 8). Fig. 8. Resultados del uso de varios agentes paralelos de aprendizaje reforzado en la tarea de los Múltiples Bandidos Armados. El eje X representa el número de intentos y Y representa el porcentaje de acciones óptimas en cada intento (Tomada de [13]) Otro caso de éxito se evidencia en el estudio [24] realizado por Wolpert et al., que propone un algoritmo combinado de aprendizaje reforzado y templado simulado cuyas experimentaciones claramente demuestran cómo este algoritmo supera al de juegos por equipo en la precisión de la predicción. Dichas experimentaciones consisten en la resolución del problema de las constelaciones de satélites en las que cada satélite dispone de una cantidad específica de almacenamiento y un ancho de banda de transmisión de datos a otro satélite; la Tierra actúa como satélite con capacidad de almacenamiento infinita; cada grupo de información enviada

ESTADO DEL ARTE VERSION FINAL 7 tiene un nivel de importancia y el objetivo es minimizar la cantidad de datos importantes que se pierde. Explorando las investigaciones en Meta-aprendizaje en paralelo se encontraron trabajos como el de Chan et al. [5] donde se propone una metodología para abordar el aprendizaje supervisado de manera que sea posible obtener resultados de diferentes estrategias corriendo en varios agentes (Meta-clasificadores); para el procesamiento paralelo utiliza la estrategia "Divide y Vencerás", que fracciona el conjunto de datos entre los nodos. Se crea un árbol de árbitros que son quienes evalúan desde las hojas hasta la raíz el éxito de las estrategias utilizadas en cada nodo; los resultados muestran que se logra una reducción significativa del tiempo de ejecución acompañada de una reducción estadísticamente insignificante de la precisión de las predicciones. También se descubre que la división excesiva del conjunto de datos conlleva a una disminución alarmante de la precisión, debido a que cada aprendiz se queda con menos datos de entrenamiento y su información estadística es menos confiable. Wooley et al. [26] agregan al trabajo de Chan las definiciones de Metacategorizadores para aprendizaje no supervisado, pero centra sus esfuerzos en detallar las características que permiten que MPI sea la plataforma ideal para ejecutar aprendizaje en paralelo en un cluster de computadores pero la carencia de datos experimentales hace de este estudio un acercamiento esencialmente teórico. Como se ha visto, la paralelización en aprendizaje maquinal, aunque estudiada, requiere de mayor cantidad de esfuerzos por parte de la comunidad investigativa para solventar los problemas experimentados en la disminución de la precisión predictiva. IV. APLICACIONES DE COMPUTACIÓN PARALELA EN APRENDIZAJE MAQUINAL Los resultados obtenidos en los estudios anteriores han llevado al desarrollo de varias aplicaciones de software, enfocadas principalmente en la medición del éxito de los algoritmos de aprendizaje. A. NCV (N-Fold Cross Validator) [8] Esta es una librería de programación en C++ perteneciente al Carleton College; se ejecuta sobre un cluster de computadores basado en MPI y permite validar el éxito de los algoritmos de aprendizaje maquinal a través de la validación cruzada repetida en paralelo usando el modelo Maestro-Esclavo; la valoración final la hace el nodo maestro. No requiere que el modelo secuencial del algoritmo se modifique para el paralelismo, lo que hace más fácil el trabajo de programación; son tres las únicas funciones que el programador debe cambiar para que su algoritmo funcione en paralelo: función para el algoritmo de entrenamiento, función para el algoritmo de pruebas y función para destrucción de reglas (liberación de memoria). Las pruebas comparan el rendimiento con varios procesadores y con Weka como aplicación no paralela. Se evidencia una mejora sustancial a medida que se aumentan estaciones paralelas (figura 9); cuando NCV corre en un solo procesador, muestra un rendimiento menor a Weka debido al sobrecosto de usar mensajes MPI en un entorno no paralelo (No hay nada que paralelizar). Fig. 9. Reducción en tiempo de ejecución obtenida con NCV al aumentar el número de nodos esclavos (Tomada de [8]) B. Weka-Parallel [4] Es una modificación hecha también en el Carleton College al software Weka, comúnmente utilizado en Aprendizaje de Máquina para validación cruzada de datos; la diferencia con Weka reside en su capacidad de ejecutar operaciones en paralelo al dividir el conjunto de datos en subconjuntos independientes; se aplican los mismos principios utilizados en NCV, sin embargo, presenta ventajas sobre éste último, debido a que fue desarrollado en Java, lo que permite su ejecución sobre cualquier plataforma y sin la necesidad de disponer de un cluster de computadoras: simplemente se ejecuta una copia del programa sobre las máquinas de la red y se especifica en un archivo de configuración las direcciones de cada equipo. Además, cada nodo corre una misma versión del algoritmo, sin necesidad de implementar las tres funciones nombradas en el literal anterior. Al igual que NCV, los resultados demuestran una reducción significativa en el tiempo de procesamiento de los datos a medida que se adicionan más máquinas al arreglo. C. Hardware Autoconfigurable De manera particular, en [23] los autores encuentran una aplicación práctica del aprendizaje de máquina en la tecnología del hardware autoconfigurable, definido como aquel que puede administrar sus recursos de manera inteligente de acuerdo a las condiciones del entorno. Estos autores hacen experimentaciones en una red de computadores que simula este tipo de hardware; utilizan una aplicación web para realizar el test que mide del número de WIPS (Interacciones Web por segundo). Recolectan un número suficiente de datos para crear un conjunto de ellos que se convierte en el conjunto de entrenamiento; luego ingresan este conjunto en la aplicación Weka analizan sus resultados. El algoritmo Jrip es utilizado para aprender la mejor configuración y el M5D es usado para aprender los beneficios de cambiar de configuración; evidentemente es necesario llevar este trabajo al hardware configurable real.

ESTADO DEL ARTE VERSION FINAL 8 D. Hadoop[9] Estos autores utilizan la implementación Open Source de la estrategia MapReduce de Google: Hadoop, para ejecutar algoritmos de aprendizaje de máquina según su el modo de procesamiento visto en la sección II de este artículo y demostrar que esta arquitectura es adecuada para tal fin. Los resultados se comparan con una implementación genérica y serial del algoritmo. Descubren que en muchos casos la paralelización conlleva un costo adicional debido a la comunicación entre las máquinas pero que va desapareciendo a medida que se aumentan más máquinas al ambiente de procesamiento. E. Aplicaciones en Grid Computing[7] Debido al innegable auge de la "Grid computing", se hace necesario buscar una estrategia que supere el simple uso de palabras claves y ontologías cuando un cliente solicita un servicio a la infraestructura. Estos autores por tanto proponen la aplicación de algoritmos de Aprendizaje de Máquina para mejorar la asignación de los recursos; presentan un modelo teórico usando aprendizaje PAC (Probablemente y Aproximadamente Correcto), que permite reducir el número de ejemplos. Así el cliente evalúa a su proveedor de servicio dependiendo del número consecutivo de veces en que su predicción fue correcta. Si hay una incorrecta, el cliente procede a evaluar otro proveedor. Se complementa esta propuesta con el uso de agentes móviles que se trasladan de máquina a máquina (proveedor por proveedor) y regresando al final al lado del cliente, lo que reduce la congestión del tráfico en la red. V. TRABAJOS FUTUROS Sobre los cimientos construidos por estos trabajos de investigación es posible seguir innovando y proponiendo soluciones. En el ámbito de los Algoritmos Genéticos, Thompson et al. [21] proponen aumentar la capacidad para distinguir entre más de dos clasificadores en el algoritmo genético paralelo de granularidad fina desarrollado; además, plantean la posibilidad de seguir investigando para incorporar a su modelo heurísticas basadas en probabilidad, teoría de la información y teoría clásica de la decisión con el fin de eliminar las fallas de la predicción de su algoritmo genético paralelo. Grefenstatte [11] sugiere que se debe experimentar aumentando el tamaño de la población con el fin de reducir los costos de sincronización entre el nodo maestro y los esclavos, y para aumentar la tasa de aprendizaje. Otra aproximación poco abordada es el desarrollo de algoritmos genéticos paralelos asíncronos, de tal manera que los nodos esclavos no se queden inactivos si los demás no han terminado su tarea de evaluación. Weka-Parallel [4] y NVC [8] tratan este problema de sincronía, pero no sobre algoritmos genéticos sino sobre validación cruzada de datos. Si tal como se afirma en [26], MPI ofrece las características necesarias para la implementación de potentes algoritmos de meta-aprendizaje, se deberían realizar trabajos experimentales que las aprovechen (este estudio solo se limita a proponer una variante de MPI MPI Shell- para aprendizaje de máquina en clusters de computadores). Cybenko et al. [7] plantean un modelo para aplicaciones en Grid Computing pero no se presentan datos experimentales, por lo que sería interesante que se desarrolle un prototipo de arquitectura que haga usos de las ideas planteadas en ese estudio. Un estudio muy reciente realizado por Wolpert et al. [25] predice la posibilidad de mejorar el tiempo de ejecución de las máquinas de soporte vectorial a través de la división del conjunto de datos entre varios procesadores; sin embargo no se presentan datos de experimentación. Sería interesante poder continuar con esta línea de investigación, pues estos algoritmos son caros computacionalmente y requieren de optimización. No podían quedarse por fuera del alcance de estas técnicas los sistemas de información; los CIS (sistemas de información cooperativos) pueden aprovecharlas debido a su carácter dinámico [18]. El aprendizaje de máquina se debe enfocar en los siguientes aspectos: a) Extracción de semánticas b) Coordinación y colaboración c) Abstracción y estructura. Las técnicas que se pueden utilizar son las siguientes: a) Clustering para la clasificación de información b) Aprendizaje pasivo para entrenar nuevos miembros c) Aprendizaje activo para aprender de los nuevos miembros d) Aprendizaje sin supervisión para aprender los flujos de trabajo sin intervenir en ellos e) Aprendizaje supervisado que permita que un miembro le suministre información a uno nuevo para acelerar su integración al sistema f) Aprendizaje reforzado para premiar las acciones que generen mayor optimización. Este tipo de agentes inteligentes minimizan la necesidad comunicación y por ende el ancho de banda se optimiza. VI. CONCLUSIONES Existe una tendencia reciente y a largo plazo hacia el desarrollo de hardware y software para la computación en paralelo; este fenómeno no ha sido ajeno a la comunidad investigativa en aprendizaje de máquina, dada la inherente característica de concurrencia de muchos algoritmos. Sin embargo, la cantidad de trabajos en el tema no ha sido suficiente como para establecer un nuevo paradigma de programación, bien sea por la complejidad que implica la paralelización o por los costos y disponibilidades de un ambiente de computación de alto rendimiento. No obstante, estos estudios han demostrado una reducción notable en los tiempos de ejecución y un incremento muy significativo en la capacidad de manejar grandes cantidades de datos, aunque la precisión de las predicciones no ha experimentado aumento significativo, debido a que esta variable depende más del modelo matemático o estadístico que plantee el investigador que de la capacidad de cómputo del sistema. Esta evidencia debe incentivar a los grupos de investigación a enfocar las implementaciones algorítmicas en un ambiente de computación paralela, de tal manera que se aproveche al máximo este nuevo modelo de diseño de aplicaciones.

ESTADO DEL ARTE VERSION FINAL 9 APENDICE MAPA CONCEPTUAL DEL ESTADO DEL ARTE EN ALGORITMOS DE COMPUTACION PARALELA APLICADOS AL APRENDIZAJE DE MAQUINA

ESTADO DEL ARTE VERSION FINAL 10 REFERENCIAS [1]. Chapman, B. Programming Models For High Performance Computing, University of Houston and University of Southampton, 2004 [2]. Blelloch, G., Network learning on the Connection Machine,In Proceedings of the Tenth International Joint Conference on Artificial Intelligence, 1987, pp. 323--326 [3]. Blesa, M.J., Hernndez, L. & Xhafa, F., Parallel Skeletons for Tabu Search Method, In Proceedings of International Conference on Parallel and Distributed Systems, ICPADS '01, IEEE, 2000 [4]. Celis, S. & Musicant, D.R.,Weka-parallel: machine learning in parallel,carleton College, CS TR, 2002, [5]. Chan, P.K. & Stolfo, S.J.,Toward parallel and distributed learning by meta-learning, In AAAI Workshop in Knowledge Discovery in Databases, 1993, pp. 227 240, [6]. Cook, D.J. & Holder, L.B., Accelerated learning on the connection machine, In Proceedings of the Second International IEEE Conference on Tools for Artificial Intelligence, San Mateo CA, 1990, pp. 448 454 [7]. Cybenko, G., Jiang, G. & Bilar, D., Machine learning applications in grid computing, Proceedings of the annual Allerton Conference on Communication Control and Computing, The University; 1998, 1999, Vol. 37, pp. 348-357 [8]. Davis, B., Sommer, E. & Musicant, D.R., NCV: A Machine Learning Development Environment for Parallel Evaluation, Carleton College Computer Science, 2001 [9]. Gillick, D., Faria, A. & DeNero, J., MapReduce: Distributed Computing for Machine Learning, UC Berkeley's computer science department, 2006 [10]. Graham, R.L., Woodall, T.S. & Squyres, J.M., Open MPI: A Flexible High Performance MPI, In The 6th Annual International Conference on Parallel Processing and Applied Mathematics, 2005 [11]. Grefenstette, J.J., Robot learning with parallel genetic algorithms on networked computers, In Proceedings of the 1995 Summer Computer Simulation Conference (SCSC '95,1995, pp. 352-257 [12]. Huang, C., Lawlor, O. & Kalé, L.V.,Adaptive MPI, In Proceedings of the 16th International Workshop on Languages and Compilers for Parallel Computing, 2003, pp. 306-322 [13]. Kretchmar, R.M., Parallel reinforcement learning, In The 6th World Conference on Systemics, Cybernetics, and Informatics, 2002 [14]. Meganck, S., Maes, S. & M, B., Distributed learning of multiagent causal models, Accepted at the 2005 IEEE/WIC/ACM International Conference on Intelligent Agent Technology (IAT 05), 2005 [15]. Provost, F.J., Aronis, J.M. & Fisher, H., Scaling up inductive learning with massive parallelism, Machine Learning, 1996, pp. 33-46 [16]. Provost, F.J. & Hennessy, D.N., Scaling Up: Distributed Machine Learning with Cooperation, In Proceedings of the Thirteenth National Conference on Artificial Intelligence, AAAI Press, 1996, pp. 74-79 [17]. Rogers, R.O. & Skillicorn, D.B., Strategies for parallelizing supervised and unsupervised learning in arti cial neural networks using the BSP cost model, Department of Computing and Information Science, Queen s University Canadá, 1997 [18]. Singh, M.P. & Huhns, M.N., Challenges for machine learning in cooperative information systems, Distributed artificial intelligence meets machine learning, Lecture Notes in Artificial in Artificial Intelligence,,1997, Vol. 1221, pp. 11--24 [19]. Sunderam, V.S., PVM: A Framework for Parallel Distributed Computing, Concurrency: Practice and Experience, 1990, Vol. 2, pp. 315-339 [20]. Thompson, S. & Bramer, M., Subsetting as an approach to distributed learning., Artificial Intelligence Research Group, Department of Information Science, University of Portsmouth, 1997 [21]. Thompson, S.G., Bramer, M.A. & Kalus, A., Parallel Genetic Algorithms and Machine Learning., Artificial Intelligence Research Group, Department of Information Science, University of Portsmouth, UK, 1996 [22]. Weiß, G., A multiagent perspective of parallel and distributed machine learning, Proceedings of the 2nd International Conference on Autonomous Agents (Agents 98), 1998, pp. 226--230 [23]. Wildstrom, J., Stone, P., Witchel, E., Mooney, R.J. & Dahlin, M., Towards self-configuring hardware for distributed computer systems, In The Second International Conference on Autonomic Computing, 2005, pp. 241--249 [24]. Wolpert, D.H., Sill, J. & Tumer, K., Reinforcement learning in distributed domains: Beyond team games, In Proceedings of the Seventeenth International Joint Conference on Artificial Intelligence, 2001, pp. 819--824 [25]. Woodsend, K. & Gondzio, J., Parallel support vector machine training, School of Mathematics, University of Edinburgh, 2007 [26]. Wooley, B., Mosser-Wooley, D., Skjellum, A. & Bridges, S., Machine Learning Using Clusters of Computers, Proceedings of MPIDC2000 Message Passing Interface and High- Performance Clusters Developer's and User's Conference, March 21-23, 2000, Cornell University, 2000