Series: Machine Learning Fundamentals – Bài 41
Ở bài trước, chúng ta đã tìm hiểu Transfer Learning (Học chuyển giao) – kỹ thuật giúp tái sử dụng các mô hình đã được huấn luyện trước để tiết kiệm thời gian và tài nguyên.
Tuy nhiên, dù bạn huấn luyện một mô hình từ đầu (Train from Scratch) hay thực hiện Fine-Tuning, một yếu tố quyết định mô hình có thể học hiệu quả và hội tụ hay không chính là Optimizers (Thuật toán tối ưu).
Nếu Loss Function là “thước đo” độ sai lệch của mô hình, thì Optimizer chính là “người dẫn đường”, giúp điều chỉnh các trọng số (Weights) để đưa Loss về giá trị nhỏ hơn.
Optimizers trong Deep Learning là gì?
Optimizer là thuật toán được sử dụng để cập nhật các tham số của mạng nơ-ron, chẳng hạn như Weights (W) và Bias (b), nhằm tối thiểu hóa giá trị của Loss Function.
↓
Optimizer → Cập nhật Weights & Bias → Huấn luyện tiếp
Trong quá trình huấn luyện, Optimizer sử dụng Gradient của Loss theo các tham số để xác định hướng và mức độ cần điều chỉnh ở mỗi bước cập nhật.
Tốc độ học (Learning Rate) – Tham số quan trọng
Learning Rate (η) quyết định kích thước của mỗi bước cập nhật.
Learning Rate quá lớn
Bước cập nhật quá lớn → dễ vượt qua vùng tối ưu → Loss có thể dao động hoặc tăng.
Learning Rate quá nhỏ
Bước cập nhật quá nhỏ → quá trình học chậm → cần nhiều thời gian để hội tụ.
Sự phát triển của các thuật toán Optimizers
1. Stochastic Gradient Descent (SGD)
SGD là một trong những phương pháp tối ưu cơ bản nhất. Thay vì sử dụng toàn bộ dữ liệu, SGD thường cập nhật trọng số dựa trên từng mẫu hoặc Mini-batch.
Ưu điểm:
- Đơn giản và dễ hiểu.
- Sử dụng tương đối ít bộ nhớ.
- Có thể cho khả năng tổng quát hóa tốt trong nhiều bài toán.
Nhược điểm:
- Quá trình tối ưu có thể dao động.
- Có thể hội tụ chậm.
- Learning Rate thường cần được điều chỉnh cẩn thận.
2. Momentum
Momentum bổ sung thông tin từ các bước cập nhật trước đó. Có thể hình dung nó giống như việc thêm “quán tính” vào quá trình di chuyển của trọng số.
Wt+1 = Wt − vt
Momentum giúp giảm dao động theo những hướng không cần thiết và tăng tốc quá trình di chuyển theo hướng có lợi.
3. RMSprop
RMSprop sử dụng trung bình trượt của bình phương Gradient để điều chỉnh Learning Rate cho từng tham số.
Wt+1 =
Wt −
[η / (√st + ε)] × ∇L(Wt)
Điểm đặc biệt của RMSprop là Learning Rate hiệu dụng có thể thay đổi theo từng tham số thay vì sử dụng một bước nhảy giống nhau cho toàn bộ mạng.
4. Adam – Adaptive Moment Estimation
Adam kết hợp hai ý tưởng quan trọng:
- Momentum: theo dõi trung bình của Gradient.
- RMSprop: theo dõi trung bình của bình phương Gradient.
mt = β1mt−1 + (1 − β1)gt
vt = β2vt−1 + (1 − β2)gt2
Adam còn sử dụng cơ chế Bias Correction trước khi thực hiện bước cập nhật cuối cùng.
Nhờ khả năng tự điều chỉnh bước cập nhật cho từng tham số, Adam thường là một lựa chọn khởi đầu thuận tiện cho nhiều bài toán Deep Learning.
So sánh các Optimizers phổ biến
| Thuật toán | Cơ chế chính | Ưu điểm | Nhược điểm |
|---|---|---|---|
| SGD | Gradient cơ bản | Đơn giản, ít bộ nhớ | Có thể hội tụ chậm |
| Momentum | Thêm quán tính | Giảm dao động, tăng tốc hội tụ | Cần điều chỉnh thêm tham số |
| RMSprop | Adaptive Learning Rate | Điều chỉnh bước học theo từng tham số | Cần lựa chọn Hyperparameter phù hợp |
| Adam | Momentum + Adaptive Scaling | Dễ sử dụng, thường hội tụ nhanh | Không phải lúc nào cũng cho khả năng tổng quát hóa tốt nhất |
Cách lựa chọn Optimizer phù hợp
🔵 Adam
Có thể sử dụng làm lựa chọn ban đầu cho nhiều bài toán Deep Learning, đặc biệt khi cần một Optimizer adaptive và muốn bắt đầu nhanh.
🟢 SGD + Momentum
Thường được sử dụng trong Computer Vision và các bài toán Fine-Tuning. Kết hợp với Learning Rate Schedule có thể mang lại khả năng tổng quát hóa tốt trong một số trường hợp.
🟣 RMSprop
Có lịch sử được sử dụng nhiều trong các bài toán có Gradient biến đổi mạnh, bao gồm một số bài toán xử lý chuỗi và RNN.
🟠 AdamW
Một biến thể của Adam sử dụng Weight Decay theo cách tách biệt với bước cập nhật Gradient, được sử dụng rộng rãi trong nhiều mô hình hiện đại.
Learning Rate quan trọng như thế nào?
Một Optimizer tốt nhưng Learning Rate không phù hợp vẫn có thể khiến mô hình học kém.
Quá lớn
Loss dao động hoặc phân kỳ
Quá nhỏ
Học rất chậm
Phù hợp
Hội tụ ổn định
Optimizer hoạt động như thế nào?
1. Forward Pass
Dữ liệu → Mô hình → Dự đoán
↓
2. Tính Loss
Dự đoán → So sánh với dữ liệu thật
↓
3. Backpropagation
Tính Gradient
↓
4. Optimizer
Cập nhật Weights & Bias
↓
5. Lặp lại
Loss giảm dần → Mô hình học tốt hơn
Tóm tắt
- Optimizer điều chỉnh Weights và Bias để tối thiểu hóa Loss Function.
- Learning Rate quyết định kích thước bước cập nhật và là một Hyperparameter rất quan trọng.
- SGD là phương pháp tối ưu cơ bản và đơn giản.
- Momentum bổ sung quán tính để giảm dao động và hỗ trợ hội tụ.
- RMSprop điều chỉnh Learning Rate hiệu dụng dựa trên lịch sử Gradient.
- Adam kết hợp ý tưởng của Momentum và adaptive scaling, thường là lựa chọn khởi đầu tốt cho nhiều bài toán.
- AdamW là một biến thể đáng chú ý, đặc biệt phổ biến trong nhiều mô hình Deep Learning hiện đại.
Tài liệu tham khảo
- Kingma & Ba: Adam: A Method for Stochastic Optimization
- PyTorch Documentation: Torch Optim Package
- TensorFlow Documentation: Keras Optimizers Guide
Khóa học tại MCNA Technology School
Nếu bạn muốn thực hành Machine Learning, Python và xây dựng các mô hình trên dữ liệu thực tế, có thể tham khảo các khóa học tại MCNA Technology School.
Tác giả: Bùi Đình Tuyển – Data Analyst tại MCNA Technology School
📞 Hotline: 0939.866.825 (Mr. Khang)
🌐 Website: MCNA Technology School
📍 Hà Nội: 30 Trung Liệt, Đống Đa Liền kề 44B TT2 Văn Quán, Hà Đông
📍 TP.HCM: 50B Phan Tây Hồ, Cầu Kiệu

