Huấn luyện neural net với hàm mất mát tùy chỉnh
Giờ chúng ta sẽ dùng hàm mất mát tùy chỉnh vừa tạo. Cách này cho phép bạn điều chỉnh hành vi của mô hình theo những cách hữu ích, phù hợp với bài toán — cụ thể là buộc mô hình học cách dự đoán đúng ít nhất là hướng biến động giá. Việc bạn cần làm là đặt đối số loss trong hàm .compile() thành tên hàm của chúng ta, sign_penalty. Chúng ta sẽ xem lại loss trong quá trình huấn luyện để chắc rằng nó đã phẳng dần.
Bài tập này là một phần của khóa học
Machine Learning cho Tài chính bằng Python
Hướng dẫn bài tập
- Đặt
input_dimcủa lớp đầu tiên trong mạng nơ-ron bằng số cột củascaled_train_featuresvới thuộc tính.shape[1]. - Dùng hàm mất mát tùy chỉnh
sign_penaltyđể.compile()model_2. - Vẽ loss từ
historycủa quá trình fit. Loss nằm tronghistory.history['loss'].
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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()