11. Thuật Toán Tối ưu - Đắm Mình Vào Học Sâu

11. Thuật toán Tối ưu¶

Chúng tôi tin rằng khi đã theo dõi đến chương này của cuốn sách, hẳn là bạn đã kinh qua nhiều dạng thuật toán tối ưu tiên tiến để huấn luyện các mô hình học sâu. Chúng là công cụ cho phép ta liên tục cập nhật các tham số của mô hình và cực tiểu hóa giá trị hàm mất mát khi đánh giá trên tập huấn luyện. Sự thật là có nhiều người hài lòng với việc xem những thuật toán tối ưu như một hộp đen ma thuật (với các câu thần chú như “Adam”, “NAG”, hoặc “SGD”) có tác dụng cực tiểu hóa hàm mục tiêu.

Tuy nhiên, để làm tốt thì ta cần những kiến thức chuyên sâu hơn. Những giải thuật tối ưu đóng vai trò quan trọng trong học sâu. Một mặt, việc huấn luyện một mô hình học sâu phức tạp có thể mất hàng giờ, hàng ngày, thậm chí là hàng tuần. Chất lượng của thuật toán tối ưu ảnh hưởng trực tiếp đến độ hiệu quả của quá trình huấn luyện của mô hình. Mặt khác, việc hiểu rõ nguyên lý của các thuật toán tối ưu khác nhau cùng vai trò của các tham số đi kèm sẽ giúp ta điều chỉnh các siêu tham số một cách có chủ đích nhằm cải thiện hiệu suất của các mô hình học sâu.

Trong chương này, chúng tôi sẽ mô tả sâu hơn các thuật toán tối ưu thông dụng trong học sâu. Hầu hết tất cả các bài toán tối ưu xuất hiện trong học sâu đều là không lồi (nonconvex). Tuy nhiên, kiến thức từ việc thiết kế và phân tích các thuật toán giải quyết bài toán tối ưu lồi vẫn rất hữu ích. Do vậy, phần này sẽ tập trung vào giới thiệu tối ưu lồi và chứng minh một thuật toán hạ gradient ngẫu nhiên (stochastic gradient descent) đơn giản áp dụng cho hàm mục tiêu lồi.

  • 11.1. Tối ưu và Học sâu
    • 11.1.1. Tối ưu và Ước lượng
  • 11.2. Các Thách thức của Tối ưu trong Học sâu
  • 11.3. Các vùng Cực tiểu
  • 11.4. Các điểm Yên ngựa
  • 11.5. Tiêu biến Gradient
    • 11.5.1. Tóm tắt
    • 11.5.2. Bài tập
    • 11.5.3. Thảo luận
    • 11.5.4. Những người thực hiện
  • 11.6. Tính lồi
    • 11.6.1. Kiến thức Cơ bản
    • 11.6.2. Tính chất
    • 11.6.3. Ràng buộc
    • 11.6.4. Tóm tắt
    • 11.6.5. Bài tập
    • 11.6.6. Thảo luận
    • 11.6.7. Những người thực hiện
  • 11.7. Hạ Gradient
    • 11.7.1. Hạ Gradient trong Một Chiều
    • 11.7.2. Hạ Gradient Đa biến
    • 11.7.3. Những Phương pháp Thích nghi
    • 11.7.4. Tổng kết
    • 11.7.5. Bài tập
    • 11.7.6. Thảo luận
    • 11.7.7. Những người thực hiện
  • 11.8. Hạ Gradient Ngẫu nhiên
    • 11.8.1. Cập nhật Gradient Ngẫu nhiên
    • 11.8.2. Tốc độ học Linh hoạt
    • 11.8.3. Phân tích Hội tụ cho Hàm mục tiêu Lồi
    • 11.8.4. Gradient ngẫu nhiên và Mẫu hữu hạn
    • 11.8.5. Tóm tắt
    • 11.8.6. Bài tập
    • 11.8.7. Thảo luận
    • 11.8.8. Những người thực hiện
  • 11.9. Hạ Gradient Ngẫu nhiên theo Minibatch
    • 11.9.1. Vector hóa và Vùng nhớ đệm
    • 11.9.2. Minibatch
    • 11.9.3. Đọc Tập dữ liệu
    • 11.9.4. Lập trình từ đầu
    • 11.9.5. Lập trình Súc tích
    • 11.9.6. Tóm tắt
    • 11.9.7. Bài tập
    • 11.9.8. Thảo luận
    • 11.9.9. Những người thực hiện
  • 11.10. Động lượng
    • 11.10.1. Kiến thức Cơ bản
    • 11.10.2. Thực nghiệm
    • 11.10.3. Phân tích Lý thuyết
    • 11.10.4. Tóm tắt
    • 11.10.5. Bài tập
    • 11.10.6. Thảo luận
    • 11.10.7. Những người thực hiện
  • 11.11. Adagrad
    • 11.11.1. Đặc trưng Thưa và Tốc độ Học
    • 11.11.2. Tiền điều kiện
    • 11.11.3. Thuật toán
    • 11.11.4. Lập trình từ đầu
    • 11.11.5. Lập trình Súc tích
    • 11.11.6. Tóm tắt
    • 11.11.7. Bài tập
    • 11.11.8. Thảo luận
    • 11.11.9. Những người thực hiện
  • 11.12. RMSProp
    • 11.12.1. Thuật toán
    • 11.12.2. Lập trình Từ đầu
    • 11.12.3. Lập trình Súc tích
    • 11.12.4. Tóm tắt
    • 11.12.5. Bài tập
    • 11.12.6. Thảo luận
    • 11.12.7. Những người thực hiện
  • 11.13. Adadelta
    • 11.13.1. Thuật toán
    • 11.13.2. Lập trình
    • 11.13.3. Tóm tắt
    • 11.13.4. Bài tập
    • 11.13.5. Thảo luận
    • 11.13.6. Những người thực hiện
  • 11.14. Adam
    • 11.14.1. Thuật toán
    • 11.14.2. Lập trình
    • 11.14.3. Yogi
    • 11.14.4. Tóm tắt
    • 11.14.5. Bài tập
    • 11.14.6. Thảo luận
    • 11.14.7. Những người thực hiện
  • 11.15. Định thời Tốc độ Học
    • 11.15.1. Ví dụ Đơn giản
    • 11.15.2. Bộ Định thời
    • 11.15.3. Những chính sách
    • 11.15.4. Tóm tắt
    • 11.15.5. Bài tập
    • 11.15.6. Thảo luận
    • 11.15.7. Những người thực hiện

11.16. Những người thực hiện¶

Bản dịch trong trang này được thực hiện bởi:

  • Đoàn Võ Duy Thanh
  • Nguyễn Văn Cường
  • Lê Khắc Hồng Phúc
  • Phạm Hồng Vinh
  • Phạm Minh Đức

Table Of Contents

  • 11. Thuật toán Tối ưu
    • 11.16. Những người thực hiện
Previous 10.3. Kiến trúc Transformer Next 11.1. Tối ưu và Học sâu

Từ khóa » Thuật Toán Tôi ưu Là