SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
UNIVERSIDAD EUROPEA DE MADRID
ESCUELA DE ARQUITECTURA, INGENIERÍA Y DISEÑO
Alumno: BUEKÁ-PASTOR TORAO GARCIA
Director: D. FERNANDO APARICIO
Universidad Europea de Madrid
INTEGRATION OF ETL, HADOOP AND
SPARK TO RUN A CONVOLUTIONAL
NEURAL NETWORK
CURSO ACADÉMICO 2015-2016
GRADO EN INGENIERÍA INFORMÁTICA
PROYECTO FIN DE GRADO
26 de Julio de 2016
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Planteamiento del problema y objetivos
Entorno de desarrollo
Componentes software
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Planteamiento del problema
La pregunta que se pretende responder es:
¿Cómo entrenar una red neuronal convolucional para el reconocimiento de dígitos
manuscritos almacenados en Hadoop?
Objetivos
Procesar la
colección MNIST
Cargar los datos
en Hadoop
Integrar la Red
Neuronal en la
ETL
Proporcionar una
infraestructura
ETL para entrenar
el algoritmo de la
Red Neural
Convolucional
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Java JDK 8
Oracle
VirtualBox
Eclipse
+
Maven
GitHub
Librerías:
Log4j
Entorno de desarrollo
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
ETL
Colección
MNIST
Red Neuronal
Convolucional
Spark
Hadoop
Pentaho
Componentes
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Arquitectura
Flujo de información
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Arquitectura
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Oracle VirtualBox 5.0
Ubuntu 14.04
ETL MNIST
log4j
Configuración
Bootstrap
ETL MNIST
Web
Procesar colección MNIST y
generar Vectores de imágenes
Pentaho
kettle
Cargar los datos
en Hadoop
File System Hadoop
Spark
log4j
Configuración
Convolucional Neural Network library
ETL NNClassificacionMNIST
Entrenar el algoritmo CNN
Jetty
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Flujo de información
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Descripción funcional
de los componentes
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Colección MNIST
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
60.000
imágenes para
entrenamiento
10.000
imágenes para
test
Ficheros en
binario
Formato 28x28
(786 pixeles)
Descripción funcional de los componentes
Colección de dígitos manuscritos
Representaciones de los dígitos
Formato en vector de las imágenes
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Descripción funcional de los componentes: ETL MNIST
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Oracle VirtualBox 5.0
Ubuntu 14.04
ETL MNIST
log4j
Configuración
Bootstrap
ETL MNIST
Web
Procesar colección MNIST y
generar Vectores de imágenes
Pentaho
kettle
Cargar los datos
en Hadoop
Hadoop
Spark
log4j
Configuración
Convolucional Neural Network library
ETL NNClassificacionMNIST
Entrenar el algoritmo CNN
Jetty
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
ETL MNIST
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Integra la
librería
canova.jar
Descarga y
procesa la
colección
Genera
vectores de
imágenes
Fichero de
parámetros
Se ejecuta
con script
.bat/.sh
Descripción funcional de los componentes
Fichero configuración.properties
Script de ejecución
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Descripción funcional de los componentes: ETL MNIST Web
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Oracle VirtualBox 5.0
Ubuntu 14.04
ETL MNIST
log4j
Configuración
Bootstrap
ETL MNIST
Web
Procesar colección MNIST y
generar Vectores de imágenes
Pentaho
kettle
Cargar los datos
en Hadoop
Hadoop
Spark
log4j
Configuración
Convolucional Neural Network library
ETL NNClassificacionMNIST
Entrenar el algoritmo CNN
Jetty
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
ETL MNIST Web
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Publica en
Web la ETL
Gestiona los
parámetros
vía web
Se basa en
Jetty
FrontEnd
desarrollado
en Bootstrap
Descripción funcional de los componentes
Aplicación Web
Versiones
Español / Inglés
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Descripción funcional de los componentes: Pentaho.kettle
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Oracle VirtualBox 5.0
Ubuntu 14.04
ETL MNIST
log4j
Configuración
BootStrap
ETL MNIST
Web
Procesar colección MNIST y
generar Vectores de imágenes
Pentaho
kettle
Cargar los datos
en Hadoop
Hadoop
Spark
log4j
Configuración
Convolucional Neural Network library
ETL NNClassificacionMNIST
Entrenar el algoritmo CNN
Jetty
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Pentaho.kettle
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
ETL para
integración con
Hadoop
Automatiza la carga
de datos
Generamos: Job
addDataToHadoop
Instalado sobre el
nodo Ubuntu 14.4
Descripción Funcional de los componentes
Pentaho.kettle – data integration
Job para la carga de datos en Hadoop
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Descripción funcional de los componentes: Single Node Hadoop
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Oracle VirtualBox 5.0
Ubuntu 14.04
ETL MNIST
log4j
Configuración
BootStrap
ETL MNIST
Web
Procesar colección MNIST y
generar Vectores de imágenes
Pentaho
kettle
Cargar los datos
en Hadoop
Hadoop
Spark
log4j
Configuración
Convolucional Neural Network library
ETL NNClassificacionMNIST
Entrenar el algoritmo CNN
Jetty
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Single Node Hadoop
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Instalado
single node
standalone
Configuración
estándar
Ejecución de
un ejemplo de
WordCount
para test
Instalado
sobre el nodo
Ubuntu 14.4
Descripción funcional de los componentes
Ficheros de configuración de Hadoop:
Resumen de Hadoop (running)
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Descripción funcional de los componentes: Apache Spark
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Oracle VirtualBox 5.0
Ubuntu 14.04
ETL MNIST
log4j
Configuración
BootStrap
ETL MNIST
Web
Procesar colección MNIST y
generar Vectores de imágenes
Pentaho
kettle
Cargar los datos
en Hadoop
Hadoop
Spark
log4j
Configuración
Convolucional Neural Network library
ETL NNClassificacionMNIST
Entrenar el algoritmo CNN
Jetty
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Apache Spark
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Se descarga
compilación
para Hadoop
2.3
Instalación y
Configuración
estándar
Ejecución
usando:
spark-submit
Instalado
sobre el nodo
Ubuntu 14.4
Descripción funcional de los componentes
Configuración: spark-defaults.conf
-Se añade más memoria para la ejecución
Instalación de Spark
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Descripción funcional de los componentes: NeuronalNetwork
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Oracle VirtualBox 5.0
Ubuntu 14.04
ETL MNIST
log4j
Configuración
BootStrap
ETL MNIST
Web
Procesar colección MNIST y
generar Vectores de imágenes
Pentaho
kettle
Cargar los datos
en Hadoop
Hadoop
Spark
log4j
Configuración
Convolucional Neural Network library
ETL NNClassificacionMNIST
Entrenar el algoritmo CNN
Jetty
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Librería NeuralNetwork - Red Neuronal Convolucional (CNN)
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Librería en
GitHub
Integrada en la
ETL
Analizada para
adecuarla a
nuestro
desarrollo
Objeto Matrix
Descripción funcional de los componentes
Librería Neural Network
Clase Matrix gestiona la matriz de datos
(vector de imágenes)
Clase NNClassificationExample lanza la
ejecución para entrenar la red neuronal
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Descripción funcional de los componentes: ETL NNClassificationMNIST
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Oracle VirtualBox 5.0
Ubuntu 14.04
ETL MNIST
log4j
Configuración
BootStrap
ETL MNIST
Web
Procesar colección MNIST y
generar Vectores de imágenes
Pentaho
kettle
Cargar los datos
en Hadoop
Hadoop
Spark
log4j
Configuración
Convolucional Neural Network library
ETL NNClassificacionMNIST
Entrenar el algoritmo CNN
Jetty
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
ETL NNClassificationMNIST
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Entrena la Red
Neuronal
Integrada la
librería
NeuralNetwork
Integra las
librerías de
Hadoop y
Spark
Gestiona los
parámetros
por fichero
Descripción funcional de los componentes
bptg.uem.pfg.wclassifiers.NNClassificationMNIST
Basada en la
ejecución de
NeuralNetwork
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Ejecución
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
ETL NNClassificationMNIST
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Se levantan
los servicios
Se generan
los vectores
de imágenes
Se cargan en
Hadoop
Se configura
el fichero de
parámetros
Se ejecuta
spark-submit
Previa carga
del classpath
Ejecución
Script de ejecución: NNClassifierMNIST_Spark.sh Fichero de configuración
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
ETL NNClassificationMNIST
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Ejecución
Listado de
ficheros cargados
en Hadoop
Log de ejecución:
spark-submit desde
NNClassifierMNIST_Spark.sh
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
ETL NNClassificationMNIST
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Ejecución: resultados
Ejecución la ETL
con Spark leyendo
desde Hadoop
para un vector de
10.000 imágenes
Ejecución de la ETL leyendo
desde disco (no Spark) para
un vector de 10.000
imágenes
Se observan resultados muy dispares, línea
de trabajo futura:
trabajar en la parametrización de la CNN
Requisitos de memoria y tiempo altos
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Conclusiones
Líneas de trabajo futuras
Sostenibilidad del software
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Conclusiones y líneas futuras de trabajo
Primera
conclusión
•Arquitectura
hardware
Segunda
conclusión
•Optimización
de los
parámetros
de la CNN
Integration	of	ETL,	Hadoop	and	Spark	to	run	a	CNN	
Bueká-Pastor	Torao	García		 	
	
	
2.2 Competiciones de MNIST en Kaggle
	
Actualmente	hay	una	competición	activa	sobre	MNIST,	que	finaliza	en	5	meses:	
	
Ilustración	3	-	MNIST	Kaggle	competition	
Enlace:	https://www.kaggle.com/c/digit-recognizer	
	
2.3 Panel de la competición de MNIST en Kaggle
	
Conclusiones
Líneas futuras de trabajo
1. Participar en la competición de Kaggle
Integration	of	ETL,	Hadoop	and	Spark	to	run	a	CNN	
Bueká-Pastor	Torao	García		 	
	
	
2.2 Competiciones de MNIST en Kaggle
	
Actualmente	hay	una	competición	activa	sobre	MNIST,	que	f
Ilustración	3	-	MNIST	Kaggle	competition	
Enlace:	https://www.kaggle.com/c/digit-recognizer	
	
2.3 Panel de la competición de MNIST en Kagg
	
2. WebServices de reconocimiento de
dígitos con almacenamiento en Hadoop y
entrenamientos periódicos de mejora
GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado
Integration of ETL, Hadoop and Spark to run a
Convolutional Neural Network
Sostenibilidad de la implementación del Software
115	
	
fundamental	 en	 el	 desarrollo.	 Lógicamente	 los	 esfuerzos	 se	 centran	 en	 el	 punto
infraestructura,	centros	de	datos,	y	demás	sistemas	que	consumen	energía.		
Sin	embargo,	además	de	la	sostenibilidad	ambiental	hay	un	ámbito	más	complejo	qu
ser	 abordado	 desde	 esta	 perspectiva.	 Podemos	 considerar,	 basándonos	 en	 l
sostenibilidad,	tres	pilares	importantes:	el	Social,	el	Económico	y	el	Ecológico.	
	
Ilustración	108	-	Pilares	básicos	de	la	sostenibilidad	(Declaración	de	Río,	1.992)	
Integration	of	ETL,	Hadoop	and	Spark	to	run	a	CNN	
Bueká-Pastor	Torao	García		 	
	
Fuente:	http://www.redalyc.org/articulo.oa?id=92212873005	
Con	 esta	 representación	 se	 sientan	 las	 bases	 de	 los	 niveles	 d
encontrar	en	una	organización	desde	el	punto	de	vista	de	sus	pr
software,	calidad,	etc.	Analicemos	ahora	este	proyecto	desde	estos
	
9.4.1 Económica	
Respecto	a	la	sostenibilidad	económica	hay	que	destacar	que	el	pr
integridad	con	software	libre.	Librerías	como	Apache	Hadoop,	Apa
en	el	desarrollo	de	las	ETLs	comparten	el	ser	open	software	y	por	ta
proyecto	tiende	a	cero.		
En	cuanto	a	la	compartición	de	recursos	hardware,	ya	que	se	ha	de
permite	la	compartición	de	recursos	y	por	tanto	el	ahorro	en	coste	
Hay	 que	 destacar	 que	 estaríamos	 trabajando	 con	 sistemas	 de	 b
Pilares básicos de la sostenibilidad
Económica
•Software libre
•Plataforma virtual
Optimización de procesos
•mejora de procesos aplicando
tecnologías de redes neuronales
Social
•Green computing
Sostenibilidad como factor
fundamental del desarrollo:
ámbitos de aplicación
Definición del software
respecto a la sostenibilidad
Integration of ETL, Hadoop and Spark
to run a Convolutional Neural Network
Bueká P. Torao García
Muchas gracias
Universidad Europea de Madrid
to my parents for their support…
Proyecto Fin de Grado

Más contenido relacionado

Similar a Integration of ETL, Hadoop and Spark for CNN

Comparativa herramientas etl
Comparativa herramientas etlComparativa herramientas etl
Comparativa herramientas etljuan barco
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracletriana25
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracletriana25
 
Drupal8 : novedades y nuevas funcionalidades
Drupal8 : novedades y nuevas funcionalidadesDrupal8 : novedades y nuevas funcionalidades
Drupal8 : novedades y nuevas funcionalidadesAlberto Permuy Leal
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracletriana25
 
Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Alex Espinoza
 
Herramientas de visualización de datos
Herramientas de visualización de datosHerramientas de visualización de datos
Herramientas de visualización de datosBBVA API Market
 
Herramientas BigData.pptx
Herramientas BigData.pptxHerramientas BigData.pptx
Herramientas BigData.pptxMauricio Bedoya
 
Introduccion a-linq..www.freelibros.com
Introduccion a-linq..www.freelibros.comIntroduccion a-linq..www.freelibros.com
Introduccion a-linq..www.freelibros.comSimon Camacho
 
Comparativa herramientas ETL
Comparativa herramientas ETLComparativa herramientas ETL
Comparativa herramientas ETLJorge Bustillos
 
Ejemplo Linq To SQL
Ejemplo Linq To SQLEjemplo Linq To SQL
Ejemplo Linq To SQLjcfarit
 
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptxGabriela Soto
 
Resumen capitulo5
Resumen capitulo5Resumen capitulo5
Resumen capitulo5gavagarcia
 

Similar a Integration of ETL, Hadoop and Spark for CNN (20)

Comparativa herramientas etl
Comparativa herramientas etlComparativa herramientas etl
Comparativa herramientas etl
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracle
 
ORACLE
ORACLEORACLE
ORACLE
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracle
 
Drupal8 : novedades y nuevas funcionalidades
Drupal8 : novedades y nuevas funcionalidadesDrupal8 : novedades y nuevas funcionalidades
Drupal8 : novedades y nuevas funcionalidades
 
Motor De Bases De Datos Oracle
Motor De Bases De Datos OracleMotor De Bases De Datos Oracle
Motor De Bases De Datos Oracle
 
Spark meetup barcelona
Spark meetup barcelonaSpark meetup barcelona
Spark meetup barcelona
 
Propuesta devops pasesv1
Propuesta devops pasesv1Propuesta devops pasesv1
Propuesta devops pasesv1
 
Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.Registro en una página web para la renta de vehículos hecho en java.
Registro en una página web para la renta de vehículos hecho en java.
 
Herramientas de visualización de datos
Herramientas de visualización de datosHerramientas de visualización de datos
Herramientas de visualización de datos
 
Herramientas BigData.pptx
Herramientas BigData.pptxHerramientas BigData.pptx
Herramientas BigData.pptx
 
Introduccion a-linq..www.freelibros.com
Introduccion a-linq..www.freelibros.comIntroduccion a-linq..www.freelibros.com
Introduccion a-linq..www.freelibros.com
 
Comparativa herramientas ETL
Comparativa herramientas ETLComparativa herramientas ETL
Comparativa herramientas ETL
 
Ejemplo Linq To SQL
Ejemplo Linq To SQLEjemplo Linq To SQL
Ejemplo Linq To SQL
 
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
 
Superordenador
SuperordenadorSuperordenador
Superordenador
 
Superordenador
SuperordenadorSuperordenador
Superordenador
 
Java
JavaJava
Java
 
Resumen capitulo5
Resumen capitulo5Resumen capitulo5
Resumen capitulo5
 
Turbogears
TurbogearsTurbogears
Turbogears
 

Integration of ETL, Hadoop and Spark for CNN

  • 1. UNIVERSIDAD EUROPEA DE MADRID ESCUELA DE ARQUITECTURA, INGENIERÍA Y DISEÑO Alumno: BUEKÁ-PASTOR TORAO GARCIA Director: D. FERNANDO APARICIO Universidad Europea de Madrid INTEGRATION OF ETL, HADOOP AND SPARK TO RUN A CONVOLUTIONAL NEURAL NETWORK CURSO ACADÉMICO 2015-2016 GRADO EN INGENIERÍA INFORMÁTICA PROYECTO FIN DE GRADO 26 de Julio de 2016
  • 2. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Planteamiento del problema y objetivos Entorno de desarrollo Componentes software Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network
  • 3. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Planteamiento del problema La pregunta que se pretende responder es: ¿Cómo entrenar una red neuronal convolucional para el reconocimiento de dígitos manuscritos almacenados en Hadoop? Objetivos Procesar la colección MNIST Cargar los datos en Hadoop Integrar la Red Neuronal en la ETL Proporcionar una infraestructura ETL para entrenar el algoritmo de la Red Neural Convolucional
  • 4. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Java JDK 8 Oracle VirtualBox Eclipse + Maven GitHub Librerías: Log4j Entorno de desarrollo Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network
  • 5. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado ETL Colección MNIST Red Neuronal Convolucional Spark Hadoop Pentaho Componentes Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network
  • 6. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Arquitectura Flujo de información Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network
  • 7. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Arquitectura Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Oracle VirtualBox 5.0 Ubuntu 14.04 ETL MNIST log4j Configuración Bootstrap ETL MNIST Web Procesar colección MNIST y generar Vectores de imágenes Pentaho kettle Cargar los datos en Hadoop File System Hadoop Spark log4j Configuración Convolucional Neural Network library ETL NNClassificacionMNIST Entrenar el algoritmo CNN Jetty
  • 8. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Flujo de información Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network
  • 9. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Descripción funcional de los componentes Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network
  • 10. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Colección MNIST Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network 60.000 imágenes para entrenamiento 10.000 imágenes para test Ficheros en binario Formato 28x28 (786 pixeles) Descripción funcional de los componentes Colección de dígitos manuscritos Representaciones de los dígitos Formato en vector de las imágenes
  • 11. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Descripción funcional de los componentes: ETL MNIST Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Oracle VirtualBox 5.0 Ubuntu 14.04 ETL MNIST log4j Configuración Bootstrap ETL MNIST Web Procesar colección MNIST y generar Vectores de imágenes Pentaho kettle Cargar los datos en Hadoop Hadoop Spark log4j Configuración Convolucional Neural Network library ETL NNClassificacionMNIST Entrenar el algoritmo CNN Jetty
  • 12. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado ETL MNIST Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Integra la librería canova.jar Descarga y procesa la colección Genera vectores de imágenes Fichero de parámetros Se ejecuta con script .bat/.sh Descripción funcional de los componentes Fichero configuración.properties Script de ejecución
  • 13. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Descripción funcional de los componentes: ETL MNIST Web Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Oracle VirtualBox 5.0 Ubuntu 14.04 ETL MNIST log4j Configuración Bootstrap ETL MNIST Web Procesar colección MNIST y generar Vectores de imágenes Pentaho kettle Cargar los datos en Hadoop Hadoop Spark log4j Configuración Convolucional Neural Network library ETL NNClassificacionMNIST Entrenar el algoritmo CNN Jetty
  • 14. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado ETL MNIST Web Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Publica en Web la ETL Gestiona los parámetros vía web Se basa en Jetty FrontEnd desarrollado en Bootstrap Descripción funcional de los componentes Aplicación Web Versiones Español / Inglés
  • 15. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Descripción funcional de los componentes: Pentaho.kettle Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Oracle VirtualBox 5.0 Ubuntu 14.04 ETL MNIST log4j Configuración BootStrap ETL MNIST Web Procesar colección MNIST y generar Vectores de imágenes Pentaho kettle Cargar los datos en Hadoop Hadoop Spark log4j Configuración Convolucional Neural Network library ETL NNClassificacionMNIST Entrenar el algoritmo CNN Jetty
  • 16. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Pentaho.kettle Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network ETL para integración con Hadoop Automatiza la carga de datos Generamos: Job addDataToHadoop Instalado sobre el nodo Ubuntu 14.4 Descripción Funcional de los componentes Pentaho.kettle – data integration Job para la carga de datos en Hadoop
  • 17. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Descripción funcional de los componentes: Single Node Hadoop Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Oracle VirtualBox 5.0 Ubuntu 14.04 ETL MNIST log4j Configuración BootStrap ETL MNIST Web Procesar colección MNIST y generar Vectores de imágenes Pentaho kettle Cargar los datos en Hadoop Hadoop Spark log4j Configuración Convolucional Neural Network library ETL NNClassificacionMNIST Entrenar el algoritmo CNN Jetty
  • 18. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Single Node Hadoop Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Instalado single node standalone Configuración estándar Ejecución de un ejemplo de WordCount para test Instalado sobre el nodo Ubuntu 14.4 Descripción funcional de los componentes Ficheros de configuración de Hadoop: Resumen de Hadoop (running)
  • 19. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Descripción funcional de los componentes: Apache Spark Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Oracle VirtualBox 5.0 Ubuntu 14.04 ETL MNIST log4j Configuración BootStrap ETL MNIST Web Procesar colección MNIST y generar Vectores de imágenes Pentaho kettle Cargar los datos en Hadoop Hadoop Spark log4j Configuración Convolucional Neural Network library ETL NNClassificacionMNIST Entrenar el algoritmo CNN Jetty
  • 20. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Apache Spark Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Se descarga compilación para Hadoop 2.3 Instalación y Configuración estándar Ejecución usando: spark-submit Instalado sobre el nodo Ubuntu 14.4 Descripción funcional de los componentes Configuración: spark-defaults.conf -Se añade más memoria para la ejecución Instalación de Spark
  • 21. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Descripción funcional de los componentes: NeuronalNetwork Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Oracle VirtualBox 5.0 Ubuntu 14.04 ETL MNIST log4j Configuración BootStrap ETL MNIST Web Procesar colección MNIST y generar Vectores de imágenes Pentaho kettle Cargar los datos en Hadoop Hadoop Spark log4j Configuración Convolucional Neural Network library ETL NNClassificacionMNIST Entrenar el algoritmo CNN Jetty
  • 22. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Librería NeuralNetwork - Red Neuronal Convolucional (CNN) Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Librería en GitHub Integrada en la ETL Analizada para adecuarla a nuestro desarrollo Objeto Matrix Descripción funcional de los componentes Librería Neural Network Clase Matrix gestiona la matriz de datos (vector de imágenes) Clase NNClassificationExample lanza la ejecución para entrenar la red neuronal
  • 23. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Descripción funcional de los componentes: ETL NNClassificationMNIST Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Oracle VirtualBox 5.0 Ubuntu 14.04 ETL MNIST log4j Configuración BootStrap ETL MNIST Web Procesar colección MNIST y generar Vectores de imágenes Pentaho kettle Cargar los datos en Hadoop Hadoop Spark log4j Configuración Convolucional Neural Network library ETL NNClassificacionMNIST Entrenar el algoritmo CNN Jetty
  • 24. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado ETL NNClassificationMNIST Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Entrena la Red Neuronal Integrada la librería NeuralNetwork Integra las librerías de Hadoop y Spark Gestiona los parámetros por fichero Descripción funcional de los componentes bptg.uem.pfg.wclassifiers.NNClassificationMNIST Basada en la ejecución de NeuralNetwork
  • 25. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Ejecución Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network
  • 26. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado ETL NNClassificationMNIST Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Se levantan los servicios Se generan los vectores de imágenes Se cargan en Hadoop Se configura el fichero de parámetros Se ejecuta spark-submit Previa carga del classpath Ejecución Script de ejecución: NNClassifierMNIST_Spark.sh Fichero de configuración
  • 27. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado ETL NNClassificationMNIST Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Ejecución Listado de ficheros cargados en Hadoop Log de ejecución: spark-submit desde NNClassifierMNIST_Spark.sh
  • 28. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado ETL NNClassificationMNIST Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Ejecución: resultados Ejecución la ETL con Spark leyendo desde Hadoop para un vector de 10.000 imágenes Ejecución de la ETL leyendo desde disco (no Spark) para un vector de 10.000 imágenes Se observan resultados muy dispares, línea de trabajo futura: trabajar en la parametrización de la CNN Requisitos de memoria y tiempo altos
  • 29. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Conclusiones Líneas de trabajo futuras Sostenibilidad del software Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network
  • 30. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Conclusiones y líneas futuras de trabajo Primera conclusión •Arquitectura hardware Segunda conclusión •Optimización de los parámetros de la CNN Integration of ETL, Hadoop and Spark to run a CNN Bueká-Pastor Torao García 2.2 Competiciones de MNIST en Kaggle Actualmente hay una competición activa sobre MNIST, que finaliza en 5 meses: Ilustración 3 - MNIST Kaggle competition Enlace: https://www.kaggle.com/c/digit-recognizer 2.3 Panel de la competición de MNIST en Kaggle Conclusiones Líneas futuras de trabajo 1. Participar en la competición de Kaggle Integration of ETL, Hadoop and Spark to run a CNN Bueká-Pastor Torao García 2.2 Competiciones de MNIST en Kaggle Actualmente hay una competición activa sobre MNIST, que f Ilustración 3 - MNIST Kaggle competition Enlace: https://www.kaggle.com/c/digit-recognizer 2.3 Panel de la competición de MNIST en Kagg 2. WebServices de reconocimiento de dígitos con almacenamiento en Hadoop y entrenamientos periódicos de mejora
  • 31. GRADO DE INGENIERÍA INFORMÁTICA Proyecto Fin de Grado Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Sostenibilidad de la implementación del Software 115 fundamental en el desarrollo. Lógicamente los esfuerzos se centran en el punto infraestructura, centros de datos, y demás sistemas que consumen energía. Sin embargo, además de la sostenibilidad ambiental hay un ámbito más complejo qu ser abordado desde esta perspectiva. Podemos considerar, basándonos en l sostenibilidad, tres pilares importantes: el Social, el Económico y el Ecológico. Ilustración 108 - Pilares básicos de la sostenibilidad (Declaración de Río, 1.992) Integration of ETL, Hadoop and Spark to run a CNN Bueká-Pastor Torao García Fuente: http://www.redalyc.org/articulo.oa?id=92212873005 Con esta representación se sientan las bases de los niveles d encontrar en una organización desde el punto de vista de sus pr software, calidad, etc. Analicemos ahora este proyecto desde estos 9.4.1 Económica Respecto a la sostenibilidad económica hay que destacar que el pr integridad con software libre. Librerías como Apache Hadoop, Apa en el desarrollo de las ETLs comparten el ser open software y por ta proyecto tiende a cero. En cuanto a la compartición de recursos hardware, ya que se ha de permite la compartición de recursos y por tanto el ahorro en coste Hay que destacar que estaríamos trabajando con sistemas de b Pilares básicos de la sostenibilidad Económica •Software libre •Plataforma virtual Optimización de procesos •mejora de procesos aplicando tecnologías de redes neuronales Social •Green computing Sostenibilidad como factor fundamental del desarrollo: ámbitos de aplicación Definición del software respecto a la sostenibilidad
  • 32. Integration of ETL, Hadoop and Spark to run a Convolutional Neural Network Bueká P. Torao García Muchas gracias Universidad Europea de Madrid to my parents for their support… Proyecto Fin de Grado