dlTune
Description
Prêt à trouver les réglages magiques de votre réseau de neuronesUn réseau de neurones est un modèle d'IA bio-inspiré composé de couches de nœuds interconnectés, capable d'apprendre des relations complexes dans les données pour prédire ou classifier avec précision. ? L'action optimise automatiquement les hyperparamètres de votre modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). d'apprentissage profondL'apprentissage profond (Deep Learning) est une branche de l'IA utilisant des réseaux de neurones multicouches pour modéliser des données complexes et automatiser l'extraction de caractéristiques. (Deep LearningSous-ensemble du Machine Learning basé sur des réseaux de neurones artificiels profonds. Il excelle dans l'extraction automatique de motifs complexes depuis des données brutes (images, texte, son).). Elle explore intelligemment les espaces de paramètres (comme le ou la ) pour booster la précision de vos réseaux convolutifs, récurrents ou standards.
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| modelTable | Spécifie la table en mémoire qui contient la définition du modèle. (Requis) |
| table | Spécifie les paramètres de la table d'entrée contenant les données d'entraînement. (Requis) |
| validTable | Spécifie la table de validation pour évaluer le modèle pendant l'optimisation. Doit avoir les mêmes colonnes que la table d'entraînement. (Requis) |
| modelWeights | Spécifie la table en mémoire utilisée pour stocker les poids optimisés du modèle. (Requis) |
| optimizer | Les réglages de l'algorithme d'optimisation (ADAM, LBFGS, LARS, etc.) et les plages d'hyperparamètres à explorer. (Requis) |
| bestWeights | Sauvegarde les poids ayant la plus faible erreur (loss) dans une table CAS. Pratique pour garder le meilleur du meilleur ! |
| gpu | Active et configure l'utilisation du GPU. Mettez 'gpu=1' pour turbocompresser vos calculs sur toutes les cartes graphiques disponibles. |
| initWeights | Table contenant les poids initiaux du modèle pour démarrer l'entraînement (transfer learning). |
| inputs | Liste des variables d'entrée à utiliser dans l'analyse. |
| target | La variable cible (ou de réponse) que le modèle doit apprendre à prédire. |
| dataSpecs | Définit les métadonnées (variables, type de données) liées aux couches d'entrée et de sortie. |
Préparation des données
Chargement des données en mémoire
Avant d'optimiser, chargeons les tables d'entraînement et de validation en mémoire (casuser).
| 1 | PROC CAS; |
| 2 | TABLE.loadTable / path="train_data.sashdat", caslib="casuser", casout={name="train_data", replace=true}; |
| 3 | TABLE.loadTable / path="valid_data.sashdat", caslib="casuser", casout={name="valid_data", replace=true}; |
| 4 | RUN; |
| 5 | QUIT; |
Exemples d'utilisation
Optimisation basique (Tuning)
Exemple d'optimisation simple d'un modèle avec l'algorithme ADAM, en définissant une petite recherche sur le taux d'apprentissage.
| 1 | PROC CAS; |
| 2 | DEEPLEARN.dlTune / |
| 3 | TABLE={name="train_data"} |
| 4 | validTable={name="valid_data"} |
| 5 | modelTable={name="my_model"} |
| 6 | modelWeights={name="tuned_weights"} |
| 7 | inputs={"var1", "var2", "var3"} |
| 8 | target="target_var" |
| 9 | optimizer={algorithm={method="ADAM", learningRate={lowerBound=0.0001, upperBound=0.1, logScale=true}}, maxEpochs=5, miniBatchSize={value=16}, nParmSets=5}; |
| 10 | RUN; |
| 11 | QUIT; |
Résultat Attendu :
Tuning intensif avec GPU et sauvegarde des meilleurs poids
Une recherche d'hyperparamètres avancée exploitant le GPU, avec recherche sur le taux d'apprentissage et la taille du mini-batch, en sauvegardant le meilleur état de poids.
| 1 | PROC CAS; |
| 2 | DEEPLEARN.dlTune / |
| 3 | TABLE={name="train_data"} |
| 4 | validTable={name="valid_data"} |
| 5 | modelTable={name="dl_model"} |
| 6 | initWeights={name="initial_weights"} |
| 7 | modelWeights={name="final_tuned_weights"} |
| 8 | bestWeights={name="best_weights_history"} |
| 9 | inputs={"image_uri"} |
| 10 | target="label" |
| 11 | gpu={devices={0,1}, precision="FP32"} |
| 12 | nThreads=8 |
| 13 | optimizer={ |
| 14 | algorithm={method="ADAM", |
| 15 | learningRate={lowerBound=1e-5, upperBound=0.1, logScale=true}, |
| 16 | momentum={lowerBound=0.8, upperBound=0.99}} |
| 17 | maxEpochs=20 |
| 18 | miniBatchSize={lowerBound=16, upperBound=128} |
| 19 | nParmSets=20 |
| 20 | tuneIter=5 |
| 21 | }; |
| 22 | RUN; |
| 23 | QUIT; |