Matemáticas para la Inteligencia Artificial
Dr. Gabriel GuerreroSistemas Abiertos X Sistemas Abiertos [email protected]
OBJETIVO
Construcción de aplicaciones basadas en Inteligencia Artificial¡Todos
queremos estar en el Roof
Garden del Burj Khalifa*!
Es decir, en la frontera del conocimiento generando aplicaciones de Inteligencia Artificial.
*Edificio mas alto del mundo Dubái, 828 m
Los países desarrollados tienen grandes adelantos en Inteligencia Artificial
En México, aún falta mucho!!
Pero nunca es tarde para acelerar el paso!!
Yo quiero hacer mi parte en Inteligencia Artificial,
pero...
¿por dónde empiezo?
Yo quiero hacer mi parte, como el colibrí en la Inteligencia Artificial,
pero ¿por dónde empiezo?
En general solo observamos lo visible en la superficie…
Pero los grandes arquitectos e ingenieros piensan en cimientos y excavaciones bajo tierra fuertes y
de calidad
Fundamentos de Matemáticas y
Estadística Álgebra Lineal y
Geometría Analítica Calculo Diferencial Optimización
Matemática Análisis Numérico Análisis Funcional Estadística Probabilidad CIMIENTOS
VectoresMatricesVectoresMatrices
EspaciosN dimensionales
EspaciosN dimensionales
Operador deconvoluciónOperador deconvolución
GradientesGradientes
Algoritmos demin y max
Algoritmos demin y max
AproximaciónDe polinomiosAproximaciónDe polinomios
Machine Learning
Algoritmos de ML supervisados
Algoritmos de ML no supervisados
CIMIENTOS
BayesBayes
RegresionLineal
RegresionLineal
DBSCANDBSCAN
ICAICA
Arboles de decisiónArboles de decisión
Refresionlogistica
Refresionlogistica
kNNkNN
SVMSVM
SVDSVD
PCAPCA
K-meansK-means
Herramientas
Linux Python Jupyter Hadoop MongoDB Spark TensorFlow Keras Bokeh Dash
CIMIENTOS
Aplicaciones basadas en:
Deep Learning
Redes Neuronales Artificiales
Redes Neuronales Convolutivas (CNN)
Redes Neuronales Recurrentes (RNN)
CIMIENTOS
Convolución
Una convolución es un operador matemático que transforma dos funciones f y g en una tercera función que en cierto
sentido representa la magnitud en la que se superponen f y una versión trasladada e invertida de g.
Tensor
En Matemáticas y Física, un tensor es una entidad algebraica de varios componentes, que generaliza los
conceptos de escalar, vector y matriz.
Siendo así:Un escalar es un tensor de orden 0, el cual tiene magnitud pero no dirección.
Un vector es un tensor de orden 1, el cual tiene magnitud y dirección
Una matriz es un tensor de orden 2, el cual tiene magnitud y dos direcciones.
Habiendo tensores de orden N.
Como una mejora y simplificación de DistBelief, Google crea un marco de trabajo con tensores denominado TensorFlow. Este sistema es un marco simbólico de manipulación de tensores para Python que admite auto diferenciación, lo que simplifica enormemente la implementación de nuevos modelos.
En 2015, Google ofrece TensorFlow como un sistema de código abierto y se inicia una nueva era del Aprendizaje Profundo.
TensorFlow tiene APIs disponibles en varios lenguajes de programación, para la construcción y ejecución de un grafo de TensorFlow. La API de Python es actualmente la más completa y la más fácil de usar.
El motor de procesamiento de tensores: TensorFlow
TensorFlow es una biblioteca de software de código abierto para computación numérica de alto rendimiento.
La arquitectura flexible de TensorFlow permite una fácil implementación en una variedad de plataformas como: CPU, GPU y TPU, en equipos de escritorio hasta clústeres de servidores y dispositivos móviles.
Hoy podemos pensar de forma coloquial, que CUDA con cuDNN son el “ensamblador” y TensorFlow con Keras es un lenguaje de alto nivel como Python, que ofrece una interfaz mas amigable, pero que en sus entrañas tiene los elementos del ensamblador!
TensorFlow
Inicio de IA1950~
1989Aplicación práctica
Yann Lecun
LeNet1990
2000-2010Sin gran impulsoPequeños grupos siguen trabajando
2011Dan Ciresan del IDSIA Propone
clasificación con RN y GPUś
2012-2015CV Computer VisionComputación para
imágenes
Geoffrey Hinton clasifica imágenes al 96% de éxito
2012
NVIDIA crea su interfaz de
programación de GPU’s 2007
*2007 - NVIDIA crea su interfaz de programacion de GPU’s *2010 - Surgimiento de GPU’s de costo mas accesible*2013 - NVIDIA licencia su tecnología gráfica (GPU’s)*Bibioteca cuDNN (CUDA Deep Neural Network), permite acelerar el cómputo en procesadores GPUs de las funciones de CUDA asociadas a Redes Neuronales con metodología de Aprendizaje Profundo (CUDA for Deep Neural Networks). *Actualmente – NVIDIA ofrece el conjunto de herramientas NVIDIA Deep Learning SDK
http://www.wangdali.net/nvgpu/gpu-roadmap-gtc-2015-memory-capacity/
En 2015 se crea Keras que es una bibliotecas fácil de usar que facilita la generación de aplicaciones con redes neuronales con Aprendizaje Profundo.
Keras es una biblioteca que ofrece modelos (model-level library) que proporciona bloques de construcción de alto nivel para desarrollar modelos de Aprendizaje Profundo.
Keras
DL = (ML)**N