Puntos de control
Create machine learning models
/ 50
Use the model
/ 50
TensorFlow: Qwik Start
GSP637
Descripción general
En este lab, aprenderás el modelo básico de aprendizaje automático "Hello World" con el que, en lugar de programar reglas explícitas en un lenguaje como Java o C++, compilas un sistema que se entrena con datos para inferir las reglas que determinan una relación entre números.
Objetivos
En este lab, aprenderás a hacer lo siguiente:
- Configurar el entorno de desarrollo en el notebook de Jupyter
- Diseñar un modelo de aprendizaje automático
- Entrenar una red neuronal
- Probar un modelo
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs son cronometrados y no se pueden pausar. El cronómetro, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar (se recomienda el navegador Chrome)
- Tiempo para completar el lab: Recuerda que, una vez que comienzas un lab, no puedes pausarlo.
Introducción
Analiza el siguiente problema: estás compilando un sistema con reconocimiento de actividad para monitorear el estado físico. Es posible que tengas acceso a la velocidad con la que una persona se desplaza, este dato se puede usar para intentar inferir su actividad con una función condicional:
- Podrías usar otra condición para incorporar la opción de correr con running:
- De forma similar, podrías agregar otra condición para detectar cuando practica ciclismo con biking:
- ¿Qué sucedería si quieres incluir una actividad como el golf? Cómo crear una regla para determinar esa actividad de pronto se vuelve menos evidente.
Es sumamente difícil escribir un programa (con código) que permita detectar una actividad como el golf.
¿Qué deberías hacer? ¡Puedes usar el aprendizaje automático para resolver este problema!
¿Qué es el aprendizaje automático?
En la sección anterior, analizamos el problema de determinar la actividad física de un usuario. Observamos las limitaciones de lo que se puede lograr incluso con más código, ya que las condiciones que se usan deben ser más complejas para poder detectar una actividad como el golf.
En el siguiente diagrama, se representa la forma tradicional para compilar aplicaciones:
Expresas reglas en un lenguaje de programación. Las reglas se aplican a los datos, y tu programa proporciona las respuestas. En el caso de la detección de la actividad física, las reglas (es decir, el código que escribiste para definir los tipos de actividades) se aplicaron a los datos (la velocidad de desplazamiento de la persona) para encontrar una respuesta, es decir, el valor que devuelve la función para determinar el estado de la actividad del usuario (si está caminando, corriendo, practicando ciclismo, etc.).
El proceso para detectar esta actividad a través del aprendizaje automático es muy parecido, solo que los ejes son distintos:
En lugar de intentar definir las reglas y expresarlas en un lenguaje de programación, proporcionas las respuestas (por lo general, etiquetas) junto con los datos. Luego, la máquina infiere las reglas que determinan la relación entre las respuestas y los datos. Por ejemplo, en el contexto del aprendizaje automático, tu iniciativa de detección de la actividad podría tener el siguiente formato:
Recolectas muchos datos y los etiquetas para indicar que "esto sucede cuando el usuario camina", "esto sucede cuando el usuario corre", etc. Luego, a partir de esos datos, la computadora puede inferir las reglas que determinan los diferentes patrones que indican una actividad en particular.
Además de ser un método alternativo de programación para este caso en particular, también te permite explorar otras situaciones, como el caso del golf, que quizás no eran posibles con la programación tradicional basada en reglas.
En la programación tradicional, tu código se compila en un objeto binario que, generalmente, se conoce como un programa. En el aprendizaje automático, el elemento que creas con los datos y etiquetas se denomina modelo.
Volvamos a ver el diagrama anterior:
El resultado del diagrama anterior se puede considerar un modelo, que se usa del siguiente modo en el entorno de ejecución:
Se pasan datos al modelo y este usa las reglas que infirió del entrenamiento para elaborar una predicción, es decir, "esos datos coinciden con los de caminar", "esos datos coinciden con los de practicar ciclismo", etcétera.
En este lab, compilarás un modelo "Hello World" muy simple con componentes básicos que se puede usar en cualquier caso de aprendizaje automático.
Tarea 1. Abre el notebook en Vertex AI Workbench
-
En el menú de navegación de la consola de Google Cloud, haz clic en Vertex AI > Workbench.
-
Busca la instancia
y haz clic en el botón Abrir JupyterLab.
La interfaz de JupyterLab para tu instancia de Workbench se abrirá en una pestaña nueva del navegador.
Instala TensorFlow y paquetes adicionales
-
En el menú Launcher, en Other, selecciona Terminal.
-
Comprueba si tu entorno de Python ya está configurado. Copia y pega el siguiente comando en la terminal.
Resultado de ejemplo:
- Ejecuta el siguiente comando para instalar el paquete de TensorFlow.
- Para actualizar
pip3
, ejecuta el siguiente comando en la terminal.
Pylint es una herramienta que verifica si hay errores en el código de Python y destaca problemas sintácticos y estilísticos en tu código fuente de ese lenguaje.
- Ejecuta el siguiente comando para instalar el paquete de
pylint
.
- Instala los paquetes necesarios para realizar el lab en el archivo
requirements.txt
:
Ahora, tu entorno está configurado.
Tarea 2. Crea tu primer modelo de aprendizaje automático
Analiza los siguientes conjuntos de números. ¿Encuentras una relación entre ellos?
X: |
-1 |
0 |
1 |
2 |
3 |
4 |
Y: |
-2 |
1 |
4 |
7 |
10 |
13 |
Observa cómo, de izquierda a derecha, el valor de X aumenta de a 1 y el valor correspondiente de Y aumenta de a 3. Por lo cual, la relación debería ser Y=3X más o menos un valor.
Por otro lado, el valor correspondiente al número 0 en X, en Y, es 1.
Con estos datos, puedes determinar que la relación es Y=3X+1.
Esta es la forma de entrenar un modelo, conocido como red neuronal, con código para detectar patrones en los datos.
Se usan los datos para entrenar la red neuronal. Con la incorporación de un conjunto de X y un conjunto de Y, este modelo debería poder descifrar la relación entre ellos.
Crea un notebook nuevo y, luego, importa bibliotecas
-
Haz clic en el ícono del signo + en el costado izquierdo de Workbench para abrir un nuevo Launcher.
-
En el menú Launcher, en Notebook, selecciona Python3.
Se te presentará un nuevo notebook de Jupyter. Para obtener más información sobre cómo usar notebooks de Jupyter, consulta la documentación de notebooks de Jupyter.
- Importa y configura
logging
ygoogle-cloud-logging
para Cloud Logging. En la primera celda, agrega el siguiente código:
- Importa
tensorflow
para entrenar y evaluar el modelo. Llámalotf
para facilitar su uso. Agrega el siguiente código a la primera celda.
- Importa
numpy
con el objetivo de analizar los datos para la depuración. Llámalonp
para facilitar su uso. Agrega el siguiente código a la primera celda.
-
Para ejecutar la celda, haz clic en el botón Ejecutar o presiona Mayúsculas + Intro.
-
Guarda el notebook. Haz clic en Archivo -> Guardar. Asígnale al archivo el nombre
model.ipynb
y haz clic en Aceptar.
Prepara los datos
A continuación, prepararemos los datos con los que entrenarás a tu modelo. En este lab, se usarán las 6 X y las 6 Y que analizamos antes:
X: |
-1 |
0 |
1 |
2 |
3 |
4 |
Y: |
-2 |
1 |
4 |
7 |
10 |
13 |
Como se puede observar aquí, la relación entre las X y las Y es Y=3x+1, por lo que X = 1, Y = 4, etcétera.
La biblioteca de Python llamada numpy
ofrece muchas estructuras de datos de tipo array que funcionan como un método estándar de facto para agregar datos. Para usarlas, especifica los valores como un array en numpy
con np.array([])
- En la segunda celda, agrega el siguiente código:
Diseña el modelo
En esta sección, diseñarás tu modelo con TensorFlow.
Usarás un algoritmo de aprendizaje automático llamado red neuronal para entrenar tu modelo. Crearás la red neuronal más simple posible. Tiene una capa y esa capa tiene 1 neurona. La entrada de la red neuronal es un solo valor a la vez. Por lo cual, el formato de la entrada debe ser [1].
- En la segunda celda, agrega el siguiente código:
Compila el modelo
A continuación, escribirás el código para compilar tu red neuronal. Para ello, debes especificar 2 funciones, loss
y optimizer
.
Si tienes conocimientos de matemática para aprendizaje automático, aquí es donde los pondrías en práctica, pero ten en cuenta que tf.keras
lo encapsula perfectamente en funciones.
-
Del análisis previo, ya sabes que la relación entre los números es
Y=3X+1
. -
Cuando la computadora está intentando aprender esta relación, hace una estimación… quizás sea
Y=10x+10
. La funciónloss
compara las respuestas estimadas con las respuestas correctas conocidas y mide el nivel de exactitud de la estimación.
tf.keras
en la documentación Module: tf.keras.losses.- A continuación, el modelo usa la función optimizer para hacer otra estimación. Según el resultado de la función loss, intentará minimizar la pérdida. En este momento, es posible que presente algo como
Y=5X+5
. Aunque aún no es correcto, se acerca más al resultado correcto (es decir que la pérdida es menor).
tf.keras
en la documentación Module: tf.keras.optimizers.- El modelo repite este proceso para la cantidad de ciclos de entrenamiento que especifiques.
- Agrega el siguiente código a la segunda celda:
En el fragmento de código anterior, le indicas al modelo que debe usar mean_squared_error
para la función de pérdida y stochastic gradient descent (sgd)
para la de optimizador. Aunque aún no comprendas la matemática que se aplica aquí, verás que funciona.
Entrena la red neuronal
Para entrenar la red neuronal con el objetivo de que "aprenda" la relación entre las X y las Y, usarás model.fit
.
Esta función entrenará el modelo en un bucle en el que hará una estimación, medirá su nivel de exactitud (es decir, la pérdida), usará el optimizador para hacer otra estimación y así sucesivamente. Se repetirá el proceso durante la cantidad de ciclos de entrenamiento que especifiques, que en este lab es de 500.
- Agrega el siguiente código a la segunda celda:
En el código anterior, model.fit
entrenará el modelo durante una cantidad fija de ciclos de entrenamiento.
model.fit
en la sección fit de la documentación de tf.keras.Model.Ahora, tu archivo debería tener el siguiente formato (observa que el código estará en dos celdas distintas):
Ejecuta el código
¡Tu secuencia de comandos está lista! Ejecútala para ver los resultados.
-
Haz clic en el botón Ejecutar o presiona Mayúsculas + Intro para ejecutar la segunda celda en el notebook.
-
Examina el resultado. Observa que la secuencia de comandos imprime la pérdida de cada ciclo de entrenamiento. Tu resultado puede ser algo distinta de lo que se muestra aquí.
e-
en el valor se muestra en notación científica con un exponente negativo. Si te desplazas por los ciclos de entrenamiento, verás que el valor de pérdida es bastante grande en los primeros ciclos, pero se va reduciendo con cada paso. Por ejemplo:
A medida que el entrenamiento avanza, la pérdida se vuelve muy pequeña:
Para el momento en que finaliza el entrenamiento, la pérdida es extremadamente baja, lo que muestra que nuestro modelo es eficiente a la hora de inferir la relación entre los números.
Es probable que no necesites realizar 500 ciclos de entrenamiento, pero intenta experimentar con diversos valores. En este ejemplo, la pérdida es realmente baja después de 50 ciclos de entrenamiento, por lo que esa cantidad puede ser suficiente.
Haz clic en Revisar mi progreso para verificar el objetivo.
Usa el modelo
Ahora, tienes un modelo que se entrenó para detectar la relación entre X e Y.
Puedes usar el método model.predict
para determinar el valor de Y para una X que el modelo no haya visto antes en el entrenamiento. Por ejemplo, si X = 10, ¿qué valor crees que será Y?
- Agrega el siguiente código a la tercera celda para realizar una predicción:
cloud_logger
para producir registros de Cloud que se puedan usar para consultar el progreso. -
Presiona Ctrl + S o haz clic en Archivo -> Guardar para guardar el notebook.
-
Para ejecutar la tercera celda, haz clic en el botón Ejecutar o presiona Mayúsculas + Intro.
El valor de Y se indica después del registro de entrenamiento (o los ciclos de entrenamiento).
Resultado de ejemplo:
Posiblemente, estimaste que Y era igual a 31. Acabó siendo un poco más (31.005917). ¿Por qué?
Respuesta: Las redes neuronales trabajan con probabilidades. Calculó que hay una probabilidad muy alta de que la relación entre la X y la Y sea Y=3X+1. Pero con solo 6 datos no puede saberlo con seguridad. Por eso, el resultado de 10 es muy cercano a 31, pero no es necesariamente 31.
A medida que uses redes neuronales, verás que este patrón es recurrente. Casi siempre trabajarás con probabilidades, no certezas, y se necesitará aplicar algo de programación para determinar cuál es el resultado en función de las probabilidades, especialmente a la hora de la clasificación.
Haz clic en Revisar mi progreso para verificar el objetivo.
¡Felicitaciones!
¡Felicitaciones! En este lab, creaste, entrenaste y probaste tu propio modelo de aprendizaje automático con TensorFlow.
Próximos pasos/Más información
- Consulta todo lo que debes saber sobre Vertex AI.
- Actividades divertidas con la IA. Consulta Experiments with Google.
- Obtén más información sobre TensorFlow.
- Predice resultados deportivos con el aprendizaje automático de Google
- Primeros pasos con BigQuery ML
- Predice las tarifas de taxis con un modelo de previsión de AA de BigQuery
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Actualización más reciente del manual: 16 de septiembre de 2024
Prueba más reciente del lab: 16 de septiembre de 2024
Copyright 2024 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.