« Neural Encoders para … « || Inicio || » Ejemplos Resueltos de… »

IAIC 19-20: Grupos de Prácticas

Última modificación: 19 de Diciembre de 2019, y ha tenido 544 vistas


Práctica I

La siguiente tabla muestra los Grupos de Prácticas asignados para la Parte I de la asignatura. Los alumnos que no aparezcan en esta lista están asignados a la modalidad de Evaluación Continua por Exámenes (el plazo para seleccionar modalidad acabó el Viernes 11 de Octubre de 2019).

Las propuestas de Prácticas para la parte I se pueden encontrar un poco más abajo en esta misma página.

Se recuerda que tras la entrega de la Parte I, los alumnos de esta lista serán distribuidos en nuevos grupos de prácticas para la Parte II.

GrupoNombrePropuesta
I.1 AGUAYO OROZCO, ALVARO 1
ALCANTARA LAGUNA, ALEJANDRO
BAZAN TICSE, KEVIN ALEXANDER
I.2 BLASCO VAZQUEZ, JAVIER 2
CHAMBER GONZALEZ DE QUEVEDO, ENRIQUE
COMITRE PALACIOS, JOSE JOAQUIN
I.3 CRESPO FALCON, JOSE CARLOS 3
DAN, GIGI MARCEL
FERNANDEZ CALATAYUD, FERNANDO
I.4 FERNANDEZ CUEVAS, PLACIDO 4
FRANKFORD, EDUARD
HONORES MURRAY, GUSTAVO ARIEL
I.5 MACIAS VELLARINO, JUAN CARLOS 5
MARTÍN AUDÉN, ALEJANDRO
MUNOZ, ELIAS
I.6 OTERO GONZALEZ, ALBERTO 6
PERALVO GERMAN, MARCOS STEPHAN
PEREZ GOMEZ, ANTONIO
I.7 PEREZ LOPEZ, SERGIO 7
PHILIBERT, JULIETTE
PIEDRA VENEGAS, ENRIQUE
I.8 PUERTO BORREGUERO, ANTONIO JOSE 8
RUIZ JURADO, PABLO
RUIZ MONGE, JOSE LUIS
CHURA PASCUAL, ALBARO

Prácticas Propuestas Parte I

  1. Hacer un jugador de Othello/Reversi (reglas aquí).
  2. Hacer un jugador de Damas (reglas aquí).
  3. Hacer un jugador de 4 en Línea (reglas aquí).
  4. Hacer un jugador de Mancala (reglas aquí).
  5. Hacer un jugador de Ranitas (reglas aquí).
  6. Hacer un jugador de 4 en Línea múltiple (reglas aquí).
  7. Hacer un jugador de Asimilación (reglas aquí).
  8. Hacer un jugador de Gran Avance (reglas aquí).

Para ello, las fases que se evaluarán son:

  • Dar una representación formal del juego: estados y movimientos del juego, explicitando estados y movimientos válidos, y cómo los movimientos cambian los estados. Esta representación debe ser dada en NetLogo.
  • Hacer una implementación visual del juego para dos jugadores humanos. Esta implementación debe contemplar la representación formal dada en 1, y las restricciones impuestas por las reglas del juego. Además, debería estar preparada para el paso siguiente.
  • Hacer una implementación de un jugador automático por medio de MCTS o Minimax.
  • Conectar el jugador automático a la implementación anterior.

Práctica II

La siguiente tabla muestra los Grupos de Prácticas asignados para la Parte II de la asignatura. Las propuestas de Prácticas para la parte II se pueden encontrar un poco más abajo en esta misma página.

GrupoNombrePropuesta
II.1 AGUAYO OROZCO, ALVARO 1
BLASCO VAZQUEZ, JAVIER
CRESPO FALCON, JOSE CARLOS
II.2 FERNANDEZ CUEVAS, PLACIDO 2
MACIAS VELLARINO, JUAN CARLOS
OTERO GONZALEZ, ALBERTO
II.3 PEREZ LOPEZ, SERGIO 3
PUERTO BORREGUERO, ANTONIO JOSE
PHILIBERT, JULIETTE
II.4 CHAMBER GONZALEZ DE QUEVEDO, ENRIQUE 4
DAN, GIGI MARCEL
FRANKFORD, EDUARD
II.5 CHURA PASCUAL, ALBARO 5
PERALVO GERMAN, MARCOS STEPHAN
ALCANTARA LAGUNA, ALEJANDRO
II.6 RUIZ JURADO, PABLO 6
BAZAN TICSE, KEVIN ALEXANDER
COMITRE PALACIOS, JOSE JOAQUIN
II.7 FERNANDEZ CALATAYUD, FERNANDO 7
HONORES MURRAY, GUSTAVO ARIEL
MUNOZ, ELIAS
II.8 MARTÍN AUDÉN, ALEJANDRO 8
PIEDRA VENEGAS, ENRIQUE
RUIZ MONGE, JOSE LUIS

Prácticas Propuestas Parte II

En todos los trabajos se espera un documento (en markdown, formato que usa NetLogo para la edición de la pestaña de información de los modelos) que exponga la teoría y fundamentos del modelo o variante que se ha implementado. Para la realización de este documento se puede hacer uso de uno de los muchos editores gratuitos de Markdown que hay disponibles (por ejemplo, de Typora).

Para aquellos trabajos en los que el resultado sea una librería de optimización puede usarse la extensión Landscapes de NetLogo, que proporciona muchas funciones interesantes para ser optimizadas como benchmark.

Los trabajos que se proponen para cada uno de los grupos son (el índice del trabajo corresponde con el grupo asociado):

  1. Extender la librería de Algoritmos Genéticos que se proporciona en el curso añadiendo métodos adicionales de cruzamiento, mutación y selección. Puede seguirse como guía inicial la referencia de la Wikipedia que trata este tipo de opciones (aunque se valorará la búsqueda de otras alternativas):

  2. Extender la librería de Algoritmos Genéticos que se proporciona en el curso añadiendo la posibilidad de trabajar con representaciones continuas. Para ello, se puede seguir la aproximación que se da en el siguiente documento.
  3. Usando la librería de Algoritmos Genéticos que se ha visto en el curso, dar aproximaciones a posibles soluciones alternativas de TSP. Se puede empezar con la aproximación que se da en el siguiente documento, pero también sería deseable que se hiciera un recorrido por la implementación de otras soluciones disponibles que se encuentren en la literatura (como este).
  4. Implementar algún método de PSO Discreto (donde el espacio de búsqueda en una o más de las variables no es un intervalo, sino un conjunto de opciones) Se puede seguir la aproximación que se da en el siguiente documento.
  5. Implementar los siguientes métodos de PSO: BPSO, NBPSO, INBPSO. Se puede seguir la aproximación que se da en el siguiente documento.
  6. Extender la librería PSO vista en clase para reconocer variantes. Por ejemplo: conjuntos de partículas divididas en familias (cada partícula solo considera el óptimo global de su familia, no el del grupo completo), geométricos (cada partícula solo considera el óptimo global de entre aquellas partículas que están dentro de un determinado radio, que es un parámetro más del sistema), funciones dinámicas (la función a optimizar cambia en el tiempo, y por tanto el óptimo a buscar puede cambiar de localización, las partículas deben adaptarse a este cambio y ser capaces de seguirlo en el tiempo), estrategias de no acumulación (para que las partículas no exploren el mismo punto, por ejemplo, cuando acaban en torno al óptimo encontrado), etc...
  7. Partiendo de la solución proporcionada en clase, crear una librería para resolver Problemas de Satisfacción de Restricciones por medio de Sistemas de Hormigas. Se puede seguir la aproximación que se da en la unidad del curso que trata ese problema y en el siguiente documento.
  8. Combinar las diversas librerías que se han visto en este bloque del curso para optimizar el comportamiento de diversos modelos de la librería de NetLogo. Para ello, se deben seleccionar modelos que se consideren interesantes, definir qué comportamiento o salida se quiere optimizar, y hacer uso de las librerías adecuadas para conseguir el conjunto de parámetros adecuado para conseguir esa optimización. Se recomienda en este caso echar un vistazo a la librería LevelSpace de NetLogo.

Práctica III

La siguiente tabla muestra los Grupos de Prácticas asignados para la Parte III de la asignatura. Las propuestas de Prácticas para la parte II se pueden encontrar un poco más abajo en esta misma página (este viernes).

GrupoNombrePropuesta
III.1 AGUAYO OROZCO, ALVARO  1
FERNANDEZ CUEVAS, PLACIDO
PEREZ LOPEZ, SERGIO
III.2 CHAMBER GONZALEZ DE QUEVEDO, ENRIQUE  2
MARTÍN AUDÉN, ALEJANDRO
RUIZ JURADO, PABLO
III.3 FERNANDEZ CALATAYUD, FERNANDO  3
CHURA PASCUAL, ALBARO
BLASCO VAZQUEZ, JAVIER
III.4 MACIAS VELLARINO, JUAN CARLOS  4
PUERTO BORREGUERO, ANTONIO JOSE
DAN , GIGI MARCEL
III.5 PERALVO GERMAN, MARCOS STEPHAN  5
BAZAN TICSE, KEVIN ALEXANDER
HONORES MURRAY, GUSTAVO ARIEL
III.6 PIEDRA VENEGAS, ENRIQUE  6
CRESPO FALCON, JOSE CARLOS
OTERO GONZALEZ, ALBERTO
III.7 ALCANTARA LAGUNA, ALEJANDRO  7
FRANKFORD , EDUARD
PHILIBERT , JULIETTE
III.8 COMITRE PALACIOS, JOSE JOAQUIN  8
MUNOZ , ELIAS
RUIZ MONGE, JOSE LUIS

Prácticas Propuestas Parte III

En todos los trabajos se espera un documento (en markdown, formato que usa NetLogo para la edición de la pestaña de información de los modelos) que exponga la teoría y fundamentos del modelo o variante que se ha implementado. Para la realización de este documento se puede hacer uso de uno de los muchos editores gratuitos de Markdown que hay disponibles (por ejemplo, de Typora).

Los trabajos que se proponen para cada uno de los grupos son (el índice del trabajo corresponde con el grupo asociado):

  1. El algoritmo K-NN presenta el problema de que requiere mucha memoria y tiempo de ejecución porque hay que almacenar permanentemente todos los datos que forman el espacio de ejemplos con el que se trabaja. Sin embargo, es muy probable que muchas de esas muestras no sean necesarias/determinantes para la clasificación, ya que su información es redundante con las otras existentes. Con el fin de reducir este problema, existen algunas variantes que tienen como objetivo obtener clasificadores similares a los originales, pero reduciendo el tamaño del dataset original:
    • Condensación: Dado un orden en los datos de entrada, para cada ejemplo se clasifica por medio de K-NN haciendo uso únicamente de los datos anteriores según el orden dado (es decir, el dato $x_{n+1}$ se clasifica usando K-NN con $\{x_1,\dots,x_n\}$. Si la clasificación obtenida coincide con la real, ese ejemplo se elimina de los datos, si no, permanece. Comprueba que depende del orden dado a los datos y, además, que tiene el problema de conservar los datos que introducen ruido al sistema.
    • Reducción: Se comienza con el conjunto completo de datos, y se eliminan aquellos que no afectan a la clasificación del resto de datos de entrada (en contra de la condensación anterior, es capaz de eliminar las muestras que producen ruido, y guarda aquellas que son críticas para la clasificación).

    Implementa las variantes anteriores y acompáñalas de comparaciones sobre datasets específicos en los que se vea claramente su forma de trabajar.

  2. Implementa el algoritmo de clustering llamado Affinity Propagation.
  3. Modifica la librería ID3 para crear una variante que sea capaz de trabajar con atributos numéricos por medio de la aplicación previa de algoritmos de clustering a esos atributos. Es decir, se aplica el algoritmo de clustering a la parte numérica de los datos, y se sustituyen los atributos numéricos por el identificador del cluster al que pertenecen (que ya es una variable categórica). Esta tarea se puede hacer para cada atributo por separado (estarías haciendo cluster 1D), o considerando varios atributos a la vez (sería N-dimensional). Se recomienda usar varios de los algoritmos de clustering vistos en el curso. Añadir, además, las funciones necesarias para que calcule la matriz de confusión del modelo obtenido sobre un conjunto de test que se le pase.
  4. Un problema que tiene el algoritmo ID3/C4.5 tal y como lo hemos visto es que puede producirse un sobreajuste ya que termina realiza el árbol más completo posible con los datos disponibles. Modifica el algoritmo visto en clase para que construya árboles de decisión aproximados. Para ello, haz que la construcción del árbol dependa de los parámetros siguientes (busca en la literatura si hay más opciones): un parámetro que indique el tamaño mínimo de los conjuntos de datos para que se consideren directamente hojas, otro parámetro que establezca una profundidad máxima en el árbol construido (una vez alcanzada esa profundidad, el algoritmo considera que los nodos alcanzados son hojas y da una respuesta por mayoría). En este caso, una opción interesante sería que la salida del árbol ya no sea una clasificación concreta, sino la probabilidad de que sea de una clase u otra (un vector de probabilidades). Añadir, además, las funciones necesarias para que calcule la matriz de confusión del modelo obtenido sobre un conjunto de test que se le pase.
  5. Utiliza SOM y los otros métodos de clustering vistos en clase (K-medias, DBSCAN,... ) para hacer un análisis de las agrupaciones que se pueden conseguir sobre el dataset optdigits (que contiene imágenes reducidas, como mapas de grises, de dígitos escritos a mano). El objetivo es ver si estos algoritmos son capaces de agrupar los dígitos del dataset de forma que cada cluster contenga las imágenes asociadas al mismo dígito. Utiliza la misma idea para dar agrupaciones de otros conjuntos de datos clasificados y comprobar si los algoritmos de clustering reconocen bien las clases presentes.
  6. Implementa el algoritmo Growing Neural Gas (capítulo 1 de este trabajo), y crea conjuntos de datos donde se pueda poner a prueba la fiabilidad del algoritmo desarrollado.
  7. Disponemos de un robot con un brazo con 3 grados de libertad (es decir, 3 sectores) y un cabezal que se mueve en 2D tal y como muestra la figura. Ajustando los ángulos $\theta_1$, $\theta_2$ y $\theta_3$ (por ejemplo, por medio de servo-motores) el robot puede colocar su cabezalen diversos puntos del plano. 
    • Entrena una red neuronal que sea capaz de aprender la cinemática inversa del robot, es decir, dadas las coordenadas del cabezal, $(x,y)$, como entrada, la red debe devolver los correspondientes ángulos $(\theta_1,\theta_2,\theta_3)$ que le permitan alcanzar ese punto.
    • A partir de esta red construye un procedimiento para que el robot pueda desplazar su cabeza de forma eficiente entre dos puntos cualesquiera del plano.
    • Si hubiera zonas del plano por las que el robot no puede cruzar (obstáculos verticales que le impiden que ninguno de los sectores del brazo pase por ellos), da un procedimiento para que el robot sea capaz de hacer la misma tarea moviendo su cabeza entre zonas permitidas.
  8. Reproducir en la medida de lo posible Neural Network Playground con NetLogo y la librería ANN.

« Neural Encoders para … « || Inicio || » Ejemplos Resueltos de… »