Propuestas
Aunque no puedo dirigir trabajos durante mi
excedencia, si te interesan estos temas para hacer tu TFG o
TFM en los próximos años, contacta conmigo. Podemos empezar a
verlo e ir asentando algunos conceptos.
Temas Sobre Deep Learning y GPU
- Dispersidad en modelos de
Deep Learning. El deep learning es un área de la
inteligencia artificial que ha dado grandes avances en
aplicaciones dentro de la visión por computador,
procesamiento de lenguaje natural, medicina, etc. Modelos
como stable difussion están siendo investigados para la
generación de no solo imágenes hiperrealistas, si no también
para volúmenes 3D. Las redes neuronales profundas empleadas
para procesamiento de 3D explotan en tamaño (ya que tenemos
una tercera dimensión en la entrada), sin embargo los datos
en 3D son en su mayoría dispersos (en pocos vóxeles hay
información, el resto es espacio vacío). Este proyecto tiene
como objetivo explorar las redes basadas en dispersidad
(MLP, convolución, autoatención, grafo, etc.). Se proponen
varías vías: hacer uso de estos modelos para un dataset
concreto, o tocar código en CUDA para acelerar alguna parte
de extensiones de PyTorch con dispersidad (p.ej. Minkowski o
TorchSparse). Requisitos: Conocimiento teórico de
Aprendizaje Automático o Redes Neuronales. Lenguaje
Python.
- Deep Learning y
estándares JPG. Normalmente los modelos de Deep
Learning requieren recibir una imagen en crudo RGB para
poder ser introducida en la red. En este proyecto se
estudiará el estándar JPEG o JPG2000 y cómo hacer la
decompresión en GPU para hacérsela pasar directamente al
modelo. Una alternativa al proyecto sería estudiar cómo
introducir al modelo datos comprimidos o transformados
mediante DCT/Wavelet. Requisitos: Conocimiento teórico
de Aprenedizaje Automático o Redes Neuronales.
- Análisis semántico de
vídeos mediante Deep Learning. Miles de películas son
producidas cada año, y por tanto la comprensión automática
de contenidos es importante para desarrollar sistemas de
recomendación de películas, almacenamiento eficiente,
asistencia en el censurado, sistemas de extracción de
escenas, etc. Es por ello que se ha comenzado a desarrollar
algoritmos basados en Deep Learning para la extracción
automática de etiquetas de vídeos, segmentación inteligente
de escenas, y categorización automática de escenas y eventos
"beat". El objetivo de este trabajo es el de extender dichos
algoritmos, proporcionando mejoras en las redes
convolucionales empleadas mediante "transfer learning",
ampliando las categorías y los tipos de películas de
estudio, y/o procesando otro tipo de multimedia además de
fotogramas, como audio y texto. Requisitos:
Conocimiento teórico de Aprendizaje Automático y Redes
Neuronales. Lenguaje Python
- Compresión de vídeo
con Deep Learning. La idea principal de esta
propuesta es desarrollar un algoritmo de compresión de vídeo
en un dominio específico (como en películas) usando
información semática y/o prediciendo las pérdidas de
compresión de forma temprana. Requisitos:
Conocimiento teórico de Aprendizaje Automático y Redes
Neuronales. Entendimiento de algoritmos de compresión de
imágenes. Lenguaje Python
- Aplicación de
modelos generativos. Esta propuesta busca usar
modelos generativos (p.ej. GANs, diffusion, large language
models, etc.) para ciertas aplicaciones de la vida real
(deep fakes, action recognition, video processing, biology
imaging, medical imaging, etc.). Requisitos:
Conocimiento teórico de Aprendizaje Automático y Redes
Neuronales, y del dominio específico de aplicación.
Lenguaje Python
- Reconocimiento
automático de lengua de signos con deep learning.
La traducción automática de lengua de signos, de signante a
persona oyente, es todo un reto. Primero por que hay muchos
elementos a tener cuenta (pose del cuerpo, movimiento y
forma de las manos, gestos de la cara, etc.), y segundo
porque existen muchas lenguas de signos y variantes. En la
propuesta de este trabajo se pide realizar un repaso al
estado del arte en la traducción automática de lengua de
signos a texto, para después trabajar sobre un dataset
seleccionado para aplicar distintas aproximaciones y modelos
de deep learning. Requisitos:
Conocimiento teórico de Aprendizaje Automático y Redes
Neuronales, y del dominio específico de aplicación.
Lenguaje Python
Temas Sobre Membrane Computing y Simulación
GPU
- Simulación acelerada de
sistemas PDP con CUDA. Los sistemas PDP (Population
Dynamics P systems) conforman un marco de modelización
computacional formal para dinámica de poblaciones que ha
sido empleado exitosamente con ecosistemas reales, como el
del quebrantahuesos en el Pirineo Catalán y el mejillón
cebra en el pantano de Ribarroja. Los expertos en dichos
ecosistemas realizan experimentos virtuales mediante la
herramienta MeCoSim, la cual a su vez hace uso de
pLinguaCore como motor de simulación de los sistemas PDP.
Sin embargo, dicho simulador es ineficiente para ciertos
modelos y ecosistemas, por lo que se desarrolló otro
simulador de sistemas PDP que hace uso de dispositivos
masivamente paralelos como las tarjetas gráficas, denominado
ABCD-GPU. La tecnología empleada para tal fin es CUDA, que
permite aprovechar los miles de núcleos presentes en las
GPUs actuales, y que ha sido adoptada mundialmente para
supercomputación. El simulador ABCD-GPU es una herramienta
que todavía está en fase beta y que no está conectado con
P-Lingua (y por tanto tampoco con MeCoSim). El objetivo de
esta propuesta es el de implementar mejoras en el simulador
y el desarrollo de una extensión del framework de simulación
P-Lingua para que se conecte con ABCD-GPU en las tareas que
requieran dicho potencial. Requisitos: Conocimiento
teórico de Computación con Membranas. Conocimientos de
Java y C/C++, y conocimientos básicos de programación
paralela.
- Análisis y diseño de
sistemas con membranas para su simulación en GPU. Los
sistemas celulares con membranas son dispositivos
bioinspirados que tienen actualmente aplicaciones tanto a
nivel teórico (teoría de la computabilidad) como a nivel
práctico (modelización de sistemas biológicos, ecosistemas,
etc.). La simulación de estos sistemas es un área de
investigación muy activo, y las primeras aplicaciones
software disponibles son relativamente ineficientes. Por
tanto, se hace necesario la aceleración de simuladores
mediante tecnología paralela. En este respecto, la
computación con GPU abre un nuevo abanico de posiblidades,
mediante las tecnologías CUDA y OpenCL. Sin embargo, ciertos
simuladores actuales basados en GPU no consiguen una mejora
notable de eficiencia. Una nueva vía consiste en estudiar
qué modelos son los que encajan mejor con la arquitectura de
la GPU. En este trabajo se pretende desarrollar un simulador
en CUDA para diversos modelos de sistemas P (por ejemplo,
los Kernel P systems, y analizar de esta forma aquellos
ingredientes que se simulen adecuadamente en la GPU. Requisitos:
Conocimiento teórico de Computación con Membranas.
Conocimientos básicos de programación paralela y lenguaje
C/C++ o Python.
- Simulación acelerada de
sistemas bioinspirados con SYCL. Los sistemas
celulares con membranas son dispositivos bioinspirados que
tienen actualmente aplicaciones tanto a nivel teórico
(teoría de la computabilidad, de la complejidad, etc.) como
a nivel práctico (modelización de sistemas biológicos,
ecosistemas, etc.). La simulación de estos sistemas está aún
en desarrollo, y las primeras aplicaciones software
disponbiles son relativamente ineficientes. Por tanto, se
hace necesario la aceleración de simuladores mediante
tecnología paralela. En este respecto, la computación con
GPU abre un nuevo abanico de posiblidades, mediante las
tecnologías CUDA y SYCL. Los primeros simuladores basados en
GPU fueron desarrollados en CUDA, una tecnología específica
de la marca NVIDIA. Por ello, en este trabajo, se pretende
estudiar dichos simuladores, y analizar un nuevo desarrollo
empleando la tecnología SYCL, la cual ofrece una plataforma
estándar que sirve tanto para tecnología de GPU de AMD, como
multiprocesadores de Intel, FPGAs, etc. Requisitos:
Conocimiento teórico de Computación con Membranas
(opcional). Conocimientos básicos de programación paralela
y lenguaje C/C++.
-
Simulación optimizada de sistemas celulares en CUDA.
La nueva generación de GPUs (procesadores gráficos) ofrecen
una gran potencia de cómputo a un menor coste y consumo
energético. Para ello se utilizan técnicas para la
computación de propósito general (GPGPU) y lenguajes de
programación como CUDA y OpenCL. El uso de estos
procesadores masivamente paralelos abren nuevas vías para la
simulación eficiente de sistemas celulares. En este proyecto
se propone mejorar el rendimiento de un simulador de
sistemas P con membranas activas escrito en CUDA, utilizando
técnicas como sparse matrix o tailing, y optimizando el
código con la arquitectura mejorada de las nuevas tarjetas
NVIDIA. Requisitos: Conocimiento teórico de Computación
con Membranas. Conocimientos básicos de programación
paralela y lenguaje C/C++.
- Simulación
de sistemas de membranas en Python. Los sistemas
celulares con membranas son dispositivos bioinspirados que
tienen actualmente aplicaciones tanto a nivel teórico
(teoría de la computabilidad) como a nivel práctico
(modelización de sistemas biológicos, ecosistemas, etc.). La
simulación de estos sistemas es un área de investigación muy
activo y requiere de entornos eficientes y flexibles. En
este respecto, P-Lingua 5 es un entorno que se está
desarrollando en C++ para la simulación de forma genérica de
estos dispositivos bioinspirados. En este proyecto se
desarrollará un entorno de simulación programático desde
Python usando como motor P-Lingua 5. Requisitos:
Conocimientos de programación en Python y C/C++
Temas Sobre GPU computing en otras áreas
- GPU y Realidad
Virtual. Este trabajo se podría realizar para
estudiar plataformas Web para GPU, como WebGPU, y aplicarlos
a entornos de realidad virtual. Se realizaría dentro del laboratorio
IAI de la ETSII. Requisitos: Conocimientos
básicos de programación
- Simulación acelerada
de sistemas multiagentes en Lua. Este trabajo se
engloba en un proyecto llamado Selenitas, y tiene como
objetivo desarrollar un entorno de simulación multiagente en
Lua, un lenguaje de scripting de código abierto basado en C
que actualmente se emplea mucho en el desarrollo de
videojuegos. Esta propuesta busca acelerar ciertas partes
del código usando computación con GPU. Requisitos:
Conocimientos básicos de programación paralela y lenguaje
C/C++.
- Análisis de RAPIDS,
un entorno para data science y machine learning en GPUs.
Existen diversos entornos de programación para configurar
flujos de trabajos en machine learning (aprendizaje
automático). En este respecto, numpy y scikit-learn mediante
Python son los más utilizados. Aunque estos entornos tienen
cierta optimización para procesadores (CPUs), su rendimiento
deja mucho que desear cuando se trabaja con datasets de
tamaño considerable. Por ello, se ha comenzado a usar las
GPUs como aceleradores de algoritmos de machine learning,
sobre todo aquellos relacionados con Deep Learning.
Recientemente NVIDIA anunció RAPIDS, un entorno para data
science y machine learning totalmente acelerado en GPUs,
donde se portan parte de la API de numpy y scikit-learn.
Este trabajo tiene como objetivo analizar esta herramienta y
hacer una comparativa exhaustiva con otros entornos clásicos
e intentos de aceleración en GPUs. Requisitos:
Conocimientos de programación en Python. Conocimientos de
inteligencia artificial y machine learning. Conocimientos
básicos de bases de datos. Conocimientos básicos de
programación paralela.
- Programación
funcional paralela en GPUs. La programación
paralela estándar se está moviendo a conceptos puramente
funcionales, como está sucediendo con el estándar ISO C++ y
stdpar. El objetivo del trabajo es el análisis de lenguajes
y entornos de programación funcional paralela sobre GPUs.
Este análisis incluirá la implementación de algoritmos de
machine learning para ponerlos a prueba. Requisitos:
Conocimientos de programación funcional (como los
adquiridos en la asignatura de programación declarativa),
y conocimientos de programación paralela.
Temas Sobre CERN/LHCb (sujeto a disponibilidad de nuestros
colaboradores en el LHCb)
- Desarrollo
de algoritmos inteligentes y paralelos para el LHC.
Este proyecto se enmarca dentro de una colaboración con el
CERN, a el fin de desarrollar algoritmos inteligentes, y su
implementación paralela en CUDA, para el procesamiento de
datos generados en el detector de partículas LHCb. Requisitos:
Conocimientos básicos de programación paralela y lenguaje
C/C++.
- Contribuciones al
proyecto Allen en el LHCb. LHCb es uno de los
cuatro experimentos principales de LHC, el gran colisionador
de hadrones del CERN en Ginebra. Este proyecto es parte de
esta colaboración a través de PhD. Daniel Campora. Tiene
como objetivo extender el entorno de triggering basado en
GPU que ha sido seleccionado para el detector de colisiones
en el LHCb, denominado Allen, mejorando partes y
desarrollando algoritmos nuevos. Requisitos:
Conocimientos avanzados de programación paralela y
lenguaje C/C++.
- Del HTC al HPC en
el Barcelona Supercomputing Center. Este proyecto
forma parte de una colaboración entre el CERN, el LHCb y la
Universitat Ramon Llull. LHCb es uno de los cuatro
experimentos principales de LHC, el gran colisionador de
hadrones del CERN en Ginebra. Las necesidades de cálculo de
este tipo de experimentos son muy grandes, desde la
simulación del expertimento hasta el análisis de datos.
Hasta ahora, el enfoque se ha basado en una arquitectura de
GRID, para la cual se han desarrollado unos marcos
específicos a LHCb, con una filosofía de HTC. Actualmente se
esta estudiando el uso de grandes infraestructuras de
Supercomputación, con arquitectura HPC para cubrir las
necesidades de cálculo. El objetivo del proyecto seria
contribuir a portar el software de LHCb a la arquitectura
del Barcelona Supercomputing Center. Requisitos:
Conocimientos avanzados de programación paralela y
lenguaje C/C++.
Dirigiendo
(cancelados o traspasados por excedencia)
- Aproximaciones de Deep
learning para el conteo automático de células de
microalgas en imágenes digitales de microscopio, por
Carmen del Mar Ruiz Torres. Co-dirigido con Francisco J.
Romero Campero. TFM MADOBIS.
- Análisis de
rendimiento de convoluciones dispersas, por
Kenny Jesús Flores Huaman. TFM MULCIA.
- Clasificación de sarcomas
de tipo Ewing mediante técnicas de Machine y Deep Learning,
por Francisco Jiménez García. Co-dirigido con Enrique de
Ayala Casado (IBIS). TFM MULCIA.
- Aplicación de técnicas de
Ray Tracing en el subdetector RICH del LHCb, por
Roberto Hueso Gómez. Co-dirigido con Daniel Campora. TFM
MULCIA.
- Análisis semántico de
vídeos mediante Deep Learning, por Jose Antonio Gómez
Romero. TFM MII.
- Extensión de un entorno de
simulación multi-agente basado en Lua, por Francisco
José Campos Castro. Co-dirigido con Fernando Sancho
Caparrini. TFM MII.
- Creación de contenido
mediante modelos generativos de deep learning, por
Julio Valverde Nuñez. TFM MII.
- Modelos del lenguaje
para la evaluación automática de código Haskell, por
Samuel Buzón Gil. Co-dirigido con David Solís. TFG Grado
Ingeniería Informática - Tecnologías de la Información.
- Algoritmos
criptográficos mediante autómatas celulares y programación
funcional, por María del Rocío Crespo Pozo.
Co-dirigido con David Orellana. TFG Grado Ingeniería
Informática - Tecnología de la Información.
Dirigidos
- Gloss2text: Traducción
automática de la Lengua de Signos Española en glosas a
Castellano, por Celia Botella López. Co-dirigido con
Juan Antonio Álvarez. TFM MII. Junio 2023. Matrícula de
Honor.
- Simulación acelerada
por GPU de Máquinas de Virus, por Sergio
Velázquez García. Co-dirigido con David Orellana Martín. TFG
Grado Ingeniería Informática - Tecnologías de la
Información. Julio 2023.
- Modelos del lenguaje
en la traducción de glosas de lengua de signos a lenguaje
natural, por Santiago Massé Palomo. TFG Grado
Ingeniería Informática - Tecnologías de la Información.
Julio 2023.
- Sistema para detección de
neumonía aplicando técnicas de deep learning, por
Alberto Carmona López. Co-dirigido con Juan M. Ortiz de
Lazcano (Univ. Málaga). TFM MULCIA. Diciembre 2022.
- Aplicación de modelos
generativos de deep learning al desenfoque de imágenes y
video, por Rafael Barea Hidalgo y Martin González
López. TFM MII. Diciembre 2022.
- Up-scaling y generación de
texturas, por José Manuel Villegas. Co-dirigido con
Fernando Sancho Caparrini. TFG Grado Ingeniería Informática
- Ingeniería del Software. Diciembre 2022.
- Virtualización del
entorno utilizando técnicas de Deep Learning, por
Alan Trawczynski. Co-dirigido con Fernando Sancho Caparrini.
TFG Grado Ingeniería Informática - Tecnologías Informáticas.
Septiembre 2022.
- Machine Learning y Deep
learning para búsqueda de vulnerabilidades en código
fuente, por Francisco Pineda. Co-dirigido con Fernando
Sancho Caparrini. TFG Grado Ingeniería Informática -
Ingeniería de Computadores. Septiembre 2022.
- Introducción y
Avances del Neural Rendering, por Alejandro
González Martín y Jesús Juan Postigo Martínez. Co-dirigido
con Fernando Sancho Caparrini. TFG Grado Ingeniería
Informática - Ingeniería del Software e Ingeniería de
Computadores. Septiembre 2022.
- Sign2text: traducción
automática de lengua de signos, por Miguel Ángel
Núñez-Romero Olmo. Co-dirigido con Juan Antonio Álvarez. TFM
MII. Septiembre 2022.
- Traducción de lengua
de signos mediante técnicas de Deep Learning, por
José Morera Figueroa. Co-dirigido con Juan Antonio Álvarez.
TFG Grado Ingeniería Informática - Tecnologías Informáticas.
Julio 2022.
- Programación funcional
paralela en GPUs, por Kenny Jesús Flores Huaman. TFG
Grado Ingeniería Informática - Tecnologías Informáticas.
Julio 2022.
- Representación Dispersa de
Spiking Neural P Systems en GPUs, por Javier Hernández
Tello. TFG Grado Ingeniería Informática - Tecnologías
Informáticas. Diciembre 2021.
- Aplicación de Machine
Learning para la manipulación aérea, por Manuel Jesús
Fernández. Co-dirigido con Gillermo Heredia. TFM MULCIA.
Septiembre 2021.
- Clasificación automática
de peliculas mediante Deep Learning, por Suriel Aido
Teruel. TFM MULCIA. Septiembre 2021.
- Análisis de RAPIDS, un
entorno para data science y machine learning en GPUs,
por Gonzalo Delgado. TFG Grado Ingeniería Informática -
Ingeniería del Software. Julio 2021.
- Detección de accidentes de
tráfico en vídeo CCTV con Deep Learning y Visión
Artificial, por Javier I. Advani Aguilar. Co-dirigido
con Ignacio Pérez-Hurtado. TFM (MULCIA). Diciembre 2020.
- Clasificación automática
de vídeos para sistemas de recomendación con Deep Learning,
por Daniel González Corzo. TFG Grado Ingeniería Informática
- Tecnologías de la Información. Diciembre 2020.
- Análisis de modelos
avanzados de aprendizaje profundo en la clasificación de
armas, por Sergio Andrés Pérez Zárate. TFM MULCIA.
Septiembre 2020.
- Compresión topológica de
imágenes a color, por Javier Castillo Delgado.
Co-dirigido con Pedro Real. TFM MULCIA. Julio 2020.
Matrícula de honor.
- Clasificación
de actividades humanas en vídeo, por Emre
Tatbak. TFM MULCIA. Julio 2020.
- Simulación de multitudes
con estándares abiertos de computación gráfica y paralela
con GPU, por Antonio Torres Moríñigo. Co-dirigido con
Fernando Sancho-Caparrini. TFG Grado Ingeniería Informática.
Junio 2020. Matrícula de Honor.
- Principios Matemáticos de
la Agregación de Bootstrap, por Julia Alcántara
Romero. Co-dirigido con Miguel A. Gutiérrez Naranjo. TFG
Grado Matemáticas. Junio 2020.
- Estudio y aplicación de
redes neuronales convolucionales al problema de la
detección y clasificación de escenas violentas en vídeo,
por Rafael Fernández González. TFM MULCIA. Diciembre 2019.
- Reconstrucción del
subdetector VELO mediante la transformada de Hough,
por Alejandro López Fernández. Co-dirigido con Daniel H.
Campora-Pérez. TFG Grado Ingeniería Informática. Diciembre
2019.
- Análisis semántico de
vídeo mediante Deep Learning, por Aliaksei
Kandratsenka. TFM MULCIA, Septiembre 2019.
- Simulación acelerada de
sistemas P de dinámica de poblaciones con GPU,
por Andrés Doncel Ramírez. Co-dirigido con Daniel H.
Campora-Pérez. TFM MULCIA. Julio de 2018. Premio al mejor
Expediente de Máster de la Universidad de Sevilla.
- A Study of a Parallel
Implementation for the Pixel VELO Subdetector, por
Daniel H. Campora Pérez. Co-dirigido con Fernando
Sancho-Caparrini y Niko Neufeld, en colaboración con el
CERN. TFM MULCIA. Septiembre de 2013. Premio extraordinario
de Trabajo Fin de Máster de la Universidad de Sevilla.
- Simulación de sistemas P
probabilísticos en GPUs, por Adolfo Gastalver-Rubio.
Co-dirigido con Ignacio Pérez-Hurtado. PFC Ingeniería
Informática. Septiembre de 2012.
- Aceleración de
simulaciones de sistemas celulares en soluciones del
problema SAT usando GPUs, por Jesús Pérez-Carrasco.
PFC Ingeniería Informática. Julio 2012. Matrícula de Honor.
- Analizador Web de P-Lingua,
por José González Pareja. Co-dirigido con Ignacio
Pérez-Hurtado. PFC Ingeniería Informática. Julio 2012.
- Un compilador genérico
para P-Lingua, por Francisco González Cordero.
Co-dirigido con Ignacio Pérez-Hurtado. PFC Ingeniería
Informática. Septiembre 2011.
- Sistemas Multi-agentes en
CUDA, por Daniel H. Campora Pérez. Co-dirigido con
Fernando Sancho-Caparrini. PFC Ingeniería Informática. Julio
2010. Matrícula de Honor.