Cái bẫy Early Stopping: Cách tôi đã bóp chết những lần huấn luyện RL trước khi chúng kịp học

Early stopping lẽ ra phải cứu bạn khỏi việc đốt tài nguyên tính toán cho một mô hình đã học xong. Nhưng trong một quãng thời gian dài, chính nó mới là thứ đốt tài nguyên tính toán của tôi — bằng cách giết chết những agent tốt trước khi chúng kịp trở nên giỏi.

Số lần huấn luyện học tăng cường (RL) của tôi chết vì chính quy tắc early stopping của mình còn nhiều hơn cả số lần chết vì những ý tưởng tồi. Cái công tắc ngắt mà tôi xây dựng để giữ kỷ luật hóa ra lại là thứ vô kỷ luật nhất trong cả hệ thống.

Đường reward minh họa nhiều nhiễu, dao động xuống rồi bị dừng sớm, với phần kéo dài bằng nét đứt cho thấy đà tăng mà nó chưa bao giờ chạm tới Minh họa, không phải dữ liệu hiệu suất thật. Agent bị dừng ngay trong một nhịp dao động đi xuống bình thường — đúng ngay trước đoạn lẽ ra nó sẽ đi lên.

Cái công tắc ngắt phản tác dụng

Tôi mượn early stopping từ học có giám sát (supervised learning), nơi nó được xem như chân lý: theo dõi validation loss, và khi nó ngừng cải thiện trong một thời gian, thì dừng lại — từ đó trở đi bạn chỉ còn overfitting mà thôi. Cách làm này gọn gàng, an toàn, và trong học có giám sát thì nó thường hiệu quả.

Thế nên tôi gắn đúng ý tưởng đó vào quá trình huấn luyện RL: theo dõi chỉ số, hết kiên nhẫn sau một plateau, dừng lần chạy, tiết kiệm số giờ GPU. Nó cho cảm giác có trách nhiệm. Nhưng trên thực tế, nó lặng lẽ vứt bỏ hết lần chạy này đến lần chạy khác — phần lớn là rất sớm, trước cả khi agent kịp tìm ra bất cứ điều gì. Cuối cùng tôi có một thư mục đầy những lần chạy đơn giản là chưa bao giờ thực sự bắt đầu.

Vì sao RL phá vỡ quy tắc

Một đường validation trong học có giám sát là thứ khá mượt mà, gần như đơn điệu. Tiến trình của một agent học tăng cường thì không như vậy. Reward vốn dĩ đã nhiễu: nó phụ thuộc vào một policy mà bản thân policy đó cũng đang thay đổi, tương tác với một môi trường đầy biến động. Sự cải thiện đến theo từng đợt giật cục — những đoạn phẳng dài, những cú nhảy đột ngột, những nhịp dao động xuống rồi hồi phục. Một plateau trong RL thường không phải là dấu chấm hết cho việc học. Nó là đoạn ngay trước khi việc học diễn ra.

Vậy nên một mức patience được tinh chỉnh cho sự mượt mà của học có giám sát sẽ kích hoạt ngay giữa những biến động hoàn toàn bình thường của RL. Bạn không bắt được một mô hình đã học xong; bạn xử tử một mô hình sắp sửa trở nên thú vị. Và phần “tiết kiệm” chỉ là ảo giác — bạn vẫn phải trả giá cho mọi lần chạy chết sớm mà chẳng trả lại được gì.

Hãy ngừng dừng sớm

Cách khắc phục không phải là một con số tốt hơn. Đó là đảo ngược mặc định. Early stopping nên là chuyện hiếm khi xảy ra, chứ không phải vội vàng — một tấm chắn chống lại overfitting thực sự và kéo dài, chứ không phải một cò súng nhạy giật theo nhiễu. Điều đó có nghĩa là đặt ngưỡng ở nơi mà nhiễu không thể thực sự chạm tới, và đánh giá sự suy giảm trên một cửa sổ đủ dài để lấn át biến động tự nhiên của lần chạy — chứ không phải chỉ vài lần đánh giá. Mặc định phải là tiếp tục. Gánh nặng chứng minh thuộc về quyết định dừng, chứ không phải quyết định tiếp tục.

Nói thẳng ra: patience cũng là một hyperparameter, và hầu hết người mới — kể cả tôi — đặt nó như thể RL là học có giám sát. Nó không phải vậy.

Nơi con người vẫn còn vai trò

Điều này cộng hưởng với bài học từ bài viết đầu tiên. Tôi không quyết định, từng lần chạy một, khi nào thì rút phích cắm — làm vậy chỉ là tôi lại đóng băng một phỏng đoán vào hệ thống một lần nữa. Tôi quyết định “thực sự đang tệ đi” nghĩa là gì so với “nhiễu bình thường,” và để định nghĩa đó tự lo việc dừng. Tôi đang thiết kế vị quan tòa, chứ không phải tự tay tuyên từng bản án. Hãy làm cho vị quan tòa đúng đắn, và bạn sẽ ngừng vứt bỏ những lần chạy lẽ ra đã thành công.

Điều rút ra

Trong RL, lỗi tốn kém nhất thường là sự thiếu kiên nhẫn. Việc tối ưu hóa ngân sách tính toán quá sớm không tiết kiệm được tài nguyên tính toán — nó khiến bạn mất đi agent, và điều tàn nhẫn là bạn chẳng bao giờ thấy được cái kết quả mà mình đã bóp chết.

Vậy nên nếu những lần chạy của bạn cứ liên tục “không hiệu quả,” hãy kiểm tra xem chúng có bao giờ được trao cơ hội hay không. Đôi khi không phải mô hình đang thất bại. Mà là bạn.


Đây là phần 2 của một nhật ký ẩn danh đang được tiếp tục về việc xây dựng một hệ thống giao dịch bằng học tăng cường. Nó nói về phương pháp và sai lầm, không phải về tín hiệu — không có gì ở đây là lời khuyên đầu tư, và không có chi tiết chiến lược nào được chia sẻ.