Cắt gradient

Cách các mô hình thực sự học, từ gradient descent thuần túy đến Adam

Cắt gradient giới hạn độ lớn tối đa mà một bước cập nhật có thể đạt tới. Nếu một batch tạo ra một gradient khổng lồ, việc cắt sẽ thu nhỏ nó lại trước khi bộ tối ưu hóa thực hiện bước cập nhật.

Cắt gradient không sửa mục tiêu cũng không sửa dữ liệu. Hãy nghĩ về nó như một quy tắc an toàn: không để một batch cực đoan duy nhất ném các tham số văng khỏi bề mặt mất mát.

Bộ điều tốc thang máy là phép ẩn dụ phù hợp. Thang máy vẫn có thể di chuyển bình thường, nhưng nếu nó bắt đầu chạy quá nhanh, bộ điều tốc sẽ giới hạn tốc độ trước khi chuyển động trở nên nguy hiểm. Cắt gradient cho những gradient bình thường đi qua và chỉ giới hạn những đợt tăng vọt nguy hiểm. Hình bên dưới cho thấy đối tượng đang bị cắt: hãy kéo điểm quanh cái bát và quan sát mũi tên gradient kéo dài ra khi bề mặt trở nên dốc hơn. Việc cắt giới hạn độ dài mũi tên đó ở mức c trong khi vẫn giữ nguyên hướng của nó.

Vị trí của nó trong MLCắt gradient là một công cụ ổn định đơn giản. Nó thường được kết hợp với AdamW, khởi động, và độ chính xác hỗn hợp vì những công thức đó có thể gặp phải những đợt tăng vọt gradient hiếm gặp nhưng gây hại.
▶ Cắt gradient
← Chẩn đoán bộ tối ưu hóaAdam so với AdamW →