Está en la página 1de 27

Panorama General:

Aprendizaje Profundo
Dr. Erik Zamora
Objetivo

Conocer los Principios Bsicos y


el Estado del Arte sobre

el Aprendizaje Profundo
Contenido

Motivacin
Qu es el aprendizaje profundo?
Ventajas
Por qu es tan importante?
Para qu sirve?
Mtodos
Pre-entrenamiento
RN convolucionales
RN Recurrentes
Visualizacin
Otros mtodos
Futuro
Libreras
Tarea
Motivacin: Cmo podemos construir sistemas computacionales ms inteligentes?

Necesitamos algoritmos que interpreten y entiendan el mundo:


PERCEPCION COMPUTACIONAL

Esto implica:
Reconocimiento de imgenes y sonido.
Reconocimiento de eventos y acciones en video.
Entendimiento del lenguaje natural (escrito, hablado y corporal).
Traduccin entre lenguajes (idiomas, matemticas, y otros).
Prediccin del comportamiento del usuario.
Abstraccin de conceptos.
Habilidad para interactuar con ambientes no estructurados.

Motivacin: Cmo 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

[NVIDIA Class 1] [Jeff Dean 2015]


Qu es el aprendizaje profundo? Aprendizaje profundo

Aprendizaje poco profundo [Google]

Modelos Gaussianos Mezclados (GMM)


Campos Aleatorios Condicionales (CRF)
Modelos de Mxima Entropa (MaxEnt)
Maquinas de Soporte Vectorial (SVM)
Regresin Logstica
Regresin 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
Diseo Manual de Rasgos
Tres o ms capas de
transformaciones no lineales
Dilema de Invarianza
Descubrimiento Automtico de Rasgos
(aprendizaje de representacin)
Ventajas del Aprendizaje Profundo

Extraccin automtica de rasgos (Aprendizaje de Representacin)


Robustez
Escalable
Aprende Relaciones con mayor complejidad
Descubre Estructuras con mayor complejidad
Algoritmo general

Tendencias Histricas del Aprendizaje Automtico

Redes Monocapa Retropropagacion SVM Aprendizaje Profundo

~1950 ~1980 ~1990 2005


Por qu es tan importante?

[NVIDIA Class 1]
Por qu es tan importante? Se explota econmicamente

Hay inters por mejorar

[NVIDIA Class 1] [NVIDIA Class 1]

Ha roto records en:

Krizhevsky et al. 2012 Hinton et al. 2012


Aprender a sujetar objetos a
Para qu sirve el aprendizaje profundo? prueba y error

Predecir cundo una mutacin en el ADN puede Hacer que una computadora lea
generar empalmes errneos entre las secuencias de documentos y pueda contestar
genes al momento de producir protenas, descifrando preguntas semiabiertas sobre el
el origen gentico de algunas enfermedades texto

Xiog et al. 2014 Hermann et al. 2015 Pinto & Gupta 2015

Reconocer el rostro de personas con una


efectividad ~97% en una base de datos
de 4 millones de imgenes para 4000
identidades

Taigman et al. 2014


Lai 2015 Lai 2015
Para qu sirve el aprendizaje profundo?

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 del boson de Higgs en dos partculas tau con ruido de fondo (Kaggle)
Predecir la expresin de los genes a partir de rasgo genmicos y el contexto celular (Leung et al. 2014)
Construir el mapa circuital de una capa del cerebro de un ratn con 950 neuronas (Helmstaedter et al. 2013)
Entender el lenguaje natural usando computadoras: clasificacin por tema, anlisis de sentimientos, contestando
preguntas (Bordes et al. 2014) y traduccin de idiomas (Jean et al. 2015)
Seleccionar los resultados ms relevantes de los buscadores web (Google, Bing, etc)
Recomendar productos en las pginas de comercio electrnico
Emparejar la oferta de algo con la persona que le interesa (Netflix, Facebook, etc)
Filtrar contenido en las redes sociales (Amazon)
Por qu I+D del aprendizaje profundo estn en auge?

[NVIDIA Class 1]
Mtodos de Aprendizaje Profundo

Pre-entrenamiento
RN Convolucionales RN Recurrentes

Vyngals et al. 2014

Hinton et al. 2006, Science Zeigler & Fergus 2014

Visualizacin

Google
Mtodos: Autoencoders
Mtodos: Pre-entrenamiento

Hinton et al. 2006, Science

Deep Autoencoders Deep Belief Networks


Mtodos: Autoencoders Hinton et al. 2006, Science
Mtodos: Redes Neuronales Convolucionales

Su alto desempeo se fundamenta en cuatro cosas:


1) el uso eficiente de GPUs (paralelizacin),
2) la funcin de activacin ReLUs,
3) el dropout y
4) tcnicas para generar ms ejemplos de entrenamiento
artificialmente.
Mtodos: Redes Neuronales Recurrentes
Prediccin del siguiente carcter

Diferencias respecto a CNN


Estado interno -> Memoria
Aproximadores de
Programas (vs funciones)

Descripcin automtica de imgenes

Vyngals et al. 2015


Mtodos: Redes Neuronales Recurrentes

Vyngals et al. 2015

Vyngals et al. 2015


Mtodos: Redes Neuronales Recurrentes
Maquina de Turing Neuronal
Redes de Gran Memoria de Corto Plazo (LSTM)

Graves 2014

Redes de Memoria (MemNN)


Aprendizaje+ Inferencia + Memoria

Vyngals et al. 2015


Weston et al. 2015
Mtodos: Visualizacin

Redes Deconvolucionales (Zeiler & Fergus 2014)


Inversin por optimizacin. Trata de hallar una imagen que genere
los mismos rasgos de la imagen original mediante un mtodo de
optimizacin, inicializando con una imagen llena de ruido aleatorio
(Mahendran & Vedaldi 2014, Yosinski et al. 2015). Puede aplicarse a
Google Inceptionism
cualquier tipo de rasgos (SIFT, HOG, etc).
Mtodos: otros
Aprendizaje No Supervisado Profundo

Redes Estocsticas Generativas (GSM)


Autoencoder CNN para aprender rasgos de videos suponiendo
que el cambio de frame de frame es pequeo

LeCun et al. 2015

LeCun et al. 2015

Bengio et al. 2014


Mtodos: otros Aprendizaje por Refuerzo Profundo

Deep Q Network

Video http://ow.ly/TuiF8

100% Nivel Humano


Futuro del Aprendizaje Profundo [LeCun, Bengio, Hinton 2015]

Aprendizaje no supervisado (Aun no han roto records en estos benchmarks)

Percepcin activa
Deep Learning Libraries by Language
Libreras http://www.teglor.com/b/deep-learning-libraries-language-cm569/

Caffe (C++ con interfaces para Matlab y Python) Es la ms 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) http://deeplearning.net/software/theano/
Deepleaning4j (Java) http://deeplearning4j.org/
cuDNN (Deep Neural Network library) https://developer.nvidia.com/cudnn
cuBLAS (Basic Linear Algebra Subroutines) https://developer.nvidia.com/cublas

Nvidia Class 1
Nvidia Class 1
Tarea
Resumen

Motivacin
Qu es el aprendizaje profundo?
Ventajas
Por qu es tan importante?
Para qu sirve?
Mtodos
Pre-entrenamiento
RN convolucionales
RN Recurrentes
Visualizacin
Otros mtodos
Futuro
Libreras
Tarea