Zacznij terazZacznij za darmo

Dopasowanie sieci neuronowej z własną funkcją straty

Teraz skorzystamy z własnej funkcji straty, którą przed chwilą stworzyliśmy. Dzięki temu możemy wpłynąć na zachowanie modelu w sposób dostosowany do naszego problemu – model będzie starał się przynajmniej poprawnie przewidywać kierunek zmiany ceny. Wystarczy, że ustawimy argument loss w funkcji .compile() na nazwę naszej funkcji: sign_penalty. Na koniec ponownie sprawdzimy stratę treningową, żeby upewnić się, że przestała maleć.

To ćwiczenie jest częścią kursu

Uczenie maszynowe w finansach z Pythonem

Zobacz kurs

Instrukcje do ćwiczenia

  • Ustaw input_dim pierwszej warstwy sieci neuronowej na liczbę kolumn tablicy scaled_train_features, korzystając z właściwości .shape[1].
  • Użyj własnej funkcji straty sign_penalty w wywołaniu .compile() dla modelu model_2.
  • Narysuj wykres straty na podstawie obiektu history zwróconego przez metodę fit. Wartości straty znajdziesz pod kluczem history.history['loss'].

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod