Создание и обучение простой нейронной сети
Следующая модель, с которой мы познакомимся, — нейронная сеть. Нейронные сети способны улавливать сложные взаимодействия между переменными, однако их непросто настраивать и интерпретировать. В последнее время они превосходят экспертов-людей во многих областях — в том числе в распознавании изображений и играх (посмотрите на AlphaGo) — и обладают огромным потенциалом.
Для построения сетей мы будем использовать библиотеку keras. Это высокоуровневый API, который позволяет быстро создавать нейронные сети, сохраняя при этом широкие возможности для управления архитектурой. Для начала создадим почти простейшую сеть — трёхслойную, которая принимает входные данные и предсказывает одно значение. Как и модели sklearn, модели keras имеют метод .fit(), принимающий аргументы (features, targets).
Это упражнение является частью курса
Машинное обучение для финансов на Python
Инструкции к упражнению
- Создайте плотный слой (Dense) с 20 нейронами и активацией ReLU (
'relu') в качестве 2\(^{го}\) слоя нейронной сети. - Создайте последний плотный слой с 1 нейроном и линейной активацией (
activation='linear'). - Обучите модель на данных
scaled_train_featuresиtrain_targets.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
from keras.models import Sequential
from keras.layers import Dense
# Create the model
model_1 = Sequential()
model_1.add(Dense(100, input_dim=scaled_train_features.shape[1], activation='relu'))
model_1.add(Dense(____, activation=____))
model_1.add(Dense(____, activation=____))
# Fit the model
model_1.compile(optimizer='adam', loss='mse')
history = model_1.fit(____, ____, epochs=25)