Tuvimos que elegir varios hiperparámetros para definir y entrenar el modelo. Nos basamos en la intuición, ejemplos y recomendaciones. Sin embargo, es posible que nuestra primera opción de valores de hiperparámetros no genere los mejores resultados. Solo nos brinda un buen punto de partida para la capacitación. Cada problema es diferente y ajustar estos hiperparámetros ayudará a definir mejor nuestro modelo para representar mejor las particularidades del problema en cuestión. Veamos algunos de los hiperparámetros que usamos y lo que significa ajustarlos:
Número de capas en el modelo: La cantidad de capas en una red neuronal es un indicador de su complejidad. Debemos ser cuidadosos a la hora de elegir este valor. Demasiadas capas permitirán que el modelo aprenda demasiada información sobre los datos de entrenamiento, lo que causa un sobreajuste. Tener pocas capas puede limitar la capacidad de aprendizaje del modelo, lo que causa un subajuste. Para los conjuntos de datos de clasificación de texto, experimentamos con uno, dos y tres capas de MLP. Los modelos con dos capas tuvieron un buen rendimiento y, en algunos casos, mejores que los modelos de tres capas. De manera similar, probamos sepCNN con cuatro y seis capas, y los modelos de cuatro capas tuvieron un buen rendimiento.
Número de unidades por capa: las unidades de una capa deben contener la información de la transformación que realiza una capa. Para la primera capa, esto se debe a la cantidad de atributos. En las capas posteriores, la cantidad de unidades depende de la elección de expandir o contraer la representación de la capa anterior. Intenta minimizar la pérdida de información entre capas. Probamos valores de unidad en el rango
[8, 16, 32, 64]
, y 32/64 unidades funcionaron bien.Tasa de retirados: Las capas de retirados se usan en el modelo para la regularización. Definen la fracción de entrada que debe caer como precaución para el sobreajuste. Rango recomendado: 0.2–0.5
Tasa de aprendizaje: Es la velocidad a la que cambian los pesos de la red neuronal entre iteraciones. Una tasa de aprendizaje grande puede provocar grandes oscilaciones en los pesos, y es posible que nunca encontremos sus valores óptimos. Una tasa de aprendizaje baja es buena, pero el modelo necesitará más iteraciones para converger. Es una buena idea comenzar con un nivel bajo, digamos en 1e-4. Si el entrenamiento es muy lento, aumenta este valor. Si tu modelo no está aprendiendo, intenta disminuir la tasa de aprendizaje.
Hemos ajustado algunos hiperparámetros adicionales específicos de nuestro modelo sepCNN:
Kernel size (Tamaño del kernel): El tamaño de la ventana de convolución. Valores recomendados: 3 o 5
Dimensiones de incorporación: la cantidad de dimensiones que queremos usar para representar las incorporaciones de palabras, es decir, el tamaño de cada vector de palabra. Valores recomendados: 50-300 En nuestros experimentos, usamos incorporaciones de GloVe con 200 dimensiones con una capa de incorporación previamente entrenada.
Experimente con estos hiperparámetros y vea qué funciona mejor. Una vez que hayas elegido los hiperparámetros con mejor rendimiento para tu caso práctico, tu modelo estará listo para implementarse.