Nous avons dû choisir un certain nombre d'hyperparamètres pour définir et entraîner le modèle. Nous nous sommes appuyés sur l'intuition, des exemples et des recommandations de bonnes pratiques. Toutefois, notre premier choix de valeurs d'hyperparamètres peut ne pas donner les meilleurs résultats. Cela ne nous fournit qu'un bon point de départ pour l'entraînement. Chaque problème est différent, et le réglage de ces hyperparamètres permettra d'affiner notre modèle pour mieux représenter les particularités du problème en question. Examinons certains des hyperparamètres utilisés et voyons comment les régler:
Nombre de couches dans le modèle : le nombre de couches dans un réseau de neurones est un indicateur de sa complexité. Nous devons être prudents dans le choix de cette valeur. Si le nombre de couches est trop élevé, le modèle apprend trop d'informations sur les données d'entraînement, ce qui entraîne un surapprentissage. Un nombre insuffisant de couches peut limiter les capacités d'apprentissage du modèle, ce qui entraîne un sous-apprentissage. Pour les ensembles de données de classification de texte, nous avons testé des MLP à une, deux et trois couches. Les modèles à deux couches sont plus performants, voire meilleurs que ceux à trois couches. De même, nous avons essayé sepCNN avec quatre ou six couches, et les modèles à quatre couches ont enregistré de bonnes performances.
Nombre d'unités par couche : les unités d'une couche doivent contenir les informations pour la transformation qu'une couche effectue. Pour la première couche, cela dépend du nombre de caractéristiques. Dans les couches suivantes, le nombre d'unités dépend du choix de développer ou de réduire la représentation de la couche précédente. Essayez de minimiser la perte d'informations entre les calques. Nous avons testé des valeurs dans la plage
[8, 16, 32, 64]
, et 32/64 unités ont bien fonctionné.Taux d'abandon: les couches d'abandon sont utilisées dans le modèle pour la régularisation. Ils définissent la fraction de l'entrée à abandonner pour éviter le surapprentissage. Plage recommandée: 0,2–0,5.
Taux d'apprentissage : fréquence à laquelle les pondérations du réseau de neurones changent entre les itérations. Un taux d'apprentissage élevé peut entraîner de grandes variations dans les pondérations, et il est possible que nous ne puissions jamais trouver leurs valeurs optimales. Un taux d'apprentissage faible est bon, mais le modèle nécessitera plus d'itérations pour converger. Il est conseillé de commencer bas à partir de 1e-4. Si l'entraînement est très lent, augmentez cette valeur. Si votre modèle n'est pas en cours d'apprentissage, essayez de réduire le taux d'apprentissage.
Nous avons réglé d'autres hyperparamètres spécifiques à notre modèle sepCNN:
Taille du noyau: taille de la fenêtre de convolution. Valeurs recommandées: 3 ou 5.
Dimensions de représentations vectorielles continues : nombre de dimensions que nous voulons utiliser pour représenter les représentations vectorielles continues de mots (c'est-à-dire la taille de chaque vecteur de mot). Valeurs recommandées: entre 50 et 300. Lors de nos tests, nous avons utilisé des représentations vectorielles continues GloVe avec 200 dimensions avec une couche de représentations vectorielles continues pré-entraînées.
Essayez ces hyperparamètres pour déterminer ce qui fonctionne le mieux. Une fois que vous avez choisi les hyperparamètres les plus performants pour votre cas d'utilisation, votre modèle est prêt à être déployé.