En algunos tutoriales descubrí que se decía que la inicialización del peso "Xavier" (documento: Comprender la dificultad de entrenar redes neuronales de alimentación profunda ) es una forma eficiente de inicializar los pesos de las redes neuronales.
Para las capas completamente conectadas, había una regla general en esos tutoriales:
donde es la varianza de los pesos para una capa, inicializada con una distribución normal y , es la cantidad de neuronas en el padre y en la capa actual.
¿Existen reglas generales similares para las capas convolucionales?
Estoy luchando por descubrir qué sería lo mejor para inicializar los pesos de una capa convolucional. Por ejemplo, en una capa donde está la forma de los pesos (5, 5, 3, 8)
, por lo que el tamaño del núcleo es 5x5
, filtrar tres canales de entrada (entrada RGB) y crear 8
mapas de características ... ¿se 3
consideraría la cantidad de neuronas de entrada? ¿O más bien 75 = 5*5*3
, porque la entrada son 5x5
parches para cada canal de color?
Aceptaría ambas, una respuesta específica que aclare el problema o una respuesta más "genérica" que explique el proceso general de encontrar la inicialización correcta de los pesos y, preferiblemente, vincular las fuentes.
Secundo la respuesta de Eric aquí. También tomo el "sqrt" del término y no solo ese término. A pesar de eso, cuando conecta sigmoide en su red a la salida "RelU" ... puede causar que el entrenamiento se detenga. Esto se debe a la salida "Relu" ilimitada que puede hacer que el gradiente en sigmoide caiga a 0 y no se produce ningún aprendizaje. Entonces, en los casos, tengo un factor "scaleDown" para mi red que reducirá la desviación de inicialización por ese factor. Sigo ajustando empíricamente los pesos hasta que ocurre el aprendizaje. Una manera simple de encontrar es guardar el modelo inmediatamente después de 1 iteración y echar un vistazo a la salida RELU (que está conectada a sigmoid). Siga ajustando los pesos hasta que esta salida RELU sea razonable. Y luego usa esos pesos para entrenar. Es un buen comienzo. Si aún se derrumba después de algunas iteraciones, péselos un poco más hasta alcanzar la estabilidad. Es solo un truco que usé. Me funcionó para mi configuración. Entonces compartiendo mi experiencia. Diferentes cosas funcionan para diferentes configuraciones.
¡Buena suerte!
fuente