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

Como desarrollador de Android, te centrarás en la inferencia y la implementación de modelos de AA. Según sea el caso, también puedes dedicarte a crear y entrenar modelos.

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 de productos, diseñadores y desarrolladores trabajen juntos para definir los objetivos, el diseño, la compilación y la iteración del producto. Google creó dos guías sobre este tema:

  • La guía People + AI Guidebook (guía sobre personas + IA) describe prácticas recomendadas para ayudar a tu equipo a tomar decisiones sobre productos de IA enfocados en 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 a 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. La creación y el entrenamiento de modelos se puede realizar en una máquina de desarrollo o mediante la infraestructura de nube.

Explora modelos previamente entrenados

En 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 factores que debes tener en cuenta al tomar esta decisión:

Inferencia 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 en la nube

Kit de AA

Google Cloud

Entrena tu propio modelo de visión personalizado en Google Cloud y ejecuta el resultado obtenido en Android y otros dispositivos perimetrales:

TensorFlow Lite

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

Kit de AA

API de Google Cloud

Implementación

La implementación es el proceso de empaquetado y actualización de un modelo para su uso en Android al hacer inferencia integrada al dispositivo. Hay tres opciones disponibles:

Empaquetar el modelo de AA en tu app para Android
El modelo se implementará junto con la app como cualquier otro elemento. Para actualizar el modelo, se requiere una actualización de la app. Hay dos formas de empaquetar el modelo de AA con la app:
Proporcionar el modelo durante el tiempo de ejecución
Esto te permite actualizar el modelo independientemente de la app. También facilita el proceso de 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 de Android para 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, fundamentalmente, 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 de Android abre una nueva forma de compilar apps que antes eran muy difíciles de lograr en diversas condiciones (como el escaneo confiable de códigos de barras) o que ni siquiera eran posibles (por ejemplo, detección de imágenes y opiniones de texto).

Lose It!

Lose It! es una app de seguimiento de calorías para controlar el peso. Te ayuda a adelgazar haciendo un seguimiento de todo lo que comes para que lleves un registro de las calorías consumidas. 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 signos tempranos de enfermedades en plantas.

Fishbrain

Al ofrecer 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.