« Usando Patches de Net… « || Inicio || » ¿Puede existir Matemá… »

Propuestas de Trabajos de Investigación/Desarrollo

Última modificación: 21 de Diciembre de 2016, y ha tenido 163 vistas

Etiquetas utilizadas: || || ||

 En esta entrada se irán publicando las propuestas de pequeños trabajos que me parecen interesantes (interesantes para mí y, espero, para un eventual alumno que pudiera trabajar en ellos).Según su difictultad y nivel de penetración, pueden ser considerados como propuestas para Trabajos de Investigación para alumnos internos, Trabajos de Fin de Grado, o Trabajo de Fin de Máster.

Las temáticas son relativamente variadas, aunque están principalmente pensadas para alumnos que tengan un perfil más cercano a Ciencias de la Computación, Ingeniería Informática, o Matemáticas porque los trabajos propuestos suelen tener como requisito una buena fundamentación matemática para su correcta elaboración.

Estoy abierto a nuevas áreas de trabajo (siempre y cuando caigan dentro del área de conocimiento general en la que se inscribe mi departamento, pero recuerda que "casi" todo puede tener un ángulo desde las Ciencias de la Computación), por lo que si tienes una idea que te interese y creas que a mí también me puede interesar, y no la encuentras en esta lista, no dudes en hacerme tú la propuesta.

La lista de propuestas no está ordenada siguiendo ningún criterio lógico, quizás el temporal de cuándo se me ha ocurrido añadir cada una de ellas.

Lista de Propuestas

Ayuda: sobre las cabeceras
(la clasificación mostrada no es
exhaustiva, únicamente orientativa)

TítuloTópicoTFMTFGBase
Curriculo de Programación Funcional para Matemáticos PF Mat
Redes Neuronales Recurrentes ML No Mat/Inf
Computación con Reservorios (Reservoir Computing) ML/CS No Mat/Inf
Computación Probabilística: Modelos y Lenguajes CS/IA No Mat
Fundamentos Matemáticos del Machine Learning ML Mat
Reducción de la Dimensionalidad en Machine Learning ML Mat/Inf
Modelos Generativos en Machine Learning ML No Mat
Sistemas Complejos y Machine Learning ML/CS No Mat/Inf
Fundamentos de Metaheurísticas y Optimización IA/ML/CS Mat/Inf
Neural Turing Machine ML/CS No Mat/Inf
Teoría Algorítmica de la Información CS No Mat
Aleatoriedad Algorítmica CS No Mat
Gemas de Teoría de la Computación CS Mat
Programación Funcional Reactiva PF/Web Mat/Inf
Sistemas Multiagentes aplicados a problemas distribuidos IA/CS Mat/Inf
Algoritmos Funcionales para grafos PF/CS/GDB Mat/Inf
Inteligencia Artificial Ética: Aplicaciones al Bien Común IA/ML/CS Mat/Inf
Inteligencia Artificial Funcional PF/IA/ML/CS Mat/Inf
Lógica Informática: Una aproximación Funcional PF/CS Mat/Inf
GraphETL: Una herramienta de extracción multirelacional Web/GDB No Inf
TeX2WEBook Web No Inf
Extensiones de NetLogo Web/Prog No Inf
Personalización de NetLogoWeb Web/Prog No Inf
IntelliMark: Organización Inteligente de Bookmarks ML/Web/Prog Inf
GrafTIKZ: Asistente Gráfico para TIKZ Web/Prog No Inf
Güeboard: Proyector Web Público Web/Prog No Inf
NetLogo NoteBook Web/Prog No Inf

 

Detalles de las Propuestas 


Curriculo de Programación Funcional para Matemáticos

Director: Fernando Sancho Caparrini
Resumen: El objetivo de este trabajo es generar un curriculo de Programación Funcional adaptado a un perfil de matemáticas, donde la aparición de los diversos conceptos de este paradigma de programación vengan motivados por ejemplos de las matemáticas que hagan natural su introducción, propiedades y aplicación. Debe cubrir los fundamentos de programación funcional, pero basarse principalmente en la capa abstracta que permite el paradigma, pasando a conceptos como Mónadas, Functores, Functores Aplicativos, Categorías, etc. de una forma gradual y bien fundamentada. Se pretende que sea una especie de "Aprende Funcional By Example" adaptado a perfiles de matemáticos.
Recursos: Por rellenar
Palabras Clave: Programación Funcional, Matemáticas, Teoría de Categorías

Programación Funcional Reactiva

Director: Fernando Sancho Caparrini
Resumen: La Programación Funcional Reactiva (FRP) proporciona un marco conceptual para la implementación de sistemas reactivos. Es un modelo de programación relativamente reciente, surgió a partir del trabajo de Conal Elliott y Paul Hudak sobre Functional Reactive Animation (Fran), aunque ya ha sido explorado, implementado, y optimizado de varia formas.  El objetivo de la FRP es permitir toda la potencia de la programación funcional moderna dentro de sistemas que requieren soluciones reactivas. El modelo clásico consiste en modelar las entradas y las salidas como valores que varían en el tiempo, llamados señales. A partir de estas señales, se describen sistemas combinando funciones de señales (que transforman señales en señales) en redes de procesos de señales. Además, qué se considera una señal depende del dominio de aplicación, y puede variar considerablemente si estamos ante, por ejemplo, la necesidad de realizar una interfaz gráfica de usuario o ante el diseño de un sistema de respuesta para un robot.
Recursos: Functional Reactive Animation, A Survey of Functional Reactive Programming, Generalising Monads to Arrows, Functional Reactive Programming, Refactored
Palabras Clave: Programación Funcional, Semántica de Modelos, Programación Reactiva

Redes Neuronales Recurrentes

Director: Fernando Sancho Caparrini
Resumen: Una Red Neuronal Recurrente (recurrent neural network, RNN) es un tipo de red neuronal artificial en el que las conexiones entre las unidades de computación (neuronas) forman ciclos dirigidos, lo que genera un estado interno que permite exhibir un comportamiento temporal dinámico. A diferencia de lo que sucede con las redes de neuronas clásicas (feedforward), las RNN pueden usar su memoria interna para procesar secuencias arbitrarias de entradas, lo que las hace especialmente apropiadas para tareas en las que los datos a predecir o analizar pueden disponerse en forma de señal (variable temporal).
Recursos: Por rellenar
Palabras Clave: Machine LearningRedes NeuronalesDeep Learning

Computación con Reservorios (Reservoir Computing)

Director: Fernando Sancho Caparrini
Resumen: La Computación con Reservorios es un marco de computación que puede ser visto como una extensión de las redes neuronales. Normalmente, se alimenta un sistema dinámico aleatorio (llamado reservorio) con una señal de entrada y la dinámica del sistema se proyecta a una dimensión superior, a continuación, se entrena un mecanismo de lectura simple de los estados del reservorio y se proyecta sobre una salida. La característica principal es que el entrenamiento se realiza únciamente sobre la lectura, mientras que el mecanismo dinámico del reservorio es fijo. Los mayores representantes de este tipo de computación son las Máquinas de Estado Líquido (Liquid-state machines) y las Redes de Estado con Eco (echo state networks).
Recursos: Por rellenar
Palabras Clave: Machine LearningRedes NeuronalesSistemas Complejos

Computación Probabilística: Modelos y Lenguajes

Director: Fernando Sancho Caparrini
Resumen: Los modelos Probabilísticos Gráficos proporcionan una lingua franca formal para modelar algoritmos de inferencia de forma eficiente. Si introducción dió lugar a un cuerpo muy amplio de trabajos en aprendizaje automático (ML) , estadística, robótica, visión, biología, neurociencia, inteligencia artificial (IA) y ciencias cognitivas. Sin embargo, muchos de las más innovadores y útiles modelos probabilísticos publicados en la comunidad de IA, Machine Learning y estadística exceden la capacidad de representación de los modelos gráficos y de las ténicas de inferencia asociadas. Por ello, los modelos se suelen publicar usando una mezcla de lenguaje natural, peusocódigo y formulación matemática, y se se resuelven usando métodos de propósito específico para cada caso concreto, más que haciendo uso de especificaciones precisas que sean adecuadas a la inferencia automática. De esta forma, los modelos gráficos se usan como sistemas de descripción de alto nivel,eludiendo aspectos críticos del modelo. Los modelos y lenguajes de programación probabilísticos tienen como fin cubrir esta carencia, unificando programación de propósito general con el modelado probabilístico. Literalmente, el creador especifica un modelo probabilístico completamente (por ejemplo, escribiendo el código que genera una muestra de la distribución conjunta) y la inferencia se sigue automáticamente de la especificación dada. Estos lenguajes proporcionan toda la potencia de los lenguajes de programación modernos para describir distribuciones complejas, a la vez que permiten reusar bibliotecas de modelos, el modelado interactivo y la verificación formal.
Recursos: Por rellenar
Palabras Clave: Machine LearningComputación ProbabilísticaModelos de Grafos

Fundamentos Matemáticos del Machine Learning

Director: Fernando Sancho Caparrini
Resumen: El principal objetivo de este proyecto es estudiar la relación existente entre las principales aproximación del Machine Learning y los fundamentos matemáticos que permiten la robustez y eficiencia de las soluciones existentes. Se intentará enfatizar en las grandes áreas de las matemáticas que hay detrás, en especial en la Teoría de la Probabilidad, Álgebra Lineal y Análisis diferencial.
Recursos: Por rellenar
Palabras Clave: Machine LearningMatemáticas

Reducción de la Dimensionalidad en Machine Learning

Director: Fernando Sancho Caparrini
Resumen: En Machine Learning, la reducción de dimensionalidad es el proceso de reducción del número de variables aleatorias que intervienen en el proceso. Normalmente, el tipo de aproximaciones se suele dividir en dos grandes bloques: selección de atributos, y extracción de atributos.
Recursos: Por rellenar
Palabras Clave: Machine LearningDimesionalidadSelección de Atributos

Modelos Generativos en Machine Learning

Director: Fernando Sancho Caparrini
Resumen: Desde el punto de vista de Teoría de la Probabilidad, un modelo generativo es un modelo para generar aleatoriamente valores de los datos observados, normalmente dando los parámetros ocultos del modelo. Se usan en Machine Learning para modela datos directamente (por ejemplo, modelar las observaciones obtenidas de una función de densidad probabilística), o como paso intermedio para formar una función de densidad probabilística condicionada. Los modelos generativos se diferencian de los discriminativos (más habituales) en que proporcionan un modelo probabilístico que modela todas las variables que intervienen, no únicamente las variables objetivo condicionadas a las variables observadas. Por tanto, los modelos generativos se pueden usar, por ejemplo, para simular (generar) valores de cualquier variable del modelo. Podemos resumir la diferencia entre ambas aproximaciones como: los modelos discriminativos aprenden las fronteras entre clases, mientras que los generativos modelan la distribución de clases.
Recursos: Por rellenar
Palabras Clave: Machine LearningTeoría de la Probabilidad

Sistemas Complejos y Machine Learning

Director: Fernando Sancho Caparrini
Resumen: Se pretende hacer un análisis de la complejidad de diversos Sistemas Complejos básicos por medio de la capacidad de predicción que diversos modelos de Machine Learning pueden tener de ellos. Se comenzará trabajando sobre la capacidad predictiva para sistemas dinámicos conocidos como pueden ser Autómatas Celulares o soluciones de EDP.
Recursos: Por rellenar
Palabras Clave: Machine LearningSistemas ComplejosAutómatas CelularesSistemas Dinámicos

Fundamentos de Metaheurísticas y Optimización

Director: Fernando Sancho Caparrini
Resumen: El objetivo de este trabajo es conocer llos fundamentos del uso de metaheurísticas para procesos de optimización, así como algunas de las metodologías más clásicas y efectivas para realizar optimización por medio de metaheurísticas, como pueden ser: PSO, ACOs, o similares.
Recursos: Por rellenar
Palabras Clave: OptimizaciónAlgoritmos DistribuidosHeurística

Neural Turing Machine

Director: Fernando Sancho Caparrini
Resumen: Las Máquinas de Turing Neuronales combinan el reconocimiento de patrones fuzzy de las redes neuronales con la potencia algorítmica de los ordenadores programables. Son una extensión de las redes neuronales a las que se les ha acoplado una memoria externa con la que pueden interactuar. Estas memorias son diferenciables, lo que permite realizar procesos de optimización usando técnicas como el Descenso del Gradiente.
Recursos: Por rellenar
Palabras Clave: Machine LearningTuring MachineRedes Neuronales

Teoría Algorítmica de la Información

Director: Fernando Sancho Caparrini
Resumen: La teoría algorítmica de la información es una teoría científica de las ciencias de la computación que, en contraste con la clásica teoría de la información, se basa en la complejidad de Kolmogorov para la determinación del contenido de la información. Fue desarrollada principalmente por Gregory Chaitin, Andrey Kolmogorov y Ray Solomonoff. Se basa principalmente en estudios de las medidas de complejidad en las cadenas (o estructuras de datos), ya que debido a que la mayoría de los objetos matemáticos pueden ser descritos en términos de cadenas, o como el límite de una secuencia de cadenas, este conocimiento puede ser usado para estudiar una amplia variedad de objetos matemáticos, incluyendo números enteros y números reales.
Recursos: Por rellenar
Palabras Clave: Teoría Algorítmica de la InformaciónMatemáticasEntropíaComplejidad de KolmogorovMatemáticas

Aleatoriedad Algorítmica

Director: Fernando Sancho Caparrini
Resumen: El objetivo de este trabajo es el de analizar diversas aproximaciones al concepto de aleatoriedad desde el punto de vista de las matemáticas en general, y de la computación en particular.
Recursos: Por rellenar
Palabras Clave: Teoría Algorítmica de la InformaciónAleatoriedadComputabilidadMatemáticas

Gemas de Teoría de la Computación

Director: Fernando Sancho Caparrini
Resumen: El objetivo de este trabajo es realizar un recorrido en anchura de algunos de los resultados más elegantes que se han realizado en la Computación Teórica. Inspirado en el libro del mismo título.
Recursos: Por rellenar
Palabras Clave: ComputabilidadMatemáticas

Sistemas Multiagentes aplicados a problemas distribuidos

Director: Fernando Sancho Caparrini
Resumen: En la resolución distribuida de problemas (SDP) se pretende dividir el trabajo necesario para la solución de un problema entre diversos módulos (también denominados nodos). Estos módulos suelen ser agentes inteligentes distribuidos que en este caso buscan darle una funcionalidad global al sistema. En este tipo de planteamientos el gran problema es establecer el mecanismo de control adecuado para que, aunque haya descentralización en la toma de decisiones, se produzca el resultado global buscado.
Recursos: Por rellenar
Palabras Clave: Inteligencia Artificial DistribuidaSistemas MultiagenteAlgorítmica

Algoritmos Funcionales para grafos

Director: Fernando Sancho Caparrini
Resumen: La manipulación de grafos se ha visto tradicionalmente como un área en el que la programación imperativa reinaba de forma indiscutible, y donde no era nada fácil obtener buenos algoritmos haciendo uso de aproximaciones funcionales. El objetivo de este trabajo es estudiar cómo los traversal de grafos pueden ser expresados en lenguajes funcionales de forma eficiente por medio de reconocimiento de patrones, lo que permite extender su uso a muchos algoritmos fundamentales para el análisis de grafos.
Recursos: Inductive Graphs
Palabras Clave: Programación FuncionalGrafosComputabilidadMatemáticas

Inteligencia Artificial Ética: Aplicaciones al Bien Común

Director: Fernando Sancho Caparrini
Resumen: El objetivo de este trabajo es realizar una inspección de las corrientes ética asociadas al desarrollo de la IA, así como proponer algunas vías de trabajo que permitan proyectar los avances tecnológicos actuales y los previsibles a áreas en las que el beneficiario sea el bien común, y no la creación de un conjunto de soluciones con objetivos puramente comerciales.
Recursos: Por rellenar
Palabras Clave: Inteligencia ArtificialAplicacionesÉtica

Inteligencia Artificial Funcional

Director: Fernando Sancho Caparrini
Resumen: El objetivo de este trabajo es desarrollar un conjunto de librerías en un lenguaje funcional puro (preferentemente Haskell) con el fin de facilitar la ejecución de algoritmos usualmente asociados al campo de la Inteligencia Artificial. Por ejemplo: representación y búsqueda (ciega e informada) en espacios de estados, búsquedas locales, optimización, minimax, algoritmos de hormigas, PSO, algoritmos genéticos, etc... Se pretende no únicamente traducir algoritmos conocidos, sino intentar dar una representación funcional de los mismos aprovechando las características de este paradigma de programación y resolución de problemas.
Recursos: Por rellenar
Palabras Clave: Inteligencia Artificial, Programación Funcional

Lógica Informática: Una aproximación Funcional

Director: Fernando Sancho Caparrini
Resumen: El objetivo de este trabajo es desarrollar un conjunto de librerías y entorno en un lenguaje funcional puro orientado a la web (preferentemente Elm) que permitan la realización de prácticas, ejercicios y validaciones de un curso completo de Lógica Informática, conteniendo: Representación Proposicional, Formas Normales, Tableros Semánticos, DPLL; Resolución, Lógica de Primer Orden, Tableros, Resolución, etc... Debe proporcionar un lenguaje para poder escribir de forma sencilla expresiones complicadas en ambos lenguajes (usando índices, relaciones aritméticas, etc.)
Recursos: Por rellenar
Palabras Clave: Lógica Informática, Programación Funcional, Programación Web

GraphETL: Una herramienta de extracción multirelacional

Director: Fernando Sancho Caparrini
Resumen: Se pretende generar una herramienta visual amigable que permita definir patrones de conversión de fuentes de información estructuradas clásicas (como son las Bases de Datos Relacionales) y débilmente estructuradas (como son corpus de textos) hacia estructuras multirelacionales (por ejemplo, basadas en Bases de Datos en Grafo). Además de las utilidades habituales para convertir modelos completamente estructurados, también debe permitir la conversión por medio de interacción y navegación en los datos reales, definiendo reglas parciales sobre apariciones concretas en las fuentes de datos, y debe permitir la integración de diversas fuentes de información heterogéneas creando también patrones de identificación.
Recursos: Por rellenar
Palabras Clave: Bases de Datos en Grafo, Bases de Datos Relacionales

TeX2WEBook

Director: Fernando Sancho Caparrini
Resumen: El proyecto tiene como objetivo crear una herramienta que permita convertir de forma cómoda y amigable textos en LaTeX en sitios web completos que hagan uso de plantillas fácilmente personalizables, dinámicas y adaptativa (responsive). Debe permitir: MathJax (o Kajax), ejecución de algunos marcos Javascript, hacer uso de lenguajes de templates para la definición de plantillas, etc...
Recursos: Por rellenar
Palabras Clave: LaTeX, Programación Web, Publicación Web

Extensiones de NetLogo

Director: Fernando Sancho Caparrini
Resumen: Creación de Extensiones para NetLogo que cumplan diversos objetivos. Requiere de una buena base enScala y/o Java. Posibilidaddes: Actualización de la librería Graphics, Ampliación de la extensión ExtraWidgets, una extensión que simplemente añada la función apply, comunicación con herramientas externas, implementación de ciertos algoritmos de recorridos y representación en grafos, etc. .
Recursos: Por rellenar
Palabras Clave: Java, Scala, NetLogo

Personalización de NetLogoWeb

Director: Fernando Sancho Caparrini
Resumen: El objetivo de este proyecto es proporcionar medios cómodos de personalizar el aspecto visual de los modelos creados por NetLogoWeb, de forma que los controles (incluídos los plots) puedan adaptarse de forma mucho más rica a las necesidades de publicación web de los modelos creados en la plataforma. Requiere de buena base de Javascript y CSS, así como conocimientos básicos de NetLogo.
Recursos: Por rellenar
Palabras Clave: Javascript, NetLogoWeb, NetLogo

IntelliMark: Organización Inteligente de Bookmarks

Director: Fernando Sancho Caparrini
Resumen: El objetivo de este trabajo es realizar un gestor de bookmarks que haga uso de modelos de aprendizaje automático para la organización automática de los bookmarks almacenados. Esta organización debe incluir etiquetado automático, clasificación, categorización, ranking, etc... con el fin de que se automatice en la mayor medida posible el trabajo de organización manual y se facilite la correcta clasificación y búsqueda de los bookmars almacenados. Sería deseable que el proyecto se orientara en la creación de una extensión Chrome para realizar dicha tarea, así que puede ser interesante conocer la API básica de creación de extensiones de ese navegador.
Recursos: Por rellenar
Palabras Clave: Bookmarks, Aprendizaje Automático, Extensiones Chrome

GrafTIKZ: Asistente Gráfico para TIKZ

Director: Fernando Sancho Caparrini

Resumen: LaTeX es una herramienta utilizada de forma masiva para la edición de textos, en especial en aquellos de carácter científico. Para la edición de las componentes gráficas se suelen usar herramientas de dibujo externas que vien generan un fichero gráfico normal (ficheros png, jpeg, eps,...). Sin embargo, desde el principio existen intrucciones que permiten la generación de gráficos usando directamente comandos del propio lenguaje. Estas forma de generar gráficos suele ser evitada debido a la tediosa tarea de editar éstos de forma manual. Una de las librerías más modernas para editar gráficos en LaTeX es tikz.

Tikz es un lenguaje que usa comandos para la generación de gráficos de tipo vectorial. Sin embargo sigue adoleciendo del mismo problema, la tediosa tarea de editar los gráficos de forma manual al que se añade el gran número de opciones que tiene el sistema. En este TFG se pretende realizar el diseño de una herramienta gráfica que genere código que se pueda incrustar directamente en un documento LaTeX. Debido a la extensión de la librería tikz no se pretende una implementación total de la misma, sino que se debe dar un diseño que implemente la parte más básica pero que sea extensible para que se puedan ir añadiendo módulos adicionales posteriormente.

Recursos: Por rellenar
Palabras Clave: LaTex, Programación Gráfica, Programación Web

Güeboard: Proyector Web Público

Director: Fernando Sancho Caparrini

Resumen: El objetivo es construir un servicio web de recursos mínimos (en el servidor) que permita compartir algunos tipos de contenidos y tareas habituales en la impartición de clases en un aula de prácticas. Algunas de estos contenidos y tareas son: PDFs, marcos web, pizarra de dibujo/escritura, corta/pega de texto/código, ficheros google, etc. El objetivo es que uno de los usuarios (usualmente el profesor) sea el que pueda publicar en tiempo real contenidos y el resto de usuarios pueda visualizar en tiempo real y copiar el contenido mostrado.

Recursos: Por rellenar
Palabras Clave: Programación Web

NetLogo NoteBook

Director: Fernando Sancho Caparrini

Resumen: El objetivo de este proyecto es construir un entorno al estilo de Jupyter para manejar modelos y sesiones con NetLogo. Para ello, el objetivo es hacer uso de comunicaciones WebSocket que permitan a una herramienta como Jupyter (u otros editores similares basados en navegadores) comunicarse de forma dinámica con NetLogo (por ejemplo, haciendo uso de NetLogo Headless) para usar NetLogo únicamente como el motor de ejecución, pero de forma que el editor, interfaz, entrada/salida, etc puedan ser completamente personalizados por el usuario. Además de potenciar el editor de NetLogo, se busca tener mayor flexibilidad a la hora de usar conectrores con otros serivicios o preparar interfaces de mayor complejidad para mostrar los resultados derivados de la ejecución de los modelos.

Recursos: Por rellenar
Palabras Clave: Programación Web, Scala, Java, NetLogo

« Usando Patches de Net… « || Inicio || » ¿Puede existir Matemá… »