Tanto la norma de lote como la norma de capa son técnicas comunes de normalización para el entrenamiento de redes neuronales.
Me pregunto por qué los transformadores utilizan principalmente la norma de capas.
Tanto la norma de lote como la norma de capa son técnicas comunes de normalización para el entrenamiento de redes neuronales.
Me pregunto por qué los transformadores utilizan principalmente la norma de capas.
Parece que la norma ha sido utilizar la norma por lotes en las tareas de CV, y la norma por capas en las tareas de PNL. El original La atención es todo lo que necesitas El documento sólo probó las tareas de PNL y, por lo tanto, utilizó layernorm. Parece que, incluso con el aumento de los transformadores en las aplicaciones de CV, layernorm sigue siendo el más utilizado, así que no estoy completamente seguro de los pros y los contras de cada uno. Pero tengo algunas intuiciones personales, que admito que no se basan en la teoría, pero que, no obstante, trataré de desarrollar en lo que sigue.
Recordemos que en batchnorm, las estadísticas de media y varianza utilizadas para la normalización se calculan a través de todos los elementos de todas las instancias de un lote, para cada característica de forma independiente. Por "elemento" e "instancia", me refiero a "palabra" y "frase" respectivamente para una tarea de PNL, y a "píxel" e "imagen" para una tarea de CV. Por otro lado, en el caso de layernorm, los estadísticos se calculan en toda la dimensión de la característica, para cada elemento e instancia de forma independiente ( fuente ). En los transformadores, se calcula a través de todas las características y todos los elementos, para cada instancia independientemente. Esta ilustración de este artículo reciente transmite la diferencia entre batchnorm y layernorm:
(en el caso de los transformadores, donde las estadísticas de normalización se calculan a través de todas las características y todos los elementos para cada instancia de forma independiente, en la imagen que correspondería a la cara izquierda del cubo de color azul).
Pasemos ahora a las razones por las que batchnorm es menos adecuado para las tareas de PNL. En las tareas de PNL, la longitud de las frases suele variar, por lo que si se utiliza batchnorm, no se sabe cuál es la constante de normalización adecuada (el número total de elementos que hay que dividir durante la normalización) que hay que utilizar. Diferentes lotes tendrían diferentes constantes de normalización, lo que conduce a la inestabilidad durante el curso del entrenamiento. Según el artículo que proporciona la imagen enlazada anteriormente, "las estadísticas de los datos de PNL en la dimensión del lote muestran grandes fluctuaciones a lo largo del entrenamiento. Esto da lugar a la inestabilidad, si BN se implementa ingenuamente". (El artículo trata de una mejora de la norma por lotes para su uso en transformadores que llaman PowerNorm, que mejora el rendimiento en las tareas de PNL en comparación con la norma por lotes o la norma por capas).
Otra intuición es que en el pasado (antes de Transformers), las arquitecturas RNN eran la norma. Dentro de las capas recurrentes, tampoco está claro cómo calcular las estadísticas de normalización. (¿Hay que tener en cuenta las palabras anteriores que pasaron por una capa recurrente?) Así, es mucho más sencillo normalizar cada palabra independientemente de las demás en la misma frase. Por supuesto, esta razón no se aplica a los transformadores, ya que el cálculo de las palabras en los transformadores no depende del tiempo de las palabras anteriores, y por lo tanto se puede normalizar a través de la dimensión de la frase también (en la imagen de arriba que correspondería a toda la cara izquierda del cubo de color azul).
También puede valer la pena consultar normalización de instancias y normalización de grupos No soy experto en ninguno de los dos, pero aparentemente cada uno tiene sus méritos.
Un problema menos conocido de Batch Norm es la dificultad de paralelizar los modelos normalizados por lotes. Dado que hay dependencia entre los elementos, hay una necesidad adicional de sincronización entre los dispositivos. Mientras que esto no es un problema para la mayoría de los modelos de visión, que tienden a ser utilizados en un pequeño conjunto de dispositivos, los Transformers realmente sufren de este problema, ya que dependen de configuraciones a gran escala para contrarrestar su complejidad cuadrática. En este sentido, la norma de capas proporciona cierto grado de normalización sin incurrir en la dependencia de los lotes.
Si desea elegir un cuadro de muestra de datos que contenga todas las características pero con una longitud menor de fila de marco de datos único y un número pequeño de grupo de marco de datos único enviado como lote para enviar -> norma de capa
Para el transformador esta normalización es eficiente ya que podrá crear la matriz de relevancia de una sola vez en toda la entidad.
Y las primeras respuestas lo explican muy bien en ambas modalidades [texto e imagen]
I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.