Implementación de un algoritmo de aprendizaje semi-supervisado sobre Spark. - Victorio, Franco
Las últimas décadas han presenciado un aumento significativo en la cantidad de datos disponibles, generando nuevas oportunidades en múltiples áreas. En el aprendizaje de máquina, por ejemplo, esta disponibilidad ha permitido el entrenamiento de modelos más sofisticados. Sin embargo, muchos de éstos necesitan que los datos con los que son entrenados estén previamente etiquetados, lo cual puede ser muy costoso. Como alternativa, existen técnicas que sólo requieren tener etiquetados un bajo porcentaje de los datos. El área del aprendizaje de máquina que trabaja con este tipo de modelos se denomina aprendizaje semi-supervisado. Esta mayor cantidad de datos también implica la necesidad de más poder de procesamiento. Aunque la capacidad del hardware también ha aumentado, no lo ha hecho a la misma velocidad que la cantidad de datos disponibles. Es por esto que ha sido necesario desarrollar modelos de computación alternativos que compensen esta diferencia. Uno de estos modelos es el de la computación distribuida, en el que múltiples máquinas se utilizan al mismo tiempo para una tarea dada. Este paradigma presenta sus propios desafíos, por lo que han desarrollado librerías que facilitan la tarea del implementados, una de las cuales es Apache Spark. En este trabajo se presenta una implementación sobre Apache Park de Transductor Recursivo de Grafos, un algoritmo de aprendizaje semi-supervisado. Existe una implementación en R de este algoritmo, pero ésta sólo puede ser utilizada con datos que entren en la memoria de la máquina en donde se ejecuta. La versión realizada en este trabajo no cuenta con esta limitación y produce resultados similares. Si bien existen algoritmos de aprendizaje de máquina implementados sobre Spark, la mayoría no pertenece al área del aprendizaje semi-supervisado; el único que pudo encontrase con estas características produce resultados significativamente inferiores.