Momentum Trong Gradient Descent Giúp Tối Ưu Hóa Như Thế Nào?

Tác giả: AI VIET NAM (AI VIET NAM)

Keywords: Momentum, Gradient Descent, Tối Ưu Hóa, Machine Learning, Deep Learning

Mở đầu – Vì sao nhiều mô hình tối ưu chậm hoặc dao động?

Trong quá trình làm việc với các mô hình Machine Learning và Deep Learning, đặc biệt khi bắt đầu bước vào nhóm kiến thức tối ưu hóa (thường xuất hiện trong các chủ đề tương tự Module 5 – Optimization), người học dễ gặp tình huống:

  • Gradient thay đổi quá mạnh giữa các bước cập nhật.
  • Hướng cập nhật “giật” liên tục làm đường đi không ổn định.
  • Loss giảm không đều, đôi khi đứng yên ở vùng phẳng.

Vấn đề này xảy ra vì Gradient Descent truyền thống chỉ dựa vào giá trị gradient hiện tại, thiếu thông tin về “quán tính” trong quá trình di chuyển. Momentum được đề xuất để khắc phục điểm này.

Momentum Là Gì?

Momentum là cơ chế bổ sung một thành phần tích lũy theo thời gian, cho phép thuật toán “ghi nhớ” hướng đi trước đó.

Trong tối ưu hóa, thay vì cập nhật trọng số chỉ dựa trên gradient tại mỗi bước, Momentum thêm quán tính vào chuyển động: vt=βvt1+(1β)L(wt)v_t = \beta v_{t-1} + (1 - \beta)\nabla L(w_t) wt+1=wtαvtw_{t+1} = w_t - \alpha v_t

Trong đó:

  • vtv_t: vận tốc tích lũy (momentum).
  • β\beta: hệ số duy trì quán tính (thường khoảng 0.9).
  • α\alpha: learning rate.
  • L(wt)\nabla L(w_t): gradient tại thời điểm hiện tại.

Momentum Giúp Tối Ưu Tốt Hơn Như Thế Nào?

Giảm dao động trên các bề mặt dốc

Ở những vùng mà gradient không đồng đều theo từng chiều (ví dụ trục dọc rất dốc, trục ngang phẳng), SGD dễ bị dao động mạnh.

  • Momentum giữ lại hướng chính của gradient, làm cho chuyển động ổn định hơn.
  • Mô hình không bị “nhảy lên – nhảy xuống”, giảm thời gian lãng phí vào các chuyển động không hiệu quả.

Tăng tốc trong vùng phẳng hoặc gần cực tiểu

Ở những vùng gradient nhỏ, SGD thường đi rất chậm. Vì Momentum tích lũy thông tin từ nhiều bước, vận tốc vẫn được duy trì và giúp mô hình vượt qua những vùng phẳng hiệu quả hơn.

Hướng di chuyển trở nên “liền mạch” hơn

Thay vì thay đổi hướng liên tục theo gradient hiện tại, Momentum giúp thuật toán giữ được hướng di chuyển hợp lý qua nhiều bước. Điều này làm tốc độ hội tụ tốt hơn trong nhiều bài toán thực tế.

Ví dụ Thực Tế

Giả sử bạn huấn luyện một mô hình phân loại hình ảnh đơn giản (liên quan đến nhóm ứng dụng Computer Vision như trong Module 9). Khi dùng SGD thuần:

  • Loss giảm không đều.
  • Biểu đồ training zigzag mạnh.
  • Mô hình cần nhiều epoch mới tiến gần điểm tối ưu.

Khi bật Momentum:

  • Loss stabilizes nhanh hơn.
  • Đường đi trong không gian tham số mượt hơn.
  • Tốc độ huấn luyện cải thiện đáng kể.

Bạn vẫn dùng cùng learning rate, cùng kiến trúc, chỉ khác lựa chọn optimizer.

Góc Nhìn Khi Làm Dự Án AI/ML

Trong nhiều pipeline thực tế (đặc biệt các mô hình sâu ở Module 7 – Deep Learning 1), thời gian huấn luyện là yếu tố quan trọng.

Momentum thường được xem như “mảnh ghép cơ bản”, giúp các mô hình quy mô lớn:

  • Huấn luyện ổn định hơn.
  • Tối ưu hóa ít nhạy cảm với noise của dữ liệu.
  • Giảm rủi ro mắc kẹt ở những vùng tối ưu không mong muốn.

Vì thế, khi xây dựng mô hình từ baseline trở đi, lựa chọn tối ưu hóa luôn là bước quan trọng trong MLOps (logging – theo dõi loss – theo dõi gradient).

Liên Hệ Kiến Thức Nền

Để hiểu Momentum rõ ràng hơn, người học thường đi qua:

  • Toán tuyến tính & phép đạo hàm (Module 1–2).
  • Các hàm loss và hệ đo lường trong ML (Module 4–5).
  • Cách gradient lan truyền trong mạng DL (Module 7).

Những phần này tạo nền tảng để phân tích xem tại sao có quán tính lại giúp mô hình di chuyển tốt hơn trong không gian tối ưu.

Định Hướng Cho Người Bắt Đầu

Bạn có thể bắt đầu bằng:

  • Thử huấn luyện một mô hình nhỏ (Linear Regression hoặc MLP).
  • Bật/tắt Momentum và quan sát loss theo từng epoch.
  • Điều chỉnh hệ số β\beta để thấy sự khác biệt.

Bạn có thể thử nghiệm thêm để hiểu rõ hơn về cách Momentum thay đổi quá trình tối ưu.

Hỏi Đáp Nhanh Về Momentum

Momentum có thay đổi kiến trúc mạng không?
Không, chỉ thay đổi cách tối ưu.

Momentum có giúp tránh local minima không?
Có thể hỗ trợ mô hình thoát khỏi vùng phẳng hoặc điểm kém tối ưu.

Momentum có làm mô hình huấn luyện nhanh hơn không?
Thường có, vì hướng di chuyển ổn định và ít dao động.

Có cần điều chỉnh learning rate khi dùng Momentum không?
Không bắt buộc, nhưng điều chỉnh nhẹ có thể giúp tối ưu tốt hơn.

FAQ Về Chương Trình AIO

Q1. Con số 0 thì học nổi không?
Ans: Chỉ cần bạn có thời gian học. Điều quan trọng nhất không phải giỏi hay không, mà là có học đều mỗi ngày. Kiến thức – tài liệu – môi trường đã có team lo. Nếu bạn không có thời gian thì nên cân nhắc.

Q2. Ai dạy AIO?
Ans: Đội admin dạy toàn bộ. Admin trực tiếp hướng dẫn và hỗ trợ mọi câu hỏi của bạn trong suốt quá trình học.

Q3. Admin có “xịn” không?
Ans: Admin đều là người làm nghề thật, mỗi người một cách dạy. Quan trọng là bạn cảm thấy hợp cách truyền đạt. Admin không dám nói xịn, chỉ dạy bằng hết sức.

Q4. AIO có gì khác những nơi khác?
Ans: AIO không phải trung tâm. Đây là dự án học tập cộng đồng, được cải tiến qua từng khóa. Tinh thần của AIO: Cùng nhau học – cùng nhau khổ – cùng nhau lớn. Nếu hợp tinh thần đó, bạn sẽ thấy phù hợp.

Tài nguyên học AI: