EmpezarEmpieza gratis

Ajusta una red neuronal con una función de pérdida personalizada

Ahora usaremos la función de pérdida personalizada que acabamos de crear. Esto nos permitirá modificar el comportamiento del modelo de formas útiles para nuestro problema: intentará forzar al modelo a aprender al menos a predecir correctamente la dirección del movimiento del precio. Lo único que tenemos que hacer ahora es establecer el argumento loss en nuestra función .compile() al nombre de nuestra función, sign_penalty. Volveremos a examinar la pérdida de entrenamiento para asegurarnos de que se ha estabilizado.

Este ejercicio forma parte del curso

Machine Learning para finanzas con Python

Ver curso

Instrucciones del ejercicio

  • Establece el input_dim de la primera capa de la red neuronal como el número de columnas de scaled_train_features con la propiedad .shape[1].
  • Usa la función de pérdida personalizada sign_penalty para hacer .compile() de nuestro model_2.
  • Dibuja la pérdida a partir del history del ajuste. La pérdida está en history.history['loss'].

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

# Create the model
model_2 = Sequential()
model_2.add(Dense(100, input_dim=____, activation='relu'))
model_2.add(Dense(20, activation='relu'))
model_2.add(Dense(1, activation='linear'))

# Fit the model with our custom 'sign_penalty' loss function
model_2.compile(optimizer='adam', loss=____)
history = model_2.fit(scaled_train_features, train_targets, epochs=25)
plt.plot(____)
plt.title('loss:' + str(round(history.history['loss'][-1], 6)))
plt.show()
Editar y ejecutar código