• No results found

A general definition of envelopes

Seguidamente, se ve la respuesta correcta (como ya dijimos en la sección 4.6 es la primera respuesta), y después los 9 distractores que nos ofrece el UDC. Como podemos ver, efectivamente la respuesta correcta (elemento 0) es la que mayor pro- babilidad ha obtenido, por ello está marcada en verde.

En la parte inferior podemos ver el tiempo que ha tardado la red en encontrar la respuesta correcta entre las 10 posibles.

En la segunda figura 4.5 de la predicción, la red nos pide insertar un contexto que nosotros queramos y después la respuesta a dicho contexto. La red evaluará la probabilidad de que esa respuesta sea correcta respecto al contexto introducido. Se han probado varias respuestas para un mismo contexto.

Como se puede ver en este segundo ejemplo, le hemos introducido un contexto y varias posibles respuestas a dicho contexto. Ha evaluado de forma correcta las respuestas, dando un mayor valor a las lógicas y uno menor a las que no tienen sentido, aunque lo optimo habría sido un valor bastante más bajo a las erróneas.

4.8.

Grafo del modelo

Para entender mejor el modelo, la herramienta TensorBoard nos ofrece unos grafos bastante potentes para comprender los complicados entrenamientos de las redes que se diseñan en TensorFLow.

Las redes neuronales tienen muchísimos nodos, con estos grafos se delimitan los nodos y se presentan de forma jerárquica. Los nodos son agrupados por nombre y a su vez, en cada nodo se agrupan diferentes atributos, como por ejemplo, las capas de la red y sus atributos correspondientes.

Los grafos tienen dos tipos de dependencias, los de datos y los de control. Las dependencias de control usan líneas de puntos, mientras que las dependencias de datos muestran el flujo de tensores entre dos operaciones y se muestran como flechas sólidas (opacas). El grosor de cada flecha indica el tamaño total del tensor, siendo cada flecha etiquetada con su respectiva dimensión.

Finalmente, una vista estructural de los nodos nos indica el nivel de cada uno. Si dos nodos tienen el mismo nivel, aparecen del mismo color; mientras que, los nodos con una estructura única (no se repite en otros nodos), aparecen en gris.

En las figuras 4.6 y 4.7 se pueden ver, un primer grafo que representa la red neu- ronal programada en este proyecto y un segundo grafo que nos muestra la evaluación de la red.

En el primer grafo podemos ver, el nodo “rnn”, el cual representa la red neu- ronal, dentro están las células LSTM y las diferentes capas con sus atributos (ta- sa de aprendizaje, pesos, sesgo,...), todo junto conforma el modelo Dual Encoder LSTM . Este nodo “rnn” está conectado al nodo “OptimizeLoss”, donde se realiza

60 Capítulo 4. el descenso del gradiente para el aprendizaje de los parámetros y el cálculo de las pérdidas (loss), utilizando el método Adam. El otro gran nodo conectado a estos es el “word_embedding”, donde se aplica la herramienta GloVe. Por último, el nodo de “predicciones” está conectado a los nodos donde se calculan los parámetros de la red, ya que necesita ser alimentado de todos ellos para calcular las probabilidades de cada respuesta.

Cabe destacar el nodo “save”, que se guarda todos los datos que se han ido calculando cada cierto número de steps indicado por el usuario.

En el segundo grafo, además de ver los parámetros del primero, podemos ver como aplica la métrica recall@k para los distintos valores de k, a través, del nodo “predicciones”.

Además, los grafos nos dejan entrever otros datos como el batch, la media (mean) o los escalares, obtenidos desde el los checkpoints, imprescindibles para el cálculo del resto de parámetros.

Los grafos hasta ahora descritos son los representados en las figuras 4.6 y 4.7:

Figura 4.6: Grafo que muestra el flujo de datos del modelo durante el entrenamiento.

61 4.8. Grafo del modelo

Capítulo 5

Resultados y discusión

En este capítulo, se analizan los resultados obtenidos tras haber entrenado el modelo Dual Encoder LSTM estudiado y adaptado para este proyecto, aplicando diferentes parámetros. Los parámetros con los que se realizaron pruebas son los indicados en la sección 3.4.3, siendo estos: tamaño del batch, dimensión de la célula de la RNN, tasa de aprendizaje, steps, épocas, tamaño del vocabulario, dimensión del word embedding, máxima longitud del contexto, máxima longitud de la respuesta, optimizado y las pérdidas.

Vamos a ver los beneficios y los problemas que presenta cada entrenamiento, viendo las gráficas y representaciones. También, se verá la validación y test pa- ra conjuntos de datos entrenado con el modelo. A su vez, se analizarán los datos conseguidos al aplicar la métrica recall@k (sección 3.4.5) sobre los resultados, para comprobar las predicciones obtenidas para los diferentes parámetros aplicados. Fi- nalmente, se hará una discusión de los resultados obtenidos para cada conjunto de parámetros del modelo.

5.1.

Resultados

En esta sección se presentan los diferentes entrenamientos (Train) en una ta- bla donde se muestran los parámetros que se han ido modificando para cada uno de los entrenamientos, así como el tiempo que se tarda con cada composición de parámetros en entrenar el modelo. Los parámetros durante los entrenamientos han sido variados y ajustados, considerando los resultados que se iban obteniendo en los entrenamientos precedentes, con el fin de ir convergiendo en una red lo más eficiente posible.

Debido al gran número de datos y resultados a explicar y comparar, además de la tabla mencionada, hay configuraciones de parámetros que no han sido expuestos en ella dado que son iguales para todos los entrenamientos, pero son relevantes para el estudio. Las configuraciones más relevantes son los siguientes: Los datos en los entrenamientos han sido guardados cada 25 steps para obtener unas gráficas más detalladas. Durante los entrenamientos, cada 250 steps se hacía un checkpoint (pun-

64 Capítulo 5. Resultados y discusión to de guardado) y la validación la red se hacía sobre este, por lo que los datos de recall@k que se mostrarán más adelante han sido recopilados cada 250 steps. La máxima longitud de cada contexto ha sido de 160 caracteres y la máxima longitud de respuesta de 80 caracteres. Por último, se suelen acabar los entrenamientos es- tableciendo un número total de épocas (conjunto total de ejemplos en el core), sin embargo, este se estableció en infinito y se finalizaron los entrenamientos por número total de steps alcanzados.

A continuación, se muestra en la siguiente tabla las pruebas y los resultados obtenidos:

Grupo Train BatchSize Size EvalBatch RNNDim Learn.Rate Embed.Dim Vocab.Size StepsTotal TotalTime

1 128 16 128 0.001 100 91620 3201 1h 40mín 2 128 16 128 0.001 100 91620 5201 2h 45mín 1 3 128 16 128 0.001 100 91620 5201 2h 45mín 4 128 16 128 0.001 100 91620 5201 2h 45mín 2 5 128 16 256 0.001 100 91620 5201 5h 30mín 6 128 16 128 0.0001 100 91620 5201 2h 30mín 3 7 128 16 128 0.01 100 91620 5201 2h 50mín 8 128 16 128 0.001 150 91620 5201 3h 4 9 128 16 128 0.001 75 91620 5201 2h 20mín 10 128 16 128 0.001 100 97620 5201 2h 40mín 11 128 16 128 0.001 120 97620 5201 2h 45mín 5 12 128 16 128 0.001 75 97620 5201 2h 40mín 13 256 32 128 0.001 100 91620 5201 4h 15mín 6 14 256 32 256 0.001 100 91620 5201 10h 10mín 15 64 8 128 0.001 100 91620 5201 1h 20mín 16 64 8 256 0.001 100 91620 5201 2h 45mín 7 17 64 8 512 0.001 100 91620 5201 8h 15mín 18 1 1 32 0.001 100 91620 5201 13mín 8 19 1 1 128 0.001 100 91620 5201 20mín 20 128 16 128 0.001 100 91620 20201 10h 30mín 9 21 128 16 256 0.001 100 91620 20201 20h 50mín

Tabla 5.1: Tabla de los parámetros de entrenamiento.

Pasemos a nombrar brevemente cada columna, para su mejor comprensión: Columna 1 (Grupos): Agrupamiento de los entrenamientos según la cercanía de los parámetros.

Columna 2 (Train): Número de cada entrenamiento.

Columna 3 (Batch Size): Tamaño del lote de ejemplos durante el entrenamiento. Columna 4 (Batch Size Eval): Tamaño del lote de ejemplos en la evaluación. Columna 5 (RNN Dim): Dimensión de la célula de la (RNN).

5.2. Entrenamiento, validación y test 65