Llegamos a ustedes gracias a:



Noticias

Core ML lleva el aprendizaje de máquina a los desarrolladores de Apple

[09/06/2017] Esta semana Apple dio a conocer Core ML, un marco de trabajo de software para permitir que los desarrolladores desplieguen y trabajen con modelos de aprendizaje de máquina entrenados en aplicaciones en todas las plataformas de Apple (iOS, MacOS, TvOS y WatchOS).

Core ML está diseñado para ahorrarle a los desarrolladores el tener que crear ellos mismos todas las 'tuberías' a nivel de plataforma para desplegar un modelo, ofrecer predicciones suyas y manejar cualquier condición extraordinaria que puedan surgir. Pero actualmente también es un producto beta y con un conjunto de funciones muy restringido.

Core ML proporciona tres marcos de trabajo básicos para ofrecer predicciones: Fundamentos para proporcionar tipos de datos y funcionalidades comunes tal y como se usan en las aplicaciones de Core ML, Vision para imágenes y GameplayKit para el manejo de la lógica y los comportamientos de los gameplays.

Cada marco de trabajo proporciona objetos de alto nivel, implementados como clases en Swift, que cubren casos de uso específicos y entrega de predicciones más abiertas. El marco de trabajo de Vision, por ejemplo, proporciona clases para la detección de rostros, códigos de barras, detección de textos y detección de horizontes, así como clases más generales para cosas como seguimiento de objetos y alineación de imágenes.

Apple tiene la intención de que la mayor parte del trabajo de desarrollo de Core ML se realice a través de estas clases de alto nivel. "En la mayoría de los casos, uno interactúa sólo con la interfaz de su modelo generada de forma dinámica, se lee en la documentación de Apple, "la cual es creada por Xcode automáticamente cuando uno añade un modelo a su proyecto Xcode. Para "flujos de trabajo personalizados y casos de uso avanzados, sin embargo, hay una API de nivel inferior que ofrece manipulación de mayor detalle de los modelos y predicciones.

Ya que Core ML es para ofrecer predicciones a partir de modelos, y no los propios modelos de entrenamiento, los desarrolladores tienen que tener modelos ya preparados. Apple provee algunos modelos de aprendizaje de máquina de ejemplo, algunos de los cuales son inmediatamente útiles, tales como el modelo ResNet50 para la identificación de objetos comunes (por ejemplo, automóviles, animales, personas) en imágenes.

Las aplicaciones más útiles para Core ML vendrán a través de modelos entrenados y proporcionados por los propios desarrolladores. Aquí es donde los adoptadores tempranos probablemente se encuentren con los obstáculos más grandes, teniendo en cuenta que los modelos tendrán que convertirse al propio formato de modelo de Core ML antes de poder ser implementados.

Apple ha proporcionado herramientas para lograrlo, principalmente el paquete "Coremltools para Python, que puede realizar la conversión a partir de varios formatos populares de modelos de terceros. Las malas noticias: Coremltools actualmente soporta solo las versiones iniciales de algunos de esos modelos, como la versión 1.2.2 del sistema de aprendizaje profundo Keras (ahora en versión 2.0). Las buenas noticias: Ese kit de herramientas es de código abierto (licencia BSD), lo que significa que debería ser relativamente fácil para los contribuyentes acelerarlo.

Core ML está limitado de otras formas. Por ejemplo, no hay ninguna disposición dentro de Core ML para el reentrenamiento del modelo o para el aprendizaje federado, en donde los datos recolectados del campo se utilizan para mejorar la exactitud del modelo. Eso es algo que uno tiene que implementar a mano, probablemente pidiendo a los usuarios de la aplicación que elijan la recolección de datos y usar esos datos para reentrenar al modelo para una futura edición de la aplicación.

Es completamente posible que características como esta podrían surgir en las futuras revisiones de Core ML, una vez que los desarrolladores se acostumbren al flujo de trabajo básico involucrado y se sientan cómodos con las metáforas de Core ML. Una metodología estándar para el uso de modelos entrenados de aprendizaje de máquina en Apple es un buen comienzo para los desarrolladores, pero es más atractivo facilitar la transformación de las interacciones del usuario con esos modelos en una mejor inteligencia en el tiempo.