НачатьНачать бесплатно

Обучение нейронной сети с пользовательской функцией потерь

Теперь воспользуемся пользовательской функцией потерь, которую мы только что создали. Она позволит изменить поведение модели нужным нам образом: модель будет стараться правильно предсказывать хотя бы направление движения цены. Всё, что нужно сделать, — передать имя нашей функции sign_penalty в аргумент loss метода .compile(). Затем снова проверим значение потерь при обучении, чтобы убедиться, что кривая выровнялась.

Это упражнение является частью курса

Машинное обучение для финансов на 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()
Редактировать и запускать код