Download DEEP LEARNING

Document related concepts
no text concepts found
Transcript
DEEP LEARNING
GABRIEL VALVERDE CASTILLA
Federico Castanedo
VI JORNADAS USUARIOS DE R 2014
SOCIEDAD R HISPANO
GTEC – WISEATHENA
Email: [email protected]
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 + Optimización + PR + SP.
Neuronal Inteligencia Graph Procesamiento Procesamiento
Network Artificial Modeling Patrones
Señales.
- Extracción y Transformación de nuevas características derivadas del procesamiento de la
información, conocidas como features. Ya sea de forma supervisada o no.
- Aprender varios niveles de representación buscando relaciones complejas. Tenemos generando
features de alto y bajo nivel, jerarquizándolas, Deep arquitectura. Generalmente no supervisado. Es a tener
también en cuenta que algunas representaciones son mejores que otras para depende de que tareas.
- Niveles de abstracción que nos permitan dar sentido a imágenes, sonidos y texto.
Aprendiendo múltiples niveles de representación
EJEMPLOS
Deep 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 decisión 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): perceptrón multicapa con varias capas ocultas, cuyos pesos están 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.
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 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.
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.
ARGUMENTOS
Argumentos
Utilidad
Parámetros
x
Matriz de casos, de ejemplos.
Matriz de entrenamiento
y
Matriz de clases, o valores objetivos.
Clasificación
hidden
Vector con el número de neuronas de c(200,100, 50, 25, 2)
cada capa oculta.
activationfun
Función de activación elegida,
aunque sólo está completamente
implementada sigm.
sigm
learningrate
Ratio de aprendizaje para la
aplicación del gradiente descendente
estocástico.
0.09
momentun
Momentum para gradiente
descendente.
0.5
Learning_rate_ Factor de reducción para el ratio de
scale
aprendizaje.
numepochs
Número de iteraciones.
30
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.
cd
(Sólo en dbn) Número 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 análisis 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 conexión al servidor lanzado, de parar y guardar
modelos intermedios, continuando el entrenamiento a posteriori y observar el comportamiento de
los distintos nodos del clúster, así como exportar datos desde distintas plataformas y formatos.
Opciones de Uso
Sparkling Water
R +Hadoop
Cluster EC2
Interface 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-odeeplearningarnocandel052114?related=1
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.
ARGUMENTOS
Argumentos
Utilidad
Parámetros
Funciones
ip
Seleccionar la IP del servidor.
Localhost.
h2o.init
port
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 Data.table con los as.h2o
h2o.
datos.
key
Nombre clave, con el que se denomina en
el sistema de almacenaje de H2O.
epochs
Número de iteraciones.
Balance_class
es
Balancea las clases en las distintas
particiones de los datos durante la
resolución del algoritmo de optimización
Train/Validation/Te as.h2o
st
h2o.deeplearning
T
h2o.deeplearning
Argumentos
Utilidad
Parámetros
Función
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.
classificacion
Cancelación de las capas ocultas.
activation
Función de activación.
“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
Parámetros
Función
Override_with_
best_model
Nos quedamos con el último
modelo 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
APLICACIÓN: WISEATHENA
o
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 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 predicción.
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/h2o.predict para valorar los resultados con los pesos
entrenados sobre Validation.
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.
Datos
SOLUCIÓN DEEPNET
SOLUCIÓN H2O
BIBLIOGRAFÍA
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 información:
http://www.slideshare.net/vlopezlo/deep-learning-r-by-gabriel-valverde
Email:
[email protected]
[email protected]
www.tecnologiaucm.es