100% encontró este documento útil (3 votos)
599 vistas104 páginas

Redes Neuronales Con Tensorflow

Este documento proporciona una introducción al curso "Redes Neuronales con TensorFlow". Explica los requisitos del curso, los motivos por los que alguien debería tomarlo, y lo que los estudiantes aprenderán, incluyendo conceptos como cargar bases de datos, optimizar modelos, transferencia de aprendizaje y uso de TensorBoard. También describe el proyecto del curso y diferentes temas que se cubrirán como redes neuronales, preprocesamiento de datos, y más.

Cargado por

Rich M
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (3 votos)
599 vistas104 páginas

Redes Neuronales Con Tensorflow

Este documento proporciona una introducción al curso "Redes Neuronales con TensorFlow". Explica los requisitos del curso, los motivos por los que alguien debería tomarlo, y lo que los estudiantes aprenderán, incluyendo conceptos como cargar bases de datos, optimizar modelos, transferencia de aprendizaje y uso de TensorBoard. También describe el proyecto del curso y diferentes temas que se cubrirán como redes neuronales, preprocesamiento de datos, y más.

Cargado por

Rich M
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 104

Curso de

Redes Neuronales
con TensorFlow
Adonaí Vera
Co-Founder y CTO en SwitchAI
Requisitos del curso

● Fundamentos de redes
neuronales.
● Uso de Jupyter Notebooks
y Google Colab.
● Creación de proyectos de
ciencia de datos e
inteligencia artificial.
Por qué debes tomar el curso

● Tienes un proyecto de la universidad en


donde aplicarás redes neuronales.
● En tu empresa están trabajando con
redes neuronales y te asignaron el nuevo
proyecto.
● Curioso por nuevas tecnologías.
Por qué debes tomar el curso

● Quieres aprender cómo aplicar inteligencia


artificial a imágenes.
● Tienes las bases pero quieres volverte un pro
configurando redes neuronales.
● Quieres crear tu propio tu propio modelo.
Ciclo de la IA

DATOS ENTRENAR ESCALAR


2 6
4

3 5
1
PROBLEMA PRE-PROCESAR OPTIMIZAR
Redes neuronales

Llevar redes
neuronales a la
práctica.
Cargar bases de datos
Optimizar modelos
¿Cómo evitar el overfitting
y underfitting?
Transferencia de aprendizaje
Almacenar y cargar modelos
Proyecto del curso
● 27455 imágenes
● Escala de grises
● 28 x 28
● 24 clases (J - Z)
● JPEG
Lenguaje de señas
● TecPerson - Kaggle
● C0: Public Domain
Proyectos

Tom & Tumor Lenguaje Malaria


Jerry de Señas
¿Qué aprenderás?

● Cómo cargar tus propias bases de datos.


● Cargar bases de datos en formatos como CSV,
JSON, BASE64, imágenes.
● Aplicar técnicas para optimizar tus modelos.
¿Qué aprenderás?
● Agregar métricas en el entrenamiento de tus
modelos.
● A cargar y guardar modelos.
● Autotunner de Keras para encontrar las
mejores variables.
¿Qué aprenderás?
● Bases de aprendizaje por transferencia.
● Uso de TensorBoard y cómo mostrar tu
proyecto al mundo entero.
● A tener tu modelo listo para utilizarlo como
inferencia.
Introducción
a TF2.0
Librerías de deep learning
Lenguajes de programación
TensorFlow 2 vs. TensorFlow1
Symbolic | Imperative API

- API CLEAN UP
- NO MORE GLOBAL
FUNCTIONS
- NOT SESSIONS
Lógica de TensorFlow
Softmax | RelU |
Sigmoid N
O
ADD D
O
Matriz Producto S
Bias

ARISTAS Entrada Pesos GRAFOS


Diferencias en código
TensorFlow + Keras

Código abierto
Google
2015
Escrita en Python
API alto nivel
El ecosistema de TensorFlow
Comunidad de TF

● 56,000 preguntas en StackOverflow.


● 109 ML Google Developer Experts.
● 46 TensorFlow user groups en todo el mundo.
● 25 publicaciones no blog de TensorFlow.
● ~ 70,000 commits.
● > 2,200 contribuyentes.
Comunidad de TF
Documentación adicional
Uso de data
pipelines
En este módulo aprenderemos
● Cómo cargar bases de datos en formatos
como CSV, JSON, Base64.
● Pre-procesar los datos.
● Cómo cargar dataset de Keras.
● Dataset generators.
● Cómo cargar tu propios dataset con TF.data.
● Cómo distribuir los datos.
Motor de inteligencia artificial
Basura que entra
= Basura que sale
Pre-procesar la información
¿Qué compone un dataset?

Imágenes Labels
Cargar bases de datos
JSON con URL a la nube
de GCP
Cargar bases
de datos Json Base64 y
.CSV
Preprocesamiento
de datos
Keras datasets
Dataset Generators
Memoria limitada
Generator en Python
Es una función que devuelve un objeto, el cual te
permite iterar en el mismo, sin almacenarlos a la
vez en memoria.
Aprende a buscar
bases de datos
¿Donde buscar?
Cómo distribuir
los datos
Distribución de bases de
datos

TRAINING VALIDATION TEST


Distribución de los datos
según casos
CONFIGURACIÓN PROMEDIO ANDREW NG
Entrenamiento Entrenamiento

70% 30% 60% 20% 20% POCOS DATOS

Testeo ValidaciónTesteo
CONFIGURACIÓN RECOMEDADA MUCHOS DATOS

Entrenamiento Entrenamiento

70% 15% 15% 90% 5% 5%

ValidaciónTesteo ValidaciónTesteo
Distribución de los datos según casos
CONFIGURACIÓN PROMEDIO ANDREW NG POCOS DATOS
Entrenamiento Entrenamiento

70% 30% 60% 20% 20%

Testeo Validación Testeo


CONFIGURACIÓN RECOMEDADA MUCHOS DATOS
Entrenamiento Entrenamiento

70% 15% 15% 90% 5% 5%

Validación Testeo Validación Testeo


Cuidado con confundir
a tu modelo
Errores más comunes

● Agregar datos de
entrenamiento a
testeo.
● Bases de datos no
balanceadas en
clases.
● Muy pocos datos.
Llevemos todos
nuestros códigos a la
acción - Crear modelo
Optimización de
precisión de modelos
En esta sección veremos

● Underfitting y overfitting.
● Recomendaciones
prácticas para ajustar mi
modelo.
● Métricas para medir
eficacia: callbacks.
● Monitoriza el
entrenamiento de modelos
con early stopping.
● Autotunnig con Keras.
Métodos de
regularización
Overfitting y underfitting
Dropout
¿Cuál regularizador utilizar?

ElasticNet
Lasso L1 Ridge L2
L1 + L2

Datos de entrada Datos de entrada Gran número de


irrelevantes. correlacionados atributos.
entre ellos.
Recomendaciones
prácticas para ajustar
mi modelo
Recomendaciones para
preprocesamiento
● Busca datos null.
● Archivos corruptos.
● Balancea tu base de
datos.
● Aplica normalización.
● Visualiza la base de
datos.
● Entiende los datos.
Recomendaciones de valores

● Convoluciones (3x3)
● Pooling (2x2)
● Flatten (imágenes)
● Neuronas (64, 128, 256, 512)
● Learning Rate (0.001) ADAM
● L1_2 (1e-5)
● Dropout (0.2)
Recomendaciones
para regularizadores
● L1, L2, L1+L2
● Agrega más datos.
● Data augmentation.
● Dropout.
● Early stopping.
● Callbacks.
Recomendaciones
funciones de activación
● Multi Clases: Softmax
● Binarios: Sigmoidal
● Regresiones: Función
lineal.
● Clase predicciones
mayor que 0: RelU.
Recomendaciones
configuración de red
● Aplica capas convoluciones y
poolings (1 layers).
● Tómate el tiempo de encontrar el
learning rate óptimo.
● Ve almacenando en cada epoch
de entrenamiento.
Recomendaciones de la red

● Entre más capas y


neuronas, no significa
que es mejor la red.
● La solución no es
siempre redes
neuronales.
● Aliado aprendizaje por
transferencia.
Métricas para medir la
eficiencia de tu modelo

Callback
Monitoreo del
entrenamiento en
tiempo real
Early stopping y patience
Keras Tuner

Auto tuning
Historia del Tunner de Keras

#Capas #Neuronas

#Epochs Learning
Modelos
rate

Funciones
Opcional de
activación
Cómo se hacía antes
Keras Tuner

Buscando la mejor configuración


para tu modelo
Almacenamiento y
carga de modelos
Pesos y arquitectura
En esta sección aprenderemos
● Almacenamiento y carga de
modelos: pesos y arquitectura.
● Criterios para almacenar los
modelos.
Componentes relevantes
de un modelo

Arquitectura Pesos Etiquetas (Labels)


Aprendizaje por transferencia.
Criterios para
almacenar los modelos
Introducción al
aprendizaje por
transferencia
En este módulo aprenderemos
● Introducción al aprendizaje por transferencia.
● Cómo cargar sistemas pre-entrenados en
Keras.
● Cómo utilizar sistemas pre-entrenados desde
los repositorios de TensorFlow Hub.
● Aplicar modelo pre-entrenado a nuestro
proyecto.
Transferir conocimiento
Transferir características
principales

Modelo Matemático Modelo Matemático


Bases de datos de
entrenamiento
¿Cómo funcionan?

Hablar
Ejemplo de infraestructuras de
una red convolucional

Fuente: https://arxiv.org/abs/1512.02325
Cuándo utilizar
aprendizaje por
transferencia
Cuándo utilizar modelos
pre-entrenados

Procesamiento de Visión
lenguaje natural computarizada
¿Por qué utilizarlos?
● Se necesita poca data.
● Te permite generar
iteraciones muy rápidas.
● Generaliza muy bien los
modelos.
● Transferir extracción de
características
principales.
Recomendaciones de
artículos pre-entrenados

YoloV3 AlexNet
¿Cómo saber cuál
modelo seleccionar?

Accuracy (precisión) Coste


computacional
¿Cómo seleccionar cual
modelo pre-entrenado usar?

Fuente: https://ai.googleblog.com/2017/11/automl-for-large-scale-image.html
Reto

Dron detectando y Detección de


persiguiendo aves. cáncer.
Carga de sistemas
pre-entrenados en
Keras
API Funcional Keras

ENTRADA

CAPA CAPA

SALIDA
API funcional
de Keras
Uso sistemas
pre-entrenados de
TensorFlow Hub
Introducción a
variables relevantes
del TensorBoard
En esta sección aprenderemos

● Introducción a variables relevantes del


TensorBoard.
● Análisis y publicación de resultados del
entrenamiento.
● Introducción para poner modelos en
producción.
● Cómo poner en producción.
Introducción a TensorBoard

● Herramienta para
visualizar resultados.
● Entender el flujo y los
tensores.
● Debuggear tu modelo.
Ejemplo práctico
de TensorBoard
Análisis y publicación
de resultados del
entrenamiento
Introducción al
despliegue de modelos
en producción
Production
Ejemplos de producción

Nube Sistemas embebidos


Ejemplos de producción

Local USB Accelerator


Siguientes pasos
con deep learning
Qué más aprender

● Redes neuronales
convolucionales.
● Data Augmentation.
● Formato TF Records para
entrenar modelos.
● Despliegue de modelos a
producción.
● Visión computarizada.

También podría gustarte