CommencezCommencez 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 façon utile pour notre problème — l'idée est d'amener le modèle à apprendre au moins la bonne direction du mouvement du prix. Il suffit maintenant d'assigner l'argument loss de notre fonction .compile() au nom de notre fonction, sign_penalty. Nous examinerons de nouveau la perte d'entraînement pour vérifier qu'elle s'est stabilisée.

Cette activité fait partie du cours

Machine Learning pour la finance en Python

Voir le cours

Instructions de l’exercice

  • Définissez input_dim de la première couche du réseau de neurones au 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 à partir de 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