Download - 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