Tôi hơi bối rối và bối rối trước ý tưởng về cách xác định kỹ thuật dừng sớm. Nếu bạn xem Wikipedia , nó được định nghĩa như sau:
- Chia dữ liệu đào tạo thành tập huấn luyện và tập xác thực, ví dụ theo tỷ lệ 2 trên 1.
- Chỉ huấn luyện về tập huấn luyện và đánh giá lỗi theo từng ví dụ trên tập xác thực một lần trong một thời gian, ví dụ sau mỗi kỷ nguyên thứ năm.
- Dừng đào tạo ngay khi lỗi trên bộ xác nhận cao hơn lần cuối cùng được kiểm tra.
- Sử dụng các trọng số mà mạng đã có trong bước trước đó là kết quả của quá trình đào tạo.
Tôi đã sử dụng phương pháp này trong các thí nghiệm của mình (với xác thực chéo 10 lần). Tôi đang kiểm tra lỗi xác thực trên mỗi epoch (và cũng tính toán độ chính xác xác thực) và đặt tham số kiên nhẫn là 2. Điều đó có nghĩa là, nếu lỗi xác thực tăng lên trong 2 epoch liên tiếp -> dừng đào tạo. Sau đó, tôi đã sử dụng kết quả của kỷ nguyên cuối cùng khi mô hình kết thúc.
Ian Goodfellow sử dụng một định nghĩa khác trong cuốn sách học sâu của mình . Bước thứ 4, ông đề nghị sử dụng các trọng số của mô hình hoạt động tốt nhất (nghĩa là lưu mô hình mỗi khi kiểm tra lỗi xác nhận).
Tôi không cần mô hình đã lưu, tôi chỉ cần kết quả cho công việc của mình. Vì vậy, đối với tôi, đề xuất dừng sớm của Goodfellow có nghĩa là tôi chỉ cần đạt độ chính xác cao nhất mà tôi đạt được cho kết quả cuối cùng của mình? Bằng cách nào đó điều này có vẻ không hợp pháp. Tôi không có thông tin này trong tình huống thực tế khi không có bộ phát triển. Nhưng trong trường hợp đó, lý do để sử dụng dừng sớm ở nơi đầu tiên là gì? Xác định số lượng kỷ nguyên bằng cách lấy trung bình số lượng kỷ nguyên cho các nếp gấp và sử dụng nó cho lần chạy thử sau này?