Tốc độ học và momentum

Nhập môn Deep Learning với PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Cập nhật trọng số với SGD

  • Huấn luyện mạng nơ-ron = giải một bài toán tối ưu.

Bộ tối ưu Stochastic Gradient Descent (SGD)

sgd = optim.SGD(model.parameters(), lr=0.01, momentum=0.95)
  • Hai tham số:
    • learning rate: điều khiển độ lớn bước nhảy
    • momentum: thêm quán tính để tránh bị kẹt
Nhập môn Deep Learning với PyTorch

Ảnh hưởng của learning rate: giá trị tối ưu

ví dụ về learning rate tối ưu

  • Độ lớn bước nhảy giảm gần 0 khi gradient nhỏ dần
Nhập môn Deep Learning với PyTorch

Ảnh hưởng của learning rate: nhỏ

ví dụ về learning rate nhỏ

Nhập môn Deep Learning với PyTorch

Ảnh hưởng của learning rate: cao

một giá trị learning rate quá cao

Nhập môn Deep Learning với PyTorch

Hàm lồi và không lồi

Đây là một hàm lồi.

ví dụ về hàm lồi

Đây là một hàm không lồi.

ví dụ về hàm không lồi

  • Hàm loss thường không lồi
Nhập môn Deep Learning với PyTorch

Không dùng momentum

  • lr = 0.01 momentum = 0, sau 100 bước tìm được cực tiểu tại x = -1.23y = -0.14

ví dụ bộ tối ưu bị kẹt ở cực tiểu cục bộ

Nhập môn Deep Learning với PyTorch

Có momentum

  • lr = 0.01 momentum = 0.9, sau 100 bước tìm được cực tiểu tại x = 0.92y = -2.04

ví dụ tối ưu có momentum

Nhập môn Deep Learning với PyTorch

Tóm tắt

$$

Learning Rate Momentum
Điều khiển độ lớn bước nhảy Điều khiển quán tính
Quá cao → hiệu suất kém Giúp thoát cực tiểu cục bộ
Quá thấp → huấn luyện chậm Quá nhỏ → bộ tối ưu bị kẹt
Khoảng thường dùng: 0.01 ($10^{-2}$) và 0.0001 ($10^{-4}$) Khoảng thường dùng: 0.85 đến 0.99
Nhập môn Deep Learning với PyTorch

Ayo berlatih!

Nhập môn Deep Learning với PyTorch

Preparing Video For Download...