Implementación de IA para Android con TensorFlow
Ing. Juan Carlos Marino
FPPT.com
Contenido
• Introducción
• Qué es una red neuronal
• Qué es TensorFlow
• Demo
Introducción
• Qué es Inteligencia Artificial.
• Qué es Machine Learning.
• Qué es Deep Learning.
• Tipos de aprendizaje.
Inteligencia artificial
• Intento de hacer una computadora tan o más
inteligente que un ser humano.
• Darle capacidad de razonar o de pensar basado en
los datos que recibe
Machine learning
• Aprendizaje automático o autónomo
• Reconocimiento de patrones
– Inferencias basado solamente en los datos
• Conclusiones relevantes obtenidas de un conjunto de
datos, sin que el ser humano tenga que escribir
instrucciones o códigos para esto
Deep learning
• Aprendizaje profundo
• Uso de red neuronal de varios niveles
• Cada nivel añade complejidad
Proceso de entrenamiento
• Propagación hacia adelante
– Ingresar datos
– Calcular resultados
• Calcular error de la salida
• Propagar hacia atrás
• Optimizar con gradiente descendente
Ejemplo
• Identificar un gato
• Nivel 1: identificar bordes de imagen (zonas claras/oscuras)
• Nivel 2: Líneas o ángulos (basado en los bordes)
• Nivel 3: Ovalos o rectangulos (basado en nivel 2)
• Nivel 4: Figuras básicas como colas, patas (basado en nivel
3)
• Nivel N: Identificar un gato (basado en nivel N-1)
Aplicaciones ejemplo
• Utilización de imágenes en lugar de palabras clave para buscar productos de una empresa.
– Identificar marcas y logotipos de empresas en fotos publicadas en redes sociales.
• Monitorización en tiempo real de reacciones en canales online durante el lanzamiento de productos.
– Orientación de anuncios y predicción de las preferencias de los clientes.
– Identificación y seguimiento de los niveles de confianza de los clientes en diferentes canales.
– Identificación de clientes potenciales.
• Detección de fraudes, recomendaciones a clientes, gestión de relaciones con los clientes, etc.
– Detección, predicción y prevención de amenazas en tiempo real en el campo de la ciberseguridad.
• Mejor comprensión de enfermedades, mutaciones de enfermedades y terapias genéticas.
– Análisis de imágenes médicas, aumentando la precisión diagnóstica.
• Identificación en textos de sentimientos positivos y negativos, temas y palabras clave.
– Localización de caras e identificación de emociones faciales.
• Reconocimiento de voz.
Algoritmos / Modelos disponibles
• Supervisados.
– Clasificación.
– Regresión.
• No supervisados.
– Agrupamiento.
– Compresión de datos.
Algoritmos / Modelos disponibles
• Regresión lineal
• Árboles de decisión
• Redes bayesianas
• Algoritmos genéticos
• Redes neuronales
Qué es una red neuronal
• Neurona artificial
– Perceptrón
• Gradiente descendente
• Multicapas
• Propagación hacia atrás
• Regularización
Qué es una red neuronal
• Las entradas se pasan por capas de neuronas
• Se aplican pesos y sesgos
– Peso es la fuerza/influencia de la conexión
– Sesgo es que tan lejos están las predicciones de
los valores reales
• Las decisiones se hacen usando funciones de
activación
Neurona Artificial
Funciones de activación
Gradiente descendente
Multicapa
Propagación hacia atrás
Regularización
Redes neuronales convolucionales
• Se usan en procesamiento de imágenes
• Tres (3) tipos de capas.
– Una capa convolucional, que es la que le da le nombre a la red
– Una capa de reducción o de pooling, la cual va a reducir la
cantidad de parámetros al quedarse con las características
más comunes
– Una capa clasificadora totalmente conectada, la cual nos va
dar el resultado final de la red
Capa convolucional
• La operación de convolución recibe como entrada o input la imagen y luego aplica
sobre ella un filtro o kernel que nos devuelve un mapa de las características de la
imagen original, de esta forma logramos reducir el tamaño de los parámetros
• Características
– interacciones dispersas, ya que al aplicar un filtro de menor tamaño sobre la
entrada original podemos reducir drásticamente la cantidad de parámetros y
cálculos;
– los parámetros compartidos, que hace referencia a compartir los parámetros entre
los distintos tipos de filtros, ayudando también a mejorar la eficiencia del sistema; y
– las representaciones equivariante, que indican que si las entradas cambian, las
salidas van a cambiar también en forma similar.
Capa convolucional
Capa de reducción o pooling
• Se coloca generalmente después de la capa convolucional.
Su utilidad principal radica en la reducción de las
dimensiones espaciales (ancho x alto) del volumen de
entrada para la siguiente capa convolucional.
• Beneficios:
– la disminución en el tamaño conduce a una menor
sobrecarga de cálculo para las próximas capas de la red;
– también trabaja para reducir el sobreajuste
Capa de reducción o pooling
Capa clasificadora
• Cada pixel se considera como una neurona separada
al igual que en una red neuronal regular.
• Esta última capa clasificadora tendrá tantas neuronas
como el número de clases que se debe predecir.
Arquitectura
Qué es TensorFlow
• Desarrollado por Google
• Código Abierto
• Liberado el 5 de noviembre de 2015
• Versiones Linux, Windows, macOS, Android, iOS
• API para Pythion, Java, C++
• Construcción y entrenamiento de redes neuronales
Cómo usar TensorFlow
• Instalar:
– Python3
– pip3
– Virtualenv
• Crear ambiente virtual
• Activar ambiente virtual
• Instalar tensorflow
Cómo usar TensorFlow
• El modelo.
– Validar datos
– Crear modelo
• Función de optimización
• Función de exactitud
– Entrenar
– Congelar/Exportar
• La aplicación
– .jar
– .so
– Usar
• TensorFlowInferenceInterface (archivo .pb) - Mobile
• Interpreter (archivo .tflite) - Lite
Arquitectura
Demo
Demo