Kom igångKom igång gratis

Träna neuralt nätverk med anpassad förlustfunktion

Nu ska vi använda den anpassade förlustfunktionen vi nyss skapade. Det gör att vi kan styra modellens beteende på ett sätt som passar vårt specifika problem – målet är att tvinga modellen att åtminstone förutsäga prisutvecklingens riktning korrekt. Det enda vi behöver göra är att sätta argumentet loss i vår .compile()-funktion till funktionsnamnet sign_penalty. Vi undersöker sedan träningsförlusten igen för att kontrollera att den har planat ut.

Den här övningen är en del av kursen

Maskininlärning för finans i Python

Visa kurs

Övningsinstruktioner

  • Sätt input_dim för det första lagret i det neurala nätverket till antalet kolumner i scaled_train_features med hjälp av egenskapen .shape[1].
  • Använd den anpassade förlustfunktionen sign_penalty när du anropar .compile()model_2.
  • Rita upp förlusten från history efter träningen. Förlusten finns under history.history['loss'].

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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()
Redigera och kör kod