Cómo implementar el aprendizaje automático en una aplicación de Android

Aprendizaje automático: integración de Tensorflow en Android

Como todos sabemos, Google ha abierto una biblioteca llamada TensorFlow que se puede usar en Android para implementar Machine Learning.

TensorFlow es una biblioteca de software de código abierto para Machine Intelligence proporcionada por Google.

Busqué mucho en Internet pero no encontré una manera simple o un ejemplo simple para construir TensorFlow para Android. Después de pasar por muchos recursos, pude construirlo. Entonces, decidí escribir en él para que no tomara tiempo para otros.

Crédito: El ejemplo de clasificador se ha tomado del ejemplo de Google TensorFlow.

Este artículo es para aquellos que ya están familiarizados con el aprendizaje automático y saben cómo construir el modelo para el aprendizaje automático (para este ejemplo, usaré un modelo pre-entrenado). Antes escribiré una serie de artículos sobre aprendizaje automático para que todos puedan aprender a construir el modelo para el aprendizaje automático.

Comencemos con el proceso de construcción para Android

Pocos consejos importantes que debemos saber:

  • El núcleo de TensorFlow está escrito en c ++.
  • Para compilar para Android, tenemos que usar JNI (Java Native Interface) para llamar a las funciones de c ++ como loadModel, getPredictions, etc.
  • Tendremos un archivo .so (objeto compartido) que es un archivo compilado de c ++ y un archivo jar que consistirá en la API de JAVA que llamará al c ++ nativo. Y luego, llamaremos a la API de JAVA para hacer las cosas fácilmente.
  • Por lo tanto, necesitamos el archivo jar (API de Java) y un archivo .so (compilado con c ++).
  • Debemos tener el archivo del modelo previamente entrenado y un archivo de etiquetas para la clasificación.

En realidad no implementas el aprendizaje automático. Puede ejecutar algunas pequeñas aplicaciones de prueba con fines de aprendizaje. Pero el aprendizaje automático en la vida real implica el procesamiento de una gran cantidad de datos. También requiere una gran potencia de procesamiento. Aquí es donde los grandes datos entran en escena. Los móviles Android y otros dispositivos no están diseñados para estos. La mayoría de las aplicaciones de Android realizan aprendizaje automático / análisis / procesamiento en el servidor.

Editar: a medida que cambiaba el cuerpo de la pregunta. Quiero agregar algunos puntos. Estás intentando recomendar el sistema. El Sistema de recomendación recopila datos de varios usuarios y luego los clasifica de acuerdo con varios patrones. Para ese caso, las entradas tomadas de todos los usuarios deben agregarse y combinarse con un repositorio central para la recomendación correcta. Así es como funciona todo el Sistema de recomendación. Todos los trabajos de aprendizaje automático se realizan en el servidor / backend.

Si está creando un sistema que tomará la información de un solo usuario y le recomendará algo instantáneamente (sin ningún dato previo). Esto no es aprendizaje automático. Hay algunas API del lado del servidor pero ninguna API del lado del cliente (leer API de Android) hasta donde yo sé.

Si desea desarrollar algún sistema de recomendación móvil. Debe usar un servidor central para almacenar la entrada de varios usuarios. Y haga todas las tareas de procesamiento allí y proporcione solo la salida limpia del cliente de Android. La aplicación de Android funcionará como una especie de sistema de entrada / salida.

Aquí encontrará algunas referencias de implementación sobre el aprendizaje automático en Inteligencia móvil en aplicaciones móviles.