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
Instructions de l’exercice
- Définissez
input_dimde la première couche du réseau de neurones au nombre de colonnes descaled_train_featuresavec la propriété.shape[1]. - Utilisez la fonction de perte personnalisée
sign_penaltypour.compile()notremodel_2. - Tracez la perte à partir de l'objet
historyde l'ajustement. La perte se trouve soushistory.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()