Prevención de sobreajuste de LSTM en pequeños conjuntos de datos

13

Estoy modelando 15000 tweets para la predicción de sentimientos usando un LSTM de una sola capa con 128 unidades ocultas usando una representación similar a word2vec con 80 dimensiones. Obtengo una precisión de descenso (38% con aleatorio = 20%) después de 1 época. Más entrenamiento hace que la precisión de validación comience a disminuir a medida que la precisión del entrenamiento comienza a subir, una clara señal de sobreajuste.

Por lo tanto, estoy pensando en formas de hacer la regularización. Prefiero no reducir el número de unidades ocultas (128 parece un poco bajo ya). Actualmente uso el abandono con una probabilidad del 50%, pero esto quizás podría incrementarse. El optimizador es Adam con los parámetros predeterminados para Keras ( http://keras.io/optimizers/#adam ).

¿Cuáles son algunas formas efectivas de reducir el sobreajuste para este modelo en mi conjunto de datos?

pir
fuente
Tengo exactamente el mismo problema. ¿Cómo finalmente lograste regularizar tu LSTM? La precisión de validación de mi LSTM es del 41%. Mi forma de entrada es (200,) y tengo 1 capa LSTM con 64 unidades, seguida de 2 capas densas con un abandono de 0.4.
Nirvan Anjirbag

Respuestas:

7

Tu podrías intentar:

  • Reduzca el número de unidades ocultas, sé que dijo que ya parece bajo, pero dado que la capa de entrada solo tiene 80 características, en realidad puede ser que 128 sea demasiado. Una regla general es hacer que la cantidad de unidades ocultas se encuentre entre la cantidad de unidades de entrada (80) y las clases de salida (5);
  • Alternativamente, puede aumentar la dimensión del espacio de representación de entrada para que sea más de 80 (sin embargo, esto también puede ajustarse demasiado si la representación ya es demasiado estrecha para una palabra dada).

Una buena manera de ajustar una red es comenzar con una red sobreajustada y luego reducir la capacidad (unidades ocultas y espacio de incrustación) hasta que ya no se sobreajuste.

Miguel
fuente
1
¿Intentaste la regularización l1 y l2? ¿Funciona realmente? Esta respuesta sugiere que no debes hacer esto en general
Jakub Bartczuk, el
No estaba al tanto de esta propiedad de los RNN, eliminaré ese punto de la respuesta
Miguel
Hola, me preguntaba cómo obtuviste la regla general que dice "tener el número de unidades ocultas entre el número de unidades de entrada y las clases de salida". ¿Hay algún documento al que me pueda referir?
Kong,
Eso es lo que pasa con las reglas generales, no sé de dónde lo saqué ...
Miguel