Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
D. Hadoop 8
Abstract—The application of parallel computing to machine E. Aplicaciones en Grid Computing ................................. 8
learning techniques is a relatively young and wide field of V. Presente y futuro ................................................................. 8
research. We present in this paper a state of the art survey, VI. Conclusiones .................................................................... 8
identifying the associate concepts and related work in the domain, Apéndice ....................................................................................... 9
that shows, in contrast to monolithic learners, a significant
Referencias ................................................................................. 10
increase in execution speed of the algorithms and in the capacity
to handle big data sets. Finally we conclude that the parallel Contexto Problema
approach highly improves Machine learning techniques. I. INTRODUCCIÓN
Según [22] ante la complejidad de los algoritmos de aprendizaje
Index terms—distributed learning, machine learning, meta- y la gran cantidad de datos que manejan, se hace necesario
learning, parallel computing aprovechar la propiedades de robustez, tolerancia a fallos,
escalabilidad y velocidad de ejecución que ofrece la
Resumen—La computación paralela aplicada a las técnicas de computación en paralelo, disponible gracias al rápido desarrollo
aprendizaje de máquina es relativamente un área joven y con un en hardware de los últimos años: altas velocidades de las redes
campo amplio, susceptible de investigación. Se presenta en este de datos, máquinas con procesadores múltiples y procesadores
artículo el estado del arte, identificando los conceptos asociados al con múltiples núcleos, para citar algunos ejemplos; para tal
tema y los trabajos realizados, que muestran, en comparación con efecto se deben identificar las diferentes clasificaciones que se
aprendices monolíticos, un aumento significativo en la velocidad
dan en el paralelismo y más específicamente aquellas
de ejecución de los algoritmos y en la capacidad de manejar
grandes conjuntos de datos. Se concluye que el enfoque paralelo aproximaciones que se ajustan a las propiedades de
mejora en gran medida las técnicas de Aprendizaje maquinal. concurrencia en los algoritmos de Aprendizaje de Máquina. La
figura 1 muestra el mapa conceptual de este estado del arte; en
Palabras clave—aprendizaje de máquina, aprendizaje la sección II se desarrollan conceptos como los tipos y
distribuido, computación paralela, meta-aprendizaje clasificaciones del paralelismo, así como también las
plataformas de programación más utilizadas y los objetivos de
Objetivos
INDICE Nota: Falta la motivación estas estrategias. En la sección III y IV se profundiza en los
estudios realizados en cada tipo de aprendizaje y sus
I. Introducción........................................................................... 1 aplicaciones. Finalmente, en la sección V se proyecta el trabajo
II. Paralelismo y aprendizaje de máquina ................................... 1 futuro que se puede desarrollar en el área y en la VI se emiten
A. Motivación ................................................................... 2 las conclusiones obtenidas. Para una mayor comprensión de las
B. Marco Teórico ............................................................... 2 relaciones entre los conceptos se incluye en el apéndice un
C. El problema del aprendizaje de máquina paralelo ...... 5 diagrama más detallado del mapa conceptual.
Estructura del Paper
III. Aproximación a los trabajos realizados en el área ............. 5
IV. Aplicaciones de computación paralela en aprendizaje…... II. PARALELISMO Y APRENDIZAJE DE MÁQUINA
maquinal ..................................................................... 7
A. NCV 7 Antes de abordar los trabajos realizados en este dominio
B. Weka-Parallel................................................................ 7 de las ciencias de la computación, es indispensable hacer un
C. Hardware autoconfigurable.......................................... 7 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
Este trabajo fue creado como parte del Seminario de Investigación I de la algoritmos de aprendizaje de máquina en paralelo.
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)
ESTADO DEL ARTE VERSION FINAL 2
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
Fig. 7. Aprendizaje reforzado con agentes parelelos. La experiencia Tomando prestado el concepto de agentes múltiples de la
propia (elipse gruesa) y la compartida (elipse delgada) se inteligencia artificial, se han realizado algunas investigaciones
almacenan en variables diferentes. (Tomada de [13]) acerca de su posible paralelización, debido a la independencia
innata de cada agente.
Validación Cruzada en Paralelo Por ejemplo, Megank et al. en [14] proponen un
Es una metodología para medir el éxito de un algoritmo algoritmo que induce el aprendizaje en Modelos Causales de
de aprendizaje de máquina, que divide el conjunto de datos en agentes múltiples. Se asume que la información se encuentra
varios segmentos, ejecuta la labor de aprendizaje en paralelo distribuida entre varias máquinas y en cada máquina existe un
en algunos de ellos y utiliza el resto para evaluar la estrategia agente con sus propias reglas de aprendizaje locales. El
[4] [8]. algoritmo se desarrolla entonces en cuatro fases: 1)
Aprendizaje local: las reglas se aplican sin considerar el
API’S de programación más comunes ámbito global 2) Negociación: si es permitido, se computan las
reglas entre dos nodos y la perspectiva se acercaría un poco
La plataforma sobre la cual se ejecutan las más a la forma global 3) Post-procesamiento: toda regla del
implementaciones es también de vital importancia a la hora de ámbito local que no se vea repetida en todos los nodos se
realizar un estudio en este dominio del conocimiento. Muchos elimina. Por ende, el esquema final diferirá en gran medida
de estos estudios en aprendizaje de máquina en paralelo se han cada esquema local 4) Direccionamiento: la direccionalidad de
desarrollado bajo MPI (Message Passing Interface), como los las reglas se mantiene. Lastimosamente este estudio carece de
realizados por Wooley et al. [26] y Sommer et al. [8]. MPI usa datos experimentales.
un modelo de memoria distribuida y un sistema de comunicación En [22] se aplica una versión paralelizada de algoritmos
a través de mensajes que se envían las máquinas cuando
de agentes múltiples de aprendizaje de máquina al problema
requieren los datos. Detalles de esta implementación se pueden
de asignación de tareas (JAP). Los experimentos demuestran
encontrar en [1], [10] y [12].
que este enfoque acelera el encuentro con el óptimo y es más
Por otro lado encontramos a PVM (Parallel Virtual
preciso que una búsqueda aleatoria, pero no se puede asegurar
Machine), que se erige como un entorno de programación
si el óptimo encontrado es global o local. Se da pie para más
cuyo objetivo es la emulación de una sola máquina en paralelo
investigaciones al respecto.
con un conjunto de máquinas de cómputo de diferentes
En otra dirección, aunque la concurrencia es inherente en
características a través de un red (ver [19]). En este estudio no
los algoritmos genéticos, los investigadores se enfrentan a
se encontraron aplicaciones de Aprendizaje de Máquina bajo
problemas complejos; por un lado Thompson et al. en [21]
esta plataforma.
presentan la estrategia de paralelizar un algoritmo genético de
Recientemente, MapReduce se ha constituído en una
granularidad fina para reconocimiento de rostros y holografía
herramienta de software para el abordaje de problemas de
laser; las recombinaciones se hicieron entre individuos del
computación que implica el manejo de cantidades grandes de
vecindario cercano pues experimentos con recombinación
información en un entorno paralelo usando clusters de
entre toda la población arrojaron resultados muy pobres. A
computadores [9], desarrollada por Google. Existe una
pesar de los esfuerzos, los resultados no son totalmente
implementación de software libre basada en Java y soportada
asertivos, pues las tasas de clasificación en algunos casos no
por Apache Group denominada Hadoop en la cual es posible
superan el 60% de éxito. Grefenstette [11] utiliza un algoritmo
implementar algoritmos de aprendizaje de máquina de acuerdo
genético paralelo de granularidad gruesa con el modelo de
al patrón de procesamiento: aprendizaje de una sola pasada,
ejecución Maestro/Esclavo para evaluar estrategias o un
aprendizaje iterativo y aprendizaje basado en consultas.
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 poder manejar cantidades grandes de datos que una sola
campo de visión sin invadir el campo de visión de su presa; el máquina sería incapaz de direccionar. Las pruebas realizadas
otro problema es el de la lucha por recursos donde dos robots arrojan una mejora significativa en el tiempo de procesamiento
compiten por ellos con funciones de energía intrínsecas a medida que el conjunto de datos aumenta. Igualmente en
diferentes. A diferencia del estudio de Thompson, este tuvo [20] los autores realizan experimentaciones con varios
éxito al obtener una aumento de velocidad de hasta 10 veces repositorios de datos para aprendizaje de máquina tomados de
con respecto a un algoritmo secuencial. la UCI. Dicha experimentación consiste en dividir el conjunto
Cambiando de ámbito, en las redes neuronales, en [17] se de datos entre varios procesadores y analizar los resultados.
evalúan los tres tipos de estrategias de paralelización. Para tal Los resultados muestran que sí existe una disminución en la
efecto, se utiliza una red neuronal en un equipo con 16 precisión de la predicción.
procesadores y se evalúan los costos desde la perspectiva del A pesar de la simplicidad de los algoritmos de
modelo Bulk de paralelismo sincrónico. Las aprendizaje reforzado, no se han realizado muchos trabajos al
experimentaciones arrojan que el paralelismo de ejemplares respecto. En [13] Huang et al. definen un modelo matemático
minimiza el tiempo por instrucción requerido, debido a que simple para mejorar el aprendizaje basado en el refuerzo
requiere menos intercomunicación entre procesadores; le sigue usando varios agentes paralelos que comparten sus
el paralelismo por bloques y en último lugar aparece el experiencias después de cada intento; una de las dificultades
paralelismo neuronal. que se presentan es que la combinación de la experiencia
Anteriormente, Blelloch también había adelantado un puede conllevar a resultados erróneos. Lo solucionan
trabajo de investigación cuya pretensión original era la de manteniendo separadas las valoraciones de experiencia propias
aprovechar el paralelismo fino que ofrecía la Connection del agente y las de los demás. Para demostrarlo utilizan el
Machine [2] y demostrar el incremento de la velocidad de problema de los múltiples bandidos armados (n-arm bandit);
aprendizaje; se implementó un algoritmo que le permitiera a la la experimentación demuestra que un sólo agente aprende
máquina aprender la pronunciación de palabras en inglés. Los menos que varios, pues sólo puede disponer de su propia
resultados arrojaron que dicho algoritmo en este tipo de experiencia (Figura 8).
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 Fig. 8. Resultados del uso de varios agentes paralelos de
cargar todo el conjunto de datos y las limitaciones de memoria aprendizaje reforzado en la tarea de los Múltiples Bandidos
en cada equipo bloquearían el proceso. Se opta por paralelizar Armados. El eje X representa el número de intentos y Y representa el
las funciones de comparación de los datos con el conjunto de porcentaje de acciones óptimas en cada intento (Tomada de [13])
datos de entrenamiento, debido a que este es un proceso
intuitivamente paralelizable. Se usan dos conjuntos de datos: Otro caso de éxito se evidencia en el estudio [24]
uno artificial y otro correspondiente a una base de datos del realizado por Wolpert et al., que propone un algoritmo
sistema de salud de los Estados unidos. Los resultados arrojan combinado de aprendizaje reforzado y templado simulado
que esta paralelización supera notablemente a la ejecución cuyas experimentaciones claramente demuestran cómo este
secuencial. En otro estudio diferente ([16]) se muestra cómo algoritmo supera al de juegos por equipo en la precisión de la
se puede mejorar el rendimiento de un algoritmo de predicción. Dichas experimentaciones consisten en la
aprendizaje de máquina cuando de divide el conjunto de datos resolución del problema de las constelaciones de satélites en
entre varios equipos de cómputo y se establecen reglas de las que cada satélite dispone de una cantidad específica de
cooperación entre los mismos para generar una predicción almacenamiento y un ancho de banda de transmisión de datos
global; una de las ventajas reside en que los requerimientos de a otro satélite; la Tierra actúa como satélite con capacidad de
máquina no son exigentes; otra consiste en la 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 cuando NCV corre en un solo procesador, muestra un
cantidad de datos importantes que se pierde. rendimiento menor a Weka debido al sobrecosto de usar
Explorando las investigaciones en Meta-aprendizaje en mensajes MPI en un entorno no paralelo (No hay nada que
paralelo se encontraron trabajos como el de Chan et al. [5] paralelizar).
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. Fig. 9. Reducción en tiempo de ejecución obtenida con NCV al
aumentar el número de nodos esclavos (Tomada de [8])
[26] agregan al trabajo de Chan las definiciones de Meta-
categorizadores para aprendizaje no supervisado, pero centra
sus esfuerzos en detallar las características que permiten que B. Weka-Parallel [4]
MPI sea la plataforma ideal para ejecutar aprendizaje en Es una modificación hecha también en el Carleton
paralelo en un cluster de computadores pero la carencia de College al software Weka, comúnmente utilizado en
datos experimentales hace de este estudio un acercamiento Aprendizaje de Máquina para validación cruzada de datos; la
esencialmente teórico. diferencia con Weka reside en su capacidad de ejecutar
Como se ha visto, la paralelización en aprendizaje operaciones en paralelo al dividir el conjunto de datos en
maquinal, aunque estudiada, requiere de mayor cantidad de subconjuntos independientes; se aplican los mismos principios
esfuerzos por parte de la comunidad investigativa para utilizados en NCV, sin embargo, presenta ventajas sobre éste
solventar los problemas experimentados en la disminución de último, debido a que fue desarrollado en Java, lo que permite
la precisión predictiva. su ejecución sobre cualquier plataforma y sin la necesidad de
disponer de un cluster de computadoras: simplemente se
IV. APLICACIONES DE COMPUTACIÓN PARALELA ejecuta una copia del programa sobre las máquinas de la red y
EN APRENDIZAJE MAQUINAL se especifica en un archivo de configuración las direcciones de
cada equipo. Además, cada nodo corre una misma versión del
Los resultados obtenidos en los estudios anteriores han algoritmo, sin necesidad de implementar las tres funciones
llevado al desarrollo de varias aplicaciones de software, nombradas en el literal anterior.
enfocadas principalmente en la medición del éxito de los Al igual que NCV, los resultados demuestran una
algoritmos de aprendizaje. reducción significativa en el tiempo de procesamiento de los
datos a medida que se adicionan más máquinas al arreglo.
A. NCV (N-Fold Cross Validator) [8] C. Hardware Autoconfigurable
Esta es una librería de programación en C++ De manera particular, en [23] los autores encuentran una
perteneciente al Carleton College; se ejecuta sobre un cluster aplicación práctica del aprendizaje de máquina en la
de computadores basado en MPI y permite validar el éxito de tecnología del hardware autoconfigurable, definido como
los algoritmos de aprendizaje maquinal a través de la aquel que puede administrar sus recursos de manera inteligente
validación cruzada repetida en paralelo usando el modelo de acuerdo a las condiciones del entorno. Estos autores hacen
Maestro-Esclavo; la valoración final la hace el nodo maestro. experimentaciones en una red de computadores que simula
No requiere que el modelo secuencial del algoritmo se este tipo de hardware; utilizan una aplicación web para realizar
modifique para el paralelismo, lo que hace más fácil el trabajo el test que mide del número de WIPS (Interacciones Web por
de programación; son tres las únicas funciones que el segundo). Recolectan un número suficiente de datos para crear
programador debe cambiar para que su algoritmo funcione en un conjunto de ellos que se convierte en el conjunto de
paralelo: función para el algoritmo de entrenamiento, función entrenamiento; luego ingresan este conjunto en la aplicación
para el algoritmo de pruebas y función para destrucción de Weka analizan sus resultados. El algoritmo Jrip es utilizado
reglas (liberación de memoria). Las pruebas comparan el para aprender la mejor configuración y el M5D es usado para
rendimiento con varios procesadores y con Weka como aprender los beneficios de cambiar de configuración;
aplicación no paralela. Se evidencia una mejora sustancial a evidentemente es necesario llevar este trabajo al hardware
medida que se aumentan estaciones paralelas (figura 9); configurable real.
ESTADO DEL ARTE VERSION FINAL 8
V. TRABAJOS FUTUROS
VI. CONCLUSIONES
Sobre los cimientos construidos por estos trabajos de
investigación es posible seguir innovando y proponiendo Existe una tendencia reciente y a largo plazo hacia el
soluciones. En el ámbito de los Algoritmos Genéticos, desarrollo de hardware y software para la computación en
Thompson et al. [21] proponen aumentar la capacidad para paralelo; este fenómeno no ha sido ajeno a la comunidad
distinguir entre más de dos clasificadores en el algoritmo investigativa en aprendizaje de máquina, dada la inherente
genético paralelo de granularidad fina desarrollado; además, característica de concurrencia de muchos algoritmos. Sin
plantean la posibilidad de seguir investigando para incorporar embargo, la cantidad de trabajos en el tema no ha sido
a su modelo heurísticas basadas en probabilidad, teoría de la suficiente como para establecer un nuevo paradigma de
información y teoría clásica de la decisión con el fin de programación, bien sea por la complejidad que implica la
eliminar las fallas de la predicción de su algoritmo genético paralelización o por los costos y disponibilidades de un
paralelo. Grefenstatte [11] sugiere que se debe experimentar ambiente de computación de alto rendimiento. No obstante,
aumentando el tamaño de la población con el fin de reducir los estos estudios han demostrado una reducción notable en los
costos de sincronización entre el nodo maestro y los esclavos, tiempos de ejecución y un incremento muy significativo en la
y para aumentar la tasa de aprendizaje. Otra aproximación
capacidad de manejar grandes cantidades de datos, aunque la
poco abordada es el desarrollo de algoritmos genéticos
precisión de las predicciones no ha experimentado aumento
paralelos asíncronos, de tal manera que los nodos esclavos no
significativo, debido a que esta variable depende más del
se queden inactivos si los demás no han terminado su tarea de
modelo matemático o estadístico que plantee el investigador
evaluación. Weka-Parallel [4] y NVC [8] tratan este problema
de sincronía, pero no sobre algoritmos genéticos sino sobre que de la capacidad de cómputo del sistema. Esta evidencia
validación cruzada de datos. debe incentivar a los grupos de investigación a enfocar las
Si tal como se afirma en [26], MPI ofrece las implementaciones algorítmicas en un ambiente de
características necesarias para la implementación de potentes computación paralela, de tal manera que se aproveche al
algoritmos de meta-aprendizaje, se deberían realizar trabajos máximo este nuevo modelo de diseño de aplicaciones.
ESTADO DEL ARTE VERSION FINAL 9