Lập trình tác động của việc thay đổi trọng số đến độ chính xác
Giờ bạn sẽ thay đổi các trọng số trong một mạng thực tế và xem chúng ảnh hưởng thế nào đến độ chính xác của mô hình!
Hãy xem mạng neural sau:

Các trọng số của nó đã được nạp sẵn dưới tên weights_0. Nhiệm vụ của bạn trong bài này là cập nhật một trọng số trong weights_0 để tạo ra weights_1, sao cho mô hình dự đoán hoàn hảo (nghĩa là giá trị dự đoán bằng với target_actual: 3).
Nếu cần, hãy dùng bút và giấy để thử các tổ hợp khác nhau. Bạn sẽ dùng hàm predict_with_network(), hàm này nhận một mảng dữ liệu làm đối số thứ nhất và trọng số làm đối số thứ hai.
Bài tập này là một phần của khóa học
Nhập môn Deep Learning với Python
Hướng dẫn bài tập
- Tạo một dictionary trọng số tên
weights_1trong đó bạn thay đổi 1 trọng số từweights_0(Bạn chỉ cần chỉnh sửa 1 chỗ trongweights_0để tạo ra dự đoán hoàn hảo). - Lấy dự đoán với bộ trọng số mới bằng cách dùng hàm
predict_with_network()vớiinput_datavàweights_1. - Tính sai số cho bộ trọng số mới bằng cách lấy
model_output_1trừtarget_actual. - Nhấn "Gửi câu trả lời" để xem các sai số so sánh ra sao!
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.
# The data point you will make a prediction for
input_data = np.array([0, 3])
# Sample weights
weights_0 = {'node_0': [2, 1],
'node_1': [1, 2],
'output': [1, 1]
}
# The actual target value, used to calculate the error
target_actual = 3
# Make prediction using original weights
model_output_0 = predict_with_network(input_data, weights_0)
# Calculate error: error_0
error_0 = model_output_0 - target_actual
# Create weights that cause the network to make perfect prediction (3): weights_1
weights_1 = {'node_0': [____, ____],
'node_1': [____, ____],
'output': [____, ____]
}
# Make prediction using new weights: model_output_1
model_output_1 = ____
# Calculate error: error_1
error_1 = ____ - ____
# Print error_0 and error_1
print(error_0)
print(error_1)