Mạng neural một tầng
Để làm quen với việc dùng mạng neural, sẽ hữu ích nếu bắt đầu bằng một bài toán xấp xỉ hàm đơn giản.
Bạn sẽ huấn luyện một mạng neural để xấp xỉ ánh xạ giữa đầu vào x và đầu ra y. Chúng liên hệ với nhau qua hàm căn bậc hai, tức là \(y = \sqrt{x}\).
Vector đầu vào x đã được cung cấp. Trước tiên, bạn sẽ tính căn bậc hai của x bằng hàm sqrt() của Numpy, tạo ra chuỗi đầu ra y. Sau đó, bạn sẽ tạo một mạng neural đơn giản và huấn luyện mạng trên chuỗi x.
Sau khi huấn luyện, bạn sẽ vẽ cả chuỗi y và đầu ra của mạng neural để xem mạng xấp xỉ hàm căn bậc hai sát đến mức nào.
Các đối tượng Sequential và Dense từ thư viện Keras cũng có sẵn trong không gian làm việc của bạn.
Bài tập này là một phần của khóa học
Quản trị Rủi ro Định lượng với Python
Hướng dẫn bài tập
- Tạo các giá trị huấn luyện đầu ra bằng hàm
sqrt()của Numpy. - Tạo mạng neural với một tầng ẩn gồm 16 neuron, một giá trị đầu vào và một giá trị đầu ra.
- Compile và fit mạng neural trên dữ liệu huấn luyện trong 100 epoch.
- Vẽ các giá trị huấn luyện (màu xanh) so với các giá trị dự đoán của mạng neural.
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 training values from the square root function
y = np.____(x)
# Create the neural network
model = Sequential()
model.____(Dense(16, input_dim=1, activation='relu'))
model.____(____(1))
# Train the network
model.____(loss='mean_squared_error', optimizer='rmsprop')
model.____(x, y, epochs=100)
## Plot the resulting approximation and the training values
plt.plot(x, y, x, model.____(x))
plt.show()