La inicialización de pesos, también llamada inicialización de parámetros, es el paso previo al entrenamiento que asigna valores iniciales a los parámetros entrenables de una red neuronal. En el aprendizaje profundo, una red neuronal contiene pesos y sesgos que se modifican durante el entrenamiento; la elección de los valores iniciales afecta la velocidad de convergencia, la escala de las activaciones, la escala de las señales de gradiente durante la retropropagación y la calidad del modelo final. Una inicialización adecuada es necesaria para evitar problemas como los gradientes que se desvanecen o explotan y la saturación de las funciones de activación. Aunque el artículo se titula "inicialización de pesos", tanto los pesos como los sesgos son parámetros entrenables, y los mismos principios se aplican a los núcleos de convolución y los sesgos en las redes neuronales convolucionales (CNN).
Inicialización constante
La forma más simple de inicialización es la inicialización a cero, donde todos los pesos y sesgos se establecen en cero. Esto se usa comúnmente para los sesgos, pero no para los pesos, porque conduce a la simetría: todas las neuronas en una capa reciben gradientes idénticos y, por lo tanto, aprenden las mismas características, lo que limita severamente la capacidad de la red. En la mayoría de los casos, los sesgos se inicializan a cero, pero algunas situaciones requieren valores distintos de cero. Por ejemplo, en unidades multiplicativas como la puerta de olvido de una LSTM, el sesgo puede inicializarse a 1 para permitir una buena señal de gradiente a través de la puerta. Para neuronas con activación ReLU, inicializar el sesgo a un valor positivo pequeño, como 0.1, puede ayudar a evitar el problema de ReLU muerta, donde las neuronas se vuelven inactivas y dejan de aprender.
Para las redes neuronales recurrentes (RNN), se suelen usar funciones de activación con rango acotado (por ejemplo, sigmoide o tanh), ya que las activaciones no acotadas pueden causar valores que explotan. Le, Jaitly y Hinton (2015) sugirieron inicializar los pesos en las partes recurrentes de la red a la matriz identidad y los sesgos a cero, similar a la idea de las conexiones residuales y las LSTM sin puerta de olvido.
Inicialización aleatoria
La inicialización aleatoria implica muestrear los pesos de una distribución normal o uniforme, generalmente de forma independiente para cada peso. Esto rompe la simetría y permite que diferentes neuronas aprendan diferentes características. La escala de la distribución es crítica: valores demasiado grandes pueden causar activaciones o gradientes que explotan, mientras que valores demasiado pequeños pueden causar señales que se desvanecen. Se han desarrollado varios métodos para elegir escalas apropiadas.
Inicialización de LeCun
La inicialización de LeCun, popularizada por Yann LeCun y sus colegas en 1998, está diseñada para preservar la varianza de las activaciones durante el paso hacia adelante. Muestrea cada peso de forma independiente de una distribución con media 0 y varianza 1/n_in, donde n_in es el número de entradas a la capa (fan-in). Para una distribución uniforme, esto corresponde a muestrear de U(±√(3/n_in)). Este método funciona bien con funciones de activación que son aproximadamente lineales cerca de cero, como tanh, pero puede ser subóptimo para ReLU.
Inicialización de Glorot
La inicialización de Glorot, también conocida como inicialización de Xavier, fue propuesta por Xavier Glorot y Yoshua Bengio en 2010. Fue diseñada como un compromiso entre dos objetivos: preservar la varianza de las activaciones durante el paso hacia adelante y preservar la varianza de los gradientes durante el paso hacia atrás. Para la inicialización uniforme, cada peso se muestrea de U(±√(6/(n_in + n_out))), donde n_in es el fan-in y n_out es el fan-out (número de neuronas en la siguiente capa). Este método se usa ampliamente para redes con activaciones sigmoide o tanh, pero puede ser menos efectivo para ReLU debido a la no linealidad de rectificación.
Inicialización de He
La inicialización de He, propuesta por Kaiming He y sus colegas en 2015, está diseñada específicamente para activaciones ReLU. Muestrea los pesos de una distribución con media 0 y varianza 2/n_in, donde n_in es el fan-in. Para una distribución normal, esto es N(0, 2/n_in); para una distribución uniforme, es U(±√(6/n_in)). El factor de 2 tiene en cuenta que ReLU anula la mitad de las activaciones, reduciendo efectivamente la varianza a la mitad. La inicialización de He se ha convertido en la opción predeterminada para muchas redes profundas, incluidas las redes residuales y las CNN.
Inicialización ortogonal
La inicialización ortogonal establece la matriz de pesos como una matriz ortogonal aleatoria, lo que significa que las filas y columnas son ortonormales. Esto preserva la norma de las activaciones y los gradientes durante los pasos hacia adelante y hacia atrás, lo que es beneficioso para las redes neuronales recurrentes y las redes profundas. Se usa a menudo en RNN y LSTM para mitigar los gradientes que se desvanecen. El método se aplica típicamente a la matriz de pesos recurrente, mientras que otros pesos pueden usar inicialización aleatoria.
Inicialización dependiente de los datos
En algunos casos, la inicialización puede derivarse de los propios datos de entrenamiento. Por ejemplo, en el preentrenamiento no supervisado, los autoencoders pueden inicializarse mediante entrenamiento codicioso por capas. Más recientemente, se han explorado métodos dependientes de los datos, como la inicialización secuencial por capas. Sin embargo, estos son menos comunes que los métodos aleatorios fijos debido al costo computacional y la complejidad.
Impacto en la dinámica del entrenamiento
La elección de la inicialización afecta varios aspectos del entrenamiento. Una inicialización adecuada puede acelerar la convergencia, reducir el riesgo de gradientes que se desvanecen o explotan y mejorar la calidad final del modelo. Por el contrario, una inicialización deficiente puede llevar a un entrenamiento lento, activaciones saturadas o fallos en la convergencia. En redes profundas, la interacción entre la inicialización y las funciones de activación es crucial; por ejemplo, las redes ReLU requieren pesos iniciales más grandes que las redes tanh para mantener la propagación de la señal.
Consideraciones prácticas
En los marcos de aprendizaje profundo modernos, los métodos de inicialización están integrados y pueden seleccionarse mediante un parámetro. Por ejemplo, PyTorch y TensorFlow proporcionan funciones para la inicialización de Xavier y He. Al entrenar modelos grandes como los transformadores, una inicialización cuidadosa es esencial; por ejemplo, las ramas residuales en los transformadores a menudo se inicializan a cero para garantizar un entrenamiento estable al inicio. Esta es una forma de inicialización a cero para partes específicas de la red.
Técnicas relacionadas
La inicialización de pesos está estrechamente relacionada con otras técnicas que abordan problemas de gradientes, como la normalización por lotes, la normalización de capas y el recorte de gradientes. Estos métodos pueden mitigar los efectos de una inicialización deficiente, pero no reemplazan la necesidad de un punto de partida razonable. En la práctica, a menudo se usa una combinación de buena inicialización y normalización para entrenar redes muy profundas.
Véase también
- red neuronal
- aprendizaje profundo
- gradiente que se desvanece
- gradiente que explota
- función de activación