?> annTrain - WeAreCAS
neuralNet

annTrain

Descripción

La acción `annTrain` entrena una red neuronal artificial. Permite definir la arquitectura de la red (como MLP, GLIM), especificar las funciones de activación y de combinación, y configurar el proceso de optimización utilizando diversos algoritmos como LBFGS o SGD. Esta acción es fundamental para construir y ajustar modelos de redes neuronales sobre datos en CAS.

neuralNet.annTrain { acts={"EXP"|"IDENTITY"|"LOGISTIC"|"RECTIFIER"|"SIN"|"SOFTPLUS"|"TANH"}, applyRowOrder=TRUE|FALSE, arch="DIRECT"|"GLIM"|"MLP", attributes={{...}, ...}, bias=double, casOut={...}, code={...}, combs={"ADD"|"LINEAR"|"RADIAL"}, delta=double, dropOut=double, dropOutInput=double, errorFunc="ENTROPY"|"GAMMA"|"NORMAL"|"POISSON", freq="variable-name", fullWeights=TRUE|FALSE, hiddens={64-bit-integer-1, ...}, includeBias=TRUE|FALSE, inputs={{...}, ...}, inversePriors=TRUE|FALSE, listNode="ALL"|"HIDDEN"|"INPUT"|"OUTPUT", missing="MAX"|"MEAN"|"MIN"|"NONE", modelId="string", modelTable={...}, nAnns=64-bit-integer, nloOpts={...}, nominals={{...}, ...}, nTries=64-bit-integer, randDist="CAUCHY"|"MSRA"|"NORMAL"|"UNIFORM"|"XAVIER", resume=TRUE|FALSE, samplingRate=double, saveState={...}, scaleInit=64-bit-integer, seed=double, std="MIDRANGE"|"NONE"|"STD", step=double, t=double, table={...}, target="variable-name", targetAct="EXP"|"IDENTITY"|"LOGISTIC"|"SIN"|"SOFTMAX"|"TANH", targetComb="ADD"|"LINEAR"|"RADIAL", targetMissing="MAX"|"MEAN"|"MIN"|"NONE", targetStd="MIDRANGE"|"NONE"|"STD", validTable={...}, weight="variable-name" };
Parámetros
ParámetroDescripción
actsEspecifica la función de activación para las neuronas en cada capa oculta.
applyRowOrderEspecifica que la acción debe utilizar un orden de filas preespecificado.
archEspecifica la arquitectura de red que se va a entrenar (por ejemplo, MLP para Perceptrón Multicapa).
attributesEspecifica atributos temporales, como un formato, para aplicar a las variables de entrada.
biasEspecifica un valor de sesgo fijo para todas las neuronas ocultas y de salida.
casOutEspecifica la tabla de salida donde se guardará el modelo entrenado.
codeSolicita que la acción produzca código de puntuación SAS DATA step.
combsEspecifica la función de combinación para las neuronas en cada capa oculta.
deltaEspecifica el parámetro de recocido al realizar una optimización global de recocido simulado (SA).
dropOutEspecifica la tasa de dropout para las capas ocultas, útil para la regularización.
dropOutInputEspecifica la tasa de dropout para las capas de entrada.
errorFuncEspecifica la función de error para entrenar la red (por ejemplo, ENTROPY para clasificación, NORMAL para regresión).
freqEspecifica una variable numérica que contiene la frecuencia de ocurrencia de cada observación.
fullWeightsGenera el modelo de pesos completo para el optimizador LBFGS.
hiddensEspecifica el número de neuronas ocultas para cada capa oculta en el modelo.
includeBiasIndica si se deben incluir parámetros de sesgo para las unidades ocultas y de salida.
inputsEspecifica las variables de entrada a utilizar en el análisis.
inversePriorsCalcula el peso aplicado al error de predicción de cada variable objetivo nominal.
listNodeEspecifica los nodos a incluir en la tabla de salida generada por el código de puntuación.
missingEspecifica cómo imputar los valores faltantes para las variables de entrada.
modelIdEspecifica un nombre de variable de ID de modelo que se incluye en el código de puntuación DATA step generado.
modelTableEspecifica la tabla que contiene un modelo de red neuronal artificial para inicializar los pesos.
nAnnsEspecifica el número de redes a seleccionar entre el número especificado de intentos.
nloOptsEspecifica las opciones de optimización no lineal.
nominalsEspecifica las variables de entrada y objetivo nominales a utilizar en el análisis.
nTriesEspecifica el número de intentos al entrenar redes con pesos iniciales aleatorios.
randDistEspecifica las distribuciones para generar aleatoriamente los pesos iniciales de conexión de la red.
resumeReanuda una optimización de entrenamiento utilizando los pesos obtenidos de un entrenamiento anterior.
samplingRateEspecifica la fracción de los datos a utilizar para construir una red neuronal.
saveStateEspecifica la tabla en la que se guardará el estado del modelo para futuras predicciones.
scaleInitEspecifica cómo escalar los pesos iniciales.
seedEspecifica la semilla de número aleatorio para generar números aleatorios para inicializar los pesos de la red.
stdEspecifica la estandarización a utilizar en las variables de intervalo.
stepEspecifica un tamaño de paso para las perturbaciones en los pesos de la red al realizar optimizaciones globales.
tEspecifica el parámetro de temperatura artificial al realizar optimizaciones globales.
tableEspecifica la tabla de entrada que contiene los datos de entrenamiento.
targetEspecifica la variable objetivo o de respuesta para el entrenamiento.
targetActEspecifica la función de activación para las neuronas en la capa de salida.
targetCombEspecifica la función de combinación para las neuronas en los nodos de salida objetivo.
targetMissingEspecifica cómo imputar los valores faltantes para la variable objetivo.
targetStdEspecifica la estandarización a utilizar en las variables objetivo de intervalo.
validTableEspecifica la tabla con los datos de validación para la detención temprana.
weightEspecifica una variable para ponderar los errores de predicción para cada observación durante el entrenamiento.
Preparación de datos
Creación de Datos de Ejemplo

Este código carga el conjunto de datos `iris` de la librería `sashelp` en una tabla CAS llamada `mycas.iris`. Este conjunto de datos se utilizará para los ejemplos de entrenamiento de redes neuronales.

data mycas.iris;\n  set sashelp.iris;\nrun;

Ejemplos

Este ejemplo entrena un Perceptrón Multicapa (MLP) simple para clasificar las especies en el conjunto de datos `iris`. Utiliza una capa oculta con 10 neuronas. El modelo entrenado se guarda en la tabla `ann_model`.

Código SAS® / CAS
¡Copiado!
1PROC CAS;
2 ACTION neuralNet.annTrain /
3 TABLE={name='iris', caslib='mycas'},
4 inputs={'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'},
5 target='Species',
6 hiddens={10},
7 casOut={name='ann_model', caslib='mycas', replace=true};
8RUN;
9QUIT;
Resultado :
La acción entrena el modelo y genera varias tablas de resultados, incluyendo 'OptIterHistory' que muestra el historial de optimización, 'ModelInfo' con detalles del modelo, y 'OutputCasTables' que lista la tabla de salida del modelo guardado.

Este ejemplo entrena una red neuronal más compleja. Estandariza las variables de entrada usando el método 'MIDRANGE'. Utiliza una tabla de validación (`valid_data`) para la detención temprana. La arquitectura es un MLP con dos capas ocultas. Se utiliza el optimizador LBFGS con regularización L1 y se guardan tanto el modelo como el estado de la optimización.

Código SAS® / CAS
¡Copiado!
1PROC CAS;
2 partition.partition TABLE={name='iris', caslib='mycas'}, partInd={name='_partInd_', label='Partition Indicator'}, sampPct=70, sampPct2=30, seed=123;
3 ACTION TABLE.partition / TABLE={name='iris', caslib='mycas', where='_partInd_=1'}, casOut={name='train_data', caslib='mycas', replace=true};
4 ACTION TABLE.partition / TABLE={name='iris', caslib='mycas', where='_partInd_=2'}, casOut={name='valid_data', caslib='mycas', replace=true};
5 ACTION neuralNet.annTrain /
6 TABLE={name='train_data', caslib='mycas'},
7 validTable={name='valid_data', caslib='mycas'},
8 inputs={'SepalLength', 'SepalWidth', 'PetalLength', 'PetalWidth'},
9 target='Species',
10 arch='MLP',
11 hiddens={20, 15},
12 acts={'TANH', 'RECTIFIER'},
13 targetAct='SOFTMAX',
14 errorFunc='ENTROPY',
15 std='MIDRANGE',
16 nloOpts={algorithm='LBFGS', regL1=0.005, maxIters=200, printOpt={printFreq=10}},
17 casOut={name='ann_model_detailed', caslib='mycas', replace=true},
18 saveState={name='ann_state', caslib='mycas', replace=true};
19RUN;
20QUIT;
Resultado :
El modelo se entrena utilizando el 70% de los datos y se valida con el 30% restante. El historial de iteraciones mostrará la convergencia del optimizador LBFGS. Las tablas de salida incluirán el modelo detallado (`ann_model_detailed`) y el estado del optimizador (`ann_state`), que puede ser usado para reanudar el entrenamiento.

FAQ

¿Cuál es el propósito de la acción `annTrain` en SAS Viya?
¿Qué especifica el parámetro `arch` en la acción `annTrain`?
¿Cómo se definen las capas ocultas y el número de neuronas en un modelo `annTrain`?
¿Qué funciones de error se pueden utilizar para entrenar la red con `annTrain`?
¿Es posible reanudar un entrenamiento de red neuronal previamente guardado?
¿Cómo se puede especificar una tabla de validación y para qué sirve en `annTrain`?