57
DEEP LEARNING GTEC – WISEATHENA Email: [email protected] GABRIEL VALVERDE CASTILLA Dr. Federico Castanedo

Deep Learning + R by Gabriel Valverde

Embed Size (px)

DESCRIPTION

Deep Learning and R

Citation preview

Page 1: Deep Learning + R by Gabriel Valverde

DEEP LEARNING

GTEC – WISEATHENAEmail: [email protected]

GABRIEL VALVERDE CASTILLA

Dr. Federico Castanedo

Page 2: Deep Learning + R by Gabriel Valverde

SUMARIO

• Introducción Machine Learning• ¿Qué es Deep Learning? ¿Qué más aporta?• Clasificación de las técnicas de Deep Learning.• Ejemplos:

•Autoencoders.•Stacking Autoencoders.• Restriced Bolzam Machine•Deep Belief Network.•Deep Neural Network

• Paquetes de R:• H2O• DeepNet

Page 3: Deep Learning + R by Gabriel Valverde

Machine Learning

• El objetivo es desarrollar técnicas que permitan a la máquina aprender.• Origen en datos desestructurados.• Se centra en la complejidad computacional. • Por lo que se centra en encontrar algoritmos factibles para NP‐hard.• Algunos ejemplos son:• Rama de la Inteligencia Artificial.

GMM‐ Gaussian Mixture Model.CRFs‐ Conditional Random Fields.MaxEnt‐Maximun entropy.SVM‐ Support Vector Machines.Logistic Regression.Kernel regression.Multilayer Perceptrons

Los modelos de machine learning clásicos, necesitan: ‐ Diseño resentativo ideados por humanos. ‐ Caracterís cas como datos de entrada.  Su único objetivo es optimizar los pesos para realizar mejores predicciones.

Page 4: Deep Learning + R by Gabriel Valverde

¿QUÉ ES DEEP LEARNING?

•DeepLearning= NN+IA+GM+Optimización+PR+SP.Neuronal  Inteligencia  Graph Procesamiento  ProcesamientoNetwork   Artificial      Modeling Patrones            Señales.

Page 5: Deep Learning + R by Gabriel Valverde
Page 6: Deep Learning + R by Gabriel Valverde
Page 7: Deep Learning + R by Gabriel Valverde
Page 8: Deep Learning + R by Gabriel Valverde

¿QuÉ ES DEEP LEARNING?Vamos a analizar el camino seguido a partir de varias definiciones.

Definición: Clase de técnicas de Machine Learning buscando la extracción y transformación de features referentes al procesamiento de la información. Ya sea de forma supervisada o no.

Definición: Un campo dentro de Machine Learning basados en algoritmos para aprender varios niveles de representación buscando relaciones complejas. Tenemos por tanto features de alto y bajo nivel, jerarquizandolas, Deep arquitectura. Generalmente no supervisado.

Definición: CONTINUACION. Las de bajo nivel pueden ayudar a definir las de alto nivel.  Es a tener también en cuenta que algunas representaciones son mejores que otras para depende de que tareas. 

Definición: Deep Learning, nueva área creada para devolver a Machine Learning a uno de sus objetivos: Inteligencia Artificial. Buscar niveles de abstracción que nos permitan dar sentido a imagenes, sonidos y texto.

Page 9: Deep Learning + R by Gabriel Valverde

¿Qué más aporta?

JERARQUÍA.

Son técnicas que reciben mayor cantidad de datos.Más capas que desarrollan estas jerarquías entre la información.

‐ Nos permite obtener features de forma no supervisada.

‐ Realizar clasificaciones.

El aprendizaje representativo, busca aprender de forma automática buenas características o representaciones.

Deep Learning, pretende aprender múltiplesniveles de representación incrementandola complejidad la abstracción.

Page 10: Deep Learning + R by Gabriel Valverde

RAZONES PARA USAR DEEP LEARNING

Page 11: Deep Learning + R by Gabriel Valverde

APRENDER REPRESENTACIONES

o Crear las features lleva mucho tiempo.

o Las características suelen estar sobrespecificadas o incompletas.

o El trabajo tiene que realizarse de nuevo para cada objetivo/dominio/...

o Debemos ir más allá de las features artesanales y el modelo lineal.

o Los humanos desarrollamos representaciones para aprender y razonar, los ordenadores deberían hacer lo mismo. Deep Learning nos acerca a eso.

Page 12: Deep Learning + R by Gabriel Valverde

2 Necesidad de representaciones distribuidas.

l La representación atómica de los símbolos de los modelos de Procesado de lenguaje natural los hace frágiles.

Page 13: Deep Learning + R by Gabriel Valverde

2 Necesidad de representaciones distribuidas.

Aprender la representación de las palabras ayuda enormemente en este proceso.Estas proporciona un poderoso modelo de similaridad entre palabras.Los agrupamientos de palabras basándonos en una distribución

por similaridad ayudan enormemente a muchas aplicaciones.La representación distribuida puede hacerse mejor

representando más niveles de similaridad.

Page 14: Deep Learning + R by Gabriel Valverde

Representaciones Distribuidas Tratan el Problema de la Dimensionalidad.

lAprender características que no sean mutuamente exclusivas puede ser exponencialmente más eficiente que modelos como clustering o vecino más cercano.

Generalizar localmente (ejemplo: vecino más próximo) requiere ejemplos representativos para todas las posibles variantes.

lSOLUCION CLASICA:Diseño manual de features.Asumir una función objetivo de alisado.(e.g, linear models)Kernel methods. (basándose en los puntos).

Page 15: Deep Learning + R by Gabriel Valverde

3 Generador de features y pesos no supervisado.

El más práctico, los buenos modelos de MLP necesitan datos etiquetados. Pero los datos suelen no estarlo.

Más información puede ser incluida como no supervisada. Pues los modelos nos permitirán clasificarlas adecuadamente.

Page 16: Deep Learning + R by Gabriel Valverde

4 Aprender varios niveles de represenación.

- Inspirado en la biología.En la estructura del cortex cerebralque parece tener un algoritmo de aprendizaje, Una estructura profunda.

lNecesitamos buenas representaciones intermedias que puedan ser compartidas entre las tareaslVarios niveles de variables latentes nos permiten compartir y combinar con fortaleza estadística.lPoca profuncidad del modelo lo puede hacer exponencialmente ineficiente.

Page 17: Deep Learning + R by Gabriel Valverde

4 Aprendiendo multiples niveles de representación.

Page 18: Deep Learning + R by Gabriel Valverde

Nos permite capturar la recurrencia del lenguaje

l Las sentencias están compuestas por palabras y frases.Necesitamos componerlas en nuestro modelo.

Recursión: mismo parámetro es repetido varias veces en diferentes componentes.

Page 19: Deep Learning + R by Gabriel Valverde

¿Por Qué Ahora?. Problemas

•Muchos de los modelos ‐> REDES NEURONALES. DNN por ejemplo.•Los algoritmos de optimización usados hasta ahora fallan. Back Propagation.•Funciones no convexas. No funciona bien gradiente descendente.•Muchas capas y muchas neuronas‐> Muchos recursos.

•SOLUCIONES:•Gradiente Descendente Estocastico.•Hessian Free.•Kyrlov Suspace Methods.•SVM,CRF,MAXENT, funciones convexas.

La parte de imagen con el identificador de relación rId3 no se encontró en el archivo.

Page 20: Deep Learning + R by Gabriel Valverde

Por qué ahora?.SOLUCIONESMetodos más eficiente de  ajuste de parametros.

Mejor comprensión de regulación de los modelos.

ENTRENAMIENTO

Si los modelos se preentrenan con anterioridad los pesos se acercan a los valores óptimos y hay menos posibilidades de mínimo local.

•Considerar cada capa como un denoising autoencoders que se entrena a si mismo.•Usar autoencoders contractivos que son más robustos ante variaciones.•SESM Sparse Autoencoders Symmetric Machine (Ranzano)•Preentrenamientos no supervisado y supervisado.•MLP entrenada con un BP.

Page 21: Deep Learning + R by Gabriel Valverde

CLASIFICACIÓNNo supervisadas:

Captura patrones.Aprendizaje representativo.Generativos, buscan clases asociadas a distribuciones de probabilidad

estimadas a partir de los datos observados.Para discriminar usando reglas de bayes.Generatición de features.

Supervisadas:Buscan dicriminar patrones con objeto de clasificar.Conocerter las targets.Clasificar en importancia la información que discrimina nuestros objetivos.Llamado redes profundas discriminitivas.

Hibrido:Los modelos no supervisados son utilizados como procesos de entrenamientos de los

que si lo son. Pretraining con autoencoders sobre DNN.1O el análisis discriminativo se utiliza para mejorar los no supervisados.

Page 22: Deep Learning + R by Gabriel Valverde

• Los primeros son mejores para entrenar y probar, con una construcción flexible, para aprendizaje de sistemas complejos.• Los segundos, más facilidad de interpretación, más fácil integrar conocimiento del dominio, mas sencillo componer, mas fácil manejar la incertidumbre, peor para inferencia y aprendizaje de sistemas complejos.

Page 23: Deep Learning + R by Gabriel Valverde

EJEMPLOSDeep Belief Network (DBN): modelos probabilísticos generativos compuestos por muchas capas, y variables ocultas.

Boltzmann machine(BM): una red conectada de forma simétrica, con neuronas como unidades que toman la decision de estar conectadas o no.

Restricted Boltzmann machine (RBM): tipo especial de BM donde no se permiten interrelación entre neuronas del mismo tipo.

Deep Neural Network (DNN): perceptron multicapa con varias capas ocultas, cuyos pesos estan conectados y suelen ser iniciados usando por otro modelo supervisado o no de técnica de entrenamiento.

Deep autoencoders: modelo discriminativo DNN que toma como salida los propios valores de entrada, se trata por tanto de un modelo no supervisado. Cuando el objetivo es eliminar ruido se comporta como un modelo generativo.

Page 24: Deep Learning + R by Gabriel Valverde

NO SUPERVISADOS

No tienen clases con los que comparar los indicadores.Funcionan como filtros.Creadores de features representativas.Muestreo de los datos.

•Los conjuntos más comunes son los Energy‐based. Siendo Deep autoencoders el más representativo. También tenemos otros con otras propiedades:

•Transforming Autoencoders. Estos autoencoders lo que hacen es transformar nuestros input en output cuya destransformación nos devuelve verdaderos valores.•Predictive Sparse Coders‐ Los propuestos por Ranzano.•De‐noising autoencoders‐ Estos autoencoders se encargan de limpiar de ruido los datos de entrada para que puedan ser evaluados por otros modelos de una forma más sencilla.

Page 25: Deep Learning + R by Gabriel Valverde

NO SUPERVISADOS: AUTOENCODERS.

•Consideramos un conjunto de valores de entrada (input,target),• i.i.d. Ejemplos de una distribución desconocida .   •Denotamos y q⁰(X) a las empíricas iniciales.

Page 26: Deep Learning + R by Gabriel Valverde

NO SUPERVISADOS: AUTOENCODERS.

Page 27: Deep Learning + R by Gabriel Valverde

Función de Activación

Page 28: Deep Learning + R by Gabriel Valverde

NO SUPERVISADOS: AUTOENCODERS.

Page 29: Deep Learning + R by Gabriel Valverde

NO SUPERVISADOS:  STACKING AUTOENCODERS.

Page 30: Deep Learning + R by Gabriel Valverde

APLICACIÓN. RESULTADOS.

Page 31: Deep Learning + R by Gabriel Valverde

APLICACIÓN. RESULTADOS.

Page 32: Deep Learning + R by Gabriel Valverde

NO SUPERVISADOS: RBM.Si restringimos las conexiones de Boltzmann Machines,tenemos Restricted Boltzmann Machine.

Dos tipos de Neural Network Generativas.

- Conectando neuronas binarias estocasticasen un grafo aciclico dirigado tenemos Sigmoid Belief Net.- Si conectamos neurona binarias estocásticas usando conexionessimétricas tenemos Boltzmann Machine.

Page 33: Deep Learning + R by Gabriel Valverde

RBM. Formas de combinar modelos.

• Composición.Usa los valores del

variables latentes de un modelocomo datos del siguiente.

• Mixture.‐ Tomando una media de

las distribuciones

• Producto.- Multiplicar la distribuciones de

cada punto y renormalizar.

Así es como actúa RBM.Exponencialmente más poderosa que mezcla. LNo será mejor que las individuales.

Forma débil de combinar.

- Trabaja bien con varias capas derepresentación pero solo si

lel modelo individual es no dirigido.

Page 34: Deep Learning + R by Gabriel Valverde

RBM

• Restringimos las relaciones para hacerlo más sencillo de enseñar.• Sólo una capa de ocultas.• No hay conexiones entre ocultas.

• En un RBM, las ocultas son condicionalmente independientes dadas las visibles.• Podemos obtener de forma ágil, ejemplos de la distribución posterior dado un vector de datos.• Gran ventaja sobre las Directed Belief nets.

Page 35: Deep Learning + R by Gabriel Valverde

Función de Energía

Page 36: Deep Learning + R by Gabriel Valverde

Aprendizaje con Verosimilitud.

Page 37: Deep Learning + R by Gabriel Valverde

Metodos Acelerar MuestreoCONTRASTIVE DIVERGE (CD-K)

• Usa dos pasos para acelerar el proceso de muestreo.• Queremos (la verdad, la distribución de los datos), iniciamos con un ejemplo de entrenamiento, (es decir, una muestra cercana a lo óptimo, a p) • CD no espera que chain converja.Si no que obtienen el ejemplo trasun numero prefijado de pasos de Gibs.

PERSISTENT DC

• Nos basamos en que tenemos una única lcadena de Makov, no reiniciamos lla cadena en cada paso. Para cada actualización,lse usa el estado obtenido del paso anteriorlpara generar de nuevo la cadena de forma sucesiva.

Page 38: Deep Learning + R by Gabriel Valverde

Deep Belief Networks

Page 39: Deep Learning + R by Gabriel Valverde

APLICACIÓN. RESULTADOS.

Page 40: Deep Learning + R by Gabriel Valverde

PAQUETES RDeep Net

Autor: Xiao RongLink: https://github.com/cran/deepnet

Paquete en el que hay implementado varios modelos y algoritmos de Deep Learning. Aunque de utilidad para entender bien los modelos, ya que aplicauna muestra bastante representativa de todos ellos, su BP, RBM, DBM, Autoencoder.

Su lentitud, debido a la no paralelización, ha hecho que no sea el utilizado para obtener los resultados. Sí para realizar pruebas y adentrarnos en el mundo de DeepLearning por la fácil accesibilidad de código.

Page 41: Deep Learning + R by Gabriel Valverde

FUNCIONES Utilidad

Dbn.dnn.train Implementa una Deep Neural Network, con pre-entrenamiento dado por una DBN formada por RBM acopladas.

Load.mnist Función para cargar la base de datos de referencia de pruebas de machine learning en el reconocimiento de dígitos manuscritos.

nn.predict Función que nos permite clasificar nuevos datos a partir del modelo entrenado. Ya sea DBN o NN.

nn.test

nn.train Función para entrenar una red neuronal ya sea de una o varías capas. Por medio de BP.

Rbm.down Generación de vector de valores a partir de los estados de las neuronas de capas ocultas. Necesario para aplicar CD.

Rbm.train Entrenamiento de una Restricted Boltzmann Machine.

Rbm.up Deducir el estado de las capas ocultas a partir de las visibles. También se puede utilizar para deducir estado de capa superior a partir de la inferior, siendo ambas ocultas.

Sae.dnn.train Entrenar una DNN con pesos iniciados a partir de un Stacked AutoEncoder.

Page 42: Deep Learning + R by Gabriel Valverde

ARGUMENTOSArgumentos Utilidad Parámetrosx Matriz de casos, de ejemplos. Matriz de entrenamientoy Matriz de clases, o valores objetivos. Clasificación

hidden Vector con el número de neuronas de cada capa oculta.

C(100,200,400, 1200, 2400, 1200,400, 100)

activationfun Función de activación elegida, aunque sólo está completamente implementada sigm.

sigm

learningrate Ratio de aprendizaje para laaplicación del gradiente descendente estocástico.

0.09

momentun Momentum para gradiente descendente.

0.5

Learning_rate_scale

Factor de reducción para el ratio de aprendizaje.

numepochs Número de iteraciones. 30

Page 43: Deep Learning + R by Gabriel Valverde

Argumentos Utilidad Parámetros

batchsize Tamaños de minibatch. 100

output Función de salida, puede ser sigm, linear, or softmax. Por defecto “sigm”.

Sae_output Función de salida del Autoencoders.

Hidden_dropout Cancelación de las capas ocultas.

Visible_dropout Porcentaje de fracciones a eliminar. Visible_dropout

cd (Sólo en dbn) Número de iteraciones de Gibbs para el algoritmo de CD.

cd

Page 44: Deep Learning + R by Gabriel Valverde

PAQUETES R

H2O

Autor: OxdataLink: https://github.com/0xdata/h2o/tree/master/docs/deeplearning

Software desarrollado por OXDATA, con un paquete en R a modo de framework.Engloba distintas estrategias de análisis de datos. Entre ellas varios modelos de DeepLearning, DNN, Autoencoders.

Permite observar resultados intermedios de convergencia y tiene la posibilidad desde la plataforma online de conexión al servidor lanzado, de parar y guardar modelos intermedios, continuando el entrenamiento a posteriori y observar el comportamiento delos distintos nodos del clúster, así como exportar datos desde distintas plataformas y formatos.

Page 45: Deep Learning + R by Gabriel Valverde

Opciones de Uso

Sparkling WaterR +HadoopCluster EC2Interface Gráfica

Modelos Machine Learning- GLM- Decision Tree- Random Forest- GBM- K-MEANS- Anomaly Detection- Deep Learning- Naïve Bayes- Gride Search

http://www.slideshare.net/0xdata/h2-o-deeplearningarnocandel052114?related=1

Page 46: Deep Learning + R by Gabriel Valverde

FUNCIONES Utilidad

h2o.init Función para iniciar h2o, en nuestro caso sólo lo hemos aplicado de manera local.

h2o.uploadFile Función para cargar la base de datos, en función de PATH, será desde S3, HDFS, o URLs.

h2o.deeplearning Función que nos permite realizar un modelo de DNN, o Autoencoders, seleccionando todos los parámetros.

@model$option Eligiendo sobre el modelo nos indican distintas opciones: params los parámetros usados, varimp importancia de las variables.

h2o.predict Dado el modelo nos proporcionas las puntuaciones sobre los datos de test.

h2o.saveModel Nos permite almacenar el modelo realizado, en la dirección elegida.

h2o.loadModel Nos permite cargar modelos almacenados.

h2o.anomaly Nos permite, calculado un modelo Autoencoders, localizar anomalías.

as.h2o Función que nos permite cargar en el h2o, los datos de R.

h2o.performance Función que nos permite medir la validez de las puntuaciones sobre datos de referencia.

Page 47: Deep Learning + R by Gabriel Valverde

ARGUMENTOSArgumentos Utilidad Parámetros Funciones

ip Seleccionar la IP del servidor. Localhost. h2o.initport Puerto de conexión. Clasificación. h2o.init

nthreads Número de CPU’s a usar. -1 indica todos h2o.init

starH2O Lanza la conexión si esta no existe. T h2o.init

data Matriz de datos de R, que se quiere llevar a h2o.

Data.table con los datos.

as.h2o

key Nombre clave, con el que se denomina en el sistema de almacenaje de H2O.

Train/Validation/Test

as.h2o

epochs Número de iteraciones. h2o.deeplearning

Balance_classes

Balancea las clases en las distintas particiones de los datos durante la resolución del algoritmo de optimización

T h2o.deeplearning

Page 48: Deep Learning + R by Gabriel Valverde

Argumentos Utilidad Parámetros Funciónx Vector que contiene las variables

de uso.Todas, salvo índice y clase

h2o.deeplearning

y Nombre de la variable respuesta. h2o.deeplearning

data Dato en formato h2o, distribuido por el sistema.

h2o.deeplearning

autoencoder Nos permite elegir entre SteackingAutoencoder o DNN.

T en el Autoencoder h2o.deeplearning

classificacion Cancelación de las capas ocultas. h2o.deeplearning

activation Función de activación. “Tanh”/”TanhDropout” h2o.deeplearning

hidden (Sólo en dbn) Número de iteraciones de Gibbs para el algoritmo de CD.

cd h2o.deeplearning

Page 49: Deep Learning + R by Gabriel Valverde

Argumentos Utilidad Parámetros FunciónOverride_with_best_model

Nos quedamos con el últimomodelo de la iteración, o con el mejor.

T h2o.deeplearning

Checkpoint Nos permite almacenar el modelo que estamos entrenando.

Key con el nombre del modelo.

h2o.deeplearning

Reference Clase actual con la que comparar. Clase, del conjunto de entrenamiento o validación.

h2o.performance

Measure Medida elegida para evaluar el modelo.

Accuary. h2o.performance

Thresholds Frontera. 0.5 h2o.performance

Page 50: Deep Learning + R by Gabriel Valverde

APLICACIÓN: WISEATHENAo OBJETIVO:

Predicción de churn (fuga) para un conjunto de datos referentes a clientes de una empresa de telecomunicaciones.

PASOS A SEGUIR:

- Tratar los datos, seleccionar variables de tipo numérico, transformar lasde tipo clase en booleanas, estandarizar los datos para evitar mayor carga en variables con mayor peso.

- Muestreo de los datos, creando training, validation, test, con los dos primeros ya clasificados, y en el caso de training, con datos balanceados.

- Usar el paquete deepnet/h2o para realizar la predicción.

Page 51: Deep Learning + R by Gabriel Valverde

APLICACIÓN

PROCEDIMIENTO

1 Comenzar seleccionando parámetros.2 Aplicar el modelo con la función dbn.dnn.train/h2o.deeplearning.3 Variarlos en función de los resultados obtenidos sobre training.4 Usar nn.test para valorar los resultados con los pesos entrenados sobreValidation.5 Valorar la posibilidad de aplicar técnicas de reducción de sobreajuste si este se da. Usar mediciones como curva ROC, usando la librería ROCR.6 Una vez elegido aplicar sobre el conjunto de test.

Page 52: Deep Learning + R by Gabriel Valverde

Datos

Page 53: Deep Learning + R by Gabriel Valverde

Datos

Page 54: Deep Learning + R by Gabriel Valverde

SOLUCIÓN DEEPNET

Page 55: Deep Learning + R by Gabriel Valverde

SOLUCIÓN H2O

Page 56: Deep Learning + R by Gabriel Valverde

BIBLIOGRAFÍA

http://cran.r‐project.org/web/packages/deepnet/deepnet.pdfhttp://0xdata.com/deepLearning.nethttps://www.youtube.com/watch?v=n6hpQwq7Inwhttps://www.youtube.com/watch?v=dMVLd5URpvs#t=602http://www.cs.ubc.ca/~nando/540‐2013/lectures/l13.pdfhttp://www.cs.ubc.ca/~nando/540‐2013/lectures.htmlhttp://digital.csic.es/bitstream/10261/84753/1/RED%20NEURONAL.pdfhttp://books.google.es/books?id=4OgOJLGGrzcC&pg=PA145&lpg=PA145&dq=gato+barra+horizontal&source=bl&ots=Z4tEuFrkYF&sig=bWjETKt_2RPxLL8O3‐B9DIORXYs&hl=es&sa=X&ei=uXTRU‐SWLeOc0QXWzYCYDw&ved=0CFwQ6AEwCw#v=onepage&q&f=falsehttp://vimeo.com/101582001http://nbviewer.ipython.org/github/BVLC/caffe/blob/master/examples/filter_visualization.ipynb

Page 57: Deep Learning + R by Gabriel Valverde

GRACIAS

Email: [email protected]@zippingcare.com

www.tecnologiaucm.es