Chúng ta đã tìm hiểu khá chi tiết về Gradient Descent trong các bài trước của Series tự học ML này.
Gradient Descent là một thuật toán tối ưu hóa lặp đi lặp lại, được sử dụng để tìm giá trị nhỏ nhất cho một hàm. Ý tưởng chung là khởi tạo các tham số thành các giá trị ngẫu nhiên, và sau đó thực hiện các bước nhỏ theo hướng “độ dốc” ở mỗi lần lặp. Gradient descent được sử dụng nhiều trong học có giám sát để giảm thiểu hàm lỗi và tìm giá trị tối ưu cho các tham số.
Nhiều phần mở rộng khác nhau đã được thiết kế cho thuật toán giảm độ dốc. Một số trong số chúng được thảo luận dưới đây:
- Phương pháp xung lượng: Phương pháp này được sử dụng để tăng tốc thuật toán giảm độ dốc bằng cách xem xét trung bình có trọng số theo cấp số nhân của các độ dốc. Việc sử dụng giá trị trung bình làm cho thuật toán hội tụ về phía cực tiểu theo cách nhanh hơn, vì các gradient theo các hướng không phổ biến bị loại bỏ. Mã giả cho phương pháp động lượng được đưa ra dưới đây.
V = 0
for each iteration i:
compute dW
V = β V + (1 - β) dW
W = W - α V
V và dW tương tự với gia tốc và vận tốc tương ứng. α là tốc độ học tập, và β thường được giữ ở 0,9.
- RMSprop: RMSprop được đề xuất bởi Geoffrey Hinton của Đại học Toronto. Trực giác là áp dụng phương pháp trung bình có trọng số theo cấp số nhân cho thời điểm thứ hai của gradient (dW2). Mã giả cho điều này như sau:
S = 0
for each iteration i
compute dW
S = β S + (1 - β) dW2
W = W - α dW⁄√S + ε
- Tối ưu hóa Adam: Thuật toán tối ưu hóa Adam kết hợp phương pháp xung lượng và RMSprop, cùng với hiệu chỉnh sai lệch. Mã giả cho phương pháp này như sau,
V = 0
S = 0
for each iteration i
compute dW
V = β1 S + (1 - β1) dW
S = β2 S + (1 - β2) dW2
V = V⁄{1 - β1i}
S = S⁄{1 - β2i}
W = W - α V⁄√S + ε
- Kingma và Ba, những người đề xuất Adam, đã đề xuất các giá trị sau cho các siêu tham số(vô số tham số).
α = 0.001
β1 = 0.9
β2 = 0.999
ε = 10-8
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Nguồn và Tài liệu tiếng anh tham khảo:
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Tự học ML bằng Python từ cơ bản tới nâng cao.
- Ebook về python tại đây.
- Các series tự học lập trình MIỄN PHÍ khác
- Nơi liên hệ hợp tác hoặc quảng cáo cùng Cafedevn tại đây.
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
Chào thân ái và quyết thắng!