Creando mi primer solución de IA sin tener que conocer mucho de los modelos

Carlos Acevedo
BLOG DE TECNOLOGÍA DE DEVCO
4 min readApr 1, 2020

Hace poco me inscribí en un conjunto de cursos sobre Inteligencia Artificial (IA), Machine Learning (ML)y análisis de datos (AD) en diferentes plataformas (GCP, IBM Cloud, Python); dentro de las cosas interesantes que aprendí, es que en GCP existen soluciones de este tipo que son puestas a disposición de personas del común, es decir, no necesitas tener un amplio conocimiento en estos temas para construir un chatbot o una solución que reconozca imágenes y las clasifique, entre otras más.

En esta historia les voy a mostrar cómo construir una solución que reconozca fotografías de nubes y las clasifique para determinar la probabilidad que existe de que llueva.

El Servicio que hace la magia

En GCP existe un servicio llamado AutoML Vision, es un servicio que pone a nuestra disposición modelos codificados previamente y que solo necesitamos saber un poco de lo que podríamos hacer con ellos para usarlos y posteriormente entrenarlos, tienen modelos listos para reconocimiento y clasificación de imágenes, de textos, de traducciones y de sonidos, muchos de estos servicios son usados por Google en varias de sus propias aplicaciones como Google fotos y Google Translate, por ejemplo el reconocimiento que hace Google fotos para sugerirte como agrupar tus fotos en álbumes o usar translate y tu cámara directo sobre textos y ver su traducción en la pantalla.

(Tomado de: https://i.ytimg.com/vi/F9IVnVlFLwI/maxresdefault.jpg)

Los pasos para mi primer implementación

Voy a describir como podemos realizar nuestra primer implementación para la identificación y clasificación de imágenes de nubes (Tener en cuenta que estos pasos son basados en una práctica inicial creada por Google), si bien es algo meteorológico, nos da una idea de lo que podríamos hacer y podríamos extrapolarlo a nuestros propios problemas.

  1. Crear un bucket con imágenes para realizar el entrenamiento, prueba y evaluación del modelo.
Dividimos en carpetas las diferentes fotos de nubes que fueron tomadas de un bucket público de Google para este tipo de prácticas.
Un ejemplo de las imágenes en el bucket.

Para este ejemplo usamos 60 imágenes en total, Google recomienda usar por lo menos 100 imágenes de cada etiqueta para una implementación productiva, recuerda que esto mejorará la eficacia con la que nuestro modelo realiza las predicciones.

2. Crear un archivo CSV con la información de las imágenes para facilitar su carga al modelo.

El primer valor indica para qué será usado en el modelo (TEST, EVALUATION, TRAIN, UNASSIGNED), el segundo es la url del bucket donde se puede encontrar la imagen y el tercero es la etiqueta con la que clasificamos esa imagen.

Tener en cuenta que UNASSIGNED se utiliza cuando queremos que GCP tome la decisión de que imágenes usar para entrenar, probar y evaluar nuestro modelo.

3. Ingresar a Auto ML y crear un Dataset con el CSV creado.

Usamos el buscador de GCP para encontrar fácilmente lo que necesitamos.
Tener en cuenta que debemos seleccionar el modelo correcto dependiendo de la implementación que queremos, para este caso queremos detectar objetos.
El CSV también fue almacenado en el bucket donde se encuentran las imágenes.
Verificamos que las imágenes queden bien cargadas y etiquetadas.
Si una imagen queda mal etiquetada, podemos cambiar su etiqueta ingresando a ella y seleccionando la porción de la imagen que representa la etiqueta.

4. Entrenar el modelo.

Vemos que se tomarán 16 imágenes para el entrenamiento, 2 para validar y 2 para probar, por cada una de las etiquetas.

El entrenamiento del modelo puede tomar algunos minutos, pero ten en cuenta que en ningún momento nos preocupamos por la infraestructura necesaria para todo este trabajo, GCP lo hace automáticamente por nosotros, piensa en que si este modelo lo haces en local con otra herramienta, tendrás que disponer de una infraestructura robusta para todo este procesamiento.

5. Probar y usar el modelo entrenado.

Le damos un nombre al modelo y cargamos las imágenes con las que queremos probarlo.
Validamos que la predicción se hace correctamente dependiendo de la imagen que le dimos.

Con esto ya tenemos un modelo que nos permite clasificar las imágenes de nubes, podremos tomar nuevas fotografías del cielo y usar el modelo para realizar una predicción.

En la pestaña de evaluación (que no revisamos), podremos tener información sobre la precisión de nuestro modelo y ver si necesitamos mejorar el entrenamiento.

Con esto terminamos la historia y quiero dejarles al final otras implementaciones que pude realizar con estas herramientas:

  • Identificar un título de un artículo y saber por quién fue publicado.
  • Imágenes de personas y saber sus emociones.
  • Traducir texto a diferentes idiomas desde una Google Sheet.
  • Reconocimiento de voz y traducción.
  • Transcribir audio a texto.

Lo más importante para resaltar es que todas estas implementaciones se pueden realizar sin conocer en mucho detalle los modelos ni los algoritmos que están atrás, solo usamos la experiencia de los ingenieros de Google para crear soluciones a problemas reales.

--

--