03_Aplicaciones de Deep Learning Usando R

25
DEEP LEARNING VI JORNADAS USUARIOS DE R 2014 SOCIEDAD R HISPANO GTEC – WISEATHENA Email: [email protected] GABRIEL VALVERDE CASTILLA Federico Castanedo

description

Redes NeuronalesDeep Learning

Transcript of 03_Aplicaciones de Deep Learning Usando R

  • DEEP LEARNING

    VI JORNADAS USUARIOS DE R 2014SOCIEDAD R HISPANOGTEC WISEATHENA

    Email: [email protected]

    GABRIEL VALVERDE CASTILLA

    Federico Castanedo

  • CONTENIDOS

    QU ES DEEP LEARNING? EJEMPLOS:

    Autoencoders. Stacking Autoencoders Restricted Boltzmann Machine Deep Belief Network

    PAQUETES DE R: DeepNet H2O

  • QU ES DEEP LEARNING?

    DeepLearning = NN + IA + GM + Optimizacin + PR + SP.Neuronal Inteligencia Graph Procesamiento ProcesamientoNetwork Artificial Modeling Patrones Seales.

    - Extraccin y Transformacin de nuevas caractersticas derivadas del procesamiento de la

    informacin, conocidas como features. Ya sea de forma supervisada o no.

    - Aprender varios niveles de representacin buscando relaciones complejas. Tenemos generando features de alto y bajo nivel, jerarquizndolas, Deep arquitectura. Generalmente no supervisado. Es a tener tambin en cuenta que algunas representaciones son mejores que otras para depende de que tareas.

    - Niveles de abstraccin que nos permitan dar sentido a imgenes, sonidos y texto.

  • Aprendiendo mltiples niveles de representacin

  • EJEMPLOS

    Deep Belief Network (DBN): modelos probabilsticos generativos compuestos por muchas capas, y variables ocultas.

    Boltzmann Machine (BM): una red conectada de forma simtrica, con neuronas como unidades que toman la decisin de

    estar conectadas o no.

    Restricted Boltzmann Machine (RBM): tipo especial de BM donde no se permiten interrelacin entre neuronas del

    mismo tipo.

    Deep Neural Network (DNN): perceptrn multicapa con varias capas ocultas, cuyos pesos estn conectados y suelen ser

    iniciados usando por otro modelo supervisado o no de tcnica 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.

  • NO SUPERVISADOS: AUTOENCODERS

  • NO SUPERVISADOS: STACKING AUTOENCODERS.

  • DEEP BELIEF NETWORK: RESTRICTED BOLTZMAN MACHINE

  • PAQUETES R

    Deep Net

    Autor: Xiao Rong

    Link: 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 paralelizacin, ha hecho que no sea el utilizado para obtener los resultados. S para realizar pruebas y adentrarnos en el mundo de DeepLearning por la fcil accesibilidad de cdigo.

  • FUNCIONES Utilidad

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

    DBN formada por RBM acopladas.

    Load.mnist Funcin para cargar la base de datos de referencia de pruebas de machine

    learning en el reconocimiento de dgitos manuscritos.

    nn.predict Funcin que nos permite clasificar nuevos datos a partir del modelo entrenado.

    Ya sea DBN o NN.

    nn.test

    nn.train Funcin para entrenar una red neuronal ya sea de una o varas capas. Por

    medio de BP.

    Rbm.down Generacin 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. Tambin 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.

  • ARGUMENTOSArgumentos Utilidad Parmetros

    x Matriz de casos, de ejemplos. Matriz de entrenamiento

    y Matriz de clases, o valores objetivos. Clasificacin

    hidden Vector con el nmero de neuronas de

    cada capa oculta.

    c(200,100, 50, 25, 2)

    activationfun Funcin de activacin elegida,

    aunque slo est completamente

    implementada sigm.

    sigm

    learningrate Ratio de aprendizaje para la

    aplicacin del gradiente descendente

    estocstico.

    0.09

    momentun Momentum para gradiente

    descendente.

    0.5

    Learning_rate_

    scale

    Factor de reduccin para el ratio de

    aprendizaje.

    numepochs Nmero de iteraciones. 30

  • Argumentos Utilidad Parmetros

    batchsize Tamaos de minibatch. 100

    output Funcin de salida, puede ser sigm, linear,

    or softmax. Por defecto sigm.

    Sae_output Funcin de salida del Autoencoders.

    Hidden_dropout Cancelacin de las capas ocultas.

    Visible_dropout Porcentaje de fracciones a eliminar.

    cd (Slo en dbn) Nmero de iteraciones de

    Gibbs para el algoritmo de CD.

    cd

  • 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 anlisis 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 conexin al servidor lanzado, de parar y guardar modelos intermedios, continuando el entrenamiento a posteriori y observar el comportamiento delos distintos nodos del clster, as como exportar datos desde distintas plataformas y formatos.

  • Opciones de Uso

    Sparkling WaterR +HadoopCluster EC2Interface Grfica

    Modelos Machine Learning

    - GLM

    - Decision Tree

    - Random Forest

    - GBM

    - K-MEANS

    - Anomaly Detection

    - Deep Learning

    - Nave Bayes

    - Gride Search

    http://www.slideshare.net/0xdata/h2-o-

    deeplearningarnocandel052114?related=1

  • FUNCIONES Utilidad

    h2o.init Funcin para iniciar h2o, en nuestro caso slo lo hemos aplicado de manera

    local.

    h2o.uploadFile Funcin para cargar la base de datos, en funcin de PATH, ser desde S3,

    HDFS, o URLs.

    h2o.deeplearning Funcin que nos permite realizar un modelo de DNN, o Autoencoders,

    seleccionando todos los parmetros.

    @model$option Eligiendo sobre el modelo nos indican distintas opciones: params los parmetros

    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 direccin elegida.

    h2o.loadModel Nos permite cargar modelos almacenados.

    h2o.anomaly Nos permite, calculado un modelo Autoencoders, localizar anomalas.

    as.h2o Funcin que nos permite cargar en el h2o, los datos de R.

    h2o.performance Funcin que nos permite medir la validez de las puntuaciones sobre datos de

    referencia.

  • ARGUMENTOSArgumentos Utilidad Parmetros Funciones

    ip Seleccionar la IP del servidor. Localhost. h2o.init

    port Puerto de conexin. Clasificacin. h2o.init

    nthreads Nmero de CPUs a usar. -1 indica todos h2o.init

    starH2O Lanza la conexin 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/Te

    st

    as.h2o

    epochs Nmero de iteraciones. h2o.deeplearning

    Balance_class

    es

    Balancea las clases en las distintas

    particiones de los datos durante la

    resolucin del algoritmo de optimizacin

    T h2o.deeplearning

  • Argumentos Utilidad Parmetros Funcin

    x 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 Steacking

    Autoencoder o DNN.

    T en el Autoencoder h2o.deeplearning

    classificacion Cancelacin de las capas ocultas. h2o.deeplearning

    activation Funcin de activacin. Tanh/TanhDropout h2o.deeplearning

    hidden Estructura del modelo. c(200,100, 50, 25, 2) h2o.deeplearning

  • Argumentos Utilidad Parmetros Funcin

    Override_with_

    best_model

    Nos quedamos con el ltimo

    modelo de la iteracin, 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

    validacin.

    h2o.performance

    Measure Medida elegida para evaluar el

    modelo.

    Accuary. h2o.performance

    Thresholds Frontera. 0.5 h2o.performance

  • APLICACIN: WISEATHENA

    o OBJETIVO:

    Prediccin 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 numrico, 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 prediccin.

  • APLICACIN

    PROCEDIMIENTO

    1 Comenzar seleccionando parmetros.2 Aplicar el modelo con la funcin dbn.dnn.train/h2o.deeplearning.3 Variarlos en funcin de los resultados obtenidos sobre training.4 Usar nn.test/h2o.predict para valorar los resultados con los pesos entrenados sobre Validation.5 Valorar la posibilidad de aplicar tcnicas de reduccin de sobreajuste si este se da. Usar mediciones como curva ROC, usando la librera ROCR.6 Una vez elegido aplicar sobre el conjunto de test.

  • Datos

  • SOLUCIN DEEPNET

  • SOLUCIN H2O

  • BIBLIOGRAFA

    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

  • GRACIAS

    Para mayor informacin:http://www.slideshare.net/vlopezlo/deep-learning-r-by-gabriel-valverde

    Email: [email protected]@zippingcare.com

    www.tecnologiaucm.es