-
Instalar Anaconda:
-
Importar el entorno (archivo
envoronment.yml
)conda env create -f envoronment.yml
En este ejemplo utilizaremos el dataset CIFAR10
para entrenar un clasificador
- Ejemplo del tipo de imágenes del dataset:
Ejecuta el script cifar10_tf_fcn.py
para entrenar el modelo
Este es un ejemplo de entrenamiento, en el que se ve que hay sobreentrenamiento (overfitting) a partir de la epoch
80 aproximadamente:
Y esta imagen muestra un ejemplo visual de los resultados con el modelo anterior:
En este caso, la precisión (accuracy) del modelo es:
test accuracy: 0.5267
Para mejorar el resultado se pueden modificar los siguientes parámetros:
- Número de capas
- Número de unidades en cada capa
- Optimizador: opciones
- Función de coste: opciones
learning_rate
: explicaciónn_epochs
: explicaciónbatch_size
: explicaciónvalidation_split
: explicaciónactivation
: opciones
Podemos ir añadiendo los resultados con distintas configuraciones en el hilo de discussions
Ejecuta el script cifar10_tf_cnn.py
para entrenar el modelo
Este es un ejemplo de entrenamiento, en el que se ve que hay sobreentrenamiento (overfitting) a partir de la epoch
15~20 aproximadamente:
En este caso, la precisión (accuracy) del modelo es:
test accuracy: 0.7184
Este es un ejemplo de entrenamiento en el que no hay overfitting:
En este caso, la precisión (accuracy) del modelo es:
test accuracy: 0.7931
Para mejorar el resultado se pueden modificar los siguientes parámetros:
- Activar/Desactivar
data_augmentation
y los parámetros que modifican las imágenes de entrenamiento - Número de capas
- Número de unidades en cada capa
- Parámetros de las capas convolucionales (
kernel_size
,strides
,filters
): explicación - Capas
BatchNormalization
: explicación - Dropout: explicación
- Optimizador: opciones
- Función de coste: opciones
learning_rate
: explicaciónn_epochs
: explicaciónbatch_size
: explicaciónvalidation_split
: explicaciónactivation
: opciones
Ejecuta el script fraud_detection_tf_ae.py
para entrenar el modelo
Se entrena el modelo únicamente con los ejemplos de transacciones normales
Una vez entrenado, utilizamos el conjunto de validación para buscar un umbral sobre el error de reconstrucción que nos permita separar las transacciones fraudulentas de las normales.
Zoom:
Se ve claramente que tenemos dos distribuciones distintas, aunque se solapan en algún intervalo.
Representamos algunas métricas (precision, recall y f1):
Como ejemplo, si elegimos un umbral para el error de reconstrucción de 5, obtendríamos esta separación de las clases:
y esta matriz de confución:
En este ejemplo utilizamos las imágenes en baja resolución como entrada al autoencoder
y las imágenes con alta resolución como salida.
Este es un ejemplo del tipo de imágenes utilizadas. A la izquierda la entrada y a la derecha la salida.
Entrenamos hasta que el coste en el conjunto de validación deja de bajar:
Este es el resultado evaluando en el conjunto de test:
- [king] - [man] + [woman] -> [queen]
- [paris] - [france] + [italy] -> [rome]
Análisis de sentimiento. El conjunto de entrenamiento está compuesto por críticas de cine etiquetadas como positivas o negativas.
El modelo está compuesto por una capa de embedding, dos capas convolucionales de 1 sola dimensión, y un clasificador totalmente conectado.
script: nlp_text_class_tf.py
Este ejemplo es igual que el anterior, pero sustituyendo las dos capas convolucionales por una versión reducida de transformer que solo incluye la parte del encoder
script: nlp_text_class_transformer_tf.py
En ambos casos, el resultado en el conjunto de test está alrededor de 0.84 (accuracy)
Este ejemplo es igual que los dos anteriores, pero sustituyendo las capas convolucionales/transformer por una capa de celdas LSTM.
script: nlp_text_class_lstm_tf.py
El resultado en el conjunto de test es parecido a los ejemplos anteriores, pero el entrenamiento es más lento.
Arquitecturas para computer vision
Applications of deep learning in NLP
Deep learning-based recommender systems (1)
Deep learning-based recommender systems (2)
3D Image Classification from CT Scans (pneumonia prediction)
Anomaly detection in wearable health data
Tesla confunde Burger King con señal de stop