Pasar al contenido principal

Aprendizaje Automático

Créditos
6
Tipos
Complementaria de especialidad (Computación)
Requisitos
Departamento
CS
El objetivo del aprendizaje automático (machine learning en inglés) es el desarrollo de teorías, técnicas y algoritmos que permitan a un sistema modificar su comportamiento a través de la inferencia inductiva. Esta inferencia está basada en la observación de datos que representan información incompleta sobre un proceso o fenómeno estadístico. El aprendizaje automático es un punto de encuentro de diferentes disciplinas: la estadística, la inteligencia artificial, la programación y la optimización, entre otros.

La asignatura se divide en tres partes conceptuales, correspondientes a tres tipos de problemas fundamentales: el aprendizaje supervisado (regresión y clasificación), no supervisado (clustering) y por refuerzo. Las técnicas de modelado que se estudian incluyen los modelos probabilisticos, árboles de decision, las redes neuronales artificiales y las máquinas de soporte vectorial. Como objetivo paralelo está la familiarización con python, un potente entorno de computación basado en software libre, así como aprender a diseñar soluciones prácticas en problemas difíciles de resolver de manera directa.

Profesorado

Responsable

  • Javier Béjar Alonso (bejar@cs.upc.edu)

Otros

  • Joan Llop Palao (joan.llop@upc.edu)

Horas semanales

Teoría
2
Problemas
1
Laboratorio
1
Aprendizaje dirigido
0
Aprendizaje autónomo
6

Competencias

Comunicación eficaz oral y escrita

  • G4 [Avaluable] - Comunicar de forma oral y escrita con otras personas conocimientos, procedimientos, resultados e ideas. Participar en debates sobre temas propios de la actividad del ingeniero técnico en informática.
    • G4.3 - Comunicarse de manera clara y eficiente en presentaciones orales y escritas sobre temas complejos, adaptándose a la situación, al tipo de público y a los objetivos de la comunicación utilizando las estrategias y los medios adecuados. Analizar, valorar y responder adecuadamente a las preguntas del auditorio.
  • Especialidad de computación

  • CCO2 - Desarrollar de forma efectiva y eficiente los algoritmos y el software apropiados para resolver problemas complejos de computación.
    • CCO2.1 - Demostrar conocimiento de los fundamentos, los paradigmas y las técnicas propias de los sistemas inteligentes y analizar, diseñar y construir sistemas, servicios y aplicaciones informáticas que utilicen estas técnicas en cualquier ámbito de aplicación.
    • CCO2.2 - Capacidad para adquirir, obtener, formalizar y representar el conocimiento humano de una forma computable para la resolución de problemas mediante un sistema informático en cualquier ámbito de aplicación, particularmente los relacionados con aspectos de computación, percepción y actuación en ambientes o entornos inteligentes.
    • CCO2.4 - Demostrar conocimiento y desarrollar técnicas de aprendizaje computacional, y diseñar e implementar aplicaciones y sistemas que las utilicen, incluyendo las dedicadas a la extracción automática de información y conocimiento a partir de grandes volúmenes de datos.
  • Objetivos

    1. Formular el problema del aprendizaje automático a partir de datos, y conocer los tipos de tareas que se pueden dar
      Competencias relacionadas: CCO2.1, CCO2.2,
    2. Organizar el flujo de resolución de un problema del aprendizaje automático, analizando las posibles opciones y eligiendo las más adecuadas al problema
      Competencias relacionadas: CCO2.1, CCO2.4,
    3. Decidir, defender y criticar una solución para un problema de aprendizaje automático, argumentando los puntos fuertes y débiles del acercamiento
      Competencias relacionadas: G4.3, CCO2.1, CCO2.4,
    4. Contrastar, juzgar e interpretar un conjunto de resultados con posterioridad a una hipótesis sobre un problema del aprendizaje automático
      Competencias relacionadas: CCO2.1, CCO2.4,
    5. Conocer y saber aplicar técnicas de mínimos cuadrados para la resolución de problemas de aprendizaje supervisado
      Competencias relacionadas: CCO2.4,
    6. Conocer y saber aplicar técnicas de redes neuronales mono y multicapa para la resolución de problemas de aprendizaje supervisado
      Competencias relacionadas: CCO2.2, CCO2.4,
    7. Conocer y saber aplicar técnicas de máquinas de vectores soporte para la resolución de problemas de aprendizaje supervisados
      Competencias relacionadas: CCO2.4,
    8. Conocer y formular diferentes herramientas teóricas para el análisis, estudio y descripción de sistemas de aprendizaje automático
      Competencias relacionadas: CCO2.4,
    9. Conocer y saber aplicar las técnicas básicas para la resolución de problemas de aprendizaje no supervisado
      Competencias relacionadas: CCO2.1, CCO2.2, CCO2.4,
    10. Conocer y saber aplicar las técnicas básicas para la resolución de problemas de aprendizaje por refuerzo
      Competencias relacionadas: CCO2.1, CCO2.2, CCO2.4,
    11. Conocer las técnicas modernas más importantes del aprendizaje automático y del aprendizaje computacional
      Competencias relacionadas: CCO2.1,

    Contenidos

    1. Introducción al Aprendizaje Automático
      Información general y conceptos básicos. Descripción y planteamiento de los problemas atacados por el aprendizaje automático. Aprendizaje supervisado (regresión y clasificación), no supervisado (clustering) y por refuerzo. Ejemplos modernos de aplicación.
    2. Teoría del Aprendizaje automático supervisado
      Planteamiento del problema del Aprendizaje Automático supervisado. Problemas de clasificación y de regresión. Compromiso sesgo-varianza. Sobreajuste y infrajuste. Minimitación empírica del rieso/Log verosimilitud. Selección de modelos y selección de las variables del modelo.
    3. Visualización y reducción de dimensionalidad
      La maldición de la dimensionalidad. Métodos de selección de variables y transformación de datos. Métodos de reducción de dimensiones lineales (Análisis de componentes principales). Métodos de reducción de dimensiones no lineales (LLE, t-SNE)
    4. Aprendizaje automático supervisado (I): Métodos lineales
      Métodos lineales de aprendizaje por problemas de regresión y clasificación. Regresión lineal por mínimos cuadrados y regularización. Modelos lineales probabilísticos y discriminados por la clasificación: Análisis discriminante (LDA/QDA), modelos bayesianos, regresión logística. Interpretación de modelos lineales.
    5. Aprendizaje automático supervisado (III): Modelos no lineales
      Modelos no lineales para la regresión y clasificación. Modelos no paramétricos (k-vecinos cercanos). Redes neuronales y perceptrón multicapa, aprendizaje profundo. Máquinas de soporte vectorial y kernels. Árboles de decisión y combinación de clasificadores. Interpretación de modelos no lineales.
    6. Aprendizaje automático no supervisado
      Definición y planteamiento del aprendizaje automático no supervisado. Algoritmos de clustering: algoritmo EM y algoritmo k-means.
    7. Aprendizaje por refuerzo
      Descripción del aprendizaje por refuerzo. Procesos de Markov. Ecuaciones de Bellman. Valores y métodos de diferencias temporales. Aprendizaje Q y algoritmo Sarsa. Aplicaciones.

    Actividades

    Actividad Acto evaluativo


    Desarrollo del tema 1 de la asignatura

    El alumno recibe información general y conceptos básicos sobre el aprendizaje automático así como ejemplos modernos de aplicación.
    Objetivos: 11 1
    Contenidos:
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    6h

    Desarrollo del tema 2 de la asignatura

    El profesor imparte la teoría del aprendizaje automático no supervisado, focalizando en algoritmos de clustering.
    Objetivos: 2 1 9
    Contenidos:
    Teoría
    2h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Resolución de los problemas del tema 2 de la asignatura

    El profesor plantea hasta 3 problemas relacionados con el tema en curso y los alumnos se los preparan. En las clases de problemas, el profesor resuelve dificultades, da orientaciones hacia la solución total de los problemas y resuelve eventuales dudas generales. Los alumnos trabajan de nuevo los problemas y los entregan.
    Objetivos: 3 1 8
    Semana: 2
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Desarrollo del tema 3 de la asignatura

    El profesor plantea el problema del Aprendizaje Automático supervisado. Explica las diferencias entre problemas de clasificación y de regresión. El compromiso sesgo-varianza y las nociones de sobreajuste e infrajuste y otras herramientas teóricas para selección de modelos.
    Objetivos: 1 8
    Contenidos:
    Teoría
    6h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Resolución de los problemas del tema 3 de la asignatura

    El profesor plantea hasta 3 problemas relacionados con el tema en curso y los alumnos se los preparan. En las clases de problemas, el profesor resuelve dificultades, da orientaciones hacia la solución total de los problemas y resuelve eventuales dudas generales. Los alumnos trabajan de nuevo los problemas y los entregan.
    Objetivos: 3 4 5 6
    Semana: 5
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Desarrollo del tema 4 de la asignatura

    El profesor explica los fundamentos de los algoritmos de separación por hiperplanos: el algoritmo del perceptrón y la separación con margen máximo. Introduce las funciones de kernel y las máquinas de vectores soporte para clasificación. Introduce las redes neuronales para clasificación: perceptrón multicapa y red de funciones de base radial.
    Objetivos: 11 1 6 7
    Contenidos:
    Teoría
    5h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Resolución de los problemas del tema 4 de la asignatura

    El profesor plantea hasta 3 problemas relacionados con el tema en curso y los alumnos se los preparan. En las clases de problemas, el profesor resuelve dificultades, da orientaciones hacia la solución total de los problemas y resuelve eventuales dudas generales. Los alumnos trabajan de nuevo los problemas y los entregan.
    Objetivos: 3 4 2 6
    Semana: 8
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Desarrollo del tema 5 de la asignatura

    El profesor introduce los métodos para problemas de regresión: básicamente mínimos cuadrados (métodos analíticos y iterativos). Introduce funciones de error para regresión y adapta las redes neuronales multicapa a este caso. Introduce la Máquina de vectores soporte para regresión.
    Objetivos: 1 5 6 7
    Contenidos:
    Teoría
    5h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Resolución de los problemas del tema 5 de la asignatura

    El profesor plantea hasta 3 problemas relacionados con el tema en curso y los alumnos se los preparan. En las clases de problemas, el profesor resuelve dificultades, da orientaciones hacia la solución total de los problemas y resuelve eventuales dudas generales. Los alumnos trabajan de nuevo los problemas y los entregan.
    Objetivos: 3 4 7
    Semana: 10
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Desarrollo del tema 6 de la asignatura

    El profesor introduce las técnicas básicas de ensembles: Bagging, boosting y ECOC, y las explica a la luz del compromiso sesgo / varianza.
    Objetivos: 2 11 8
    Contenidos:
    Teoría
    4h
    Problemas
    0h
    Laboratorio
    2h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Resolución de los problemas del tema 6 de la asignatura

    El profesor plantea hasta 3 problemas relacionados con el tema en curso y los alumnos se los preparan. En las clases de problemas, el profesor resuelve dificultades, da orientaciones hacia la solución total de los problemas y resuelve eventuales dudas generales. Los alumnos trabajan de nuevo los problemas y los entregan.
    Objetivos: 3 4 2 9 10
    Semana: 12
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Desarrollo del tema 7 de la asignatura

    El profesor explica los fundamentos del aprendizaje por refuerzo y sus aplicaciones e introduce brevemente el aprendizaje transductivo.
    Objetivos: 11 10
    Contenidos:
    Teoría
    3h
    Problemas
    0h
    Laboratorio
    3h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    4h

    Resolución de los problemas del tema 7 de la asignatura

    El profesor plantea hasta 3 problemas relacionados con el tema en curso y los alumnos se los preparan. En las clases de problemas, el profesor resuelve dificultades, da orientaciones hacia la solución total de los problemas y resuelve eventuales dudas generales. Los alumnos trabajan de nuevo los problemas y los entregan.
    Objetivos: 3 4 11
    Semana: 14
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Examen final


    Objetivos: 5 6 7 8 9 10
    Semana: 15 (Fuera de horario lectivo)
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Entrega de la práctica


    Objetivos: 3 4 2 5 6 7 8 9 10
    Semana: 14
    Teoría
    0h
    Problemas
    0h
    Laboratorio
    0h
    Aprendizaje dirigido
    0h
    Aprendizaje autónomo
    0h

    Metodología docente

    El temario se expone en las clases de teoría de forma muy motivada (por qué se explica) y motivadora (por qué es importante conocerlo), complementado con muchos ejemplos. Las clases de teoría introducen todos los conocimientos, las técnicas, conceptos y resultados necesarios para alcanzar un nivel bien fundamentado y entendedor. Estos conceptos se ponen en práctica en las clases de problemas y en las de laboratorio.

    Con anterioridad a cada clase de problemas, el profesor plantea problemas relacionados con el tema en curso y los alumnos tienen tiempo para podérselos preparar en las horas de AA de trabajo personal. En las clases de problemas (de una hora de duración), la clase se dividirá entre varios grupitos en función del número de alumnos. El profesor resuelve dificultades, da orientaciones y eventualmente resuelve dudas, dando realimentación y haciendo que los alumnos avancen en la resolución. Se espera usar estrategias de aprendizaje colaborativo donde uno o más alumnos toman la responsabilidad de liderar el proceso de resolución de los problemas, argumentando entre todos. Los alumnos trabajan de nuevo los problemas y los entregan. Estas entregas de problemas son continuadas, uniformes en carga y evaluadas. También se evalúa mediante esta estrategia la competencia genérica de comunicación eficaz.

    En las clases de laboratorio se ponen en práctica los conceptos trabajados en las clases de teoría y algunos de los problemas ya trabajados en las clases de problemas, usando un entorno de programación muy adecuado a la asignatura, el lenguaje python.

    Las dos horas de clases de teoría se hacen semanalmente. Las dos horas de clases de laboratorio se hacen quincenalmente. La hora de problemas se hace semanalmente.

    Hay un trabajo práctico evaluable, que trabaja un problema real a elegir por el propio estudiante y que recoge e integra los conocimientos y las competencias de todo el curso. También se evalúa mediante trabajo práctico la competencia genérica de comunicación eficaz.

    Método de evaluación

    La asignatura puede aprobarse mediante la evaluación continua, de la siguiente manera:

    NProbs = Nota media de los problemas realizados durante el curso
    NPract = Nota del trabajo práctico
    NCom = Nota de la competencia transversal

    NF1 = 50% NProbs + 40% NPract + 10% NPart

    La asignatura puede también aprobarse mediante un examen final, de la siguiente manera:

    NExF = Nota obtenida en el examen final (periodo de exámenes)

    NF2 = 40% NExF + 20% NProbs + 30% NPract + 10% NCom

    En cualquier caso, la nota final es el máximo de las dos:

    NOTA FINAL = max (NF1, NF2)

    Bibliografía

    Básico

    Complementario

    Web links

    Capacidades previas

    Nociones elementales de probabilidad y estadística.
    Nociones básicas de álgebra lineal y análisis real
    Buen nivel de programación en un lenguaje de alto nivel