Solid Day - Deep learning

22
Ya eres parte de la evolución Solid Day Deep Learning: Introducción, usos e implementación con TensorFlow Enrique Daniel Zenteno Jiménez https://mx.linkedin.com/in/ezentenoj #sgnext

Transcript of Solid Day - Deep learning

Page 1: Solid Day - Deep learning

Yaerespartedelaevolución

SolidDay

DeepLearning:Introducción,usoseimplementacióncon

TensorFlowEnriqueDanielZentenoJiménez

https://mx.linkedin.com/in/ezentenoj#sgnext

Page 2: Solid Day - Deep learning

IntroducciónalAprendizajeProfundo

Page 3: Solid Day - Deep learning

¿Qué se puede hacer con Visión por Computadora?

● Medir: saber la distancia que hay entre dos pixeles en la imagen o entre la cámara y el objeto.

o Visión estereoscópica: basado en dos cámaras. Simula la visión humana.

o Triangulación: utiliza una cámara y un emisor de luz. El mayor ejemplo es el Kinect de Microsoft.

● Segmentar: conocer el límite físico de un objeto.

● Clasificar: darle un nombre a un objeto.

Page 4: Solid Day - Deep learning

¿Cómo se clasifica un objeto en una imagen?

Por medio de dos pasos: la extracción de las características y el entrenamiento de un clasificador.

● Búsqueda de características:

o Valor del pixel

o Filtros:

§ Pasa altas, bajas, bandas.

§ Convoluciones.

o Extracción de características:

§ Histogram of Oriented Gradients.

§ Scale-invariant feature transform.

§ Haralick texture features.

Page 5: Solid Day - Deep learning

Filtros: convolución (detector de contornos)

Kernel

Page 6: Solid Day - Deep learning

Generación de características: histograma orientado de gradientes

Page 7: Solid Day - Deep learning

Clasificación de características

● Support Vector Machines

● Decision trees

● Random Forest

● Naive Bayes

● Multi-layer Perceptron

Page 8: Solid Day - Deep learning

Aprendizaje profundo

La obtención de características también es por medio de un proceso iterativo de aprendizaje.

Extractor de características entrenable

Extractor de características entrenable

Extractor de características entrenable

Clasificador

Page 9: Solid Day - Deep learning

Extractor de características entrenable

Contornos Texturas Objetos

*Ejemplo de una red neuronal convolucional entrenada con Imagenet

Page 10: Solid Day - Deep learning

Características conectadas en imágenes

Pixel Contorno Textura Patrón Parte Objeto

Page 11: Solid Day - Deep learning

Técnicadeaprendizajeprofundoparalaclasificacióndetexto

Page 12: Solid Day - Deep learning

¿Qué características necesitamos construir?

Letra Palabra Frases Oración Enunciado Historia

Page 13: Solid Day - Deep learning

Tratar texto como imagen (Zhang y LeCun, 2015)

El texto es transformado en una imagen binaria.

Dimensiones: (alfabeto x longitud máxima)

Juniperus =

Page 14: Solid Day - Deep learning

Red neuronal convolucional

Características:

Profundidad de 9 capas

6 capas de filtros de convolución

3 capas de Multi-layer perceptron.

Page 15: Solid Day - Deep learning

¿Cómo ha sido probado?

1. DBpedia

a. 14 clases.

b. 560,000 documentos para entrenar.

c. 70,000 para probar.

d. 98.40% de exactitud en el conjunto de prueba.

2. Amazon Review Sentiment Analysis

a. 5 clases (subjetividad en comentarios de productos)

b. 3,600,000 comentarios para entrenar.

c. 400,000 comentarios para probar.

d. 59.57% de exactitud en el conjunto de prueba.

3. SogouCA en Chino

a. 5 clases (notas de periódicos)

b. 90,000 documentos para entrenar.

c. 12,000 para probar.

d. 95.12% de exactitud en el conjunto de prueba.

Page 16: Solid Day - Deep learning

EjemploprácticoenTensorflow

Page 17: Solid Day - Deep learning

¿Qué es Tensorflow?

• Biblioteca de software libre para hacer computación numérica por medio de grafos.

• Los nodos representan las operaciones matemáticas; las conexiones, los datos.

• Fue originalmente desarrollado por ingenieros del proyecto Google Brain.

• Estadísticas de su repositorio en Github (https://github.com/tensorflow/tensorflow):

• +30k estrellas.

• +12k Forks.

• +300 contribuidores.

Page 18: Solid Day - Deep learning

Implementacióndelaredpublicada enVeryDeepConvolutionalNetworksforNaturalLanguageProcessing,2016

Page 19: Solid Day - Deep learning

Implementación usando tflearn

net= tflearn.input_data([None,7,1014,1])net= tf.pad(net,((0,0),(0,0),(1,1),(0,0)))net= tflearn.layers.conv_2d(net,64,[7,3],scope='conv1',padding='valid')for iin range(4):net= tflearn.layers.conv_2d(net,64,[1,3],scope='conv_64_{0}'.format(i),padding='SAME',activation='relu')net= tflearn.layers.normalization.batch_normalization(net)

net= tflearn.layers.conv.max_pool_2d(net,[1,3],strides=2)for iin range(4):net= tflearn.layers.conv_2d(net,128,[1,3],scope='conv_128_{0}'.format(i),padding='SAME',activation='relu')net= tflearn.layers.normalization.batch_normalization(net)

net= tflearn.layers.conv.max_pool_2d(net,[1,3],strides=2)for iin range(4):net= tflearn.layers.conv_2d(net,256,[1,3],scope='conv_256_{0}'.format(i),padding='SAME',activation='relu')net= tflearn.layers.normalization.batch_normalization(net)

net= tflearn.layers.conv.max_pool_2d(net,[1,3],strides=2)for iin range(4):net= tflearn.layers.conv_2d(net,512,[1,3],scope='conv_512_{0}'.format(i),padding='SAME',activation='relu')net= tflearn.layers.normalization.batch_normalization(net)

net= tflearn.layers.conv.max_pool_2d(net,[1,8],strides=16)net= tflearn.layers.core.flatten(net)

Page 20: Solid Day - Deep learning

Implementación usando tflearn

for iin range(2):net= tflearn.layers.core.fully_connected(net,2048,activation='relu')

net= tflearn.layers.core.fully_connected(net,9,activation='softmax')sgd= tflearn.SGD(learning_rate=0.005)accuracy= tflearn.metrics.Accuracy()net= tflearn.regression(net,optimizer=sgd,metric=accuracy,loss='categorical_crossentropy',to_one_hot=True,n_classes=9)model= tflearn.DNN(net,checkpoint_path='message_tickets',tensorboard_verbose=2)model.fit(X_train,y_train,n_epoch=100,validation_set=(X_test,y_test),batch_size=128,snapshot_step=100,run_id='message_tickets',show_metric=True)

Training Step: 1769 | total loss: 1.11202| SGD | epoch: 030 | loss: 1.11202 - acc: 0.6327 -- iter: 3712/7611

Page 21: Solid Day - Deep learning

Monitoreo de avance en Tensorboard

Page 22: Solid Day - Deep learning

¿Preguntas?Contacto:[email protected]