Chuyển tới nội dung chính

Lịch learning rate

Kéo con trỏTính lại thật5 lịch

Lịch learning rate

Nóng lên rồi nguội dần: đường learning rate thay đổi theo bước huấn luyện.

Learning rate là độ dài mỗi bước gradient descent bước đi. Giữ nó cố định suốt quá trình nghe có vẻ gọn, nhưng thường không phải lựa chọn tốt: lúc đầu tham số còn ở rất xa vùng tốt nên một learning rate lớn giúp đi nhanh, còn về cuối khi đã tới gần đáy thì bước lớn lại làm mô hình nảy quanh đáy mà không lắng xuống được. Một learning rate không thể vừa đủ lớn cho lúc đầu vừa đủ nhỏ cho lúc cuối.

Cách giải quyết là cho learning rate thay đổi theo bước, gọi là một lịch. Hai ý tưởng hay đi cùng nhau. Thứ nhất là decay: hạ dần learning rate về sau để mô hình lắng xuống đáy thay vì nảy quanh. Thứ hai là warmup: những bước đầu tăng learning rate từ gần 0 lên dần, tránh cú sốc khi trọng số khởi tạo ngẫu nhiên gặp ngay một bước quá lớn làm hỏng quá trình. Ghép hai ý này lại được đường quen thuộc: đi lên một đoạn rồi cong xuống.

Thử ngay

Lịch learning rate · nóng lên rồi nguội dần
bước 50lr = 0.059đầu 0cuối 0
00.0560.112bước huấn luyệnlr

Thử điều này:

  • Để ở lịch warmup + cosine, kéo con trỏ dọc từ trái sang phải và nhìn số lr trong ô đọc: nó tăng trong đoạn warmup rồi giảm dần về gần 0.
  • Kéo bước warmup lên cao rồi xuống 0, xem đỉnh của đường dịch chuyển và biến mất.
  • Đổi sang giảm bậc thang rồi kéo hệ số giảm: mỗi nấc thang tụt sâu hơn khi hệ số nhỏ, so với giảm mũ hạ trơn cùng hệ số.
  • Chọn hằng số và để ý learning rate ở bước đầu bằng đúng bước cuối, đường nằm ngang, đây chính là cái mà các lịch kia muốn tránh.

Warmup và cosine

Warmup chỉ là một đường thẳng: trong warmup bước đầu, learning rate đi từ 0 lên tới giá trị nền theo tỷ lệ bước / warmup. Sau đó cosine annealing lấy nửa chu kỳ của hàm cosine để kéo learning rate từ nền về 0 một cách trơn tru, dốc thoải ở đầu và cuối, dốc nhất ở giữa. Nhờ vậy mô hình giảm bước từ tốn ngay khi sắp chạm đáy.

Điều rút ra

Một learning rate cố định phải chọn giữa nhanh lúc đầu và mượt lúc cuối, còn một lịch cho phép có cả hai: warmup tránh sốc mở màn, rồi decay hạ dần để hội tụ êm.

Câu hỏi tự kiểm0/3 đúngchưa trả lời
  1. 1Vì sao thường không nên giữ learning rate cố định suốt quá trình huấn luyện?
  2. 2Đoạn warmup ở đầu lịch warmup + cosine có tác dụng gì?
  3. 3Trong sim, kéo hệ số giảm nhỏ lại ở lịch giảm mũ thì learning rate ở bước cuối thay đổi ra sao?