Thuật ngữ

Giảm độ dốc

Khám phá cách Gradient Descent tối ưu hóa các mô hình AI như Ultralytics YOLO , cho phép dự đoán chính xác các nhiệm vụ từ chăm sóc sức khỏe đến xe tự lái.

Xe lửa YOLO mô hình đơn giản
với Ultralytics TRUNG TÂM

Tìm hiểu thêm

Gradient Descent là một thuật toán tối ưu hóa cơ bản được sử dụng rộng rãi trong học máy (ML) và trí tuệ nhân tạo (AI). Nó đóng vai trò là phương pháp chính để đào tạo nhiều mô hình, bao gồm các kiến trúc học sâu phức tạp như Ultralytics YOLO . Mục tiêu của Gradient Descent là điều chỉnh lặp đi lặp lại các tham số bên trong của mô hình (thường được gọi là trọng số và độ lệch của mô hình ) để giảm thiểu hàm mất mát , đo lường sự khác biệt giữa các dự đoán của mô hình và các giá trị mục tiêu thực tế. Hãy tưởng tượng bạn cố gắng tìm điểm thấp nhất trong một thung lũng trong khi bị bịt mắt; Gradient Descent hướng dẫn bạn bằng cách đánh giá độ dốc (gradient) tại vị trí hiện tại của bạn và thực hiện các bước nhỏ theo hướng xuống dốc nhất. Quá trình lặp đi lặp lại này cho phép các mô hình học hỏi từ dữ liệu và cải thiện độ chính xác dự đoán của chúng.

Sự liên quan trong Học máy

Gradient Descent đặc biệt quan trọng đối với việc đào tạo các mô hình phức tạp như mạng nơ-ron (NN) tạo thành cơ sở của nhiều ứng dụng AI hiện đại. Các mô hình này, bao gồm cả những mô hình được sử dụng để phát hiện đối tượng , phân loại hình ảnhxử lý ngôn ngữ tự nhiên (NLP) , thường có hàng triệu hoặc thậm chí hàng tỷ tham số cần được tối ưu hóa. Gradient Descent, cùng với các biến thể của nó, cung cấp một cách khả thi về mặt tính toán để điều hướng bối cảnh mất mát phức tạp (bề mặt nhiều chiều biểu thị giá trị mất mát cho tất cả các kết hợp tham số có thể) và tìm các giá trị tham số mang lại hiệu suất tốt. Nếu không có quá trình tối ưu hóa hiệu quả thông qua Gradient Descent, việc đào tạo các mô hình lớn này ở mức độ chính xác cao sẽ là không thực tế. Các khuôn khổ ML chính như PyTorchTensorFlow phụ thuộc rất nhiều vào các triển khai khác nhau của Gradient Descent và các thuật toán liên quan như truyền ngược để tính toán các gradient cần thiết. Bạn có thể khám phá các mẹo đào tạo mô hình để biết thông tin chi tiết về cách tối ưu hóa quy trình này.

Các khái niệm chính và các biến thể

Ý tưởng cốt lõi của Gradient Descent liên quan đến việc tính toán gradient (hướng dốc nhất) của hàm mất mát đối với các tham số mô hình và sau đó thực hiện một bước theo hướng ngược lại (xuống dốc). Kích thước của bước này được kiểm soát bởi tốc độ học , một siêu tham số quan trọng xác định tốc độ học của mô hình. Tốc độ học quá nhỏ có thể dẫn đến hội tụ chậm, trong khi tốc độ học quá lớn có thể khiến quá trình tối ưu hóa vượt quá giá trị tối thiểu hoặc thậm chí phân kỳ. Có một số biến thể của Gradient Descent, chủ yếu khác nhau về lượng dữ liệu được sử dụng để tính toán gradient tại mỗi bước:

  • Batch Gradient Descent (BGD) : Tính toán gradient bằng cách sử dụng toàn bộ tập dữ liệu đào tạo. Điều này cung cấp ước tính gradient chính xác nhưng có thể rất tốn kém và chậm về mặt tính toán đối với các tập dữ liệu lớn.
  • Stochastic Gradient Descent (SGD) : Cập nhật các tham số bằng cách sử dụng gradient được tính toán từ chỉ một ví dụ đào tạo duy nhất tại mỗi bước. Nhanh hơn nhiều và có thể thoát khỏi các cực tiểu cục bộ nông, nhưng các bản cập nhật bị nhiễu, dẫn đến đường hội tụ kém ổn định hơn.
  • Mini-batch Gradient Descent : Một sự thỏa hiệp giữa BGD và SGD. Nó tính toán gradient bằng cách sử dụng một tập hợp con ngẫu nhiên nhỏ (mini-batch) của dữ liệu đào tạo (được kiểm soát bởi siêu tham số kích thước lô ). Điều này cân bằng độ chính xác của BGD với hiệu quả của SGD và là biến thể phổ biến nhất được sử dụng trong học sâu.
  • Adaptive Optimizers : Các thuật toán như Adam ( liên kết bài báo ), Adagrad và RMSprop tự động điều chỉnh tốc độ học cho từng tham số trong quá trình đào tạo, thường dẫn đến sự hội tụ nhanh hơn và hiệu suất tốt hơn so với SGD cơ bản hoặc Mini-batch GD. Chúng thường được sử dụng trong các nền tảng như Ultralytics HUB để đào tạo các mô hình. Bạn có thể tìm thêm thông tin chi tiết về các biến thể trên trang Wikipedia Gradient Descent .

Sự khác biệt từ các khái niệm liên quan

Gradient Descent là một loại thuật toán tối ưu hóa cụ thể, tập trung vào việc giảm thiểu lặp đi lặp lại một hàm mất mát bằng cách điều chỉnh các tham số mô hình bằng cách sử dụng gradient. Nó khác với các khái niệm quan trọng khác trong đào tạo mô hình:

Ứng dụng trong thế giới thực

Gradient Descent là công cụ đằng sau các mô hình đào tạo cho vô số ứng dụng AI trong thế giới thực, cho phép các mô hình học hỏi từ lượng dữ liệu khổng lồ trong các tình huống học có giám sát và hơn thế nữa:

  1. Phân tích hình ảnh y tế: Trong AI trong chăm sóc sức khỏe , Gradient Descent đào tạo Mạng nơ-ron tích chập (CNN) cho các tác vụ như phân tích hình ảnh y tế . Ví dụ, nó tối ưu hóa các mô hình để phát hiện khối u hoặc bất thường trong X-quang, chụp CT hoặc MRI bằng cách giảm thiểu sự khác biệt giữa phân đoạn hoặc phân loại dự đoán của mô hình và sự thật cơ bản do các bác sĩ X quang cung cấp ( xem bài đăng trên blog ví dụ ). Các tạp chí như Radiology: Artificial Intelligence giới thiệu những tiến bộ như vậy.
  2. Hệ thống đề xuất: Các công ty như NetflixAmazon sử dụng thuật toán đề xuất được đào tạo bằng Gradient Descent. Các thuật toán này tìm hiểu sở thích của người dùng và các tính năng của mục bằng cách giảm thiểu hàm mất mát dự đoán xếp hạng của người dùng hoặc khả năng tương tác, cho phép họ đề xuất các bộ phim, sản phẩm hoặc nội dung có liên quan.
  3. Xe tự hành: Các mô hình được sử dụng trong xe tự hành cho các nhiệm vụ nhận thức, chẳng hạn như xác định người đi bộ, ô tô và làn đường giao thông bằng hộp giới hạn , được đào tạo bằng Gradient Descent. Tối ưu hóa này rất quan trọng đối với sự an toàn và độ tin cậy của công nghệ tự lái, như được thấy trong các hệ thống do các công ty như Waymo phát triển. Điều này có liên quan cao đến AI trong ô tô .
Đọc tất cả