Machine Learning para Apps

Aprendizaje Automático para el desarrollo de aplicaciones en iOS y Android

Juan Rinconada
4 min readJan 30, 2021

Introducción

Este artículo es una recopilación de información esencial sobre inteligencia artificial, machine learning y las herramientas que permiten su uso en aplicaciones iOS y Android.

Para una guía más prácticas de aplicación a iOS con CoreML, revisar este otro artículo: https://jrinconada.medium.com/machine-learning-en-ios-bace3a5b85b1

Deep Learning

:aprendizaje automático (machine learning) usando redes neuronales con muchas capas ocultas, de esas “muchas capas” colocadas una detrás de otra viene la profundidad (deep).

Redes neuronales

:conjunto de neuronas distribuidas en capas de entrada, salida y capas ocultas conectadas entre sí.

Ejemplo de red neuronal capaz de clasificar números escritos con 825 neuronas y 13002 parámetros. Con 784 neuronas de entrada, 2 capas ocultas con 16 neuronas y una capa de salida con 10 neuronas

Las 784 neuronas de entrada corresponden a los valores de intensidad de color de una imagen de 28 por 28 píxeles en blanco y negro. (28 x 28 = 784)

Neurona

:sumatorio de valores ponderados por pesos que representan la contribución de las neuronas anteriores añadiendo un valor de ajuste (bias) y aplicando una función de activación para normalizar la salida hacia la siguiente capa de neuronas.

Función de activación

:comprime el resultado a un número normalizado (entre 0 y 1), puede hacerse de forma lineal, escalonada (step), continua (sigmoidal, tangente hiperbólica)… pero la más utilizada hoy en día es la función ReLU.

Ejemplos de funciones de activación

Aprendizaje supervisado

CNN para Clasificación

Las redes neuronales convolucionales aplican capas de filtrado que detectan características importantes (convolution), reducen el tamaño (pooling) y adaptan los datos a una dimensión (flattening) para una red neural totalmente conectada.

Ejemplos de uso: Reconocimiento de imágenes, detección de características, parseo semántico…

CNN + Regresión

Uso de una red neuronal convolucional en conjunto con técnicas de análisis estadístico de regresión lineal, múltiple, logarítmica… sirve para realizar predicciones.

Ejemplos de uso: Predicción de precios, acciones, mercados…

RNN

Las redes neuronales recursivas tienen bucles de retroalimentación que permiten tener memoria útil para procesar secuencias de información.

Ejemplos de uso: Procesado de texto, voz, vídeo, análisis sentimental, traducción y generación de texto, detección de anomalías…

Aprendizaje sin supervisión

Usado para segmentación de datos (Data mining)

Ejemplos de uso: clustering, ranking, reducción de dimensiones, extracción de patrones…

Herramientas para desarrollo de apps

iOS

Core ML es un conjunto de librerías de iOS que aprovechan el hardware específico de los dispositivos Apple usando redes neuronales para reconocimiento de imágenes, análisis de lenguaje, sonido y transformar audio a texto. Con la herramienta Create ML se pueden generar modelos de Core ML para usarlos en una aplicación iOS.

Android

ML Kit es un servicio ofrecido por Google para incluir de aprendizaje automático para dispositivos móviles integrado con Firebase para aplicar funcionalidades en la nube. Permite análisis de imágenes y vídeo aplicado a reconocimiento de imágenes, texto, caras y escaneado códigos de barras. En el campo de procesamiento del lenguaje puede identificar idiomas, traducir y generar respuestas inteligentes. Con el servicio Auto ML Vision Edge se pueden entrenar modelos de reconocimiento de imagen o usar modelos propios de TensorFlow Lite.

Otros

Otros servicios para integrar machine learning especialmente preparado para aplicaciones web son Teachable Machine, ml5js, TensorFlow o AWS.

--

--

Juan Rinconada

Software developer and teacher experienced in Android, iOS, C++, Raspberry Pi, Arduino, Python, Cobol…