Graphical Energy-based Methods
🎙️ Yann LeCunComparación de pérdidas

Figura 1: Arcitectura de la red
En la figura anterior, las rutas incorrectas tienen -1.
El profesor LeCun comienza con la pérdida de perceptrón, que se utiliza en el ejemplo de Graph Transformer Model en la figura anterior. El objetivo es aumentar la energía de las respuestas incorrectas y reducir las respuestas correctas.
En términos de implementación, representaría los arcos en la visualización con un vector. En lugar de un arco separado para cada categoría, un vector contiene tanto las categorías como la puntuación para cada categoría.
P: ¿Cómo se implementa el segmento o en el modelo anterior?
R: El segmento es heurístico artesanal. El modelo utiliza un segmento artesanal aunque hay una forma de hacerlo entrenable de principio a fin. Este enfoque artesanal fue reemplazado por el enfoque de ventana deslizante para el reconocimiento de personajes.
Resumen de las funciones de pérdida
Ecuacion de pérdida | Formula | Margen |
---|---|---|
Perdida de energia | $\text{E}(\text{W}, \text{Y}^i, \text{X}^i)$ | None |
Perceptron | $\text{E}(\text{W}, \text{Y}^i, \text{X}^i)-\min\limits_{\text{Y}\in\mathcal{Y}}\text{E}(\text{W}, \text{Y}, \text{X}^i)$ | 0 |
Bisagra | $\max\big(0, m + \text{E}(\text{W}, \text{Y}^i,\text{X}^i)-\text{E}(\text{W}, \overline{\text{Y}}^i,\text{X}^i)\big)$ | $m$ |
Log | $\log\bigg(1+\exp\big(\text{E}(\text{W}, \text{Y}^i,\text{X}^i)-\text{E}(\text{W}, \overline{\text{Y}}^i,\text{X}^i)\big)\bigg)$ | >0 |
LVQ2 | $\min\bigg(M, \max\big(0, \text{E}(\text{W}, \text{Y}^i,\text{X}^i)-\text{E}(\text{W}, \overline{\text{Y}}^i,\text{X}^i)\big)\bigg)$ | 0 |
MCE | $\bigg(1+\exp\Big(-\big(\text{E}(\text{W}, \text{Y}^i,\text{X}^i)-\text{E}(\text{W}, \overline{\text{Y}}^i,\text{X}^i)\big)\Big)\bigg)^{-1}$ | >0 |
Cuadrado-cuadrado | $\text{E}(\text{W}, \text{Y}^i,\text{X}^i)^2-\bigg(\max\big(0, m - \text{E}(\text{W}, \overline{\text{Y}}^i,\text{X}^i)\big)\bigg)^2$ | $m$ |
Cuadrado-Exp | $\text{E}(\text{W}, \text{Y}^i,\text{X}^i)^2 + \beta\exp\big(-\text{E}(\text{W}, \overline{\text{Y}}^i,\text{X}^i)\big)$ | >0 |
NNL/MMI | $\text{E}(\text{W}, \text{Y}^i,\text{X}^i) + \frac{1}{\beta}\log\int_{y\in\mathcal{Y}}\exp\big(-\beta\text{E}(\text{W}, y,\text{X}^i)\big)$ | >0 |
MEE | $1-\frac{\exp\big(-\beta E(W,Y^i,X^i)\big)}{\int_{y\in\mathcal{Y}}\exp\big(-\beta E(W,y,X^i)\big)}$ | >0 |
La pérdida de perceptrón que se ve en la tabla anterior no tiene margen y, por lo tanto, la pérdida tiene el riesgo de colapsar.
- La «pérdida de bisagra» consiste en tomar la energía de la peor respuesta y la respuesta correcta y calcular su diferencia. Intuitivamente, con un margen ‘m’, la bisagra solo tendrá una pérdida de 0 cuando la energía correcta sea menor que la energía más ofensiva en (al menos) ‘m’.
- La pérdida de MCE se utiliza en el reconocimiento de voz y se parece a un sigmoide.
- La pérdida de NLL tiene como objetivo hacer que la energía de la respuesta correcta sea pequeña y que el componente logarítmico de la ecuación sea grande.
P: ¿Cómo puede ser mejor la bisagra que la pérdida NLL?
R: Bisagra es mejor que NLL porque NLL intentará llevar la diferencia entre la respuesta correcta y otras respuestas al infinito, mientras que Hinge solo quiere que sea más grande que algún valor (el margen m).
DEFINICIÓN:
Un decodificador ltoma como variable de entrada una secuencia de vectores que indican las puntuaciones o la energía de sonidos o imágenes individuales y selecciona la mejor salida posible.
P: ¿Cuáles son algunos ejemplos de problemas que se pueden utilizar con decodificadores? R: Modelado de idiomas, traducción automática y etiquetado de secuencias.
Algoritmo de avance en redes de transformadores de grafos
Composición de grafos
La composición de grafos nos permite combinar dos grafos. En este ejemplo, podemos ver un léxico de un modelo de lenguaje representado como $trie$ (un grafo) y un grafo de reconocimiento producido por una red neuronal.

Figura 2: Composicion del grafo
El grafo de reconocimiento especifica con diferentes valores de energía (asociados con cada arco) la probabilidad de que un personaje esté en un paso en particular.
Ahora, para este ejemplo, la pregunta que respondemos con una operación de composición de grafo es, ¿cuál es el mejor camino en este grafo de reconocimiento que también concuerda con nuestro léxico?
El salto común del paso 1 al paso 2 entre el grafo de reconocimiento y la gramática es el carácter $ c$, asociado con la energía 0.4. Por lo tanto, nuestro grafo de interpretación contiene solo 1 arco entre el paso 1 y 2 correspondiente a $c$. De manera similar, los caracteres posibles entre los pasos 2 y 3 son $ x$, $u$ y $ a$ en el gráfico de reconocimiento. Las ramas que siguen a $ c$ en el gráfico gramatical contienen $ u$ y $ a$. Entonces, la operación de composición de grafos selecciona los arcos $ u$ y $a$ para que estén presentes en el grafo de interpretación. También asocia el arco que copia del grafo de reconocimiento con sus valores de energía.
Si la gramática también contuviese valores de energía asociados con arcos, la composición del grafo habría agregado los valores de energía o los habría combinado usando algún otro operador.
De manera similar, la composición de grafos también nos permite combinar dos bases de conocimiento que están representadas por redes neuronales. En el ejemplo discutido anteriormente, la gramática se puede representar esencialmente como una red neuronal que predice el siguiente carácter. La salida softmax del NN nos proporciona las probabilidades de transición al siguiente carácter de un nodo dado.
Como nota al margen, si el modelo de lenguaje que se muestra en este ejemplo es una red neuronal, podemos propagar hacia atrás a través de toda la estructura. Esto se convierte en un ejemplo de un programa diferenciable en el que retropropagamos a través de un programa que contiene bucles, condiciones if, recursiones, etc.
Toda la arquitectura de un lector de cheques de mediados de los 90 es bastante compleja, pero lo que más nos interesa es la parte que parte del reconocedor de caracteres, que produce el gráfico de reconocimiento.

Figura 3 : lector de cheques </center> Este gráfico de reconocimiento se somete a dos operaciones de composición separadas, una con la interpretación correcta (o la verdad básica) y la segunda con la gramática que crea un gráfico de todas las posibles interpretaciones. Todo el sistema se entrena mediante la función de pérdida de probabilidad logarítmica negativa. La probabilidad logarítmica negativa dice que cada camino en el grafo de interpretación es una posible interpretación y la suma de energías a lo largo de ese camino es la energía de esa interpretación. Ahora, en lugar de usar el algoritmo de Viterbi, usamos el algoritmo de avance. Las siguientes subsecciones discuten las diferencias entre los dos enfoques. #### Algoritmo de Viterbi El algoritmo de Viterbi es un algoritmo de programación dinámica que se utiliza para encontrar la ruta más probable (o la ruta con la energía mínima) en un gráfico dado. Minimiza la energía con respecto a una variable latente z, donde z representa el camino que estamos tomando en la gráfica. $$ F (x, y) = \min_ {z} \; E (x, y, z) $$ #### El algoritmo de avance El algoritmo directo, por otro lado, calcula el logaritmo de la suma de exponenciales del valor negativo de las energías de todos los caminos. Esto se puede ver fácilmente como una fórmula a continuación: $$F_{\beta} (x, y) = -\frac{1}{\beta} \; \log \; \sum_{z \, \in \, \text{paths}} \; \exp \, (- \beta \; E(x, y, z))$$ Esto es marginalizar sobre la variable latente z, que define las rutas en un grafo de interpretación. Este enfoque calcula este valor exponencial de suma logarítmica en todas las rutas posibles a un nodo en particular. Esto es como combinar el costo de todos los caminos posibles de una manera mínima suave. El algoritmo de reenvío es barato de implementar y no cuesta más que el algoritmo de Viterbi. Además, podemos propagar hacia atrás a través del nodo del algoritmo de avance en el gráfico. El funcionamiento del algoritmo de avance se puede mostrar utilizando el siguiente ejemplo definido en un gráfico de interpretación.

Figura 4 : Gráfico de interpretación </center> El costo desde el nodo de entrada hasta el nodo sombreado en rojo se calcula marginando todos los caminos posibles que llegan al nodo rojo. Las flechas que entran en el nodo rojo definen estas posibles rutas en nuestro ejemplo. Para el nodo rojo, el valor de la energía en el nodo viene dado por: $$-\frac{1}{\beta} \; \log \; [ \, \exp \, (- \, \beta (e_1 \, + \, e_3)) \; + \; \exp \, (- \, \beta (e_2 \, + \, e_4)) \, ]$$ #### Analogía de red neuronal del algoritmo directo El algoritmo de avance es un caso especial del algoritmo de propagación de creencias, cuando el grafo subyacente es un grafo de cadena. Todo este algoritmo puede verse como una red neuronal de retroalimentación donde la función en cada nodo es una suma logarítmica de exponenciales y un término de suma. Para cada nodo en el gráfico de interpretación, mantenemos una variable $\alpha$. $$ \alpha_{i} = - \; \log \; \biggl[ \sum_{k \, \in \, \text{parent} \, (i)} \; \exp \, (- \, \beta \; (\alpha_k \, + \, e_{ki})) \biggl]$$ donde $ e_ {ki} $ es la energía del enlace desde el nodo $ k $ al nodo $i$. $\alpha_i$ forma la activación de un nodo $i$ en esta red neuronal y $e_ {ki}$ es el peso entre los nodos $k$ y el nodo $i$. Esta formulación es algebraicamente equivalente a las operaciones de suma ponderada de una red neuronal regular en el dominio logarítmico. Podemos retropropagar a través del gráfico de interpretación dinámica (ya que cambia de un ejemplo a otro) en el que aplicamos el algoritmo de avance. Podemos calcular los gradientes de $F (x, y)$ calculados en el último nodo del grafo con los pesos $e_ {ki}$ que definen los bordes del gráfico de interpretación.

Figure 5: Check reader

Figure 6: Jensen's Inequality (taken from [Wikipedia](https://en.wikipedia.org/wiki/Jensen%27s_inequality))
📝 Yada Pruksachatkun, Ananya Harsh Jha, Joseph Morag, Dan Jefferys-White, and Brian Kelly
lcipolina (Lucia Cipolina-Kun)
15 Sep 2020