Tôi đang cố gắng đào tạo một mạng lưới thần kinh sâu để phân loại, sử dụng lan truyền ngược. Cụ thể, tôi đang sử dụng một mạng nơ ron tích chập để phân loại hình ảnh, sử dụng thư viện Tensor Flow. Trong quá trình đào tạo, tôi gặp phải một số hành vi kỳ lạ, và tôi chỉ tự hỏi liệu điều này là điển hình hay liệu tôi có thể làm sai điều gì không.
Vì vậy, mạng nơ ron tích chập của tôi có 8 lớp (5 chập, 3 kết nối đầy đủ). Tất cả các trọng số và độ lệch được khởi tạo ở các số ngẫu nhiên nhỏ. Sau đó, tôi đặt kích thước bước và tiến hành đào tạo với các lô nhỏ, sử dụng Trình tối ưu hóa Adam của Flowor Flow.
Hành vi kỳ lạ mà tôi đang nói đến là trong khoảng 10 vòng đầu tiên thông qua dữ liệu đào tạo của tôi, nói chung, tổn thất đào tạo không giảm. Các trọng số đang được cập nhật, nhưng tổn thất đào tạo vẫn ở cùng một giá trị, đôi khi tăng lên và đôi khi đi xuống giữa các đợt nhỏ. Nó duy trì như vậy trong một thời gian, và tôi luôn có ấn tượng rằng sự mất mát sẽ không bao giờ giảm.
Sau đó, đột nhiên, mất tập luyện giảm đáng kể. Ví dụ, trong khoảng 10 vòng lặp thông qua dữ liệu đào tạo, độ chính xác đào tạo tăng từ khoảng 20% đến khoảng 80%. Từ đó trở đi, mọi thứ kết thúc hội tụ độc đáo. Điều tương tự cũng xảy ra mỗi lần tôi chạy đường ống huấn luyện từ đầu, và bên dưới là biểu đồ minh họa một lần chạy ví dụ.
Vì vậy, điều tôi băn khoăn là liệu đây có phải là hành vi bình thường với việc đào tạo mạng lưới thần kinh sâu hay không, do đó phải mất một thời gian để "khởi động". Hoặc có khả năng là có điều gì đó tôi đang làm sai gây ra sự chậm trễ này?
Cảm ơn rất nhiều!