I. Giải thuật Gradient Nền tảng cho tối ưu không ràng buộc
Giải thuật Gradient, hay còn gọi là Gradient Descent, là một phương pháp lặp tối ưu hóa bậc nhất để tìm điểm cực tiểu địa phương của một hàm số. Đây là nền tảng của nhiều thuật toán phức tạp hơn trong lĩnh vực học máy (machine learning) và tối ưu hóa số. Ý tưởng chính của giải thuật là di chuyển từng bước nhỏ theo hướng ngược lại với vector gradient của hàm số tại điểm hiện tại. Hướng này được gọi là hướng dốc nhất (steepest descent), vì nó là hướng mà giá trị của hàm số giảm nhanh nhất. Quá trình này được lặp lại cho đến khi đạt được một điều kiện dừng (stopping condition), chẳng hạn như khi giá trị của gradient đủ gần bằng không hoặc khi giá trị của hàm mục tiêu (objective function) không còn cải thiện đáng kể. Đối với bài toán tối ưu không ràng buộc, mục tiêu là tìm giá trị của biến số để tối thiểu hóa một hàm mất mát (loss function) mà không có bất kỳ điều kiện nào giới hạn các biến đó. Theo luận văn của Dương Xuân Hiệp (2016), phương pháp lặp xây dựng một dãy điểm xk hội tụ đến nghiệm của bài toán, với mỗi điểm tiếp theo xk+1 được chọn sao cho f(xk+1) < f(xk). Đây chính là cốt lõi của các giải thuật giảm, nơi Gradient Descent đóng vai trò trung tâm. Sự thành công của phương pháp phụ thuộc nhiều vào việc lựa chọn tốc độ học (learning rate), một siêu tham số quyết định kích thước bước (step size) ở mỗi lần lặp. Một tốc độ học phù hợp đảm bảo điểm hội tụ (convergence) ổn định và hiệu quả.
1.1. Khám phá bài toán tối ưu hóa không ràng buộc là gì
Một bài toán tối ưu hóa không ràng buộc là bài toán tìm giá trị cực tiểu (hoặc cực đại) của một hàm mục tiêu f(x) trên toàn bộ không gian xác định của nó, thường là Rn, mà không có bất kỳ giới hạn nào đối với các biến x. Điều này khác với các bài toán có ràng buộc, nơi các biến phải thỏa mãn một tập hợp các phương trình hoặc bất phương trình. Trong học máy, các bài toán này rất phổ biến, ví dụ như việc tối thiểu hóa hàm mất mát trong mô hình hồi quy tuyến tính (linear regression) hoặc mạng nơ-ron (neural network). Mục tiêu là tìm ra bộ tham số (trọng số) của mô hình để sai số dự đoán trên tập dữ liệu huấn luyện là nhỏ nhất. Điều kiện cần bậc nhất cho một điểm x* là điểm cực tiểu địa phương là gradient của hàm tại điểm đó phải bằng không, ∇f(x*) = 0. Đây là cơ sở lý thuyết để các giải thuật như Gradient Descent hoạt động, bằng cách cố gắng tìm ra điểm có gradient bằng không.
1.2. Ý tưởng cốt lõi của phương pháp hướng dốc nhất
Phương pháp hướng dốc nhất (steepest descent) là tên gọi khác của giải thuật Gradient cơ bản. Ý tưởng này dựa trên một thực tế toán học: vector gradient ∇f(x) tại một điểm x bất kỳ luôn chỉ về hướng mà hàm f(x) tăng nhanh nhất. Do đó, để giảm giá trị của hàm f(x) một cách hiệu quả nhất, ta cần di chuyển theo hướng ngược lại, tức là -∇f(x). Mỗi bước lặp của giải thuật được thực hiện bằng cách cập nhật vị trí hiện tại xk theo công thức: xk+1 = xk - α∇f(xk), trong đó α là tốc độ học. Việc lựa chọn hướng -∇f(xk) đảm bảo rằng với một kích thước bước đủ nhỏ, giá trị của hàm mục tiêu sẽ luôn giảm, f(xk+1) < f(xk). Luận văn của Dương Xuân Hiệp nhấn mạnh rằng, để đảm bảo điều kiện này, chúng ta cần ∇f(xk)dk < 0, với dk là hướng di chuyển. Việc chọn dk = -∇f(xk) thỏa mãn điều kiện này một cách tự nhiên.
1.3. Vector gradient và đạo hàm riêng trong tối ưu hóa
Vector gradient, ký hiệu là ∇f(x), của một hàm đa biến f(x) là một vector chứa tất cả các đạo hàm riêng (partial derivative) của hàm đó theo từng biến. Ví dụ, với hàm f(x1, x2), vector gradient sẽ là [∂f/∂x1, ∂f/∂x2]. Mỗi thành phần của gradient cho biết tốc độ thay đổi của hàm số theo hướng của trục tọa độ tương ứng. Trong bối cảnh tối ưu hóa, gradient đóng vai trò như một la bàn chỉ đường. Độ lớn của gradient cho biết độ dốc của bề mặt hàm số tại điểm hiện tại; gradient càng lớn, độ dốc càng cao. Hướng của gradient chỉ ra con đường dốc nhất đi lên. Bằng cách tính toán vector gradient, giải thuật Gradient Descent có thể xác định được hướng đi xuống dốc nhất để tiến gần hơn đến điểm cực tiểu.
II. Các thách thức chính khi dùng giải thuật Gradient Descent
Mặc dù giải thuật Gradient Descent có tính trực quan và dễ triển khai, nó phải đối mặt với nhiều thách thức đáng kể trong thực tế. Thách thức lớn nhất là sự tồn tại của các cực tiểu địa phương (local minimum) và điểm yên ngựa (saddle point). Giải thuật chỉ đảm bảo hội tụ về một điểm cực tiểu địa phương, không nhất thiết là cực tiểu toàn cục (global minimum) – giá trị nhỏ nhất tuyệt đối của hàm số. Kết quả cuối cùng phụ thuộc rất nhiều vào điểm khởi tạo. Một vấn đề khác là lựa chọn tốc độ học. Nếu kích thước bước quá lớn, giải thuật có thể "nhảy" qua điểm cực tiểu và phân kỳ. Ngược lại, nếu quá nhỏ, quá trình hội tụ sẽ rất chậm, tốn kém tài nguyên tính toán. Hơn nữa, hình dạng của bề mặt hàm mất mát cũng ảnh hưởng lớn đến hiệu suất. Nếu bề mặt có dạng hẻm núi hẹp và dài (ill-conditioned), giải thuật sẽ dao động qua lại giữa các vách núi và tiến rất chậm về phía đáy. Trong bài toán tối ưu lồi (convex optimization), những vấn đề này ít nghiêm trọng hơn vì cực tiểu địa phương duy nhất cũng chính là cực tiểu toàn cục. Tuy nhiên, hầu hết các bài toán phức tạp trong học máy, đặc biệt là với mạng nơ-ron sâu, đều không lồi, khiến việc tối ưu hóa trở thành một thách thức thực sự.
2.1. Phân biệt cực tiểu địa phương và cực tiểu toàn cục
Một điểm x* được gọi là cực tiểu địa phương nếu giá trị của hàm tại đó, f(x*), nhỏ hơn giá trị tại tất cả các điểm lân cận nó. Tuy nhiên, có thể tồn tại một điểm khác x** ở một vùng khác của không gian tìm kiếm có giá trị f(x**) còn nhỏ hơn f(x*). Điểm x** này có thể là một cực tiểu địa phương khác hoặc là cực tiểu toàn cục. Cực tiểu toàn cục là điểm có giá trị hàm số nhỏ nhất trên toàn bộ miền xác định. Giải thuật Gradient Descent là một giải thuật "tham lam" cục bộ, nó chỉ nhìn vào thông tin độ dốc tại điểm hiện tại để quyết định bước đi tiếp theo. Do đó, nó có thể dễ dàng bị "mắc kẹt" trong một thung lũng (cực tiểu địa phương) mà không thể thoát ra để tìm kiếm các thung lũng sâu hơn. Việc lựa chọn điểm khởi đầu ngẫu nhiên và chạy thuật toán nhiều lần là một chiến lược phổ biến để tăng khả năng tìm thấy cực tiểu toàn cục.
2.2. Vấn đề điểm yên ngựa saddle point và cách xử lý
Một điểm yên ngựa là một điểm mà tại đó gradient bằng không, nhưng nó không phải là điểm cực trị (cực tiểu hay cực đại). Tại điểm này, hàm số có dạng cong lên theo một hướng và cong xuống theo hướng khác, giống như hình yên ngựa. Đối với các hàm số có số chiều cao, chẳng hạn như hàm mất mát của mạng nơ-ron, các điểm yên ngựa phổ biến hơn nhiều so với các điểm cực tiểu địa phương. Vấn đề là tại các vùng lân cận điểm yên ngựa, gradient rất nhỏ, làm cho Gradient Descent di chuyển cực kỳ chậm, tạo ảo giác về sự hội tụ. Các biến thể của Gradient Descent như Momentum hay Adam được thiết kế để giúp thuật toán vượt qua các điểm yên ngựa hiệu quả hơn bằng cách tích lũy "đà" từ các bước trước đó.
2.3. Tầm quan trọng của tốc độ học learning rate phù hợp
Tốc độ học (learning rate), hay kích thước bước, là một trong những siêu tham số quan trọng nhất của giải thuật Gradient Descent. Nó kiểm soát mức độ cập nhật các trọng số của mô hình ở mỗi lần lặp. Việc chọn một giá trị phù hợp là rất quan trọng. Nếu tốc độ học quá lớn, thuật toán có thể không ổn định; các bước cập nhật sẽ quá lớn, khiến nó "nhảy" qua điểm cực tiểu và thậm chí có thể phân kỳ (giá trị hàm mất mát tăng lên). Ngược lại, nếu tốc độ học quá nhỏ, thuật toán sẽ hội tụ rất chậm, đòi hỏi nhiều lần lặp và thời gian tính toán. Tìm ra tốc độ học tối ưu thường đòi hỏi thực nghiệm, thông qua các kỹ thuật như tìm kiếm lưới (grid search) hoặc sử dụng các lịch trình thay đổi tốc độ học (learning rate schedules), giảm dần tốc độ học khi quá trình huấn luyện tiến triển.
III. Hướng dẫn chi tiết cách hoạt động của Gradient Descent
Quá trình hoạt động của giải thuật Gradient Descent có thể được chia thành các bước tuần tự và lặp đi lặp lại. Đây là một phương pháp tìm kiếm lời giải cho bài toán tối ưu không ràng buộc một cách có hệ thống. Toàn bộ quy trình dựa trên việc tính toán vector gradient và cập nhật các tham số theo hướng ngược lại. Luận văn của Dương Xuân Hiệp (2016) đã hệ thống hóa quy trình này như một giải thuật lặp, trong đó điểm tiếp theo được tạo ra từ điểm trước đó nhằm giảm dần giá trị của hàm mục tiêu. Cụ thể, giải thuật bao gồm ba giai đoạn chính: khởi tạo, vòng lặp cập nhật và kiểm tra điều kiện dừng. Trong vòng lặp, bước quan trọng nhất là tính toán đạo hàm riêng của hàm mất mát theo từng tham số. Sau đó, các tham số được cập nhật đồng thời. Việc lựa chọn kích thước bước có thể được thực hiện theo nhiều cách, từ việc sử dụng một giá trị hằng số đến các phương pháp phức tạp hơn như quy tắc Armijo hay Goldstein, nhằm đảm bảo sự hội tụ hiệu quả và tránh các vấn đề đã nêu ở phần trước. Quá trình này tiếp diễn cho đến khi điểm hội tụ được xác định, báo hiệu rằng giải thuật đã tìm thấy một điểm cực tiểu (thường là cục bộ).
3.1. Quy trình cập nhật trọng số theo vector gradient
Quy trình cập nhật trọng số là trái tim của Gradient Descent. Giả sử mô hình có các tham số θ = [θ₀, θ₁, ..., θₙ]. Tại mỗi bước lặp thứ k, quy trình diễn ra như sau:
- Tính toán Gradient: Tính vector gradient của hàm mất mát J(θ) tại điểm tham số hiện tại θₖ, tức là ∇J(θₖ). Vector này chứa các đạo hàm riêng ∂J/∂θⱼ cho mỗi tham số θⱼ.
- Cập nhật Tham số: Cập nhật mỗi tham số θⱼ theo công thức: θⱼ,ₖ₊₁ = θⱼ,ₖ - α * (∂J/∂θⱼ)|θₖ. Trong đó, α là tốc độ học. Bước này thực chất là di chuyển điểm tham số một đoạn nhỏ theo hướng ngược lại với gradient. Tất cả các tham số phải được cập nhật đồng thời, nghĩa là gradient được tính dựa trên giá trị của tất cả các tham số ở bước k trước khi bất kỳ tham số nào được cập nhật lên bước k+1.
3.2. Lựa chọn kích thước bước với quy tắc Armijo và Goldstein
Việc chọn một kích thước bước (α) cố định không phải lúc nào cũng hiệu quả. Các phương pháp tìm kiếm theo đường không chính xác (inexact line search) được phát triển để tìm α một cách linh hoạt. Luận văn của Dương Xuân Hiệp (2016) đã đề cập đến hai quy tắc phổ biến:
- Quy tắc Armijo: Đảm bảo rằng bước đi không quá lớn, bằng cách yêu cầu giá trị hàm mục tiêu phải có sự sụt giảm đủ lớn so với dự kiến. Cụ thể, α phải thỏa mãn điều kiện f(xₖ + αdₖ) ≤ f(xₖ) + c₁α∇f(xₖ)ᵀdₖ với c₁ là một hằng số nhỏ (ví dụ 0.0001).
- Quy tắc Goldstein: Đặt ra cả điều kiện chặn trên và chặn dưới cho α, đảm bảo bước đi không quá lớn cũng không quá nhỏ. Quy tắc này phức tạp hơn nhưng có thể mang lại sự hội tụ ổn định hơn trong một số trường hợp. Những quy tắc này giúp tự động hóa việc chọn tốc độ học ở mỗi bước, làm cho giải thuật trở nên mạnh mẽ hơn.
3.3. Điều kiện dừng stopping condition cho giải thuật
Một vòng lặp vô tận là vô ích. Do đó, cần có một điều kiện dừng rõ ràng để kết thúc quá trình lặp của Gradient Descent. Có một số tiêu chí phổ biến được sử dụng:
- Số lần lặp tối đa: Đặt trước một số lượng vòng lặp tối đa. Đây là cách đơn giản nhất để đảm bảo thuật toán sẽ kết thúc.
- Ngưỡng hội tụ của Gradient: Dừng lại khi độ lớn (chuẩn) của vector gradient nhỏ hơn một giá trị ngưỡng rất nhỏ (epsilon). Điều này cho thấy thuật toán đã tiến đến một vùng phẳng, có thể là một cực tiểu địa phương hoặc điểm yên ngựa. |∇J(θ)| < ε.
- Thay đổi của hàm mất mát: Dừng lại khi sự cải thiện của hàm mất mát giữa hai lần lặp liên tiếp là không đáng kể. |J(θₖ₊₁) - J(θₖ)| < ε. Việc kết hợp nhiều điều kiện dừng thường mang lại kết quả tốt nhất.
IV. Top 3 biến thể phổ biến của giải thuật Gradient Descent
Để giải quyết các hạn chế của giải thuật Gradient Descent tiêu chuẩn, đặc biệt là về hiệu quả tính toán và khả năng thoát khỏi các điểm cực tiểu địa phương, nhiều biến thể đã được phát triển. Ba biến thể nổi bật và được sử dụng rộng rãi nhất là Batch Gradient Descent, Stochastic Gradient Descent (SGD), và Mini-batch Gradient Descent. Mỗi biến thể có cách tiếp cận khác nhau trong việc sử dụng dữ liệu để tính toán vector gradient, dẫn đến sự đánh đổi giữa độ chính xác của gradient, tốc độ cập nhật và sự ổn định của quá trình hội tụ. Batch Gradient Descent tính toán gradient dựa trên toàn bộ tập dữ liệu, mang lại hướng đi chính xác nhất nhưng lại rất chậm với dữ liệu lớn. SGD cập nhật tham số sau mỗi điểm dữ liệu, nhanh hơn nhiều nhưng gây ra nhiều nhiễu trong quá trình hội tụ. Mini-batch Gradient Descent là một giải pháp cân bằng, kết hợp ưu điểm của cả hai phương pháp trên. Việc lựa chọn biến thể nào phụ thuộc vào kích thước của bài toán, tài nguyên tính toán và các đặc tính của hàm mục tiêu.
4.1. Batch Gradient Descent Độ chính xác và chi phí tính toán
Batch Gradient Descent là phiên bản gốc của giải thuật. Trong mỗi lần lặp, nó tính toán gradient của hàm mất mát bằng cách sử dụng toàn bộ tập dữ liệu huấn luyện. Điều này có nghĩa là mỗi bước cập nhật tham số đều dựa trên thông tin đầy đủ nhất có thể. Ưu điểm của phương pháp này là quá trình hội tụ mượt mà và ổn định, hướng cập nhật là hướng giảm thực sự của tổng hàm mất mát. Tuy nhiên, nhược điểm lớn nhất là chi phí tính toán. Với các tập dữ liệu lớn (hàng triệu điểm dữ liệu), việc tính toán gradient trên toàn bộ dữ liệu ở mỗi bước lặp trở nên cực kỳ chậm và đòi hỏi bộ nhớ lớn, khiến nó không thực tế cho nhiều ứng dụng học máy hiện đại.
4.2. Stochastic Gradient Descent SGD cho dữ liệu lớn
Stochastic Gradient Descent (SGD) có cách tiếp cận hoàn toàn trái ngược. Thay vì dùng toàn bộ dữ liệu, SGD cập nhật các tham số của mô hình sau khi xử lý chỉ một điểm dữ liệu duy nhất (hoặc một vài điểm). Cụ thể, tại mỗi bước, thuật toán chọn ngẫu nhiên một mẫu dữ liệu, tính gradient trên mẫu đó và cập nhật tham số. Điều này làm cho mỗi lần lặp nhanh hơn rất nhiều, cho phép thuật toán thực hiện nhiều lần cập nhật hơn trong cùng một khoảng thời gian. Quá trình hội tụ của SGD có nhiều nhiễu và dao động mạnh, nhưng chính sự dao động này lại có thể giúp nó thoát khỏi các cực tiểu địa phương nông và tìm được lời giải tốt hơn. SGD là lựa chọn phổ biến cho các bài toán với tập dữ liệu khổng lồ.
4.3. Mini batch Gradient Descent Sự kết hợp hoàn hảo
Mini-batch Gradient Descent là giải pháp dung hòa giữa Batch Gradient Descent và SGD. Thay vì dùng toàn bộ tập dữ liệu hoặc chỉ một điểm, phương pháp này chia tập dữ liệu thành các lô nhỏ (mini-batches) có kích thước từ vài chục đến vài trăm mẫu. Tại mỗi lần lặp, giải thuật tính toán gradient trên một mini-batch và cập nhật tham số. Phương pháp này mang lại nhiều lợi ích: nó giảm thiểu sự dao động của SGD, giúp quá trình hội tụ ổn định hơn; đồng thời, nó hiệu quả về mặt tính toán hơn nhiều so với Batch Gradient Descent. Ngoài ra, việc tính toán trên mini-batch cho phép tận dụng khả năng tính toán song song của các phần cứng hiện đại như GPU. Đây là biến thể được sử dụng phổ biến nhất trong việc huấn luyện các mô hình học máy sâu.
V. Ứng dụng thực tiễn của giải thuật Gradient trong học máy
Giải thuật Gradient và các biến thể của nó là công cụ không thể thiếu trong lĩnh vực học máy (machine learning) hiện đại. Hầu hết các mô hình học máy, từ đơn giản đến phức tạp, đều có thể được coi là một bài toán tối ưu không ràng buộc, trong đó mục tiêu là tìm ra bộ tham số mô hình để tối thiểu hóa một hàm mất mát (loss function). Gradient Descent chính là phương pháp được sử dụng để thực hiện việc tối ưu hóa này. Trong mô hình hồi quy tuyến tính (linear regression), nó được dùng để tìm ra đường thẳng phù hợp nhất với dữ liệu. Đối với hồi quy logistic, nó giúp tìm ra ranh giới phân loại. Đặc biệt, trong lĩnh vực học sâu, Gradient Descent (chủ yếu là biến thể Mini-batch và các phiên bản cải tiến như Adam, RMSprop) là nền tảng cho việc huấn luyện các mạng nơ-ron (neural network) phức tạp với hàng triệu, thậm chí hàng tỷ tham số. Bất kỳ khi nào cần điều chỉnh các tham số của một mô hình để giảm sai số, Gradient Descent đều có thể được áp dụng, biến nó thành một trong những giải thuật quan trọng và có tầm ảnh hưởng nhất trong khoa học dữ liệu.
5.1. Huấn luyện mô hình hồi quy tuyến tính linear regression
Trong hồi quy tuyến tính, mục tiêu là tìm một đường thẳng (hoặc siêu phẳng) y = θ₀ + θ₁x₁ + ... + θₙxₙ mô tả tốt nhất mối quan hệ giữa các biến đầu vào và biến đầu ra. Để làm được điều này, người ta định nghĩa một hàm mất mát, thường là tổng bình phương sai số (Mean Squared Error - MSE), đo lường sự khác biệt giữa giá trị dự đoán và giá trị thực tế. Bài toán tối ưu lúc này là tìm các giá trị tham số θ để MSE đạt giá trị nhỏ nhất. Gradient Descent được áp dụng bằng cách tính đạo hàm riêng của hàm MSE theo từng tham số θⱼ, sau đó cập nhật các tham số này theo hướng ngược lại của gradient cho đến khi hàm mất mát hội tụ. Đây là một ví dụ kinh điển và dễ hiểu nhất về ứng dụng của giải thuật này.
5.2. Tối ưu hàm mất mát loss function cho mạng nơ ron
Huấn luyện một mạng nơ-ron là một bài toán tối ưu cực kỳ phức tạp. Hàm mất mát của mạng nơ-ron thường có số chiều rất cao và bề mặt vô cùng phức tạp với vô số cực tiểu địa phương và điểm yên ngựa. Quá trình huấn luyện, được gọi là lan truyền ngược (backpropagation), về cơ bản là một cách hiệu quả để tính toán vector gradient của hàm mất mát theo tất cả các trọng số trong mạng. Sau khi có được gradient, các biến thể của Gradient Descent như SGD hoặc Mini-batch Gradient Descent, kết hợp với các trình tối ưu hóa tiên tiến (Adam, Adagrad), được sử dụng để cập nhật hàng triệu trọng số này. Nếu không có Gradient Descent, việc huấn luyện các mô hình học sâu hiện đại gần như là không thể.
5.3. Vai trò trong các bài toán tối ưu lồi convex optimization
Một bài toán tối ưu lồi là bài toán mà trong đó hàm mục tiêu là một hàm lồi và tập ràng buộc (nếu có) là một tập lồi. Ưu điểm lớn của các bài toán này là bất kỳ cực tiểu địa phương nào cũng là cực tiểu toàn cục. Điều này loại bỏ một trong những thách thức lớn nhất của Gradient Descent. Khi áp dụng cho các bài toán tối ưu lồi, Gradient Descent được đảm bảo sẽ hội tụ về nghiệm tối ưu toàn cục, miễn là tốc độ học được chọn phù hợp. Nhiều bài toán trong học máy như hồi quy Ridge, Lasso, và máy vector hỗ trợ (SVM) là các bài toán tối ưu lồi. Trong những trường hợp này, Gradient Descent không chỉ hiệu quả mà còn mang lại lời giải đáng tin cậy về mặt lý thuyết.
VI. Tổng kết và tương lai của các giải thuật tối ưu Gradient
Giải thuật Gradient đã và đang là xương sống của các phương pháp tối ưu hóa trong học máy và nhiều lĩnh vực khoa học khác. Sự đơn giản, hiệu quả và khả năng mở rộng của nó, đặc biệt qua các biến thể như SGD và Mini-batch Gradient Descent, đã cho phép giải quyết các bài toán tối ưu không ràng buộc với quy mô chưa từng có. Tuy nhiên, những thách thức như lựa chọn tốc độ học, vấn đề cực tiểu địa phương và điểm yên ngựa vẫn còn tồn tại. Tương lai của các giải thuật tối ưu dựa trên gradient đang hướng tới việc giải quyết những vấn đề này một cách tự động và hiệu quả hơn. Các phương pháp tối ưu hóa thích ứng (adaptive optimization methods) như Adagrad, RMSprop và Adam đã trở thành tiêu chuẩn trong học sâu, vì chúng tự động điều chỉnh tốc độ học cho từng tham số. Nghiên cứu cũng đang khám phá các phương pháp bậc hai, sử dụng thông tin từ ma trận Hessian để có được sự hội tụ nhanh hơn và chính xác hơn, mặc dù chi phí tính toán vẫn là một rào cản lớn. Sự phát triển không ngừng của lĩnh vực này hứa hẹn sẽ mang lại những công cụ tối ưu hóa mạnh mẽ hơn nữa.
6.1. Đánh giá ưu điểm và hạn chế của phương pháp Gradient
Ưu điểm:
- Đơn giản và dễ triển khai: Ý tưởng cốt lõi của Gradient Descent rất trực quan.
- Hiệu quả về bộ nhớ: Các biến thể như SGD chỉ yêu cầu lưu trữ một phần nhỏ dữ liệu tại một thời điểm, phù hợp cho các tập dữ liệu lớn.
- Khả năng mở rộng tốt: Dễ dàng áp dụng cho các bài toán có số lượng tham số khổng lồ, như trong mạng nơ-ron sâu. Hạn chế:
- Nhạy cảm với tốc độ học: Việc lựa chọn tốc độ học phù hợp đòi hỏi kinh nghiệm và thử nghiệm.
- Dễ mắc kẹt ở cực tiểu địa phương: Không đảm bảo tìm thấy nghiệm tối ưu toàn cục trong các bài toán không lồi.
- Hội tụ chậm: Có thể hội tụ chậm trên các bề mặt hàm mất mát có điều kiện xấu hoặc gần các điểm yên ngựa.
6.2. Hướng nghiên cứu mới Ma trận Hessian và phương pháp bậc hai
Các phương pháp dựa trên gradient là phương pháp bậc nhất vì chúng chỉ sử dụng thông tin từ đạo hàm bậc nhất (vector gradient). Các phương pháp bậc hai, chẳng hạn như phương pháp Newton, sử dụng cả thông tin từ đạo hàm bậc hai, được biểu diễn qua ma trận Hessian. Ma trận Hessian mô tả độ cong của bề mặt hàm số, cho phép các bước đi thông minh và trực tiếp hơn về phía điểm cực tiểu. Về lý thuyết, các phương pháp này có điểm hội tụ nhanh hơn nhiều so với Gradient Descent. Tuy nhiên, việc tính toán, lưu trữ và nghịch đảo ma trận Hessian (một ma trận N×N, với N là số lượng tham số) có chi phí tính toán cực kỳ cao (O(N³)), khiến chúng không khả thi cho các mô hình lớn. Hướng nghiên cứu hiện tại tập trung vào việc phát triển các phương pháp "quasi-Newton", như L-BFGS, nhằm xấp xỉ ma trận Hessian một cách hiệu quả để kết hợp tốc độ của phương pháp bậc hai với chi phí tính toán hợp lý của phương pháp bậc nhất.