Allena una rete neurale con funzione di loss personalizzata
Ora useremo la funzione di loss personalizzata che abbiamo appena creato. Questo ci permette di modificare il comportamento del modello in modi utili per il nostro problema: cercherà almeno di imparare a prevedere correttamente la direzione del movimento del prezzo. Tutto ciò che dobbiamo fare è impostare l'argomento loss nella nostra funzione .compile() al nome della funzione, sign_penalty. Controlleremo di nuovo la loss di training per assicurarci che si sia appiattita.
Questo esercizio fa parte del corso
Machine Learning per la finanza in Python
Istruzioni dell'esercizio
- Imposta l'
input_dimdel primo livello della rete neurale pari al numero di colonne discaled_train_featurestramite la proprietà.shape[1]. - Usa la funzione di loss personalizzata
sign_penaltyper.compile()il nostromodel_2. - Traccia la loss dallo
historydel fit. La loss è inhistory.history['loss'].
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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()