deepLearn

dlTrain

##set_deeplearn ##ai ##deeplearning

Description

Entraîne un 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).). Cette action permet d'ajuster les poids d'un 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. artificiels (DNNRéseau de neurones profond (Deep Neural Network) comprenant plusieurs couches cachées entre l'entrée et la sortie. Il modélise des relations non linéaires complexes à partir de grands volumes de données., CNNRéseau de neurones profond spécialisé dans le traitement de données structurées en grille (images). Il utilise des couches de convolution pour extraire automatiquement des caractéristiques spatiales. ou RNNRéseau de neurones récurrent conçu pour les données séquentielles. Il utilise des boucles de rétroaction pour mémoriser l'information passée, idéal pour l'analyse de texte ou de séries temporelles.) à partir d'une table de données en entrée. Un 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). bien entraîné vaut mieux que deux tu l'auras ! (Source: )

Syntaxe Officielle
deepLearn.dlTrain <result=results> <status=rc> /
attributes={{...}, ...},
bestWeights={casouttable},
dataSpecs={{...}, ...},
forceEqualPadding=TRUE | FALSE,
gpu={gpuOptions},
initWeights={castable},
inputs={{casinvardesc-1}, ...},
missing="MAX" | "MEAN" | "MIN" | "NONE",
modelTable={castable},
modelWeights={casouttable},
nominals={{casinvardesc-1}, ...},
nThreads=integer,
optimizer={dlOptimizerOpts},
recordSeed=double,
repeatWeightTable=TRUE | FALSE,
seed=double,
sequence={dlSequenceOptions},
table={castable},
target="variable-name",
targetMissing="MAX" | "MEAN" | "MIN" | "NONE",
targetSequence={"variable-name-1", ...},
textParms={dlTextOptions},
texts={{casinvardesc-1}, ...},
validFreq=64-bit-integer,
validTable={castable},
weight="variable-name";

Paramètres Clés

Nom du paramètre Description
modelTable Spécifie la table en mémoire contenant l'architecture du modèle à entraîner.
table Spécifie les paramètres de la table d'entrée contenant les données d'entraînement.
modelWeights Spécifie la table de sortie où seront sauvegardés les poids du modèle entraîné.
target Spécifie la variable cible (réponse) pour l'entraînement du modèle.
inputs Spécifie les variables d'entrée à utiliser dans l'analyse.
optimizer Spécifie les réglages de l'algorithme d'optimisation (ex: ADAM, SGD), le taux d'apprentissage, la taille des mini-batchs, et le nombre maximal d'époques (maxEpochs). Un peu de magie mathématique !
validTable Spécifie le nom de la table contenant les données de validation pour évaluer le modèle pendant l'entraînement sans biaiser les poids.
bestWeights Permet de sauvegarder dans une table CAS les poids ayant obtenu la plus petite erreur de perte.

Préparation des données

Préparation des données et de l'architecture du modèle

Avant d'entraîner le modèle avec dlTrain, nous devons charger des données et construire une architecture de base (ici un DNN simple sur les données Iris).

1PROC CAS; TABLE.loadTable / caslib='samples' path='iris.sashdat' casout={name='iris', replace=true}; LOADACTIONSET 'deepLearn'; DEEPLEARN.buildModel / model={name='iris_model', replace=true} type='DNN'; DEEPLEARN.addLayer / model='iris_model' name='data' layer={type='input'}; DEEPLEARN.addLayer / model='iris_model' name='fc1' layer={type='FC', n=10, act='RELU'} srcLayers={'data'}; DEEPLEARN.addLayer / model='iris_model' name='outlayer' layer={type='OUTPUT', act='SOFTMAX'} srcLayers={'fc1'}; RUN;

Exemples d'utilisation

Entraînement basique d'un modèle DNN

Ce code entraîne le modèle 'iris_model' avec les paramètres par défaut de l'optimiseur.

1PROC CAS; DEEPLEARN.dlTrain / TABLE='iris' modelTable='iris_model' modelWeights={name='iris_weights', replace=true} inputs={'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'} target='Species' nominals={'Species'} optimizer={minibatchsize=10, algorithm={method='VANILLA', learningRate=0.01}, maxEpochs=10}; RUN;
Résultat Attendu :
Le modèle est entraîné sur 10 époques et les poids résultants sont sauvegardés dans la table 'iris_weights'.
Entraînement avancé avec algorithme ADAM et sauvegarde des meilleurs poids

Entraînement utilisant l'optimiseur ADAM, avec des logs détaillés et la sauvegarde des poids optimaux, en s'arrêtant plus tôt si stagnation.

1PROC CAS; DEEPLEARN.dlTrain / TABLE='iris' modelTable='iris_model' modelWeights={name='iris_weights_adam', replace=true} bestWeights={name='iris_best_weights', replace=true} inputs={'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'} target='Species' nominals={'Species'} optimizer={minibatchsize=32, algorithm={method='ADAM', learningRate=0.005, beta1=0.9, beta2=0.999}, maxEpochs=50, stagnation=5, logLevel=2} seed=12345; RUN;
Résultat Attendu :
L'action s'exécute avec l'algorithme ADAM. L'historique d'itération est affiché (logLevel=2). L'entraînement s'arrête si la perte stagne pendant 5 époques. Les poids finaux sont dans 'iris_weights_adam' et les meilleurs historiquement dans 'iris_best_weights'.