Навчання нейромережі з власною функцією втрат
Тепер використаємо щойно створену власну функцію втрат. Це дасть змогу змінити поведінку моделі корисним для нашої задачі способом — ми спробуємо змусити модель принаймні правильно передбачати напрямок руху ціни. Усе, що потрібно зараз, — встановити аргумент loss у функції .compile() на назву нашої функції sign_penalty. Знову переглянемо функцію втрат під час навчання, щоб переконатися, що вона вирівнялася.
Ця вправа є частиною курсу
Machine Learning для фінансів у Python
Інструкції до вправи
- Встановіть
input_dimпершого шару нейромережі рівним кількості стовпців уscaled_train_featuresза допомогою властивості.shape[1]. - Використайте власну функцію втрат
sign_penalty, щоб викликати.compile()для нашоїmodel_2. - Побудуйте графік втрат із
historyнавчання. Значення втрат міститься вhistory.history['loss'].
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()