4. www.TerasoftEC.net
Luis Beltrán
• Microsoft MVP en AI y Developer Technologies
• Investigador en Tomás Bata University in Zlín
• Docente en Tecnológico Nacional de México en Celaya
luis@luisbeltran.mx
@darkicebeam
5. www.TerasoftEC.net
Machine Learning
Es un campo de la informática que dota a las computadoras de la
habilidad de aprender sin ser programadas de forma explícita.
Datos Etiquetados
Nuevos datos
Algoritmo de Machine
Learning
Modelo de ML Predicción
Entrenamiento
Predicción
6. www.TerasoftEC.net
Tipos de Aprendizaje
• Supervisado Aprendizaje a partir de un conjunto etiquetado de
datos de entrenamiento.
• No supervisado Descubre patrones en conjuntos de datos sin
etiquetas.
Regresión
Class A
Class B
Clasificación
Clustering
7. www.TerasoftEC.net
Deep Learning
• Es una área de Machine Learning que aprende representaciones de los datos.
• Es excepcionalmente efectivo en descubrir patrones.
• El aprendizaje de los algoritmos es a través de una jerarquía de multiples capas.
• Si suministras al sistema toneladas de información, comenzará a entender y responder de formas
útiles.
8. www.TerasoftEC.net
Características
de bajo nivel
Características
de nivel medio
Salida (exterior,
interior)
Características
de alto nivel
Clasificador
Deep Learning tiene un proceso automático de aprendizaje de
características multietapa integrado que aprende representaciones jerárquicas
enriquecidas.
10. www.TerasoftEC.net
Convolución
Imagen de Entrada Imagen Convolucionada
(Mapa de Características)
a b c d
e f g h
i j k l
m n o p
w1 w2
w3 w4
Filtro
h1 h2
ℎ1 = 𝑓 𝑎 ∗ 𝑤1 + 𝑏 ∗ 𝑤2 + 𝑒 ∗ 𝑤3 + 𝑓 ∗ 𝑤4
ℎ2 = 𝑓 𝑏 ∗ 𝑤1 + 𝑐 ∗ 𝑤2 + 𝑓 ∗ 𝑤3 + 𝑔 ∗ 𝑤4
11. www.TerasoftEC.net
Del nivel más bajo hacia características más
complejas
Imagen de Entrada
Capa 1
Mapa de Características
Capa 2
Mapa de Características
w1 w2
w3 w4
w5 w6
w7 w8
Filtro 1
Filtro 2
12. www.TerasoftEC.net
Pooling
Su función es la de progresivamente reducir el tamaño especial de la
representación a fin de reducir el número de parámetros y la cantidad
de procesamiento en una red neuronal.
• Max pooling
• Average pooling
1 3 5 3
4 2 3 1
3 1 1 3
0 1 0 4
MaxPool con filtro 2X2 y “paso” (stride) 2
Matriz de Entrada Matriz de Salida
4 5
3 4
15. www.TerasoftEC.net
Un framework open source y cross-platform de
machine learning para .NET
Windows Linux macOS
* No se requiere experiencia en ciencia de
datos para comenzar
* Utiliza tus habilidades y conocimientos en C#
o F# para incorporar Machine Learning en tus
aplicaciones
16. www.TerasoftEC.net
Paquetes Nuget ML.NET
• Para la mayoría de escenarios
• Microsoft.ML
• Escenarios de predicción y & detección
de anomalías:
• Microsoft.ML.TimeSeries
• Escenarios de recomendación:
• Microsoft.ML.Recommender
• Carga de base de datos
• System.Data.SqlClient
• Consumiendo modelos ONNX:
• Microsoft.ML.ONNXTransformer +
Microsoft.ML.ImageAnalytics
• Consumiendo modelos TensorFlow:
• Microsoft.ML.TensorFlow +
SciSharp.TensorFlow.Redist +
Microsoft.ML.ImageAnalytics
• Entrena modelos personalizados de
clasificación de imágenes:
• Microsoft.ML.Vision +
Microsoft.ML.ImageAnalytics +
SciSharp.TensorFlow.Redist
17. www.TerasoftEC.net
MLContext
• MLContext = punto de entrada para todas las operaciones ML.NET.
• Crea componentes para
• Preparación de datos
• Feature engineering
• Entrenamiento
• Predicción
• Evaluación de modelos
• Logging
• Control de ejecución
• Seeding
18. www.TerasoftEC.net
Definición de clase de
esquema
Dataset
Label SepalLength SepalWidth PetalLength PetalWidth
Iris-setosa 5.1 3.5 1.4 0.2
Iris-versicolor 7.0 3.2 4.7 1.4
Iris-setosa 4.9 3.0 1.5 0.1
…
IDataView
IDataview
• Los datos en ML.NET se representan como IDataView
Altamente dimensional
Carga diferida y
memoria eficiente
19. www.TerasoftEC.net
IEstimator define las operaciones que se llevarán a cabo.
ITransformer ejecuta las operaciones
IEstimator ITransformer
Normalización
•Min-Max
•Binning
•Varianza media
Valores faltantes
•Mostrar
•Reemplazar
ColumnMapping
•Concatenar
•Copiar columnas
•Remover columnas
Conversión de Tipo
•Convierte tipo
•Asignar valor a clave
•Hash
Transformación de Texto
•Caracterizar el texto
•Eliminar stop words
•N-grams
•Bolsas de palabras
21. www.TerasoftEC.net
Modelo ML.NET
Es un archivo zip serializado que contiene los esquemas de datos, las
transformaciones realizadas y los algoritmos utilizados
Modelo
ML.NET
MLModel.zip Desktop Web Móvil
El modelo puede ser exportado e integrado en
otros proyectos y plataformas para su consumo.
25. www.TerasoftEC.net
Librerías utilizadas en el programa principal
Rutas base de datos de entrada
(entrenamiento, pruebas) y resultados
LoadData: método para carga de datos de entrada
(imágenes de entrenamiento y validación)
27. www.TerasoftEC.net
Programa principal
Se cargan los datos para aprendizaje
supervisado (imágenes con sus etiquetas)
Se separan los datos en dos conjuntos:
entrenamiento y validación
Pipeline de carga:
Se cargan las imágenes (previamente solo se tenía
la ruta)
Opciones de entrenamiento:
Se elige el entrenador Clasificador de Imágenes
basado en la arquitectura InceptionV3 para el
entrenamiento
Pipeline de entrenamiento:
Se tratará de identificar el daño en la imagen
(columna a predecir)
Se combinan ambos pipelines
28. www.TerasoftEC.net
Programa principal (continuación) Se ejecuta el entrenamiento
Se comprueba la precisión
del modelo usando las
imágenes de validación
Se muestran las métricas
Se prueba el modelo de
clasificación con las
nuevas imágenes
Se preparan nuevas
imágenes para predicción
Se guarda (exporta) el
modelo
Se consume el modelo guardado
29. www.TerasoftEC.net
ConsumingModel: Método para cargar un
modelo de clasificación de imágenes previamente
entrenado y para preparar imágenes de prueba
(no usadas en el entrenamiento o validación)
ClassifyImages: Método para probar
el modelo de clasificación con una
lista de imágenes nuevas
33. www.TerasoftEC.net
Recursos
Comienza con ML.NET http://dot.net/ml
Revisa los ejemplos http://aka.ms/mlnetsamples
Lee la documentación http://aka.ms/mlnetdocs
Contribuye en http://aka.ms/mlnet
Revisa los videos https://aka.ms/mlnetyoutube
ML.NET uses TensorFlow through the low-level bindings provided by the TensorFlow.NET library. The TensorFlow.NET library is an open source and low-level API library that provides the .NET Standard bindings for TensorFlow. That library is part of the open source SciSharp stack libraries.
To train image classification models, using the ML.NET API, use the ImageClassification API.
You can also train custom deep learning models in Model Builder. The process is generally the same, but in addition to training locally, you can also leverage Azure to train models in GPU enabled compute instances.