Crea apps más inteligentes con el aprendizaje automático

El aprendizaje automático (AA) es una técnica de programación que aporta a tus apps la capacidad de aprender y mejorar automáticamente a partir de la experiencia, sin necesidad de una programación específica para esta tarea. Esto es particularmente útil para las apps que usan datos no estructurados, como imágenes y texto, o que analizan problemas con una gran cantidad de parámetros, como predecir un equipo deportivo ganador.

Android admite una amplia variedad de herramientas y métodos de aprendizaje automático. Independientemente de si eres un desarrollador de Android experimentado o de si recién estás empezando, aquí encontrarás algunos recursos de AA que te ayudarán a obtener excelentes resultados.

Áreas clave de desarrollo de AA

Cuando desarrollas aplicaciones de AA para Android, las tareas principales son el diseño de productos, la implementación de algoritmos de inferencia y la implementación de modelos de AA existentes. Según sea el caso, también puedes volver a entrenar modelos existentes o compilar y entrenar otros nuevos.

Diseño para aprendizaje automático

Al igual que otras tecnologías, la aplicación del aprendizaje automático como solución requiere que los administradores, diseñadores y desarrolladores de productos trabajen en conjunto para definir los objetivos, el diseño, la compilación y la iteración de sus productos. Google creó dos guías sobre este tema:

  • La guía People + AI Guidebook (guía sobre personas e IA) incluye prácticas recomendadas para ayudar a tu equipo a tomar decisiones sobre productos de IA enfocadas en los seres humanos.
  • La guía The Material Design for Machine Learning spec (especificaciones sobre material design para aprendizaje automático) ofrece una colección de pautas y patrones de diseño para funciones que incluyen aprendizaje automático, como la detección de objetos y el escaneo de códigos de barras.

Crea y entrena un modelo

El aprendizaje automático requiere un modelo entrenado para ejecutar una tarea en particular, como hacer una predicción o clasificar y reconocer información. Puedes seleccionar (y posiblemente personalizar) un modelo existente o crear uno desde cero. Se pueden crear y entrenar modelos en una máquina de desarrollo o mediante la infraestructura de nube.

Explora modelos previamente entrenados

En el Kit de AA y en Google Cloud, se incluyen modelos previamente entrenados. Encontrarás más información al respecto en la siguiente sección.

Aprende a crear tus propios modelos con TensorFlow

Para tener una experiencia de desarrollo más práctica, usa estos recursos de TensorFlow:

Inferencia

La inferencia es el proceso de usar un modelo de aprendizaje automático que ya fue entrenado para realizar una tarea específica.

Una de las decisiones clave que debe tomar un desarrollador de Android es establecer si la inferencia se ejecuta en el dispositivo o si utiliza un servicio en la nube al que se accede de forma remota. Estos son algunos de los temas que debes tener en cuenta al tomar esta decisión:

ProblemaInferencia en el dispositivoInferencia basada en la nube
Latencia Una menor latencia mejora la experiencia en tiempo real La comunicación asíncrona y el ancho de banda disponible pueden afectar la latencia
Recursos Los recursos del dispositivo específico, como la capacidad de procesamiento y el almacenamiento, pueden limitar el rendimiento Los recursos basados en la nube son más potentes, y el almacenamiento es más amplio
Sin conexión/en línea La capacidad de operar sin conexión es una ventaja para la ejecución en una infraestructura de red deficiente o inexistente Se requiere una conexión de red
Costo Uso de la batería, tiempo de descarga del modelo para usuarios finales Ancho de banda para la transferencia de datos para los usuarios finales, costos de computación para los desarrolladores
Privacidad Los datos del usuario nunca salen del dispositivo Los datos pueden salir del dispositivo, por lo que pueden necesitarse precauciones adicionales

En la siguiente tabla, se muestran las opciones de desarrollo disponibles para cada tipo de inferencia:

Inferencia en el dispositivoInferencia basada en la nube

Kit de AA

TensorFlow Lite

Se puede usar TensorFlow Lite para ofrecer un modelo de TensorFlow entrenado como solución integrada en el dispositivo:

AutoML

Usa AutoML para entrenar tu propio modelo de visión personalizado en Google Cloud y ejecutar el modelo resultante en Android y otros dispositivos perimetrales:

Kit de AA

API de Google Cloud

Implementación

La implementación es el proceso de empaquetar y actualizar un modelo de AA para usarlo en Android cuando se realiza una inferencia integrada en el dispositivo. Hay tres opciones disponibles:

Incluye el modelo en tu app para Android
Se implementa el modelo con tu app como cualquier otro elemento. Las actualizaciones del modelo requieren que se actualice la app. Existen dos maneras de agregar un modelo a tu app:
Proporciona el modelo durante el tiempo de ejecución
Esto te permite actualizar el modelo independientemente de tu app y facilita las pruebas A/B. Puedes publicar tu modelo personalizado utilizando la función de modelos personalizados del kit de AA o alojar la descarga del modelo en tu propia infraestructura.
Combinación de ambos
Con frecuencia, los desarrolladores empaquetan una versión inicial de su modelo con la app para Android a fin de que el usuario no tenga que esperar la descarga durante la actualización a una nueva versión.

Para algunos modelos previamente entrenados del kit de AA (en especial el reconocimiento de texto y el escaneo de códigos de barras), los desarrolladores pueden usar el modelo compartido proporcionado por los Servicios de Google Play, que permite reducir el tamaño de APK.

Historias de desarrolladores

Hacemos posible lo imposible

Agregar AA a tu app para Android inaugura un nuevo modo de compilar apps que antes eran muy difíciles de lograr en condiciones diversas (como el escaneo confiable de códigos de barras) o que ni siquiera eran posibles (por ejemplo, la detección de imágenes y las opiniones de texto).

Destacado

Lose It! es una app de recuento de calorías para adelgazar. Te ayuda a perder peso, ya que te permite registrar todos los alimentos que comes y saber cuántas calorías consumiste. Lose It! usa la API de reconocimiento de texto del Kit de AA para escanear etiquetas nutricionales y obtener datos cuando los usuarios ingresan un alimento nuevo que no está en su biblioteca.

Destacado

PlantVillage ayuda a agricultores a detectar enfermedades en plantas de yuca. La Universidad Estatal de Pensilvania y el Instituto Internacional de Agricultura Tropical utilizan sus modelos personalizados de TensorFlow, que se ejecutan sin conexión en dispositivos móviles, para ayudar a agricultores a detectar enfermedades en plantas de manera temprana.

Destacado

Mediante la oferta de mapas de pesca y pronósticos regionales, la app de Fishbrain conecta a millones de pescadores. Fishbrain usa un modelo personalizado del Kit de AA para proporcionar actualizaciones de modelos personalizados de TensorFlow Lite.