Inteligencia artificial avanzada Código:  M1.304    :  6
Consulta de los datos generales   Descripción   Información previa a la matrícula   Objetivos y competencias   Contenidos   Consulta de los recursos de aprendizaje de los que dispone la asignatura   Recursos de aprendizaje y herramientas de apoyo   Informaciones sobre la evaluación en la UOC   Consulta del modelo de evaluación  
Este es el plan docente de la asignatura. Os servirá para planificar la matrícula (consultad si la asignatura se ofrece este semestre en el espacio del Campus Más UOC / La Universidad / Planes de estudios). Una vez empiece la docencia, tenéis que consultarlo en el aula. (El plan docente puede estar sujeto a cambios).

La motivación principal de esta asignatura es la de dar a conocer el aprendizaje automático y como se sitúa dentro del campo de la Inteligencia Artificial.

En Inteligencia Artificial (Grado en Ingeniería Informática) se dio una visión general de la Inteligencia Artificial y se presentaron algunos de los métodos y técnicas denominados clásicos, como son la resolución de problemas y búsqueda y los sistemas basados en el conocimiento, también se vieron técnicas más avanzadas como son las redes neurales y el razonamiento aproximado. En la asignatura de Aprendizaje computacional se introdujeron los problemas del aprendizaje (supervisado y no supervisado) y sistemas multi agente. En esta asignatura se profundizará en problemas avanzados de aprendizaje, introduciendo los sistemas de extracción de características, los sistemas no lineales basados en Kernels, los procesos de optimización o las técnicas de aprendizaje profundo, siempre desde una vertiente práctica tocando ejemplos de problemas reales.

Amunt

Se recomendable haber cursado las asignaturas de Inteligencia Artificial y Aprendizaje Computacional del grado en Ingeniería Informática. También es muy recomendable haber superado la asignatura de prácticas de programación o equivalente en algún programa de informática. Si bien la asignatura no está pensada para tener una alta carga de programación, se darán por sabidos los conceptos más básicos de algorísmica.

Amunt

Las competencias generales del Máster que se ponen de manifiesto en esta asignatura son:

  • Capacidad para proyectar, calcular y diseñar productos, procesos e instalaciones en todos los ámbitos de la ingeniería en informática.
  • Capacidad para el modelado matemático, cálculo y simulación en centros tecnológicos y de ingeniería de empresa, particularmente en tareas de investigación, desarrollo e innovación en todos los ámbitos relacionados con la ingeniería en informática
  • Capacidad para la aplicación de los conocimientos adquiridos y de solucionar problemas en entornos nuevos o poco conocidos dentro de contextos más amplios y multidisciplinares, siendo capaces de integrar estos conocimientos.
  • Poseer habilidades para el aprendizaje continuado, autodirigido y autónomo.
  • Capacidad para modelar, diseñar, definir la arquitectura, implantar, gestionar, operar, administrar y mantener aplicaciones, redes, sistemas, servicios y contenidos informáticos.
  • Capacidad por asegurar, gestionar, auditar y certificar la calidad de los desarrollos, procesos, sistemas, servicios, aplicaciones y productos informáticos.
  • Capacidad para comprender y poder aplicar conocimientos adelantados de computación de altas prestaciones y métodos numéricos o computacionales a problemas de ingeniería.



Las competencias específicas de esta asignatura son:

  • Entender que es el aprendizaje automático en el contexto de la Inteligencia Artificial.
  • Distinguir entre los diferentes tipos y métodos de aprendizaje.
  • Conocer los diferentes métodos de extracción de características sobre un conjunto de datos dado.
  • Conocer los diferentes paradigmas de clasificación y sus puntos fuertes y débiles.
  • Saber evaluar los algoritmos de clasificación y extraer conclusiones de su eficiencia, permitiendo seleccionar los más adecuados en cada caso.
  • Aplicar las técnicas de búsqueda a un caso concreto

 

Amunt

En esta asignatura los contenidos se han estructurado en dos módulos.

En el primer módulo se muestra una visión general del aprendizaje dentro de la Inteligencia Artificial. En principio se hace la distinción entre algoritmos dedicados a la agrupación (clustering) y recomendación de información, los algoritmos de extracción y selección de características, los algoritmos de clasificación, los procesos de optimización y las técnicas de aprendizaje profundo. La distinción entre aprendizaje supervisado y no supervisado es inherente a los capítulos de clustering y clasificación, aun cuando se presente también en el capítulo de extracción de características.

El segundo módulo, mucho más breve, está dedicado al aprendizaje del lenguaje Python. Se pretende introducir al estudiante en algunas (de las muchas) características que tiene este lenguaje, de cara a una mejor comprensión de los módulos de teoría, y poder realizar prácticas de forma autónoma.

A continuación se da el contenido detallado de cada uno de estos módulos.

1. Introducción a la Inteligencia Artificial (IA)

1.1. Neuronas y transistores

1.2. Breve historia de la IA

1.3. Ámbitos de aplicación


2. Recomanadores y agrupamientos

2.1. Métricas y medidas de similitud

2.1.1. Ejemplo de aplicación

2.1.2. Distancia euclídea

2.1.3. Correlación de Pearson

2.2. Sistemas recomanadores

2.2.1. Conceptos generales

2.2.2. La biblioteca Surprise

2.2.3. Vecinos más cercanos

2.2.4. Descomposición en valores singulares

2.2.5. Conclusiones

2.3. Algoritmos de agrupamiento (clustering)

2.3.1. Ejemplo de aplicación

2.3.2. Conceptos generales

2.3.3. Agrupamiento jerárquico. Dendrogramas

2.3.4. k-medios (k-means)

2.3.5. c-medios difuso (Fuzzy c-means)

2.3.6. Agrupamiento espectral (Spectral Clustering)

2.3.7. Recomanadores basados en modelos


3. Extracción y selección de atributos

3.1. Técnicas de factorización matricial

3.1.1. Descomposición en valores singulares (SVD)

3.1.2. Análisis de componentes principales (PCA)

3.1.3. Análisis de componentes independientes (ICA)

3.1.4. Factorització de matrices no-negativas (NMF)

3.2. Discriminación de datos en clases

3.2.1. Análisis de discriminantes lineales (LDA)

3.3. Visualización de datos mutidimensionales

3.3.1. Escalamiento multidimensional (MDS)


4. Clasificación

4.1. Introducción

4.1.1. Categorización de textos

4.1.2. Aprendizaje automático para clasificación

4.1.3. Tipología de algoritmos para clasificación

4.2. Métodos basados en modelos probabilísticos

4.2.1. Naïve Bayes

4.2.2. Máxima Entropía

4.3. Métodos basados en distancias

4.3.1. KNN

4.3.2. Clasificador lineal basado en distancias

4.3.3. Clustering dentro de clases

4.4. Métodos basados en reglas

4.4.1. Árboles de decisión

4.4.2. AdaBoost

4.5. Clasificadores lineales y métodos basados en Kernels

4.5.1. Clasificador lineal basado en producto escalar

4.5.2. Clasificador lineal con Kernel

4.5.3. Kernels para tratamiento de textos

4.5.4. Máquinas de vectores de soporte

4.6. Protocolos de test

4.6.1. Protocolos de validación

4.6.2. Medidas de evaluación

4.6.3. Tests estadísticos

4.6.4. Comparativa de clasificadores


5. Optimización.

5.1. Introducción

5.1.1. Tipología de los métodos de optimización

5.1.2. Características de los metaheurísticos de optimización

5.2. Optimización mediante multiplicadores de Lagrange

5.2.1. Descripción del método

5.2.2. Ejemplo de aplicación

5.2.3. Análisis del método

5.3. Descenso de gradientes

5.3.1. Presentación de la idea

5.3.2. Ejemplo de aplicación

5.3.3. Cuestiones adicionales

5.4. Salto de valles

5.4.1. Descripción del método

5.4.2. Ejemplo de aplicación

5.4.3. Análisis del método

5.5. Algoritmos genéticos

5.5.1. Descripción del método

5.5.2. Ampliaciones y mejoras

5.5.3. Ejemplos de aplicación

5.5.4. Recopilación de estadísticas

5.5.5. Problemas combinatorios

5.5.6. Problemas con restricciones

5.5.7. Análisis del método

5.6. Colonias de hormigas

5.6.1. Descripción del método

5.6.2. Ejemplo de aplicación

5.6.3. Análisis del método

5.6.4. Código fuente en Python

5.7. Optimización con enjambres de partículas

5.7.1. Descripción del método

5.7.2. Ejemplo de aplicación

5.7.3. Análisis del método

5.7.4. Código fuente en Python

5.8. Búsqueda tabú.

5.8.1. Descripción del método

5.8.2. Ejemplo de aplicación

5.8.3. Análisis del método

5.8.4. Código fuente en Python

 

6. Aprendizaje profundo

6.1. Introducción

6.1.1. Logros recientes

6.1.2. Causas

6.1.3. Arquitecturas

6.1.4. Bibliotecas

6.2. Redes neuronales

6.2.1. Componentes de una red neuronal

6.2.2. Funciones de activación

6.2.3. Entrenamiento de una red neuronal

6.2.4. Problemes de aprendizaje

6.2.5. Algunas soluciones

6.2.6. Aprendizaje profundo

6.3. Perceptrón multicapa

6.3.1. Idea

6.3.2. Ejemplo de MLP

6.4. Clasificación de imágenes con redes neuronales convolucionales (CNN)

6.4.1. Implementación de las CNN en Python utilizando las librerías Keras

6.5. Redes recurrentes

6.5.1. Idea

6.5.2. Programación

6.6. Otras arquitecturas

6.6.1. Autocodificadores

6.6.2. Aprendizaje por refuerzo

6.6.3. Sistemas generadores

 

7. Anexo: conceptos básicos de estadística

Amunt

Classification Framework with Naïve Bayes Audiovisual
MovieLens-data Web
Código fuente. Ejemplos materiales Web
Inteligencia artificial avanzada PDF

Amunt

La asignatura se compone de los módulos didácticos en apoyo papel, que contienen ejercicios de autoevaluación con soluciones y actividades diversas.

Este material se complementará con aquel que los consultores pongan al alcance de los estudiantes al aula de la asignatura.

Se prevé también la creación de una aula de laboratorio para resolver las dudas correspondientes al lenguaje Python.

Amunt

La Normativa académica de la UOC dispone que el proceso de evaluación se fundamenta en el trabajo personal del estudiante y presupone la autenticidad de la autoría y la originalidad de los ejercicios realizados.

La falta de originalidad en la autoría o el mal uso de las condiciones en las que se hace la evaluación de la asignatura es una infracción que puede tener consecuencias académicas graves.

Se calificará al estudiante con un suspenso (D/0) si se detecta falta de originalidad en la autoría de alguna actividad evaluable (práctica, prueba de evaluación continua (PEC) o final (PEF), o la que se defina en el plan docente), ya sea porque ha utilizado material o dispositivos no autorizados, ya sea porque ha copiado de forma textual de internet, o ha copiado de apuntes, de materiales, manuales o artículos (sin la citación correspondiente) o de otro estudiante, o por cualquier otra conducta irregular.

La calificación de suspenso (D/0) en la evaluación continua (EC) puede conllevar la obligación de hacer el examen presencial para superar la asignatura (si hay examen y si superarlo es suficiente para superar la asignatura según indique este plan docente).

Cuando esta mala conducta se produzca durante la realización de las pruebas de evaluación finales presenciales, el estudiante puede ser expulsado del aula, y el examinador hará constar todos los elementos y la información relativos al caso.

Además, esta conducta puede dar lugar a la incoación de un procedimiento disciplinario y la aplicación, si procede, de la sanción que corresponda.

La UOC habilitará los mecanismos que considere oportunos para velar por la calidad de sus titulaciones y garantizar la excelencia y la calidad de su modelo educativo.

Amunt

Esta asignatura sólo puede superarse a partir de la evaluación continua (EC), nota que se combina con una nota de prácticas (Pr) para obtener la nota final de la asignatura. No se prevé hacer ningún examen final o prueba de validación presencial. La fórmula de acreditación de la asignatura es la siguiente: EC + Pr.

 
 

Amunt