Core ML, cómo integrar modelos de machine learning en tu app

El pasado 1 de febrero arrancó una nueva temporada de “In Code we Trust” con el meetup “Introducción a Core ML” de José Ángel Cuadrado, desarrollador iOS en Intelygenz, que nos dio a conocer el nuevo framework de Apple para la integración de modelos de Machine Learning en nuestras aplicaciones iOS (así como macOS, tvOS y watchOS).

Machine Learning, conceptos básicos

Nuestro compañero comenzó su charla acercándonos algunos conceptos básicos sobre Machine Learning o Aprendizaje Automático, la rama de Inteligencia Artificial en la que un sistema aprende a partir de su experiencia y de los patrones que identifica en diferentes conjuntos de datos.

Tras esta pequeña introducción al machine learning, pasamos a ver otros conceptos como las Redes de Neuronas Artificiales, una técnica de machine learning que imita el comportamiento de las redes de neuronas biológicas; o el Procesamiento de Lenguaje Natural (PLN), el campo que estudia la comunicación entre personas y máquinas a través de lenguaje humano.

Llegó entonces el momento de entrar en materia con Core ML, anunciado en la conferencia WWDC de Apple en Junio del año pasado. Core ML es un framework para la integración de modelos de machine learning, (entre los que podremos encontrar redes de neuronas, árboles de decisión, vectores de soporte, modelos lineales…) que permite generar predicciones directamente dentro del propio dispositivo del usuario.

 

Core ML integra un modelo entrenado en machine learning en tu app.

 

¿Cómo llegó Apple hasta Core ML?

José Ángel se remontó a iOS5 con la inclusión de PLN con NSLinguisticTagger para lo que preparó un pequeño ejemplo con código que nos dejó ver su funcionamiento al reconocer el lenguaje en que está escrito un determinado texto, nombre propios, de lugares, de organizaciones o, incluso, la morfología de la frase.

Con iOS 8 llegó Metal, una librería enfocada sobre todo al mundo de los videojuegos y que nos permitía acceso casi directo a la GPU para nuestros algoritmos.

Las versiones más actuales de iOS ya dejaban entrever lo que iba a ser Core ML, como iOS 10 que permitía la posibilidad de ejecutar redes neuronales con BNNS, una versión reducida de todo lo que vendría más tarde con este framework.

Finalmente, la llegada de iOS 11 daba lugar a la integración de Machine Learning con Vision y Core ML, permitiendo generar predicciones dentro del dispositivo sin tener que sacar los datos fuera del mismo.

De esta forma, nuestra app puede soportar Vision para el análisis de imágenes o GameplayKit para la evaluación de árboles de decisión, ayudado todo ello por Core ML, que utiliza frameworks como Metal o Accelerate para hacer los procesos necesarios.

 

Estructura Core ML

 

Con esto, José Ángel finalizó una primera parte predominantemente teórica dando lugar a una demo sobre cómo utilizar el modelo de ML en una app de iOS y cómo crear nuestros propios modelos de machine learning para utilizarlos posteriormente.

Puedes seguir todo el proceso en el siguiente vídeo, ¡hasta la próxima!

 

#InCodeWeTrust