Thuật toán tối ưu hóa trong học máy (Optimization Algorithm)
1. Tổng quan
A. Định nghĩa
Thuật toán tối ưu hóa trong học máy là quy trình lặp đi lặp lại nhằm tìm các tham số (trọng số·độ lệch) cực tiểu hóa hàm mất mát (Loss Function) của mô hình. Phần lớn dựa trên phương pháp hạ gradient (Gradient Descent), sử dụng gradient của hàm mất mát để cập nhật tham số theo hướng làm giảm sai số.
Trực giác tốt nhất để hiểu thuật toán tối ưu hóa là 'đi xuống tìm thung lũng thấp nhất trên một ngọn núi phủ sương mù'. Hàm mất mát là địa hình (loss landscape) biểu thị sai số dự đoán tương ứng với giá trị tham số, và việc học chính là tìm điểm thấp nhất (sai số nhỏ nhất) trên địa hình đó. Tại mỗi điểm, gradient cho biết hướng 'đi lên' dốc nhất, nên bước từng bước theo hướng ngược lại sẽ làm sai số giảm dần.
Điều khác nhau giữa các thuật toán nằm ở ba lựa chọn. Thứ nhất là 'mỗi bước dài bao nhiêu' (tốc độ học, learning rate), thứ hai là 'duy trì quán tính của hướng đi xuống trước đó đến mức nào' (momentum), thứ ba là 'có cho mỗi tham số một độ dài bước khác nhau hay không' (tốc độ học thích ứng). Cách kết hợp ba lựa chọn này quyết định tốc độ hội tụ và tính ổn định. Tốc độ học quá lớn sẽ vượt qua thung lũng gây dao động hoặc phân kỳ, quá nhỏ thì hội tụ quá chậm, và nếu địa hình gồ ghề có thể bị mắc kẹt ở vũng nông (cực tiểu cục bộ, local minimum) hoặc điểm yên ngựa phẳng (saddle point). Lịch sử phát triển của thuật toán tối ưu hóa chính là lịch sử giảm nhẹ ba vấn đề này.
B. Bối cảnh ra đời và sự cần thiết
Các mô hình thống kê truyền thống thường có thể tìm lời giải tối ưu một lần bằng công thức, như phương trình chuẩn. Tuy nhiên, mô hình học sâu có hàng triệuhàng trăm tỷ tham số và hàm mất mát phi tuyến·không lồi (non-convex) ở mức cao, khiến việc tìm lời giải dạng đóng là bất khả thi về mặt tính toán. Ví dụ, mô hình ngôn ngữ lớn có hàng tỷhàng trăm tỷ tham số nên phương pháp tính ma trận nghịch đảo hoàn toàn không khả thi. Do đó, tối ưu hóa lặp (iterative) xuất phát từ giá trị khởi tạo và cải thiện dần là phương pháp thực tế duy nhất, và hiệu quả của nó trực tiếp quyết định thời gian·chi phí huấn luyện cũng như hiệu năng cuối cùng của mô hình.
Ngoài ra, khi quy mô dữ liệu tăng lên, cách xử lý toàn bộ dữ liệu một lần đã chạm giới hạn. Việc quét toàn bộ hàng triệu~hàng tỷ mẫu dữ liệu huấn luyện ở mỗi lần cập nhật là khó kham nổi về bộ nhớ·tính toán, nên phương thức ngẫu nhiên (stochastic)·mini-batch — chỉ dùng một phần dữ liệu làm mẫu để ước lượng gradient — đã trở thành tiêu chuẩn. Các thuật toán tối ưu hiện đại được thiết kế xoay quanh cách xử lý nhiễu của 'ước lượng dựa trên mẫu' này.
Rốt cuộc, thuật toán tối ưu hóa là 'động cơ' của quá trình học. Cùng một cấu trúc mô hình và dữ liệu, nhưng tùy vào bộ tối ưu và chiến lược tốc độ học được dùng, việc huấn luyện mất vài ngày có thể rút xuống vài giờ, hoặc hoàn toàn không hội tụ, hoặc ngược lại đạt độ chính xác cao hơn nhiều. Tối ưu hóa là trục cốt lõi quyết định hiệu năng·chi phí của học sâu đến mức ấy.
2. Nguyên lý và các họ hạ gradient
Quy tắc cập nhật của hạ gradient về bản chất được tóm gọn trong một công thức. Trọng số mới bằng trọng số hiện tại trừ đi 'tốc độ học × gradient của hàm mất mát' (θ ← θ − η∇L). Ở đây η (eta) là tốc độ học, ∇L là gradient. Tùy cách mở rộng·bổ sung công thức đơn giản này mà các họ thuật toán được phân nhánh. Dưới đây là sơ đồ cấu trúc tổng thể của họ hạ gradient.
flowchart TB
G["Hạ gradient (Gradient Descent)"] --> B["Batch GD (toàn bộ dữ liệu)"]
G --> S["SGD (1 mẫu)"]
G --> M["Mini-batch GD (mini-batch)"]
M --> Mo["Momentum·NAG (họ quán tính)"]
M --> Ad["Họ tốc độ học thích ứng"]
Ad --> AG["AdaGrad"]
Ad --> RM["RMSProp"]
Ad --> AM["Adam·AdamW"]
style G fill:#e8f0fe,stroke:#2f6fed,stroke-width:2px
style AM fill:#fef7e8,stroke:#e0a800
Trước hết, hạ gradient được phân loại theo lượng dữ liệu dùng cho một lần cập nhật. Batch GD tính gradient trên toàn bộ dữ liệu nên hướng chính xác và hội tụ ổn định, nhưng dữ liệu càng lớn thì mỗi bước càng phải quét toàn bộ, rất chậm và tốn bộ nhớ. Ví dụ, với 1 triệu mẫu dữ liệu, để cập nhật tham số một lần phải lấy trung bình gradient của toàn bộ 1 triệu mẫu, nên chi phí cho mỗi bước là quá lớn.
Ngược lại, SGD (hạ gradient ngẫu nhiên) cập nhật theo từng mẫu nên rất nhanh và cho phép học trực tuyến (học ngay khi dữ liệu chảy vào), nhưng gradient của một mẫu là ước lượng rất thô của gradient toàn thể nên hướng đi dao động mạnh. Sự dao động này vừa là nhược điểm, vừa nghịch lý thay mang lại hiệu ứng chính quy hóa, lay động để thoát khỏi các cực tiểu cục bộ nông.
Mini-batch GD cập nhật theo các nhóm (batch) kích thước vừa phải như 32·64·256, cân bằng giữa tốc độ và tính ổn định, và là tiêu chuẩn trên thực tế của học sâu ngày nay. Gradient của một batch là ước lượng không chệch (unbiased) của gradient toàn thể nhưng ít nhiễu hơn SGD, và trên hết, phép toán ma trận theo đơn vị batch khớp hoàn hảo với khả năng xử lý song song quy mô lớn của GPU nên tận dụng phần cứng cao. Tức là mini-batch trở thành tiêu chuẩn vì cả lý do thống kê lẫn lý do phần cứng.
A. Họ quán tính (Momentum)
Momentum ra đời để giảm nhẹ vấn đề nhiễu của mini-batch và sự gồ ghề của địa hình. Giống như quán tính vật lý, nó tích lũy hướng cập nhật trước đó theo một tỷ lệ nhất định (thường là 0.9) rồi cộng vào lần cập nhật hiện tại. Nhờ vậy, theo hướng thoai thoải của thung lũng, tốc độ được tăng dần, còn các thành phần dao động trái phải triệt tiêu lẫn nhau và giảm đi. Kết quả là trên địa hình thung lũng hẹp và dài (ravine), mô hình trượt nhanh xuống đáy mà không đi zíc zắc.
Phiên bản cải tiến một bậc của momentum là NAG (Nesterov Accelerated Gradient). NAG tính gradient không phải tại vị trí hiện tại mà tại 'vị trí dự kiến sẽ tới trước' nhờ quán tính. Tức là nhìn trước một bước để hiệu chỉnh hướng, nên nếu có vẻ sắp vượt qua thung lũng thì giảm tốc trước, ức chế dao động tốt hơn. Nhờ tính chất 'nhìn trước (lookahead)' này, NAG được biết là có tốc độ hội tụ lý thuyết nhanh hơn trong bài toán lồi.
Họ quán tính cũng giúp thoát khỏi cực tiểu cục bộ·điểm yên ngựa. Tại điểm yên ngựa phẳng nơi gradient gần bằng 0, hạ gradient thuần túy sẽ dừng lại, nhưng nếu có quán tính thì có thể xuyên qua điểm đó với vận tốc trước đó. Tuy nhiên, quán tính quá lớn có thể vượt qua điểm cực tiểu và dao động trở lại, nên cần điều chỉnh đồng thời hệ số momentum và tốc độ học.
Một ví dụ thực tế: trong huấn luyện trên ImageNet — benchmark tiêu chuẩn của phân loại ảnh — các mô hình họ ResNet từ lâu đã được huấn luyện bằng tổ hợp 'SGD + Momentum (hệ số 0.9) + suy giảm tốc độ học theo bậc'. Chỉ với SGD thuần túy thì hội tụ chậm và dao động lớn, nhưng khi thêm momentum, mô hình tăng tốc ổn định dọc theo thung lũng mất mát hẹp và dài, hội tụ nhanh hơn và độ chính xác cuối cùng cũng được cải thiện. Đây là ví dụ tiêu biểu cho thấy quán tính không chỉ là kỹ thuật tăng tốc mà còn đóng góp vào hiệu năng tổng quát hóa cuối cùng.
B. Họ tốc độ học thích ứng (Adaptive)
Một trục cải tiến khác là điều chỉnh tốc độ học khác nhau cho từng tham số. AdaGrad chia tốc độ học cho tổng tích lũy bình phương gradient mà mỗi tham số đã nhận cho đến nay. Tham số được cập nhật thường xuyên sẽ giảm độ dài bước, còn tham số ít được cập nhật (ví dụ: embedding của từ hiếm) giữ độ dài bước lớn. Nhờ đó đặc biệt có lợi với dữ liệu thưa (sparse data). Tuy nhiên, vì tổng tích lũy chỉ tăng mãi, càng về sau tốc độ học càng giảm mạnh gần về 0, khiến việc học dừng sớm.
RMSProp giải quyết vấn đề giảm mạnh này. Thay vì tích lũy vô hạn bình phương gradient, nó áp dụng trung bình động có trọng số mũ cho các giá trị gần đây, dần quên quá khứ và điều chỉnh tốc độ học theo độ lớn gradient gần đây. Kết quả là vẫn duy trì độ dài bước hợp lý ở giai đoạn sau của quá trình học, hoạt động ổn định trên địa hình không dừng (non-stationary)·không lồi, và được dùng rộng rãi trong huấn luyện mạng nơ-ron hồi quy.
Adam (Adaptive Moment Estimation) là bộ tối ưu đa dụng được dùng rộng rãi nhất hiện nay, kết hợp Momentum (moment bậc 1, trung bình gradient) và RMSProp (moment bậc 2, trung bình bình phương gradient). Tức là đồng thời có quán tính của hướng đi và tốc độ học thích ứng theo từng tham số, lại có cả số hạng hiệu chỉnh độ chệch ở giai đoạn đầu. Chỉ với giá trị mặc định của siêu tham số (η=0.001, β₁=0.9, β₂=0.999), Adam hội tụ nhanh và ổn định trong hầu hết các bài toán nên trở thành lựa chọn mặc định của học sâu. Mặt khác, Adam có vấn đề áp dụng suy giảm trọng số (weight decay) không chính xác, nên AdamW — tách riêng và sửa lại điều này — đã trở thành tiêu chuẩn trên thực tế cho huấn luyện Transformer·mô hình ngôn ngữ lớn.
C. Trực giác về quy tắc cập nhật và siêu tham số
So sánh quy tắc cập nhật của ba họ tại cùng một chỗ sẽ làm rõ khác biệt. Hạ gradient thuần túy là θ ← θ − η·g (g là gradient), chỉ nhìn gradient hiện tại. Momentum là v ← βv + g; θ ← θ − η·v, tích lũy hướng quá khứ v. Họ thích ứng như θ ← θ − (η / √(tổng tích lũy bình phương gradient + ε))·g, đặt độ lớn gradient ở mẫu số để tự động điều chỉnh độ dài bước cho từng tham số. Có thể xem Adam là sự hợp nhất hai ý tưởng này trong một công thức.
Trong các công thức này, những "núm điều chỉnh" mà người làm thực tế chạm vào rốt cuộc là tốc độ học η, hệ số momentum β, và hằng số nhỏ ε để ổn định số học. η là 'độ dài bước' nên nhạy nhất, β thường hoạt động tốt quanh 0.9, còn ε (ví dụ: 1e-8) là cơ chế an toàn chống chia cho 0 nên không phải đối tượng tinh chỉnh lớn. Hiểu được mỗi siêu tham số đóng vai trò gì ở vị trí nào trong công thức cập nhật, ta có thể chẩn đoán cần điều chỉnh gì khi quá trình học phân kỳ hoặc đình trệ.
Tức là việc chọn bộ tối ưu được quy về quyết định thiết kế: "chỉ nhìn gradient hiện tại, cộng thêm hướng quá khứ như quán tính, chia độ dài bước theo từng tham số, hay hợp nhất cả ba". Với góc nhìn này, dù có bộ tối ưu mới xuất hiện, ta vẫn có thể nhanh chóng hiểu nó đã biến đổi trục nào trong ba trục này và theo cách nào.
3. So sánh theo loại
Bảng dưới đây tổng hợp nguyên lý và ưu nhược điểm theo từng họ. Tuy nhiên, bảng chỉ là tóm tắt; lựa chọn thực tế xuất phát từ sự hiểu biết về 'vì sao có sự khác biệt đó'.
| Thuật toán | Nguyên lý | Ưu điểm | Nhược điểm |
|---|---|---|---|
| Batch GD | Cập nhật bằng toàn bộ dữ liệu | Hội tụ chính xác·ổn định | Chậm với dữ liệu lớn·tốn bộ nhớ |
| SGD | Cập nhật theo từng mẫu | Nhanh·học trực tuyến | Hướng dao động mạnh |
| Mini-batch GD | Cập nhật theo đơn vị mini-batch | Cân bằng tốc độ·ổn định (tiêu chuẩn) | Cần tinh chỉnh kích thước batch |
| Momentum/NAG | Giảm dao động·tăng tốc nhờ quán tính | Tăng tốc hội tụ·thoát điểm yên ngựa | Thêm hệ số momentum |
| AdaGrad | Điều chỉnh tốc độ học bằng tích lũy bình phương gradient | Có lợi với dữ liệu thưa | Tốc độ học giảm mạnh·dừng sớm |
| RMSProp | Điều chỉnh tốc độ học bằng gradient gần đây | Khắc phục sự giảm mạnh của AdaGrad | Nhạy với giá trị mặc định của tốc độ học |
| Adam / AdamW | Momentum + RMSProp | Đa dụng·hội tụ nhanh | Có thể giảm khả năng tổng quát hóa (khắc phục bằng AdamW) |
Trong so sánh này, đối chiếu quan trọng nhất về mặt thực tiễn là Adam vs. SGD+Momentum. Adam hội tụ nhanh và ít nhạy với siêu tham số nên có lợi cho phát triển nguyên mẫu·lặp nghiên cứu. Ngược lại, với các tác vụ như phân loại ảnh, người ta biết rằng SGD+Momentum thường cho kết quả tốt hơn về khả năng tổng quát hóa cuối cùng (độ chính xác kiểm thử). Lý do được đưa ra là giả thuyết: nhiễu lớn của SGD dẫn mô hình tới 'cực tiểu phẳng và rộng (flat minima)' của địa hình mất mát, có lợi cho tổng quát hóa, trong khi Adam hội tụ vào cực tiểu hẹp và dốc, có nguy cơ quá khớp. Thực tế, việc trong huấn luyện ImageNet quy mô lớn, kết hợp SGD+Momentum với lịch trình tốc độ học từ lâu là tiêu chuẩn, còn với họ Transformer thì AdamW là tiêu chuẩn, cho thấy 'thuật toán tối ưu khác nhau tùy loại bài toán'.
Một ví dụ khác giúp cảm nhận rõ đối chiếu này là huấn luyện họ Transformer. Các mô hình như BERT·GPT có tham số cực kỳ bất ổn ở giai đoạn đầu nên gần như không thể hội tụ bằng SGD thuần túy, và chỉ học ổn định khi kết hợp AdamW với khởi động tuyến tính (ví dụ: tăng tuyến tính tốc độ học từ 0 đến giá trị mục tiêu trong 10 nghìn bước đầu) rồi suy giảm sau đó. Ngược lại, áp dụng nguyên thiết lập AdamW đó cho một CNN nhỏ có kết nối dư mạnh đôi khi lại cho độ chính xác kiểm thử thấp hơn SGD+Momentum vài điểm phần trăm. Như vậy, 'tổ hợp kiến trúc·dữ liệu·quy mô' quyết định thuật toán tối ưu, và nguyên tắc là tìm đáp án bằng thực nghiệm thông qua so sánh benchmark.
Đối chiếu đáng chú ý thứ hai là mối quan hệ giữa kích thước batch và tốc độ học. Tăng kích thước batch làm ước lượng gradient chính xác hơn và quá trình học ổn định hơn, nhưng nhiễu giảm nên khả năng tổng quát hóa có thể kém đi, còn hiệu quả song song thì tốt hơn. Theo kinh nghiệm, khi tăng kích thước batch lên k lần thì nên tăng tốc độ học khoảng k lần (co giãn tuyến tính) hoặc √k lần, bởi batch càng lớn thì hướng của mỗi bước càng đáng tin cậy nên có thể tăng độ dài bước. Trong huấn luyện phân tán quy mô lớn, khi tăng batch lên rất lớn với hàng nghìn GPU, quy tắc này được áp dụng cùng với khởi động (warmup).
4. Chuyên sâu: Lập lịch tốc độ học và xu hướng mới nhất
Trong thực tế, yếu tố quyết định hiệu năng tối ưu hóa không kém việc chọn thuật toán là lập lịch tốc độ học. Thay vì tốc độ học cố định, cách kết hợp khởi động (warmup) — tăng dần tốc độ học ở đầu — với suy giảm (decay) — giảm dần sau đó — được dùng rộng rãi. Warmup ngăn phân kỳ do bước lớn khi tham số còn bất ổn ở giai đoạn đầu, còn suy giảm ở giai đoạn sau như cosine annealing giúp thu nhỏ độ dài bước gần điểm cực tiểu để hội tụ chính xác. Trong huấn luyện Transformer, 'khởi động tuyến tính rồi suy giảm cosine' gần như đã trở thành quy trình tiêu chuẩn.
Về xu hướng gần đây, các bộ tối ưu nhắm tới huấn luyện mô hình lớn đang được nghiên cứu sôi nổi. LAMB·LARS điều chỉnh tốc độ học theo từng tầng để bảo đảm ổn định trong huấn luyện phân tán siêu lớn với kích thước batch lên tới hàng chục nghìn, được biết đến qua trường hợp rút ngắn đáng kể thời gian huấn luyện BERT. Ngoài ra, để giảm nhẹ vấn đề trạng thái bộ tối ưu (ước lượng moment) chiếm bộ nhớ gấp nhiều lần tham số, các kỹ thuật tiết kiệm bộ nhớ như 8-bit Adam — lượng tử hóa trạng thái bộ tối ưu xuống 8 bit — và Adafactor — xấp xỉ trạng thái bằng hạng thấp (low-rank) — được dùng trong huấn luyện mô hình ngôn ngữ lớn. Tất cả đều xuất phát từ yêu cầu thực tế "huấn luyện mô hình lớn hơn với tài nguyên hạn chế", cho thấy tối ưu hóa là lĩnh vực vượt ra ngoài lý thuyết đơn thuần, gắn chặt với hệ thống·phần cứng.
Ngoài ra, tối ưu hóa không thể tách rời khỏi chính quy hóa·khởi tạo·chuẩn hóa batch. Chuẩn hóa batch (BatchNorm) hay chuẩn hóa tầng (LayerNorm) làm trơn địa hình mất mát, cho phép dùng tốc độ học lớn hơn một cách an toàn, và khởi tạo trọng số hợp lý (He·Xavier) ngăn gradient biến mất·bùng nổ ở giai đoạn đầu, giúp tối ưu hóa khởi đầu suôn sẻ. Tức là kết quả tối ưu tốt không đến từ một thuật toán duy nhất mà từ sự kết hợp các yếu tố này.
Trong thực tế, việc quá trình học có diễn ra tốt hay không được chẩn đoán qua đường cong mất mát (loss curve). Nếu mất mát phân kỳ hoặc nhảy vọt đột ngột thì tốc độ học quá lớn; nếu giảm quá chậm thì tốc độ học nhỏ hoặc bị đình trệ cục bộ. Khi mất mát huấn luyện tiếp tục giảm nhưng mất mát kiểm định bắt đầu tăng trở lại, đó là tín hiệu quá khớp nên cần cân nhắc dừng sớm (early stopping). Như vậy, tối ưu hóa không phải 'thiết lập xong là xong' mà là công việc tinh chỉnh lặp đi lặp lại, quan sát quá trình học và điều chỉnh tốc độ học·batch·chính quy hóa theo phản hồi. Cảm giác phản hồi này là năng lực cốt lõi biến kiến thức về thuật toán tối ưu thành hiệu năng thực tế.
5. Các vấn đề cần cân nhắc và hàm ý
Mặc định thực tế là Adam/AdamW, nhưng cần cân nhắc loại bài toán. Nhờ hội tụ nhanh và ổn định, Adam/AdamW được ưu tiên chọn trong hầu hết học sâu, nhưng với các tác vụ coi trọng tổng quát hóa như phân loại ảnh, SGD+Momentum đôi khi cho hiệu năng kiểm thử tốt hơn. Với Transformer·LLM, AdamW là tiêu chuẩn trên thực tế. Từ quan điểm 'không có bộ tối ưu vạn năng', cần chiến lược lựa chọn·so sánh phù hợp với đặc tính tác vụ·dữ liệu.
Tốc độ học và lập lịch là siêu tham số quan trọng nhất. Nhiều trường hợp, độ lớn của tốc độ học và cách điều chỉnh theo thời gian (warmup·suy giảm cosine v.v.) quyết định hiệu năng hơn cả loại bộ tối ưu. Ưu tiên dồn nguồn lực cho việc dò tìm tốc độ học (LR range test) và thiết kế lịch trình là hiệu quả.
Tổng quát hóa là mối quan tâm cốt lõi hơn cực tiểu cục bộ·điểm yên ngựa. Trên địa hình không lồi nhiều chiều, vấn đề điểm yên ngựa và 'cực tiểu phẳng vs cực tiểu nhọn' mang tính bản chất hơn cực tiểu toàn cục hoàn hảo. Cần thoát điểm yên ngựa nhờ quán tính·tốc độ học thích ứng, nhưng không quên mục tiêu cuối cùng không phải cực tiểu hóa mất mát huấn luyện mà là hiệu năng kiểm định·kiểm thử (tổng quát hóa), và điều chỉnh cùng với dừng sớm·chính quy hóa.
Cân nhắc đồng thời ràng buộc tài nguyên và thiết kế tối ưu hóa. Với mô hình lớn, lượng bộ nhớ của trạng thái bộ tối ưu, kích thước batch·chi phí truyền thông khi huấn luyện phân tán, và tương tác với độ chính xác hỗn hợp (mixed precision) đều ảnh hưởng tới việc chọn bộ tối ưu. Hiểu các kỹ thuật tiết kiệm bộ nhớ như 8-bit Adam·Adafactor và quy tắc co giãn batch-tốc độ học quyết định thành bại của huấn luyện quy mô lớn.
Bảo đảm khả năng tái lập và quản lý thực nghiệm. Kết quả tối ưu hóa thay đổi theo khởi tạo ngẫu nhiên·thứ tự dữ liệu·cấu thành batch, nên việc quản lý có hệ thống qua cố định seed·ghi nhận siêu tham số·công cụ theo dõi thực nghiệm là bắt buộc. Từ góc nhìn Kỹ sư chuyên nghiệp (Professional Engineer), năng lực giải thích 'vì sao thuật toán đó phù hợp với bài toán đó' từ góc độ đánh đổi quan trọng hơn việc ghi nhớ từng thuật toán.
Tài liệu tham khảo
- Kingma & Ba, "Adam: A Method for Stochastic Optimization" — https://arxiv.org/abs/1412.6980
- Loshchilov & Hutter, "Decoupled Weight Decay Regularization (AdamW)" — https://arxiv.org/abs/1711.05101
- Ruder, "An overview of gradient descent optimization algorithms" — https://arxiv.org/abs/1609.04747
Tóm tắt một câu: Tối ưu hóa trong học máy là họ hạ gradient lặp đi lặp lại tìm tham số cực tiểu hóa mất mát theo hướng ngược gradient, với các đánh đổi về lượng dữ liệu sử dụng (Batch·SGD·Mini-batch)·quán tính (Momentum·NAG)·tốc độ học thích ứng (AdaGrad·RMSProp·Adam/AdamW); Adam/AdamW là mặc định đa dụng nhưng loại bài toán và lập lịch tốc độ học mới quyết định hiệu năng cuối cùng.