Scénario de test & Cas d'usage
Entrenamiento de redes neuronales artificiales clásicas.
Descubrir todas las acciones de neuralNetCrea dos lotes de datos de sensores. El primer lote ('batch_1') representa los datos históricos de entrenamiento. El segundo lote ('batch_2') representa nuevos datos que llegan posteriormente.
| 1 | DATA maquina_sensores; |
| 2 | call streaminit(123); |
| 3 | DO lote = 1 to 2; |
| 4 | IF lote = 1 THEN num_obs = 5000; ELSE num_obs = 1000; |
| 5 | DO i = 1 to num_obs; |
| 6 | temperatura = 80 + rand('Normal', 0, 5); |
| 7 | vibracion = 5 + rand('Normal', 0, 1.5); |
| 8 | presion = 30 + rand('Normal', 0, 2); |
| 9 | fallo = 0; |
| 10 | IF temperatura > 90 and vibracion > 7 and rand('Uniform') > 0.3 THEN fallo = 1; |
| 11 | IF presion < 28 and rand('Uniform') > 0.6 THEN fallo = 1; |
| 12 | IF lote = 1 THEN OUTPUT maquina_sensores; |
| 13 | ELSE IF lote = 2 THEN OUTPUT maquina_sensores_nuevos; |
| 14 | END; |
| 15 | END; |
| 16 | RUN; |
| 17 | |
| 18 | PROC CAS; |
| 19 | TABLE.loadTable / caslib='casuser' path='maquina_sensores.sashdat' casOut={name='sensores_batch_1', replace=true}; |
| 20 | TABLE.loadTable / caslib='casuser' path='maquina_sensores_nuevos.sashdat' casOut={name='sensores_batch_2', replace=true}; |
| 21 | QUIT; |
| 1 | PROC CAS; |
| 2 | neuralNet.annTrain / |
| 3 | TABLE='sensores_batch_1', |
| 4 | inputs={'temperatura', 'vibracion', 'presion'}, |
| 5 | target='fallo', |
| 6 | hiddens={15}, |
| 7 | arch='MLP', |
| 8 | nloOpts={maxIters=50, algorithm='LBFGS'}, |
| 9 | seed=987, |
| 10 | casOut={name='initial_model_weights', replace=true}; |
| 11 | RUN; |
| 1 | PROC CAS; |
| 2 | neuralNet.annTrain / |
| 3 | TABLE='sensores_batch_2', |
| 4 | modelTable={name='initial_model_weights'}, |
| 5 | resume=true, |
| 6 | inputs={'temperatura', 'vibracion', 'presion'}, |
| 7 | target='fallo', |
| 8 | hiddens={15}, |
| 9 | arch='MLP', |
| 10 | nloOpts={maxIters=50, algorithm='LBFGS'}, |
| 11 | seed=987, |
| 12 | casOut={name='resumed_model_weights', replace=true}; |
| 13 | RUN; |
| 14 | QUIT; |
La primera acción entrena un modelo y guarda sus pesos. La segunda acción carga estos pesos y continúa el proceso de optimización con los nuevos datos. El historial de iteraciones del segundo paso debe comenzar con un nivel de error similar al último nivel de error del primer paso, demostrando que el entrenamiento se reanudó correctamente.