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:
- Instructivos de TensorFlow
- En el codelab TensorFlow para poetas, se muestra cómo personalizar un modelo de etiquetado de imágenes previamente entrenado usando el aprendizaje por transferencia.
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:
Problema | Inferencia en el dispositivo | Inferencia 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 dispositivo | Inferencia basada en la nube |
---|---|
Kit de AA
TensorFlow LiteSe puede usar TensorFlow Lite para ofrecer un modelo de TensorFlow entrenado como solución integrada en el dispositivo: AutoMLUsa 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 AAAPI 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:
- Incluye el modelo en el archivo APK de la app. Esta es la opción más básica.
- Incluye el modelo en un Android App Bundle y usa Dynamic Delivery.
- 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).
Lose It!

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.
PlantVillage

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.
Fishbrain

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.