La asignatura se estructura en dos partes diferenciadas: el estudio de la ingeniería del software dirigida por los datos y el estudio de aspectos relacionados con la privacidad y seguridad de los datos.
1. Ingeniería del Software. La disponibilidad de grandes volúmenes de datos provenientes tanto del desarrollo de sistemas software como de su utilización posibilita su utilización en diversas etapas y actividades de la ingeniería del software y, incluso yendo más allá, define una nueva aproximación que considera los datos como la piedra angular del ciclo de vida del software. La primera parte de la asignatura presenta esta nueva visión de la ingeniería del software y profundiza en las prácticas y herramientas de ingeniería de software emergentes con el fin de automatizar la construcción de componentes habilitados para ML, y el ciclo de vida de los componentes de ML de extremo a extremo, desde la creación de modelos hasta la implementación de producción.
2. Privacidad y seguridad de los datos. Las técnicas de análisis de datos pueden ayudar a obtener información para anticiparse a varios problemas, dar a conocer su fuente y ayudar a implementar soluciones, en contextos tan variados como competitividad empresarial, marketing, relaciones sociales, transporte, salud, educación y política. Sin embargo, a pesar de que el análisis de datos es extremadamente valioso, también tienen un inconveniente crucial: invaden cada vez más la privacidad de las personas sobre las que se recopilan datos. La segunda parte de la asignatura presenta conceptos básicos de privacidad de la información y profundiza en las principales tecnologías y métricas de privacidad, así como en los algoritmos de anonimización utilizados para evitar cualquier divulgación de información sensible de los individuos
Profesorado
Responsable
Silverio Juan Martínez Fernández (
)
Otros
Esteve Pallares Segarra (
)
Javier Parra Arnau (
)
Jordi Forne Muñoz (
)
Santiago Del Rey Juarez (
)
Horas semanales
Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6
Competencias
Competencias Técnicas
Competencias técnicas
CE1 - Utilizar con destreza los conceptos y métodos matemáticos que subyacen los problemas de la ciencia y la ingeniería de los datos.
CE2 - Ser capaz de programar soluciones a problemas de ingeniería: Diseñar soluciones algorítmicas eficientes a un problema computacional dado, implementarlas en forma de Programa robusto, estructurado y mantenible, y comprobar la validez de la solución.
CE3 - Analizar fenómenos complejos mediante la probabilidad y estadística, y plantear modelos de estos tipos en situaciones concretas. Formular y resolver problemas de optimización matemática.
CE7 - Demostrar conocimiento y capacidad de aplicación de las herramientas necesarias para el almacenaje, el procesamiento y el acceso a los datos.
CE8 - Capacidad de elegir y emplear técnicas de modelización estadística y análisis de datos, evaluando la calidad de los modelos, validándolos e interpretándolos.
Competencias Transversales
Transversales
CT4 [Avaluable] - Trabajo en equipo. Ser capaz de trabajar como miembro de un equipo interdisciplinar, ya sea como un miembro más o realizando tareas de dirección, con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.
Básicas
CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
CB3 - Que los estudiantes tengan la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
CB5 - Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía
Competencias Técnicas Genéricas
Genéricas
CG1 - Concebir sistemas computacionales que integren datos de procedencias y formas muy diversas, creen con ellos modelos matemáticos, razonen sobre dichos modelos y actúen en consecuencia, aprendiendo de la experiencia.
CG2 - Elegir y aplicar los métodos y técnicas más adecuados a un problema definido por datos que representen un reto por su volumen, velocidad, variedad o heterogeneidad, incluidos métodos informáticos, matemáticos, estadísticos y de procesado de la señal.
CG4 - Identificar oportunidades para aplicaciones innovadoras orientadas a datos en entornos tecnológicos en continua evolución.
Objetivos
Interpretar los conceptos básicos de la Ingeniería del Software para sistemas ML (machine learning), especialmente en relación al uso y explotación de prácticas MLOps.
Competencias relacionadas:
CG1,
CB2,
Aplicar y analizar buenas prácticas de ingeniería del software referentes a proyectos de ciencias de datos y aprendizaje automático
Competencias relacionadas:
CE1,
CE2,
CT4,
CG1,
CG4,
CB2,
CB5,
Aplicar y analizar las prácticas de MLOps para construir modelos de ML, fomentando la reproducibilidad y la garantía de calidad.
Competencias relacionadas:
CE1,
CE2,
CE3,
CE7,
CT4,
CG1,
CG4,
CB2,
CB5,
Aplicar y analizar las prácticas de MLOps para implementar modelos de ML, fomentando el desarrollo de APIs.
Competencias relacionadas:
CE1,
CE2,
CE7,
CE8,
CG1,
CG2,
CB2,
CB5,
Conocer los riesgos de privacidad asociados a la navegación y en la publicación de datos. Profundizar en las diferentes métricas de privacidad y su aplicación en diferentes escenarios.
Competencias relacionadas:
CE1,
CE3,
CE8,
CT4,
CG2,
CB3,
CB5,
Conocer los principales algoritmos de anonimización de bases de datos estadísticos.
Competencias relacionadas:
CE1,
CE2,
CE3,
CE8,
CT4,
CG1,
CG2,
CG4,
CB2,
CB3,
CB5,
Evaluar el compromiso entre privacidad y usabilidad de los datos.
Competencias relacionadas:
CE1,
CE3,
CE8,
CT4,
CG1,
CG4,
CB2,
CB3,
CB5,
Conocer los riesgos de privacidad en las comunicaciones y los sistemas de comunicación anónimas.
Competencias relacionadas:
CE1,
CE3,
CE8,
CG1,
CG4,
CB2,
CB5,
Contenidos
Introducción a la Ingeniería del Software
Primero, se presenta el concepto tradicional de ingeniería del software. Después, se analiza el impacto de la disponibilidad de datos sobre este concepto tradicional. Se muestra el ciclo de vida de software resultante al considerar datos. Motivación de la necesidad de ingeniería de software para sistemas ML. Introducción a MLOps y conceptos clave. Ingeniería de requisitos para ML.
Buenas prácticas de ingeniería del software referentes a proyectos de ciencias de datos y aprendizaje automático
La complejidad y diversidad de los proyectos de ciencia de datos y los sistemas basados en aprendizaje automático requieren técnicas de ingeniería para garantizar que se construyan de una manera sólida y preparada para el futuro. En este capítulo abordamos buenas prácticas de ingeniería de software para proyectos de ciencia de datos, y software con componentes de aprendizaje automático.
Prácticas de MLOps para construir modelos de ML y gestionar la calidad del software y de su proceso de desarrollo
La complejidad y diversidad de los proyectos de ciencia de datos y los sistemas de ML exigen técnicas de ingeniería para garantizar que se construyan de manera sólida y preparada para el futuro. En este capítulo, abordamos las mejores prácticas de ingeniería de software para software de proyectos de ciencia de datos, incluidos los componentes de ML: sistemas de control de versiones; seguimiento y reproducibilidad de la canalización de ML; medición de software para ML; garantía de calidad para ML.
Prácticas de MLOps para implementar modelos de ML
La complejidad y diversidad de los sistemas de ML requieren técnicas de ingeniería para garantizar que se implementen de manera sólida y lista para la producción. En este capítulo, abordamos las mejores prácticas de ingeniería de software para componentes de ML: arquitectura de software para ML; implementar modelos de ML; API para ML.
Introducción a la privacidad y seguridad de los datos
Motivación. Definición de conceptos básicos. Atacantes y partes de confianza. Métricas de privacidad.
Algoritmos de anonimización de datos
Control de revelación estadística. Medida del riesgo de revelación. Algoritmos de microagregació de datos. Medida del compromiso privacidad-utilidad. Casos de estudio.
Privacidad en sistemas de información personalizados
Perfiles de usuario: medida del riesgo de privacidad. Tecnologías de privacidad.
Seguridad y privacidad en las comunicaciones
Algoritmos criptográficos. Autenticación y gestión de claves. Sistemas de comunicación anónimos.
Actividades
ActividadActo evaluativo
Estudio de conceptos básicos de Ingeniería de Software para sistemas ML (MLOps)
Desarrollo práctico de un caso de estudio de prácticas MLOps en el contexto de sistemas basados en ML
El estudiante desarrollará progresivamente una práctica que permita ejercitar los conceptos básicos introducidos en la parte de teoría. Se desarrollará en equipos de 4-5 estudiantes. El software resultante, debidamente documentado, se subirá a un repositorio de código. El equipo presentará un informe, escrito en inglés, resumiendo los aspectos principales de la práctica, por ejemplo, el proceso de construcción de un componente ML de un sistema basado en ML, y una evaluación de la precisión de los modelos y algoritmos empleados. Objetivos:234 Contenidos:
Primer examen parcial: parte de Ingeniería del Software (PARC1)
Evaluación de la primera parte de la asignatura Objetivos:1234 Semana:
7
Teoría
1.5h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5.5h
Examen Final (EXF)
Este examen evalúa las dos partes de la asignatura. Es obligado para los estudiantes que hayan suspendido alguna de las dos pruebas parciales. El resto de estudiantes también se puede presentar en caso de querer mejorar nota Objetivos:15234678 Semana:
15 (Fuera de horario lectivo)
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h
Segundo examen parcial: parte de Privacidad y Seguridad de datos (PARC2)
Evaluación de la segunda parte de la asignatura Objetivos:5678 Semana:
14
Teoría
1.5h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5.5h
Estudio de conceptos introductorios de privacidad y seguridad de los datos
Estudio de mecanismos y tecnologías para seguridad y privacidad de las comunicaciones
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h
Metodología docente
Los contenidos teóricos de la asignatura se imparten en las clases de teoría. Estas clases se complementan con ejemplos prácticos y problemas que los estudiantes deben resolver en las horas de Aprendizaje Autónomo.
En las sesiones de laboratorio se consolidan los conocimientos adquiridos en las clases de teoría mediante la resolución de problemas y desarrollo de prácticas relacionados con los contenidos teóricos. Durante las clases de laboratorio, el profesor irá introduciendo nuevas técnicas y dejará una parte importante de la clase para que los estudiantes trabajen en los ejercicios propuestos.
Método de evaluación
La evaluación se estructura en función de las dos partes de la asignatura: ingeniería del software (PART1) y privacidad de los datos (PART2).
Por la primera parte, la nota se calcula ponderando la nota de un examen teórico (peso 40%) con la nota de las prácticas de esta parte de la asignatura (peso 60%)
PART1 = 40% PARC1 + 60% LABO1 * FactIndivLABO1
- PARC1: Examen al final del primer bloque de la asignatura
- LABO1: Entrega de práctica al final del primer bloque de la asignatura
- FactIndivLABO1: El factor individual FactIndiv es un factor multiplicativo entre 0.8 y 1.2 (e igualmente, no puede hacer crecer la nota final LABO1 por encima de 10). Este factor se obtiene a partir de la evaluación que hace el profesor sobre la participación del estudiante en la entrega y de la evaluación que hacen el resto de compañeros del grupo sobre la participación del estudiante en la entrega. En casos realmente excepcionales, FactIndiv puede ser menor que 0.8 para aquellos estudiantes con muy baja dedicación al proyecto a lo largo de todo el curso.
Por la segunda parte, la nota se calcula ponderando la nota de un examen teórico (peso 50%) con la nota de las prácticas de esta parte de la asignatura (peso 50%)
PART2 = 50% PARC2 + 50% LABO2
- PARC2: Examen al final del segundo bloque de la asignatura
- LABO2: Entrega de prácticas del segundo bloque de la asignatura
La nota final de la asignatura, NOTA-FIN, se calcula como la media aritmética de las dos partes de la asignatura:
NOTA-FIN = 50% PART1 + 50% PART2
En caso de no superar la asignatura en la evaluación por parciales, hay una evaluación por un examen final, donde los parciales liberan materia si están aprobados.
Bibliografía
Básica:
Building intelligent systems : a guide to machine learning engineering -
Hulten, G,
Apress, 2018. ISBN: 9781484234327