Sau khi xem Câu hỏi này: Cố gắng mô phỏng hồi quy tuyến tính bằng Keras , tôi đã cố gắng đưa ra ví dụ của riêng mình, chỉ cho mục đích học tập và phát triển trực giác của tôi.
Tôi đã tải xuống một tập dữ liệu đơn giản và sử dụng một cột để dự đoán một cột khác. Dữ liệu trông như thế này:
Bây giờ tôi chỉ tạo một mô hình máy ảnh đơn giản với một lớp tuyến tính một nút và tiến hành chạy giảm độ dốc trên nó:
from keras.layers import Input, Dense
from keras.models import Model
inputs = Input(shape=(1,))
preds = Dense(1,activation='linear')(inputs)
model = Model(inputs=inputs,outputs=preds)
sgd=keras.optimizers.SGD()
model.compile(optimizer=sgd ,loss='mse',metrics=['mse'])
model.fit(x,y, batch_size=1, epochs=30, shuffle=False)
Chạy mô hình như thế mang lại cho tôi nan
sự mất mát trên mỗi kỷ nguyên.
Vì vậy, tôi quyết định bắt đầu thử mọi thứ và tôi chỉ có được một mô hình khá nếu tôi sử dụng tỷ lệ học tập nhỏ một cách lố bịch sgd=keras.optimizers.SGD(lr=0.0000001)
:
Bây giờ tại sao điều này xảy ra? Tôi có phải tự điều chỉnh tỷ lệ học tập như thế này cho mọi vấn đề tôi gặp phải không? Tôi đang làm gì đó sai ở đây? Đây được cho là vấn đề đơn giản nhất có thể, phải không?
Cảm ơn!