El año pasado, Apple lanzó Core ML-a en el mundo del aprendizaje automático para desarrolladores de Apple. Antes de eso, ya usábamos el aprendizaje automático con tecnologías como Autocorrección, Siri y un teclado predictivo, pero Core ML trajo un nuevo nivel de poder y flexibilidad a los desarrolladores. Durante la WWDC 18, Apple anunció Core ML 2, y en este artículo aprenderá qué hay de nuevo..
Antes de profundizar en los cambios que trae el Core ML 2, discutamos brevemente qué es realmente el Core ML. Más específicamente, aprendamos un poco sobre los matices del aprendizaje automático. Core ML es un marco que permite a los desarrolladores de iOS y macOS implementar de manera fácil y eficiente el aprendizaje automático en sus aplicaciones..
El aprendizaje automático es el uso del análisis estadístico para ayudar a las computadoras a tomar decisiones y predicciones basadas en las características encontradas en esos datos. En otras palabras, es el hecho de tener una computadora que forma una comprensión abstracta de un conjunto de datos existente (llamado "modelo") y usar ese modelo para analizar datos más recientes.
Al utilizar tecnologías de bajo nivel en las plataformas de Apple, Core ML puede ofrecer herramientas de aprendizaje automático rápidas y eficientes para implementar en sus aplicaciones. Esto funciona utilizando Metal y Accelerate para aprovechar al máximo la GPU y la CPU del dispositivo, lo que permite una velocidad perfecta. Esto también permite que el aprendizaje automático funcione en el dispositivo en lugar de necesitar acceso a Internet para cada solicitud..
Predice los valores de las características de salida a partir de un lote dado de valores de características de entrada.-Documentación de Apple
Cabe destacar la predicción de lotes ya que Apple no la tenía en la primera versión de Core ML. De un vistazo, la predicción por lotes le permite ejecutar su modelo en un conjunto de datos y obtener un conjunto de resultados.
Si tuvieras un modelo Core ML para clasificar las imágenes en función de si contenían flores o árboles y querías clasificar varias imágenes, digamos 300, deberías escribir un en bucle
para iterar a través de cada una de las imágenes y clasificarlas regularmente usando su modelo.
En Core ML 2, sin embargo, obtenemos lo que Apple llama el API de predicción de lotes. Esto nos permite hacer predicciones múltiples sobre un conjunto de datos sin tener que usar bucles for. Si quisieras usarlo, solo llamarías:
modelOutputs = model.prediction (de: modelInputs, options: options)
modelInputs
, en este ejemplo, es el conjunto de entradas en las que le gustaría ejecutar su modelo, pero no cubriremos lo que opciones
están en este articulo Si desea obtener más información sobre cómo utilizar la API de Batch Predict, no dude en consultar la documentación de Apple. Si bien esto puede parecer poco importante al principio, en realidad mejora el rendimiento del modelo en un 30%.!
Use Create ML con herramientas conocidas como Swift y macOS playgrounds para crear y entrenar modelos personalizados de aprendizaje automático en su Mac. Puede entrenar modelos para realizar tareas como reconocer imágenes, extraer significados de texto o encontrar relaciones entre valores numéricos. Documentación de Apple
Si bien Core ML siempre ha sido una plataforma poderosa, no siempre fue fácil crear sus propios modelos. En el pasado, era casi necesario estar familiarizado con Python para crear incluso los modelos más básicos. Con Core ML 2, también tenemos Create ML, una forma fácil para que usted cree sus propios modelos Core ML..
Sin embargo, Create ML no solo se limita a modelos basados en imágenes. Sin siquiera crear un proyecto Xcode real, puedes entrenar diferentes tipos de modelos en un área de juegos. Además, también puede probar estos modelos y exportarlos para usarlos en cualquier aplicación..
Con un patrón como una red neuronal convolucional, Crear ML puede ayudarlo a crear un clasificador de imagen personalizado para identificar ciertas características de una imagen dada. Por ejemplo, podrías entrenarlo para distinguir entre un árbol y una flor..
O podría usarlo para aplicaciones más complejas, como identificar el tipo de planta o una raza específica de perros. Según la cantidad de imágenes, la precisión aumenta, como con cualquier modelo de aprendizaje automático..
Echa un vistazo a mi publicación aquí en Envato Tuts + para aprender cómo crear un clasificador de imágenes en Crear ML.
Además de ser una herramienta para la clasificación de imágenes, Create ML también puede ayudarlo a crear modelos de aprendizaje automático basados en texto. Por ejemplo, puede crear un modelo que le indique el sentimiento en una oración en particular. O puede crear un filtro de correo no deseado que utilice las características del texto (es decir, las palabras utilizadas) para verificar si una cadena es "correo no deseado" o "no es correo no deseado".
A veces, varios puntos de datos o características pueden ser útiles cuando se trata de clasificar datos. Las hojas de cálculo son un buen ejemplo de esto, y Create ML puede crear modelos Core ML basados en CSV archivos también.
Ahora, sus hojas de cálculo de Excel se pueden usar para hacer un modelo que predice el mercado de valores basado en patrones de compra y venta; o tal vez, predice el género del libro basado en el nombre del autor, el título y el número de páginas.
Agrupar su modelo de aprendizaje automático en su aplicación es la forma más fácil de comenzar con Core ML. A medida que los modelos se vuelven más avanzados, pueden volverse grandes y ocupar un espacio de almacenamiento significativo. Para un modelo basado en redes neuronales, considere reducir su huella utilizando una representación de menor precisión para sus parámetros de peso.-Documentación de Apple
Con la introducción de Core ML 2 y iOS 12, los desarrolladores ahora pueden reducir el tamaño de sus modelos ya entrenados en más del 70% del tamaño original. El tamaño del modelo puede ser un problema real: es posible que haya notado que algunas de sus aplicaciones se vuelven cada vez más grandes con cada actualización.!
Esto no es una sorpresa, porque los desarrolladores están constantemente mejorando sus modelos de aprendizaje automático y, por supuesto, como se indica en la documentación del desarrollador, los modelos más avanzados ocupan más espacio de almacenamiento, lo que hace que la aplicación sea más grande. Si la aplicación es demasiado grande, algunos usuarios pueden dejar de descargar actualizaciones y pueden dejar de usar estas aplicaciones.
Afortunadamente, ahora tienes la capacidad de comotamaño un modelo, que permite que su tamaño disminuya significativamente, en función de la cantidad de calidad que está dispuesto a renunciar. La cuantización no es la única manera de ir; también hay otras formas!
Core ML Tools proporciona a los desarrolladores una forma de reducir los pesos a medio tamaño. Si no sabes que pesos están aún, está bien; todo lo que necesita saber es que están directamente relacionados con la precisión del modelo. Como habrás adivinado, la mitad del tamaño equivale a la mitad de la precisión.
Los modelos anteriores a Core ML 2 solo tenían la opción de ser representados con 32 bits, lo que es excelente para la precisión, pero no es ideal para el tamaño de almacenamiento. La media precisión reduce esto a solo 16 bits y puede reducir considerablemente el tamaño del modelo. Si desea hacer esto con sus modelos, visite la documentación para obtener una guía completa.
Es genial tener sus modelos en su dispositivo porque se traduce en una mayor seguridad y rendimiento, y no depende de una conexión a Internet sólida. Sin embargo, si su aplicación usa varios modelos para crear una experiencia perfecta para el usuario, es posible que no todos estos modelos sean necesarios al mismo tiempo..
También puede descargar estos modelos según sea necesario y compilarlos en el lugar en lugar de agruparlos con su aplicación y aumentar la cantidad de espacio que su aplicación ocupa en el dispositivo de su usuario. Incluso puede descargar estos modelos y almacenarlos en el dispositivo de su usuario temporalmente para evitar descargar el mismo modelo varias veces..
En este artículo, aprendiste sobre las últimas y mejores tecnologías en Core ML y cómo se compara con la versión del año anterior de la API. Mientras esté aquí en Envato Tuts +, consulte algunos de nuestros otros excelentes contenidos de aprendizaje automático.!