Me preguntaba cuál es la mejor manera de inicializar el estado para LSTM. Actualmente solo lo inicializo a todos ceros. Realmente no puedo encontrar nada en línea sobre cómo inicializarlo. Una cosa que estaba pensando hacer es hacer que el estado inicial sea un parámetro entrenable. ¿Algún consejo?
neural-networks
lstm
chasep255
fuente
fuente
Respuestas:
Normalmente, establecería los estados iniciales en cero, pero la red aprenderá a adaptarse a ese estado inicial.
El siguiente artículo sugiere aprender los estados ocultos iniciales o usar ruido aleatorio.
Básicamente, si sus datos incluyen muchas secuencias cortas, entrenar el estado inicial puede acelerar el aprendizaje.
Alternativamente, si sus datos incluyen una pequeña cantidad de secuencias largas, entonces puede que no haya suficientes datos para entrenar efectivamente el estado inicial. En ese caso, usar un estado inicial ruidoso puede acelerar el aprendizaje. Una idea que no mencionan sería aprender la media y la condición estándar del generador de ruido.
El artículo señala que si elige aprender el estado inicial, entonces agregar ruido es de poco beneficio.
fuente
Puede usar parámetros inicializados que se aprenden usando el aprendizaje de transferencia, pero tenga en cuenta que también comenzó en algún lugar desde un estado inicializado no aprendido. Básicamente, debe comenzar desde algún punto, generalmente un montón de ceros, y luego refinar mediante entrenamiento. Entonces, si no está utilizando ningún mecanismo de aprendizaje de transferencia, también debe comenzar desde un estado inicial manual, estoy seguro de que puede haber trabajos de literatura disponibles para configurar manualmente los estados iniciales.
Esta es la explicación más simple que podría poner. Gracias.
fuente