Você está na página 1de 25

DEEP LEARNING

GABRIEL VALVERDE CASTILLA

Federico Castanedo

VI JORNADAS USUARIOS DE R 2014


SOCIEDAD R HISPANO
GTEC WISEATHENA
Email: gabriel.valverde@zippingcare.com

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 Procesamiento
Network 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 aplica
una 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.

ARGUMENTOS
Argumentos

Utilidad

Parmetros

Matriz de casos, de ejemplos.

Matriz de entrenamiento

Matriz de clases, o valores objetivos.

Clasificacin

hidden

Vector con el nmero de neuronas de c(200,100, 50, 25, 2)


cada capa oculta.

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_ Factor de reduccin para el ratio de


scale
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: Oxdata
Link: 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 Deep
Learning, 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 de
los distintos nodos del clster, as como exportar datos desde distintas plataformas y formatos.

Opciones de Uso
Sparkling Water
R +Hadoop
Cluster EC2
Interface 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-odeeplearningarnocandel052114?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.

ARGUMENTOS
Argumentos

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.

h2o.init

data

Matriz de datos de R, que se quiere llevar a Data.table con los as.h2o


h2o.
datos.

key

Nombre clave, con el que se denomina en


el sistema de almacenaje de H2O.

epochs

Nmero de iteraciones.

Balance_class
es

Balancea las clases en las distintas


particiones de los datos durante la
resolucin del algoritmo de optimizacin

Train/Validation/Te as.h2o
st
h2o.deeplearning

h2o.deeplearning

Argumentos

Utilidad

Parmetros

Funcin

Vector que contiene las variables


de uso.

Todas, salvo ndice y


clase

h2o.deeplearning

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.

classificacion

Cancelacin de las capas ocultas.

activation

Funcin de activacin.

Tanh/TanhDropout

h2o.deeplearning

hidden

Estructura del modelo.

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

h2o.deeplearning

T en el Autoencoder

h2o.deeplearning
h2o.deeplearning

Argumentos

Utilidad

Parmetros

Funcin

Override_with_
best_model

Nos quedamos con el ltimo


modelo de la iteracin, o con el
mejor.

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 las
de 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.pdf
http://0xdata.com/
deepLearning.net
https://www.youtube.com/watch?v=n6hpQwq7Inw
https://www.youtube.com/watch?v=dMVLd5URpvs#t=602
http://www.cs.ubc.ca/~nando/540-2013/lectures/l13.pdf
http://www.cs.ubc.ca/~nando/540-2013/lectures.html
http://digital.csic.es/bitstream/10261/84753/1/RED%20NEURONAL.pdf
http://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=uXTRUSWLeOc0QXWzYCYDw&ved=0CFwQ6AEwCw#v=onepage&q&f=false
http://vimeo.com/101582001
http://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:
gabrielvalverdecastilla@gmail.com
gabriel.valverde@zippingcare.com
www.tecnologiaucm.es