Xavier Initialization/es

    From Marovi AI
    This page is a translated version of the page Xavier Initialization and the translation is 81% complete.
    Other languages:
    Article
    Topic area Deep Learning
    Prerequisites Backpropagation, Activation Function


    Resumen

    La inicialización de Xavier, también llamada inicialización de Glorot, es un esquema para fijar los pesos iniciales de una red neuronal profunda de modo que la varianza de las activaciones y los gradientes permanezca aproximadamente constante a lo largo de las capas al inicio del entrenamiento. Fue introducida por Xavier Glorot y Yoshua Bengio en 2010 y sigue siendo uno de los inicializadores por defecto más utilizados, especialmente en redes con funciones de activación simétricas y centradas en cero, como la tangente hiperbólica.[1]

    La idea central es un argumento sencillo de equilibrio de varianzas. Si los pesos de cada capa se extraen de una distribución cuya varianza está calibrada con respecto a su fan-in y a su fan-out, entonces la magnitud de las activaciones hacia adelante y la magnitud de los gradientes hacia atrás no se reducen a cero ni se disparan a medida que las señales se propagan en profundidad. Esto evita las patologías de gradientes que se desvanecen y de gradientes que explotan, las cuales hicieron que entrenar redes profundas fuera notoriamente difícil antes de que se comprendiera la inicialización cuidadosa.

    Motivación

    Antes del análisis de Glorot y Bengio, las redes profundas se inicializaban habitualmente con pesos extraídos de una distribución gaussiana pequeña o uniforme, elegida a mano o por ensayo y error. Los profesionales observaban que las redes muy profundas con activaciones sigmoides o de tangente hiperbólica eran prácticamente imposibles de entrenar: los gradientes calculados por retropropagación bien decaían a cero en las primeras capas (el problema del gradiente que se desvanece) o bien crecían sin cota (el problema del gradiente que explota), según la escala de los pesos y la elección de la función de activación. Las activaciones simétricas saturantes como la tanh agravaban el problema, ya que sus derivadas decaen rápidamente fuera de una región estrecha en torno al cero.

    Glorot y Bengio analizaron cómo evoluciona la varianza de las activaciones en el paso hacia adelante y cómo evoluciona la varianza de los gradientes en el paso hacia atrás, bajo los supuestos de que las activaciones son aproximadamente lineales cerca de cero y de que los pesos son independientes e idénticamente distribuidos con media cero. Demostraron que, para mantener estables las varianzas tanto en el paso hacia adelante como en el paso hacia atrás a lo largo de una cadena de capas, la varianza de cada peso debe estar ligada al fan-in (numero de unidades de entrada) y al fan-out (numero de unidades de salida) de la capa. La prescripcion resultante es lo que hoy se conoce como inicializacion de Xavier.

    Formulación

    Considérese una capa totalmente conectada que aplica un vector de entrada de dimensión $ n_{\text{in}} $ a un vector de salida de dimensión $ n_{\text{out}} $ mediante una matriz de pesos $ W $. Supóngase que las entradas son independientes con media cero y varianza compartida $ \sigma_x^2 $, que los pesos son independientes con media cero y varianza $ \sigma_w^2 $, y que la función de activación se comporta de forma aproximadamente lineal cerca de cero con pendiente unitaria. Entonces la varianza de cada salida es

    $ {\displaystyle \operatorname{Var}(y) = n_{\text{in}} \, \sigma_w^2 \, \sigma_x^2.} $

    Para que la varianza se preserve en el paso hacia adelante hace falta $ \sigma_w^2 = 1 / n_{\text{in}} $. Un argumento simétrico aplicado al paso hacia atrás, en el que el gradiente se multiplica por la transpuesta de la matriz de pesos, da $ \sigma_w^2 = 1 / n_{\text{out}} $. Como en general estos dos requisitos entran en conflicto, Glorot y Bengio propusieron el compromiso armónico

    $ {\displaystyle \sigma_w^2 = \frac{2}{n_{\text{in}} + n_{\text{out}}}.} $

    Esta es la varianza que define la inicialización de Xavier. Dos parametrizaciones comunes la realizan:

    • Xavier normal: extraer cada peso de manera independiente de una distribución gaussiana $ \mathcal{N}\!\left(0, \frac{2}{n_{\text{in}} + n_{\text{out}}}\right) $.
    • Xavier uniforme: extraer cada peso de manera independiente de $ \mathcal{U}(-a, a) $ con $ a = \sqrt{6 / (n_{\text{in}} + n_{\text{out}})} $, de modo que la distribución uniforme tenga la varianza prescrita.

    Los sesgos suelen inicializarse a cero. En las capas convolucionales, el fan-in y el fan-out se calculan como el número de canales de entrada o de salida multiplicado por el tamaño del campo receptivo (por ejemplo, la altura del núcleo multiplicada por su anchura).

    Esbozo de la derivación

    La derivación se apoya en tres aproximaciones: los pesos y las entradas son independientes y de media cero, la función de activación es localmente lineal cerca del origen con derivada uno, y los sesgos son cero. Bajo estos supuestos, la recursión de la varianza hacia adelante se lee

    $ {\displaystyle \operatorname{Var}(y^{(\ell)}) = n^{(\ell)}_{\text{in}} \, \sigma^{(\ell)\,2}_w \, \operatorname{Var}(y^{(\ell-1)}),} $

    de modo que la varianza se preserva entre capas exactamente cuando $ n^{(\ell)}_{\text{in}} \sigma^{(\ell)\,2}_w = 1 $. La recursión hacia atrás tiene la misma forma, con $ n^{(\ell)}_{\text{in}} $ reemplazado por $ n^{(\ell)}_{\text{out}} $, ya que el gradiente se propaga mediante la transpuesta. Promediar las dos condiciones da la regla de Xavier. Glorot y Bengio verificaron empíricamente que las redes inicializadas de este modo exhiben histogramas de activaciones y gradientes mucho más estables a lo largo de la profundidad y entrenan sustancialmente más rápido que las redes inicializadas con la heurística más antigua $ \mathcal{U}(-1/\sqrt{n_{\text{in}}}, 1/\sqrt{n_{\text{in}}}) $.

    Comparación con la inicialización de He

    El supuesto de activación lineal en el que se basa la inicialización de Xavier es razonable para la tanh y la sigmoide logística cerca del origen, pero deja de cumplirse para la unidad lineal rectificada. Como ReLU anula las entradas negativas, solo aproximadamente la mitad de las preactivaciones contribuyen a la varianza de salida, y la inicialización de Xavier tiende a subestimar la escala de pesos apropiada para las redes con ReLU, lo que conduce a activaciones que se reducen con la profundidad. La inicialización de He, introducida por Kaiming He y colaboradores en 2015, lo tiene en cuenta utilizando

    $ {\displaystyle \sigma_w^2 = \frac{2}{n_{\text{in}}}} $

    en su lugar, duplicando la varianza para compensar el rectificador.[2] En la práctica moderna, la inicialización de Xavier es la opción por defecto para arquitecturas basadas en tanh, sigmoide y softmax, mientras que la inicialización de He es la opción por defecto para ReLU y sus variantes. Ambas son casos particulares de un principio general de inicialización "escalada" y a veces se las denomina colectivamente como inicializaciones que preservan la varianza.

    Consideraciones prácticas

    En las redes profundas con normalización por lotes o normalización por capas, la elección del inicializador importa menos de lo que solía importar, ya que la capa de normalización reescala las activaciones tras cada transformación lineal y absorbe parcialmente las escalas iniciales mal calibradas. Aun así, un inicializador sensato acelera las primeras épocas de entrenamiento y puede ser la diferencia entre una red que diverge y una que converge, particularmente en redes muy profundas sin normalización o en las ramas residuales de redes residuales muy profundas, donde unas escalas iniciales pequeñas resultan beneficiosas.

    La mayoría de los frameworks de aprendizaje profundo incluyen tanto Xavier uniforme como Xavier normal como inicializadores integrados, a menudo bajo los nombres "glorot_uniform" y "glorot_normal" (por ejemplo, en TensorFlow y Keras) o "xavier_uniform_" y "xavier_normal_" (en PyTorch). La inicialización por defecto de las capas lineales en PyTorch utiliza un esquema He-uniforme estrechamente relacionado. Al mezclar activaciones o al combinarlas con normalización, la convención que suelen seguir los profesionales es emparejar las capas tanh y sigmoide con Xavier y las capas ReLU con He, dejando intactos los valores por defecto del framework para las capas de normalización y de embeddings.

    For recurrent neural networks, orthogonal initialization of the recurrent weight matrix is a stronger choice than Xavier, because it preserves the norm of the hidden state across time steps exactly rather than only on average. Xavier remains a reasonable choice for the input-to-hidden weights of a recurrent layer.

    Limitations

    Xavier initialization makes assumptions that are routinely violated in practice. It assumes the activation is linear near zero with unit slope, which excludes ReLU and its variants; it assumes inputs and weights are independent with zero mean, which is approximately but not exactly true at initialization; and it ignores the effect of biases, normalization layers, and skip connections. For networks with strong nonlinearities, it underestimates or overestimates the appropriate scale, and dedicated derivations such as He initialization or LSUV initialization are preferred.

    The scheme also says nothing about the geometric structure of the weight matrix. Two networks with identical Xavier-distributed weights can still have very different conditioning of their Jacobians, and pathological eigenvalue structures can persist even when variances are well calibrated. For very deep networks, more careful initializations such as orthogonal matrices, dynamical isometry, or Fixup initialization for residual networks address the conditioning question directly.[3] Finally, the scheme is purely about the start of training; with sufficient training, modern optimizers can usually overcome moderately mis-scaled initial weights, so Xavier initialization is best understood as a robust default rather than as an optimal choice in any strict sense.

    References