Panorama General:
Aprendizaje Profundo Dr. Erik Zamora
Objetivo
Conocer los Principios Básicos y el Estado del Arte sobre… …el Aprendizaje Profundo
Contenido •
•
•
•
•
•
Motivación ¿Qué es el aprendizaje profundo? Ventajas ¿Por qué es tan importante? ¿Para qué sirve? Métodos Pre-entrenamiento RN convolucionales RN Recurrentes Visualización Otros métodos Futuro Librerías Tarea •
•
•
•
•
•
•
•
Motivación: ¿Cómo podemos construir sistemas computacionales más inteligentes?
Necesitamos algoritmos que interpreten y entiendan el mundo: PERCEPCION COMPUT COMPU TACIONAL
Esto implica: Reconocimiento de imágenes y sonido. Reconocimiento de eventos y acciones en video. Entendimiento del lenguaje natural (escrito, hablado y corporal). Traducción entre lenguajes (idiomas, matemáticas, y otros). Predicción del comportamiento del usuario. Abstracción de conceptos. Habilidad para interactuar con ambientes no estructurados. … •
•
•
•
•
•
•
•
Motivación: ¿Cómo lo logramos? Hay dos caminos directos: Crear algoritmos particulares para cada tarea •
[NVIDIA Class 1] •
Crear algoritmos generales que aprendan de las observaciones en cada tarea
Aprendizaje Profundo
¿Qué es el aprendizaje profundo? profundo?
Aprendizaje profundo
Aprendizaje poco profundo • • • • • • • • •
[Google]
Modelos Gaussianos Mezclados (GMM) Campos Aleatorios Condicionales (CRF) Modelos de Máxima Entropía (MaxEnt) Maquinas de Soporte Vectorial (SVM) Regresión Logística Regresión por Kernel Redes Neuronales Monocapa RN Multicapa de 2 capas Maquinas de Aprendizaje Extremo
Tienen una o dos capas de transformaciones no lineales
Pre-Entrenamiento
CNN
RNN
Diseño Manual de Rasgos
Dilema de Invarianza Invarianza
Tres o más capas de transformaciones no lineales Descubrimiento Automático de Rasgos
Ventajas del Aprendizaje Profundo
•
• • • •
•
Extracción automática de rasgos (Aprendizaje (Aprendizaje de Representación) Representación) Robustez Escalable Aprende Relaciones con mayor complejidad Descubre Estructuras con mayor complejidad Algoritmo general
Tendencias Históricas del Aprendizaje Automático Redes Monocapa
~1950
Retropropagacion
~1980
~1990
SVM
Aprendizaje Profundo
2005
¿Por qué es tan importante importante? ?
¿Por qué es tan importante importante? ?
Se explota económicamente
Hay interés por mejorar
[NVIDIA Class 1]
Ha roto records en:
[NVIDIA Class 1]
Aprender a sujetar objetos a prueba y error
¿Para qué sirve el aprendizaje profundo? Predecir cuándo una mutación en el ADN puede generar empalmes erróneos entre las secuencias de genes al momento de producir proteínas, descifrando el origen genético de algunas enfermedades
Xiog et al. 2014
Reconocer el rostro de personas con una efectividad ~97% en una base de datos de 4 millones de imágenes para 4000 identidades
Hacer que una computadora lea documentos y pueda contestar preguntas semiabiertas sobre el texto
Hermann et al. 2015
Pinto & Gupta 2015
¿Para qué sirve el aprendizaje profundo?
Lai 2015
Lai 2015
Hacer que una computadora aprenda por si misma a jugar Ajedrez y en 72 horas alcanzar el nivel internacional de maestro
• • • • •
• • • •
Predecir la actividad de nuevas drogas (Sheridan et al. 2015) Reconocer decaimientos decaimientos del boson de Higgs en dos partículas tau con ruido de fondo (Kaggle) Predecir la expresión de los genes a partir de rasgo genómicos y el contexto celular ( Leung et al. 2014) Construir el mapa circuital de una capa del cerebro de un ratón con 950 neuronas (Helmstaedter et al. 2013) Entender el lenguaje natural usando computadoras: clasificación por tema, análisis de sentimientos, contestando preguntas (Bordes (Bordes et al. 2014) y traducción de idiomas (Jean et al. 2015) Seleccionar los resultados más relevantes de los buscadores web (Google, Bing, etc) Recomendar Recomendar productos en las páginas de comercio electrónico Emparejar la oferta de algo con la persona que le i nteresa (Netflix, Facebook, Facebook, etc) Filtrar contenido en las redes sociales (Amazon)
¿Por qué I+D del aprendizaje profundo profundo están en auge?
[NVIDIA Class 1]
Métodos de Aprendizaje Profundo
Pre-entrenamiento
RN Convolucionales
RN Recurrentes
Vyngals et al. 2014 Hinton et al. 2006, Science
Zeigler & Fergus 2014
Visualización
Métodos: Autoencoders
Métodos: Pre-entrenamiento
Hinton et al. 2006, Science
Métodos: Autoencoders
Hinton et al. 2006, Science
Métodos: Redes Neuronales Convolucionales
Su alto desempeño se fundamenta en cuatro cosas: 1) el uso eficiente eficiente de GPUs GPUs (paraleliz (paralelización) ación),, 2) la funció función n de activ activaci ación ón ReLU ReLUs, s, 3) el drop dropou outt y 4) técnicas técnicas para para generar generar más ejemplos ejemplos de entrena entrenamien miento to
Métodos: Redes Neuronales Recurren Recurrentes tes Predicción del siguiente carácter
Diferencias respecto a CNN Estado interno -> Memoria Aproximadores de Programas (vs funciones) •
•
Descripción automática de imágenes
Vyngals et al. 2015
Métodos: Redes Neuronales Recurren Recurrentes tes
Vyngals et al. 2015
Métodos: Redes Neuronales Recurren Recurrentes tes
Maquina de Turing Neuronal
Redes de Gran Memoria de Corto Plazo (LSTM)
Graves 2014
Redes de Memoria (MemNN) Aprendizaje+ Inferenc Inferencia ia + Memoria
Vyngals et al. 2015
Métodos: Visualización
• •
Google Inceptionism
Redes Deconvolucionales (Zeiler & Fergus 2014) Inversión por optimización. Trata de hallar una imagen que genere los mismos rasgos de la imagen original mediante un método de optimización, inicializando con una imagen llena de ruido aleatorio (Mahendran (Mahendran & Vedaldi 2014, Yosinski et al. 2015). Puede aplicarse a cualquier tipo de rasgos (SIFT, (SIFT, HOG, etc).
Métodos: otros
Aprendizaje No Supervisado Profundo
Autoencoder CNN para aprender rasgos de videos suponiendo que el cambio de frame de frame es pequeño
Redes Estocásticas Generativas (GSM)
LeCun et al. 2015 LeCun et al. 2015
Bengio et al. 2014
Métodos: otros
Aprendizaje por Refuerzo Profundo
Deep Q Network
Video http://ow http://ow.ly/TuiF8 .ly/TuiF8
Futuro del Aprendizaje Profundo
[LeCun, Bengio, Hinton 2015]
Aprendizaje no supervisado (Aun no han roto records en estos benchmarks) Percepción activa
Librerías • • • •
• •
Deep Learning Libraries by Language http://www.teglor.com/b/deep-learning-libraries-language-cm569/
Caffe (C++ con interfaces interfaces para Matlab y Python) Es la más popular http://caffe.berkeleyvision.org/ Torch (C y Lua) usado por Facebook Research, Google Deepmind y Twitter http://torch.ch/docs/cvpr15.html Theano (Python) Theano (Python) http://deeplearning.net/software/theano/ Deepleaning4j (Java) http://deeplearning4j.org/ cuDNN (Deep (Deep Neural Network library) https://developer.nvidia.com/cudnn cuBLAS (Basic (Basic Linear Algebra Subroutines) https://deve https://developer loper.nvidia.com/cublas .nvidia.com/cublas
Tarea
Resumen •
•
•
•
•
•
Motivación ¿Qué es el aprendizaje profundo? Ventajas ¿Por qué es tan importante? ¿Para qué sirve? Métodos Pre-entrenamiento RN convolucionales RN Recurrentes Visualización Otros métodos Futuro Librerías Tarea •
•
•
•
•
•
•
•