Arquitectura Transformers, Tokenización y Aprendizaje Reforzado: Conceptos y Aplicaciones
Arquitectura Transformers y Mecanismos de Atención
Se dice que la arquitectura Transformers no es recurrente ya que procesa las palabras de forma simultánea, es decir, realiza lo contrario a las redes recurrentes donde las palabras son procesadas de forma secuencial. A su vez, la arquitectura Transformers se basa en mecanismos de atención, los cuales son funciones que se describen como la asignación de una consulta y un conjunto de pares clave-valor a una salida, en donde los valores, claves, consultas y la salida son vectores. La salida corresponde a la suma ponderada de los valores, en donde el peso asignado a cada valor se calcula con una función de compatibilidad de la consulta con la clave correspondiente.
Cabe destacar que la arquitectura Transformers prescinde por completo de la recurrencia.
Tokenización y Embeddings en el Procesamiento de Tweets
2.a – Longitud de Tweets y Tokenización
Si bien es cierto que se puede saber el tweet con mayor longitud, el resultado que deriva de la tokenización no siempre coincide con la cantidad de palabras. Por ejemplo, de la palabra «aprenderíamos» se pueden obtener 2 tokens como resultado, uno para la palabra «aprender» y otro para «íamos». Con esto, tenemos que el resultado de la tokenización puede cambiar con la cantidad de palabras que contenga un tweet. Sin embargo, es posible realizar una aproximación para conocer cuál es el tweet de mayor longitud en el set de datos.
2.b – Tamaño de la Matriz de Entrada y Embeddings
La matriz de entrada al modelo antes de pasar por la matriz de embeddings sería de tamaño 300×1000, donde 300 correspondería al tweet con la mayor cantidad de caracteres y 1000 corresponde al número de observaciones. Es decir, las filas de la matriz de entrada corresponden al tweet más largo y las columnas al número de observaciones. En conclusión, la matriz de entrada depende de la longitud máxima del tweet y del número de observaciones. Al pasar por la matriz de embeddings, el tamaño de la matriz cambiaría a 300x30x1000, donde el número 30 corresponde a las posiciones del embedding.
Como sabemos, en caso de no conocer alguna palabra en particular, se usa una letra y, a su vez, el token asociado a dicha letra estaría alojado en las 8000 palabras de embedding. Sin embargo, para los casos en que la letra no se encuentre en dichas 8000 palabras, se procede a añadir un token para las palabras desconocidas o unknown words.
2.c – Tamaño de la Matriz de Embeddings
La matriz de embeddings sería de tamaño 30×8000, donde el número de filas está asociado por el número de posiciones en el embedding, en este caso 30, y en cuanto a las columnas, estas vienen dadas por el número de palabras que contiene el embedding, en este caso 8000.
Arquitectura DQN y Función de Costo
El vector de salida para las arquitecturas DQN (Deep Q-Network) corresponde a un vector que contiene valores para las posibles acciones en un estado dado. Un sencillo ejemplo sería estar en un estado ‘s’ cualquiera donde las posibles acciones a realizar sean subir o bajar, entonces el vector salida correspondería a Q(s, subir) y Q(s, bajar), siendo ‘s’ el estado y lo demás la acción a realizar.
La función de costo en la arquitectura de tipo DQN está definida como el llamado error cuadrático medio de la Q de referencia y el valor de Q calculado. Para calcularla se compara contra la mencionada anteriormente Q de referencia.
Algoritmos SARSA y Q-Learning en Aprendizaje Reforzado
En el algoritmo SARSA se comienza con una tabla inicialmente aleatoria y se envía al agente a realizar una exploración del ambiente de donde se recolectan episodios p1, p2, p3… pt, siendo este último un llamado episodio terminal. En cuanto al algoritmo Q-Learning, se comienza de la misma manera. Luego, cada ‘p’ es un paso que da el agente en el ambiente y para SARSA viene dado de la forma (st, at, rt, st+1, at+1), lo cual corresponde a: estado actual, acción actual, recompensa, estado al que se llega y la acción que se tomará de acuerdo a la política. Para el caso del Q-learning los pasos que da el agente vienen dados de la forma (st, at, rt, st+1), lo cual corresponde a: estado actual, acción actual, recompensa, estado al que se llega, teniendo como diferencia que no utiliza el at+1 (acción que se tomará de acuerdo a la política).
Luego tenemos que SARSA en cada estado (st) escoge la acción (at) de manera e-greedy, caso diferente con Q-Learning donde en cada estado ‘st’ se escoge la acción ‘at’ de la forma MAX Q(s,-).
A diferencia de SARSA, donde este no es un algoritmo Off-Policy, Q-Learning sí lo es, esto quiere decir que busca calcular de forma directa el Q(s, a) y no está basado en una política.
Policy Iteration y Value Iteration
5.a – Inicialización de Valores y Política
Al comienzo, los valores V(s) son iguales a cero por la sencilla razón de que son desconocidos. Considero que se podría aplicar una política donde el agente vaya siempre hacia el sector izquierdo. Por lo tanto, el algoritmo a utilizar sería Policy Iteration. Para calcular las recompensas de las acciones se realiza lo siguiente:
- Q(2, derecha) = (0.6 * (-1) + 0) + (0.2 * 1 + 0) + (0.2 * (-1) + 0) = -0.4
- Q(2, izquierda) = (0.4 * (-1) + 0) + (0.5 * 1 + 0) + (0.1 * (-1) + 0) = 0.1
Como a la derecha da un resultado menor, la política sufre una actualización para moverse hacia la izquierda.
5.b – Influencia de Épsilon en la Convergencia
Para un épsilon muy pequeño, la convergencia en el algoritmo de Value Iteration tardaría más tiempo en converger ya que la convergencia en este algoritmo se da cuando |Vi+1(s) – Vi(s)| < épsilon. Entonces, a medida que menor sea el épsilon, mayor será el tiempo de convergencia. Para ese caso, sería mejor utilizar Policy Iteration. En caso de que épsilon sea muy grande, entonces el Value Iteration será mejor en tiempo de convergencia ya que es más fácil que se cumpla la ecuación descrita anteriormente.