Nuestra metodología de aprendizaje se basa en el concepto:
APRENDER HACIENDO
PROGRAMA FORMATIVO:
Módulo 01: Modelización para el Aprendizaje Automático | Machine Learning
Lenguaje de programación: Python (no necesitarás conocimientos previos, aprenderás haciendo).
Tecnología aplicada en este módulo: Scikit-Learn (SKL).
Alcance: dominarás, de modo avanzado y progresivo, las técnicas de Machine Learning que te permitán conseguir modelos con la precisión máxima.
Atendiendo a la progresividad del curso, comenzaremos por definir y desarrollar modelos en los que se prescinde del etiquetado o variable dependiente, centrándonos en las técnicas de Clustering y Reducción Dimensional.
Para ello, aprenderemos a implementar las principales técnicas y tecnologías que nos permitan alcanzar el objetivo planeado, referente a la modelización no-supervisada:
- SKL-K Means.
- SKL-PCA (Principal Components Analysis).
- SKL-PLS (Partial Least Squares regression).
Clustering:
Desarrollaremos las principales técnicas de agrupamiento para identificar conjuntos de casos con diferencias significativas entre sí, lo que te permitirá identificar los patrones que determinan la pertenencia de cada uno de los casos a cada grupo.
Reducción Dimensional
Aprenderás las técnicas para reducir las dimensiones de los datos de partida, centradas éstas en las variables independientes, lo que permitirá mantener o mejorar sus propiedades matemáticas de cara a la posterior modelización.
Una vez alcances soltura en la modelización no-supervisada, pasaremos a definir e implementar modelos en los que se dispone de la variable dependiente o etiquetado, guiándote en la modelización orientada a predicciones o clasificaciones.
Siendo las tecnologías que aprenderás para este tipo de modelización, de las que implementaremos de modo principal:
- SKL-Linear Models.
- SKL-Linear SVM (Máquinas de Vector Soporte).
- SKL-Decission Tree (Árboles de Clasificación).
- SKL-Random Forest (Ensemble).
- SKL-MLP NN (Redes Neuronales).
Regresión
Desarrollarás modelos de Machine Learning para realizar predicciones a futuro de eventos basados en patrones implícitos en un conjunto de datos.
Clasificación
E implementarás modelos de Machine Learning para identificar patrones en el conjunto de datos a estudio que te permitirán inferir clasificaciones de casos con características similares.
Aprenderás técnicas enfocadas a la mejora de la calidad de los datos a tratar, como base fundamental para mejorar la precisión y calidad de los modelos.
Partiremos para ello de las siguientes tecnologías:
- NumPy.
- Pandas.
- SKL-Preprocessing & Normatization.
- SKL-PipeLine (Estructuración avanzada de flujos de datos).
Depurado & Transformación
Comenzaremos por la limpieza de datos de partida, centrada en la eliminación o sustitución de datos faltantes y atípicos y su transformación dimensional, al objeto de conseguir la homogeneización de los datos como base fundamental para el cálculo.
Formación de Tuberías (PipeLines)
Aprenderás a implementar técnicas y tecnologías avanzadas para la definición de Data-Pipelines para generar flujos de datos estructurados que te facilitarán la modelización posterior.
Selección del Modelo Óptimo (GridSearchCV)
En este apartado, que cierra la fase del Machine Learning, aprenderás a definir e implementar técnicas avanzadas de optimización, al objeto de que encuentres el mejor modelo posible, de entre cientos, miles o millones de modelos (Big Data), que minimice el error matemático y, por ende, maximice su precisión.
Dominando las siguientes tecnologías implicadas:
- SKL-Grid Search Cross-Validation (Técnicas de optimización Avanzada).
Tuneado de Hiper-parámetros
Aprenderás el modo de implementar técnicas avanzadas de combinatoria haciendo un barrido de hipótesis, entre cientos, miles o millones de combinaciones hasta alcanzar el óptimo.
Definir el Operador & Parametrización del Modelo Óptimo
Una vez asimilado todo este conocimiento, podrás determinar, mediante cómputo avanzado, cual es la estructura matemática que nos garantice el modelo óptimo para su posterior puesta en producción, es decir, sabrás cual es la mejor librería (tecnología) y cuales son los hiper-parámetros que te darán el mejor resultado posible para la precisión del modelo.
Consolidación de la primera fase del programa formativo | Machine Learning
Al finalizar esta fase habrás adquirido el conocimiento y dominio en profundidad de las técnicas y tecnologías necesarias para definir y desarrollar modelos avanzados de Machine Learning (Aprendizaje Automático), enfocadas a la selección del modelo óptimo, para su posterior puesta en producción con la máxima precisión y calidad, pudiendo realizar modelos de Clustering, Predicciones y Clasificaciones a un nivel profesional.
Módulo 02: Modelización para el Aprendizaje Profundo | Deep Learning
Lenguaje de programación: Python (continuaremos con el mismo procedimiento que en el módulo anterior, basado en aprender haciendo).
Tecnología aplicada en este módulo: TensorFlow + Keras
Alcance: siguiendo con la progresividad del curso, te introducirás, hasta alcanzar un nivel avanzado y profesional, en el desarrollo de modelos de Deep Learning y conocerás en que superpuestos deben éstos aplicarse en relación a los modelos de Machine Learning.
Perceptrón Multicapa (MLP Neural Network)
En esta fase del curso, realizarás la transición entre las tecnologías que soportan la modelización en Machine Learning hacia las tecnologías que dan soporte al Aprendizaje Profundo o Deep Learning. Por tanto, comenzaremos por modelizar en MLP, puesto que te servirá de puente entre la tecnología implementada en el módulo anterior y estas nuevas tecnologías en las que se sustenta el Deep Learning. De las que desarrollaremos en profundidad las siguientes:
- TensorFlow.
- Keras.
Pre-procesado
Si bien, realizarás los mismos procedimientos y aplicarás las mismas metodologías que en Machine Learning, en este caso, aprenderás a configurar el pre-procesado de datos orientado en Tensores, que es el tipo de ingesta que requieren tanto TensorFlow como Keras.
Modelización
Siguiendo con el proceso de transición planteado, aprenderás a replicar los conocimientos aprendidos en el módulo de Machine Learning a esta nueva tecnología, al objeto de poder desarrollar modelos complejos que requieran de un mayor cómputo y, por tanto, deban ser implementados orientados a desarrollar dicho cómputo en un clúster.
Redes Neuronales Convolucionales (CNN)
Una vez alcances la soltura necesaria para manejar las tecnologías de TensorFlow y Keras, trabajaras con CNN para los supuesto que mejor se ajusten a la parte del cerebro humano que desarrolla su parte visual. Profundizando en el desarrollo de modelos que apliquen las siguientes tecnologías:
- CNN (Convolutional Neural Network: TensorFlow + Keras).
- TCN (Temporal Convolutional Network (TCN): TensorFlow + Keras)
Pre-procesado
Nos centraremos en esta fase, en que aprendas a configurar los tensores de datos que requiere el proceso de ingesta de este tipo de redes neuronales, atendiendo a los casos particulares, tanto de las Redes Neuronales Convolucionales como de las de Convolución Temporal, respectivamente.
Modelización
Aquí pasarás a desarrollar modelos complejos mediante la configuración de las capas profundas que conforman este tipo de redes neuronales, como paso previo a los procesos de optimización de las mismas.
Redes Neuronales Recurrentes (RNN)
Posteriormente, utilizarás lo asimilado hasta este momento en aquellos supuestos en los que se requiera replicar, mediante el uso de redes neuronales, la parte del cerebro humano que permite el aprendizaje recurrente, basado en experiencias pasadas.
Para ello desarrollarás modelos de recurrencia soportados por las siguientes tecnologías:
- LSTM (Long Short-Term Memory Neural Network: TensorFlow + Keras).
- GRU (Gated Recurrent Unit Neural Network (GRU): TensorFlow + Keras).
Pre-procesado
En este caso particular, aprenderás a realizar el pre-procesado avanzado de datos estructurados a modo de series temporales, tanto para la configuración de Matrices como de Tensores.
Modelización
Del mismo modo que en las Redes Neuronales Convolucionales, pasarás a desarrollar modelos complejos y avanzados, mediante la configuración de las capas profundas, correspondiente a las Redes Neuronales Recurrentes, como paso previo al proceso de su optimización.
Selección del Modelo Óptimo (Keras Tuner)
A partir de todo el conjunto de los modelos que hayas definido y desarrollado en la configuración de las MLP, CNN y RNN, respectivamente, procederás a aprender las metodologías que permiten su optimización.
Para ello aprendieras a implementar en profundidad las librerías que, a este respecto, disponemos en Keras:
- Keras Tuner.
Tuneado de Hiper-parámetros
El desarrollo de los trabajos de forma progresiva con Keras Tuner, te permitirán realizar configuraciones complejas de la combinatoria de hiper-parámetros para conseguir el máximo nivel en la optimización de los modelos.
Definir la Estructura de la Red & Parametrización del Modelo Óptimo
Una vez alcanzado este punto, en lo que a desarrollo del curso se refiere, aprenderás a descubrir cual es la mejor estructura de las capas de las redes y cuál es la óptima configuración de parámetros que te permitan seleccionar, de entre cientos, miles o millones de modelos, el óptimo y, por ende, el de mayor precisión, es decir, con prestaciones a nivel profesional.
Consolidación de la segunda fase del programa formativo | Deep Learning
Al finalizar esta fase habrás asimilado el conocimiento y dominio en profundidad de las técnicas y tecnologías necesarias para definir y desarrollar modelos avanzados de Deep Learning (Aprendizaje Profundo), adquiriendo las habilidades y conocimientos necesarios para encontrar el modelo óptimo, lo que te permitirá su puesta en producción con la máxima precisión y calidad, a un nivel profesional avanzado.
Módulo 03: Transfer Learning & Fine Tuning
Lenguaje de programación: Python (continuaremos con el mismo procedimiento que en los módulos anteriores: aprender haciendo).
Tecnología aplicada en este módulo: TensorFlow + Keras (aplicaciones)
Alcance: desarrollaras las aplicaciones de Keras, al objeto de utilizar arquitecturas de red predeterminadas para utilizar sus pesos, ya reentrenados, en tus propios modelos.
En este proceso aprenderás a tomar características aprendidas en una red neuronal y aprovecharlas para resolver un modelo de Deep Learning similar. Por ejemplo, las características de un modelo que ha aprendido para realizar una clasificación específica pueden ser útiles para desarrollar un modelo en una clasificación similar.
Por tanto, profundizarás en el conocimiento de la estructura interna de redes neuronales ya entrenadas para aprender a adaptarlas a tus modelos, de entre las que trabajaremos principalmente, entre otras:
- Resnet50
- SGG16 & SGG19.
- Mobilenet.
- …
Pre-procesado
Utilizarás las metodologías aprendidas en el módulo de Deep Learning para configurar los tensores con la estructura adecuada para este tipo de redes.
Modelización
Como complemento a la modelización en Deep Learning, aprenderás a desactivar las capas de salida de este tipo de redes neuronales y a completar su configuración para adaptarlas a la estructura de tu modelización.
Una vez alcances la soltura necesaria para realizar la transferencia del conocimiento que aportan estas redes neuronales, te involucrarás en la modificación de su estructura interna para realizar aquellas readaptaciones que te permitan mejorar el rendimiento de tu modelo.
Pre-procesado
Nos centraremos en esta fase, en que aprendas a desactivar capas internas de la red para sustituirlas por nuevas estructuras que mejor se adapten a tu objetivo.
Modelización
Llegados a este punto, pasarás a desarrollar modelos complejos, mediante la reestructuración de las capas profundas que conforman este tipo de redes neuronales, como paso previo para la optimización del modelo al que quieres transferir el conocimiento.
Consolidación de la tercera fase del programa formativo | Transfer Learning & Fine Tuning
Al finalizar esta tercera fase, habrás adquirido las habilidades necesarias para transferir el conocimiento de redes neuronales, entrenadas con anterioridad por parte de institutos de investigación, instituciones o corporaciones, a nivel global, hacia los modelos de Deep Learning que pretendas desarrollar en el futuro.
Módulo 04: Tratamiento de Datos no-estructurados
Lenguaje de programación: Python (aprender haciendo).
Tecnología aplicada en este módulo: Librerías específicas para el tratamiento de datos procedentes de imagen, sonido, texto y series temporales.
Alcance: utilizaremos un conjunto de librerías de Python para transformar fuentes de información no estructurada en matrices de datos y tensores.
El éxito en la precisión de los modelos no depende únicamente de las técnicas de modelización, también está relacionado, en gran medida, con el pre-procesado previo de los datos. Siendo habitual que se presenten situaciones en las que los datos de partida estén no-estructurados y requieran de un tratamiento avanzado específico.
Para ello he creado este módulo, al objeto de que puedas conocer e implementar las principales técnicas que te permitan transformar los siguientes tipos de información:
- Texto (tokenización)
- Imagen (foto & vídeo)
- Audio (frecuencias)
- Series Temporales (financieras, meteorológicas, etc.)
Realizarás un proceso de tokenización para generar matrices de datos o tensores que te permitan implementar modelos de Machine Learning o Deep Learning.
Utilizaras librerías específicas para imagen, tales como OpenCV y Media-Pipe, para configurar matrices o tensores, atendiendo a las siguientes casuísticas:
Pixelado
Realizarás la transformación de las imágenes (frames) a set de datos a través del tratamiento de los canales de color de dichas imágenes.
Máscaras
Llevarás a cabo el enmascarado de rostros, cuerpos o manos, para conseguir un set de puntos, en coordenadas definidas, que te permita realizar el proceso de transformación en matriz o tensor.
A partir de los espectrogramas del audio conseguirás la transformación adecuada que te permita obtener los tensores o matrices a utilizar en el modelado.
Aprenderás a realizar funciones de Python que te permitan configurar tensores o matrices con estructura de los datos tanto en serie como en paralelo.
Consolidación de la cuarta fase del programa formativo | Transfer Learning & Fine Tuning
En este módulo, realizarás un proceso de transformación avanzada de información no-estructurada (imagen, vídeo, texto, audio o series temporales) para generar matrices de datos o tensores que te permitan implementar modelos de Machine Learning o Deep Learning, al mismo nivel que el alcanzado en los módulos anteriores. Y, por otra parte, como paso previo a estas transformaciones de datos, complementarás este aprendizaje con la implementación de técnicas de scraping para conseguir información de páginas web.
Módulo 05: Puesta en producción de los modelos
Lenguaje de programación: Python (aprender haciendo).
Tecnología aplicada en este módulo: Microsoft Azure & Databricks.
Alcance: implementaremos scripts de Python en Databricks con clústeres de Azure para poner modelos de Machine Learning & Deep Learning en producción en la nube
Como plataforma de cómputo en la nube nos centraremos en Microsoft Azure para la programación de la puesta en producción de modelos. Aprenderás a utilizar los servicios de esta plataforma relacionados con las necesidades del Machine Learning, centrándote en dos aspectos fundamentales en este ámbito:
Apertura de cuenta
Para aprender a controlar el presupuesto y la gestión del pago por uso de los servicios contratados.
Configuración de los servicios
Conocerás que servicios son los necesarios, relacionados con el ML, para llevar a cabo una modelización y programación en Databricks y aprenderás a configurarlos.
Una vez domines la gestión de los servicios de ML en Azure, aprenderás a trabajar con la plataforma Databricks, desde la programación hasta la puesta en producción de los modelos, desarrollando las siguientes fases:
Parametrización de clústere
Conocerás el modo de configuración de clústeres de Azure en Databricks, tanto en estructurados con CPUs como en GPUs (en el caso de trabajar con TensorFlow & Keras).
Implementación del código
En este paso, procederás a implementar los scripts de los modelos aprendidos durante el curso en Databricks y a configurar el entrono de librerías necesarias para su ejecución.
Parametrización de Jobs
Una vez configurados los scripts de los modelos procederás a programar su ejecución en la nube, asignando el clúster más adecuado y, por ende, definiendo el presupuesto necesario.
Consolidación de la quinta fase del programa formativo | Cloud computing
Una vez finalizado esta fase del curso, tendrás la capacidad de poner modelos en producción en la nube a un nivel profesional, tanto por la gestión de la infraestructura Azure y el dominio de la programación en Databricks como por los modelos implementados en sí mismos, ya que serán los mismos modelos aprendidos con anterioridad los cuales son, a su vez, de un nivel profesional.
Examen DP-100: Diseño e implementación de una solución de ciencia de datos en Azure
Finalizado este módulo, también tendrás la posibilidad, de modo opcional, de presentarte al examen DP-100 de Azure, que exige la preparación del DP-100T01: Diseño e implementación de una solución de ciencia de datos en Azure, más la preparación del DP-090T00: Implementación de una solución de aprendizaje automático con Microsoft Azure Databricks.
Módulo 06: Modelos en la web (APPs)
Lenguaje de programación: Python, HTML y CSS (seguiremos con nuestro modelo de aprender haciendo, incorporando, en este caso, los conocimientos de HTML y CSS para hacer la interface básica de una app que permita ejecutar los modelos).
Tecnología aplicada en este módulo: TensorFlow + Keras & Flask.
Alcance: Diseño y desarrollo de una aplicación web que permita ejecutar un modelo de Machine Learning o Deep Learning para hacer predicciones.
Aprenderás a programar con la librería Flask de Python aplicaciones que se ejecutan en entornos HTML & CSS, para realizar una web que permita la interacción con el usuario; aportando unos datos de entrada, ejecutando un modelo y mostrando la solución.
Cuadro de Mando (interface HTML & CSS)
Con HTML & CSS definirás un Cuadro de Mando más centrado en la funcionalidad que en el diseño (aunque esto último queda a tu criterio, por si quieres profundizar en el diseño también), con una estructura suficiente para realizar una interacción con el usuario, tal y como se hace en la práctica con las aplicaciones.
Programación (ingesta, modelización y solución)
En esta fase, implementarás el código de Python, propiamente dicho, para que la aplicación integre y ejecute el modelo de Machine Learning o Deep Learning que sea de tu interés, atendiendo a la ingesta que proviene de la interface y proporcionando de vuelta la solución.
Consolidación de la sexta fase del programa formativo | Aplicación web
Con la realización de esta Aplicación web habrás consolidado todos los conocimientos adquiridos durante el curso, permitiéndote comprender, desde el análisis y la modelización, cuáles son las necesidades del usuario a la hora de interaccionar con los cuadros de mando, lo que te aportará un plus de profesionalidad puesto que comprenderás todo el proceso de Big Data Analytics, que va desde el tratamiento de los datos en bruto, pasando por su transformación y modelización, hasta la puesta en producción de los modelos que aportan la solución.
Caso Real
Si lo deseas podrás definir la Aplicación web utilizando un modelo de tu interés o de tu empresa, a modo de realización de un prototipo que puedas utilizar con posterioridad, puesto que seguimos con la premisa de aprender haciendo.
Ejemplos, a modo orientativo, de casos práctico que puedes elegir como caso real para cerrar el programa formativo:
-
Financieros (predicciones, riesgos, fraude, …). -
Marketing (clientes, churn, precios, …). -
Detección de Anomalías. -
Medicina o Biología. -
Imagen (foto, vídeo, biometría, …). -
Frecuencias (audio, vibraciones, …). -
O, tu propia propuesta si es el caso
Principales tecnologías utilizadas durante la formación
Data Science Lead Instructor: José Luis Cubero
Como has podido observar, tras la lectura del temario, el curso Avanzado de Ciencia de Datos lo he diseñado para que los asistentes al mismo adquieran un nivel profesional real, que les permita trabajar como Científico de Datos desde el primer día tras la finalización del curso. Bajo la premisa de aprender haciendo, he orientado el curso hacia personas interesadas en adquirir los conocimientos y habilidades necesarios para ejercer esta profesión con un nivel alto y estrictamente profesional, pudiendo ser extensivo también a grupos de empresa, es decir, empresas que estén interesadas en formar un staff de profesionales orientado a desarrollar estas metodologías y tecnologías en su organización, tratando el curso como tal a modo de Mentoring.
Biografía del instructor
Este curso está dirigido a:
Personas interesadas en adquirir un nivel avanzado en Ciencias de Datos.
¿Te gustaría recibir más información acerca de este curso?
Ponte en contacto con nuestro equipo y recibe información detallada.
+34 963 694 964
info@nextraining.es
Solicita información
Fundae, financiación y descarga el folleto.
Formación privada para Empresas u Organizaciones
Esta formación está planteada para asistir los días programados, pudiendo enviar, evidentemente las empresas u organizaciones, personas de su plantilla para que asistan a la misma, también existe la posibilidad de que las empresas contraten esta formación para un grupo a partir de 6 profesionales adaptada a sus necesidades.
Se caracteriza por fijar un objetivo de formación, en función de las necesidades planteadas por la empresa, y adaptar el contenido de la formación al objetivo definido y al grupo de personas.
Algunos ejemplos de modalidad de Formación personalizada de Data Science
Adaptación de alguno o algunos de los módulos de la formación estándar a una necesidad concreta que nos plantee la empresa u organización.
Tras conocer el objetivo concreto de formación a alcanzar se realizará una oferta formativa en la que se fijará el alcance de los contenidos, calendario y presupuesto.
Formación completa adaptada al sector al que la empresa u organización pertenezca.
Se mantendrá el objetivo global de formación avanzada en Ciencia de Datos, pero se adaptarán los supuestos en los que se basa la formación a estructuras de datos relacionadas con el sector de actividad de la empresa u organización.
Conocido el alcance del proyecto formativo, se determinará el número de asistentes y se fijará el calendario y el presupuesto formativo.
Estratégico para una empresa u organización determinada.
Este servicio es para empresas u organizaciones que necesiten definir e implementar una estrategia de Inteligencia Artificial completa.
Atendiendo al planteamiento de sus objetivos, en cuanto a modelización se refiere, se fijará una estrategia formativa que permita formar a un grupo de profesionales, los cuales desarrollarán toda su formación llevando a cabo la modelización planteada y con los datos que la propia empresa u organización aporte. De este modo, el grupo de profesionales a formar irá creciendo en conocimientos de Ciencia de Datos, conforme la estrategia de la empresa u organización vaya implementándose, siendo la labor del instructor la un Mentor propiamente dicha.
En primer lugar, se presupuestará y se llevará a cabo un diagnóstico para determinar el alcance de la modelización necesaria para cumplir con los objetivos planteados por la empresa u organización.
Posteriormente, se realizará una propuesta formativa, que permita implementar los modelos, definidos en el diagnóstico, conforme aprenden los profesionales propuestos, de acuerdo a un calendario formativo y se fijará un presupuesto.