CommencerCommencez gratuitement

Ajuster un réseau de neurones avec une fonction de perte personnalisée

Nous allons maintenant utiliser la fonction de perte personnalisée que nous venons de créer. Cela nous permet de modifier le comportement du modèle de manière utile et spécifique à notre problème — il va chercher à amener le modèle à au moins prédire correctement le sens du mouvement du prix. Il nous suffit à présent de définir l'argument loss dans notre fonction .compile() avec le nom de notre fonction, sign_penalty. Nous examinerons à nouveau la perte d'entraînement pour vérifier qu'elle s'est stabilisée.

Cet exercice fait partie du cours

<cours>Machine Learning pour la finance en Python</cours>
Voir le cours

Instructions de l’exercice

  • Définissez input_dim de la première couche du réseau de neurones sur le nombre de colonnes de scaled_train_features avec la propriété .shape[1].
  • Utilisez la fonction de perte personnalisée sign_penalty pour .compile() notre model_2.
  • Tracez la perte depuis l'objet history de l'ajustement. La perte se trouve sous history.history['loss'].

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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()
Modifier et exécuter le code