Entrenamiento y Evaluación de una RNN
Se discute el entrenamiento y la evaluación de una red neuronal recurrente (RNN) basada en LSTM para la predicción de precios de acciones. El modelo aprende a predecir precios futuros de acciones a partir de datos pasados mediante un proceso que incluye la definición de la arquitectura, la configuración de la función de pérdida y el optimizador, el entrenamiento del modelo y la evaluación de su desempeño.
- Definición del modelo: el modelo LSTM se define utilizando PyTorch, con componentes clave como el tamaño de entrada, el tamaño de la capa oculta y el número de capas. El modelo consta de una capa LSTM seguida de una capa lineal para la predicción de la salida. El modelo está diseñado para tomar los precios anteriores de las acciones como entrada y predecir el precio del siguiente paso temporal;
class LSTMModel(nn.Module):
def __init__(self, input_size=1, hidden_layer_size=50, num_layers=2, output_size=1):
super().__init__()
self.hidden_layer_size = hidden_layer_size
self.num_layers = num_layers
self.lstm = nn.LSTM(input_size, hidden_layer_size, num_layers, batch_first=True)
self.linear = nn.Linear(hidden_layer_size, output_size)
def forward(self, input_seq):
h0 = torch.zeros(self.num_layers, input_seq.size(0), self.hidden_layer_size).to(input_seq.device)
c0 = torch.zeros(self.num_layers, input_seq.size(0), self.hidden_layer_size).to(input_seq.device)
lstm_out, _ = self.lstm(input_seq, (h0.detach(), c0.detach()))
last_time_step_out = lstm_out[:, -1, :]
predictions = self.linear(last_time_step_out)
return predictions
- Entrenamiento del modelo: en este paso, el modelo se entrena utilizando la función de pérdida error cuadrático medio (MSE) y el optimizador Adam. El modelo se entrena durante varias épocas, calculando y actualizando la pérdida para cada lote de datos de entrenamiento. El ciclo de entrenamiento incluye propagación hacia adelante y hacia atrás, optimizando los pesos para minimizar la pérdida. Durante el entrenamiento, se monitorea el valor de la pérdida para asegurar que el modelo esté aprendiendo de manera efectiva;
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
-
Evaluación: después del entrenamiento, el modelo se evalúa en el conjunto de datos de prueba. Las predicciones del modelo se comparan con los precios reales de las acciones utilizando el error cuadrático medio de la raíz (RMSE) como métrica de evaluación. Esta métrica mide la diferencia entre los valores predichos y los reales, donde un RMSE más bajo indica un mejor desempeño. El proceso de evaluación también incluye la inversa de la transformación de las predicciones escaladas para obtener los valores reales de los precios para la comparación;
-
Métrica de desempeño: se utiliza el RMSE para evaluar qué tan bien se desempeña el modelo con datos no vistos. Un valor de RMSE más bajo indica que las predicciones del modelo están más cerca de los valores reales. El RMSE se calcula después de comparar los valores predichos con los valores reales sin escalar del conjunto de prueba.
En resumen, este capítulo describe el proceso de entrenamiento y evaluación de un modelo LSTM para la predicción de series temporales, con énfasis en la predicción de precios de acciones. Los pasos clave incluyen la definición del modelo, el entrenamiento utilizando la función de pérdida MSE y el optimizador Adam, y la evaluación del modelo utilizando RMSE.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 4.55
Entrenamiento y Evaluación de una RNN
Desliza para mostrar el menú
Se discute el entrenamiento y la evaluación de una red neuronal recurrente (RNN) basada en LSTM para la predicción de precios de acciones. El modelo aprende a predecir precios futuros de acciones a partir de datos pasados mediante un proceso que incluye la definición de la arquitectura, la configuración de la función de pérdida y el optimizador, el entrenamiento del modelo y la evaluación de su desempeño.
- Definición del modelo: el modelo LSTM se define utilizando PyTorch, con componentes clave como el tamaño de entrada, el tamaño de la capa oculta y el número de capas. El modelo consta de una capa LSTM seguida de una capa lineal para la predicción de la salida. El modelo está diseñado para tomar los precios anteriores de las acciones como entrada y predecir el precio del siguiente paso temporal;
class LSTMModel(nn.Module):
def __init__(self, input_size=1, hidden_layer_size=50, num_layers=2, output_size=1):
super().__init__()
self.hidden_layer_size = hidden_layer_size
self.num_layers = num_layers
self.lstm = nn.LSTM(input_size, hidden_layer_size, num_layers, batch_first=True)
self.linear = nn.Linear(hidden_layer_size, output_size)
def forward(self, input_seq):
h0 = torch.zeros(self.num_layers, input_seq.size(0), self.hidden_layer_size).to(input_seq.device)
c0 = torch.zeros(self.num_layers, input_seq.size(0), self.hidden_layer_size).to(input_seq.device)
lstm_out, _ = self.lstm(input_seq, (h0.detach(), c0.detach()))
last_time_step_out = lstm_out[:, -1, :]
predictions = self.linear(last_time_step_out)
return predictions
- Entrenamiento del modelo: en este paso, el modelo se entrena utilizando la función de pérdida error cuadrático medio (MSE) y el optimizador Adam. El modelo se entrena durante varias épocas, calculando y actualizando la pérdida para cada lote de datos de entrenamiento. El ciclo de entrenamiento incluye propagación hacia adelante y hacia atrás, optimizando los pesos para minimizar la pérdida. Durante el entrenamiento, se monitorea el valor de la pérdida para asegurar que el modelo esté aprendiendo de manera efectiva;
criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)
-
Evaluación: después del entrenamiento, el modelo se evalúa en el conjunto de datos de prueba. Las predicciones del modelo se comparan con los precios reales de las acciones utilizando el error cuadrático medio de la raíz (RMSE) como métrica de evaluación. Esta métrica mide la diferencia entre los valores predichos y los reales, donde un RMSE más bajo indica un mejor desempeño. El proceso de evaluación también incluye la inversa de la transformación de las predicciones escaladas para obtener los valores reales de los precios para la comparación;
-
Métrica de desempeño: se utiliza el RMSE para evaluar qué tan bien se desempeña el modelo con datos no vistos. Un valor de RMSE más bajo indica que las predicciones del modelo están más cerca de los valores reales. El RMSE se calcula después de comparar los valores predichos con los valores reales sin escalar del conjunto de prueba.
En resumen, este capítulo describe el proceso de entrenamiento y evaluación de un modelo LSTM para la predicción de series temporales, con énfasis en la predicción de precios de acciones. Los pasos clave incluyen la definición del modelo, el entrenamiento utilizando la función de pérdida MSE y el optimizador Adam, y la evaluación del modelo utilizando RMSE.
¡Gracias por tus comentarios!