Phương pháp Gradient Descent và Ứng dụng trong Dự đoán & Nhận dạng (ĐH Kinh Tế Huế)

Tìm hiểu phương pháp Gradient Descent, thuật toán tối ưu quan trọng trong Machine Learning. Ứng dụng trong dự đoán và nhận dạng, giúp mô hình học hiệu quả hơn.

Người đăng

Ẩn danh

Thể loại

Khóa luận tốt nghiệp

2019

66
0
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. MỞ ĐẦU

1.1. Giới thiệu về Machine Learning

1.2. Lý do chọn đề tài

1.3. Mục tiêu của đề tài

1.4. Phương pháp nghiên cứu

1.5. Kết cấu đề tài

2. CƠ SỞ LÝ THUYẾT CỦA PHƯƠNG PHÁP GRADIENT DESCENT

2.1. Giới thiệu phương pháp Gradient Descent

2.2. Gradient Descent với hàm một biến

2.3. Gradient Descent cho hàm nhiều biến

2.4. Giải thuật và cách thực thi của phương pháp Gradient Descent

2.5. Kiểm tra đạo hàm

2.6. Biến thể của Gradient Descent

2.6.1. Batch Gradient Descent

2.6.2. Stochastic Gradient Descent

2.6.3. Mini-batch GD

3. CHƯƠNG 2. PHƯƠNG PHÁP HỒI QUY TUYẾN TÍNH VÀ HỒI QUY LOGISTIC

3.1. Simple Linear Regression

3.2. Multiple Linear Regression (Hồi quy tuyến tính đa biến)

3.3. Ưu điểm của Linear Regression

3.4. Hạn chế của Linear Regression

3.5. Ưu điểm của Logistic Regression

3.6. Hạn chế của Logistic Regression

3.7. Regularization trong Linear Regression và Logistic Regression

4. ỨNG DỤNG – KẾT QUẢ

4.1. Bài toán dự đoán

4.1.1. Mô hình hồi quy tuyến tính đơn - SLR

4.1.2. Mô hình hồi quy tuyến tính đa biến - MLR

4.2. Bài toán nhận dạng chữ số viết tay

4.2.1. Giới thiệu bài toán

4.2.2. Áp dụng Logistic Regression

DANH MỤC TÀI LIỆU THAM KHẢO

DANH MỤC CÁC THUẬT NGỮ

DANH MỤC HÌNH ẢNH

DANH MỤC BẢNG

Tóm tắt

I. Gradient Descent Tổng quan về Thuật toán Ứng dụng

Gradient Descent (GD) là một thuật toán tối ưu hóa quan trọng, được sử dụng rộng rãi trong học máy (Machine Learning) và nhiều lĩnh vực khác. Mục tiêu của GD là tìm giá trị nhỏ nhất của một hàm mất mát (Loss Function). Hàm này đo lường sự khác biệt giữa dự đoán của mô hình và giá trị thực tế. Ví dụ, khi huấn luyện một mô hình hồi quy tuyến tính (Linear Regression), GD giúp tìm các tham số của đường thẳng sao cho tổng bình phương sai số giữa đường thẳng và các điểm dữ liệu là nhỏ nhất. Thuật toán này đặc biệt hữu ích khi việc giải phương trình đạo hàm bằng 0 để tìm điểm cực trị là bất khả thi do độ phức tạp của hàm. GD hoạt động bằng cách lặp đi lặp lại, di chuyển theo hướng ngược lại với gradient (độ dốc) của hàm mất mát tại điểm hiện tại. Độ lớn của mỗi bước di chuyển được kiểm soát bởi tốc độ học (Learning Rate). Theo tài liệu gốc, "Nhiều bài toán trong Machine Learning, đặc biệt là Supervised Learning thường đưa về việc tối ưu một hàm số J(θ) gọi là cost function (hàm chi phí) hoặc loss function (hàm mất mát), tức là ta cần tìm giá trị của tham số θ sao cho hàm J đạt được giá trị nhỏ nhất...". GD không chỉ giới hạn trong hồi quy tuyến tính, mà còn được áp dụng rộng rãi trong các mô hình phức tạp hơn như mạng nơ-ron (Neural Networks)học sâu (Deep Learning). Việc lựa chọn tốc độ học phù hợp là rất quan trọng để đảm bảo sự hội tụ của thuật toán và tránh các vấn đề như quá khớp (Overfitting) hoặc thiếu khớp (Underfitting). Các biến thể của Gradient Descent bao gồm Batch Gradient Descent, Stochastic Gradient Descent, và Mini-Batch Gradient Descent, mỗi biến thể có ưu và nhược điểm riêng về tốc độ và độ ổn định.

1.1. Bản chất của Gradient Descent trong Tối ưu hóa hàm

Bản chất của Gradient Descent (GD) là một phương pháp tối ưu hóa lặp đi lặp lại để tìm cực tiểu địa phương của một hàm số. Thuật toán này dựa trên ý tưởng rằng, nếu hàm có thể vi phân, thì hướng giảm nhanh nhất tại một điểm là hướng ngược lại với gradient. Trong ngữ cảnh học máy, hàm này thường là hàm mất mát, và các biến là các tham số của mô hình. Mục tiêu là điều chỉnh các tham số này sao cho hàm mất mát đạt giá trị nhỏ nhất, tức là mô hình dự đoán chính xác nhất. GD hoạt động bằng cách bắt đầu từ một điểm ngẫu nhiên trên bề mặt hàm mất mát, sau đó tính gradient tại điểm đó. Sau đó, nó di chuyển một bước nhỏ theo hướng ngược lại gradient. Độ lớn của bước này được xác định bởi tốc độ học (Learning Rate). Quá trình này lặp đi lặp lại cho đến khi đạt được một điểm mà tại đó gradient gần bằng 0, tức là điểm cực tiểu địa phương. Tuy nhiên, GD có thể bị mắc kẹt trong các cực tiểu địa phương, đặc biệt là đối với các hàm không lồi. Các kỹ thuật như sử dụng Momentum, Adam, hoặc RMSprop có thể giúp GD vượt qua các cực tiểu địa phương và hội tụ nhanh hơn.

1.2. Tầm quan trọng của Learning Rate trong Gradient Descent

Tốc độ học (Learning Rate) là một tham số quan trọng trong Gradient Descent, quyết định kích thước bước di chuyển trong quá trình tối ưu hóa. Nếu tốc độ học quá lớn, thuật toán có thể "bỏ qua" điểm cực tiểu và dao động xung quanh, dẫn đến không hội tụ. Ngược lại, nếu tốc độ học quá nhỏ, thuật toán sẽ hội tụ rất chậm hoặc thậm chí bị mắc kẹt trong một cực tiểu địa phương. Việc chọn tốc độ học phù hợp là một thách thức, và thường đòi hỏi thử nghiệm và điều chỉnh cẩn thận. Một số phương pháp điều chỉnh tốc độ học bao gồm: sử dụng lịch trình tốc độ học (Learning Rate Schedule), giảm tốc độ học theo thời gian, hoặc sử dụng các thuật toán tối ưu hóa thích ứng như Adam hoặc RMSprop. Các thuật toán này tự động điều chỉnh tốc độ học cho từng tham số, giúp GD hội tụ nhanh hơn và hiệu quả hơn. Theo tài liệu, "Việc chọn α có ý nghĩa rất lớn trong phương pháp này vì nó quyết định tới độ chính xác và hiệu quả của giải thuật. Việc xác định được các tham số θ nhanh hay chậm phụ thuộc vào tham số này, tuy nhiên nếu như lựa chọn không phù hợp có thể gây ra hệ luỵ nhất định."

II. Các biến thể chính của Thuật toán Gradient Descent GD

Có nhiều biến thể của Gradient Descent, mỗi biến thể có cách tiếp cận khác nhau trong việc tính toán và cập nhật gradient. Batch Gradient Descent (BGD) tính gradient trên toàn bộ tập dữ liệu huấn luyện. Điều này đảm bảo sự hội tụ ổn định, nhưng có thể rất chậm đối với các tập dữ liệu lớn. Stochastic Gradient Descent (SGD) tính gradient trên từng mẫu dữ liệu riêng lẻ. Điều này giúp thuật toán hội tụ nhanh hơn, nhưng có thể gây ra dao động lớn. Mini-Batch Gradient Descent là sự kết hợp giữa BGDSGD, tính gradient trên một nhóm nhỏ các mẫu dữ liệu. Điều này cân bằng giữa tốc độ hội tụ và độ ổn định. Theo tài liệu gốc, "Với BGD thì mỗi epoch ứng với 1 vòng lặp trong việc cập nhật tham số, với SGD thì mỗi epoch ứng với 1 lần cập nhật tham số khi có dữ liệu mới xuất hiện.". Các thuật toán tối ưu hóa nâng cao như Adam, RMSprop, và Momentum sử dụng các kỹ thuật khác nhau để điều chỉnh tốc độ học và hướng di chuyển, giúp GD hội tụ nhanh hơn và tránh các vấn đề như cực tiểu địa phương.

2.1. Batch Gradient Descent BGD Ưu điểm Hạn chế

Batch Gradient Descent (BGD) tính toán gradient của hàm mất mát trên toàn bộ tập dữ liệu huấn luyện trong mỗi lần lặp. Ưu điểm chính của BGD là nó đảm bảo sự hội tụ ổn định, vì gradient được tính toán dựa trên toàn bộ thông tin có sẵn. Tuy nhiên, BGD có thể rất chậm đối với các tập dữ liệu lớn, vì việc tính toán gradient trên toàn bộ tập dữ liệu đòi hỏi nhiều thời gian và tài nguyên tính toán. BGD không phù hợp với các bài toán học trực tuyến (Online Learning), nơi dữ liệu đến liên tục theo thời gian. Trong trường hợp này, việc tính toán lại gradient trên toàn bộ tập dữ liệu sau mỗi lần cập nhật là không khả thi. Tuy nhiên, đối với các tập dữ liệu nhỏ và vừa, BGD vẫn là một lựa chọn tốt, vì nó đảm bảo sự hội tụ ổn định và dễ dàng thực hiện.

2.2. Stochastic Gradient Descent SGD Tối ưu cho dữ liệu lớn

Stochastic Gradient Descent (SGD) tính toán gradient của hàm mất mát trên từng mẫu dữ liệu riêng lẻ trong mỗi lần lặp. Ưu điểm chính của SGD là nó hội tụ nhanh hơn BGD, vì việc tính toán gradient trên từng mẫu dữ liệu đòi hỏi ít thời gian hơn. SGD phù hợp với các bài toán học trực tuyến, vì nó có thể cập nhật mô hình sau mỗi lần nhận được một mẫu dữ liệu mới. Tuy nhiên, SGD có thể gây ra dao động lớn trong quá trình hội tụ, vì gradient được tính toán dựa trên thông tin của một mẫu dữ liệu duy nhất. Để giảm dao động, có thể sử dụng tốc độ học nhỏ hơn hoặc các kỹ thuật như Momentum hoặc RMSprop. SGD cũng có thể bị mắc kẹt trong các cực tiểu địa phương, đặc biệt là đối với các hàm không lồi. Tuy nhiên, dao động của SGD có thể giúp nó thoát khỏi các cực tiểu địa phương và tìm được một nghiệm tốt hơn.

2.3. Mini Batch Gradient Descent Cân bằng tốc độ và ổn định

Mini-Batch Gradient Descent là một sự kết hợp giữa BGDSGD, tính toán gradient của hàm mất mát trên một nhóm nhỏ các mẫu dữ liệu (gọi là mini-batch) trong mỗi lần lặp. Mini-Batch Gradient Descent cân bằng giữa tốc độ hội tụ của SGD và độ ổn định của BGD. Kích thước của mini-batch thường được chọn trong khoảng từ 10 đến 1000, tùy thuộc vào kích thước của tập dữ liệu và tài nguyên tính toán có sẵn. Mini-Batch Gradient Descent là một lựa chọn phổ biến trong học sâu, vì nó cho phép huấn luyện các mô hình lớn trên các tập dữ liệu lớn một cách hiệu quả. Tài liệu gốc mô tả, "MB-GD được sử dụng khá phổ biến trong Deep Learning. Kích thước của tập con của tập dữ liệu thường được chọn là khoảng từ 50 đến 100."

III. Gradient Descent Dự đoán giá nhà với Hồi quy tuyến tính

Ứng dụng của Gradient Descent trong dự đoán rất đa dạng. Một ví dụ điển hình là dự đoán giá nhà bằng hồi quy tuyến tính. Trong bài toán này, chúng ta có một tập dữ liệu gồm các căn nhà, mỗi căn nhà được mô tả bởi các đặc trưng như diện tích, số phòng ngủ, vị trí, v.v. Mục tiêu là xây dựng một mô hình hồi quy tuyến tính có thể dự đoán giá của một căn nhà dựa trên các đặc trưng của nó. Gradient Descent được sử dụng để tìm các tham số của mô hình hồi quy tuyến tính sao cho hàm mất mát (ví dụ: tổng bình phương sai số) đạt giá trị nhỏ nhất. Sau khi huấn luyện mô hình, chúng ta có thể sử dụng nó để dự đoán giá của các căn nhà mới. Theo tài liệu gốc, "Với bài toán dự đoán này, ta sẽ áp dụng mô hình SLR trong đó, thuật toán Gradient Descent sẽ được sử dụng để điều chỉnh các tham số hồi quy tuyến tính cho tập dữ liệu huấn luyện."

3.1. Xây dựng mô hình Hồi quy tuyến tính dự đoán giá nhà

Để xây dựng mô hình hồi quy tuyến tính dự đoán giá nhà, chúng ta cần thực hiện các bước sau: 1. Thu thập dữ liệu: Thu thập một tập dữ liệu gồm các căn nhà, mỗi căn nhà được mô tả bởi các đặc trưng và giá của nó. 2. Tiền xử lý dữ liệu: Làm sạch và chuẩn hóa dữ liệu, loại bỏ các giá trị thiếu hoặc bất thường. 3. Xây dựng mô hình: Chọn một mô hình hồi quy tuyến tính phù hợp, ví dụ: hồi quy tuyến tính đơn biến hoặc đa biến. 4. Huấn luyện mô hình: Sử dụng Gradient Descent để tìm các tham số của mô hình sao cho hàm mất mát đạt giá trị nhỏ nhất. 5. Đánh giá mô hình: Đánh giá hiệu suất của mô hình trên một tập dữ liệu kiểm tra, sử dụng các chỉ số như sai số bình phương trung bình (Mean Squared Error) hoặc hệ số xác định (R-squared). 6. Sử dụng mô hình: Sử dụng mô hình đã huấn luyện để dự đoán giá của các căn nhà mới.

3.2. Tối ưu tham số Hồi quy tuyến tính bằng Gradient Descent

Gradient Descent đóng vai trò quan trọng trong việc tối ưu các tham số của mô hình hồi quy tuyến tính. Quá trình này bao gồm việc lặp đi lặp lại để điều chỉnh các tham số sao cho hàm mất mát giảm dần về mức cực tiểu. Việc lựa chọn tốc độ học phù hợp là rất quan trọng để đảm bảo sự hội tụ của thuật toán và tránh các vấn đề như quá khớp hoặc thiếu khớp. Các kỹ thuật như chuẩn hóa dữ liệu (Data Normalization)điều chỉnh đặc trưng (Feature Scaling) có thể giúp Gradient Descent hội tụ nhanh hơn và hiệu quả hơn. Ngoài ra, các thuật toán tối ưu hóa nâng cao như Adam hoặc RMSprop có thể được sử dụng thay cho Gradient Descent cơ bản.

IV. Gradient Descent Nhận dạng chữ số viết tay với Logistic

Gradient Descent cũng được sử dụng rộng rãi trong các bài toán nhận dạng, ví dụ: nhận dạng chữ số viết tay. Trong bài toán này, chúng ta có một tập dữ liệu gồm các hình ảnh chữ số viết tay, mỗi hình ảnh được gán nhãn với chữ số tương ứng. Mục tiêu là xây dựng một mô hình có thể nhận dạng chữ số trong một hình ảnh mới. Logistic Regression là một thuật toán phổ biến cho bài toán này. Gradient Descent được sử dụng để tìm các tham số của mô hình Logistic Regression sao cho hàm mất mát (ví dụ: cross-entropy loss) đạt giá trị nhỏ nhất. Sau khi huấn luyện mô hình, chúng ta có thể sử dụng nó để nhận dạng chữ số trong các hình ảnh mới.

4.1. Áp dụng Logistic Regression cho bài toán nhận dạng chữ số

Để áp dụng Logistic Regression cho bài toán nhận dạng chữ số, chúng ta cần thực hiện các bước sau: 1. Thu thập dữ liệu: Thu thập một tập dữ liệu gồm các hình ảnh chữ số viết tay và nhãn tương ứng. Một tập dữ liệu phổ biến là MNIST (Modified National Institute of Standards and Technology database). 2. Tiền xử lý dữ liệu: Chuyển đổi hình ảnh thành các vectơ đặc trưng, ví dụ: bằng cách sử dụng histogram of oriented gradients (HOG). 3. Xây dựng mô hình: Xây dựng một mô hình Logistic Regression cho mỗi chữ số (0-9). 4. Huấn luyện mô hình: Sử dụng Gradient Descent để tìm các tham số của mô hình sao cho hàm mất mát đạt giá trị nhỏ nhất. 5. Đánh giá mô hình: Đánh giá hiệu suất của mô hình trên một tập dữ liệu kiểm tra, sử dụng các chỉ số như độ chính xác (Accuracy) hoặc F1-score.

4.2. Cực tiểu hóa Loss Function trong nhận dạng chữ số bằng GD

Gradient Descent đóng vai trò quan trọng trong việc cực tiểu hóa hàm mất mát của mô hình Logistic Regression trong bài toán nhận dạng chữ số. Việc lựa chọn hàm mất mát phù hợp, ví dụ: cross-entropy loss, là rất quan trọng để đảm bảo hiệu suất tốt của mô hình. Các kỹ thuật như chuẩn hóa dữ liệuđiều chỉnh đặc trưng có thể giúp Gradient Descent hội tụ nhanh hơn và hiệu quả hơn. Ngoài ra, các thuật toán tối ưu hóa nâng cao như Adam hoặc RMSprop có thể được sử dụng thay cho Gradient Descent cơ bản.

V. Các yếu tố ảnh hưởng Điều chỉnh tham số trong Gradient Descent

Hiệu suất của Gradient Descent bị ảnh hưởng bởi nhiều yếu tố, bao gồm tốc độ học, khởi tạo tham số, dạng của hàm mất mát, và kích thước của tập dữ liệu. Việc điều chỉnh tham số (Hyperparameter Tuning) là rất quan trọng để đạt được hiệu suất tốt nhất. Các kỹ thuật điều chỉnh tham số bao gồm: tìm kiếm lưới (Grid Search), tìm kiếm ngẫu nhiên (Random Search), và tối ưu hóa Bayesian (Bayesian Optimization). Ngoài ra, các kỹ thuật như chuẩn hóa dữ liệu, điều chỉnh đặc trưng, và Regularization có thể giúp cải thiện hiệu suất của Gradient Descent.

5.1. Ảnh hưởng của khởi tạo tham số đến hội tụ Gradient Descent

Việc khởi tạo các tham số θ một cách thích hợp có thể ảnh hưởng đáng kể đến tốc độ hội tụ của GD. Thông thường, người ta thường khởi tạo các tham số với một giá trị ngẫu nhiên gần 0. Điều này giúp tránh tình trạng bão hòa (saturation) trong các mạng nơ-ron sâu. Theo khóa luận gốc, "Đến đây, nhiệm vụ còn lại chính là cực tiểu hóa cost function."

5.2. Chiến lược điều chỉnh Hyperparameter để tối ưu Gradient Descent

Hyperparameter tuning là một bước quan trọng để cải thiện hiệu suất GD. Các chiến lược phổ biến bao gồm tìm kiếm theo lưới (grid search), tìm kiếm ngẫu nhiên (random search) và các phương pháp tối ưu hóa dựa trên mô hình (model-based optimization). Việc lựa chọn phạm vi tìm kiếm phù hợp và sử dụng các kỹ thuật đánh giá chéo (cross-validation) có thể giúp tìm ra các hyperparameter tối ưu.

VI. Kết luận Tương lai Hướng phát triển của Gradient Descent

Gradient Descent là một thuật toán tối ưu hóa mạnh mẽ và linh hoạt, được sử dụng rộng rãi trong học máy và nhiều lĩnh vực khác. Mặc dù có nhiều biến thể và kỹ thuật điều chỉnh tham số, nguyên tắc cơ bản của GD vẫn không thay đổi: lặp đi lặp lại để di chuyển theo hướng ngược lại với gradient của hàm mất mát. Trong tương lai, GD sẽ tiếp tục đóng vai trò quan trọng trong sự phát triển của học máytrí tuệ nhân tạo. Các nghiên cứu tiếp theo có thể tập trung vào việc phát triển các thuật toán tối ưu hóa hiệu quả hơn, đặc biệt là cho các mô hình lớn và các tập dữ liệu lớn.

6.1. Tổng kết về Ưu điểm và Hạn chế của Gradient Descent

Gradient Descent có nhiều ưu điểm, bao gồm: dễ hiểu, dễ thực hiện, và có thể áp dụng cho nhiều bài toán khác nhau. Tuy nhiên, GD cũng có một số hạn chế, bao gồm: nhạy cảm với tốc độ học, có thể bị mắc kẹt trong các cực tiểu địa phương, và có thể chậm đối với các tập dữ liệu lớn. Việc lựa chọn biến thể GD, kết hợp với tinh chỉnh giá trị Learning Rate và các Hyperparameter có thể phần nào giải quyết các hạn chế này.

6.2. Hướng nghiên cứu và phát triển tiếp theo cho Gradient Descent

Các hướng nghiên cứu và phát triển tiếp theo cho Gradient Descent có thể tập trung vào: 1. Phát triển các thuật toán tối ưu hóa hiệu quả hơn cho các mô hình lớn và các tập dữ liệu lớn. 2. Phát triển các thuật toán tối ưu hóa có thể tự động điều chỉnh tốc độ học và các tham số khác. 3. Phát triển các thuật toán tối ưu hóa có thể tránh các cực tiểu địa phương và tìm được các nghiệm tốt hơn. 4. Ứng dụng Gradient Descent vào các lĩnh vực mới, ví dụ: học tăng cường (Reinforcement Learning)xử lý ngôn ngữ tự nhiên (Natural Language Processing).

22/09/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1. CƠ SỞ LÝ THUYẾT CỦA PHƯƠNG PHÁP GRADIENT DESCENT 1. Giới thiệu phương pháp Gradient Descent Gradient Descent [20] là thuật toán học tập được sử dụng nhiều nhất trong ML nói riêng và toán tối ưu nói chung, bởi vì bài toán ML đòi hỏi phải thường xuyên tìm giá trị nhỏ nhất (hoặc đôi khi lớn nhất) của một hàm số nào đó. Để hiểu rõ phương pháp GD, chúng ta cùng xét ví dụ đơn giản, đó là cực tiểu hóa hàm y = x2.

Đây là đồ thị hàm số này Hình 1. Đồ thị hàm số y = x2 (Nguồn: https://ml.com/general/2017/05/28/optimization-algorithms.html) Nhìn vào đồ thị này, ta thấy được giá trị nhỏ nhất của hàm số này là 0, đạt được tại x = 0. Bằng kiến thức về giải tích toán học đã học thì ta biết rằng đạo hàm cấp 1 của một hàm số tại điểm cực trị bằng 0, nên thực tế bài toán tối ưu đưa về việc giải phương trình y′ = 0, trong đó y′ là kí hiệu đạo hàm của hàm y. Việc giải phương trình y′ = 0 không phải lúc nào cũng thực hiện được như ví dụ ở trên do sự phức tạp của phương trình hoặc do sự khó khăn trong việc tính toán đạo hàm.

Do đó, một phương pháp tính toán để tìm được xấp xỉ giá trị của x mà tại đó y đạt giá trị nhỏ nhất là rất cần thiết. Một trong những phương pháp tối ưu hóa số thông dụng làm được điều đó là phương pháp Gradient Descent. SVTH: Hoàng Thị Ly Na 10 Khoá luận tốt nghiệp GVHD: TS. Ngô Thời Nhân Cụ thể hơn, nhiều bài toán trong Machine Learning, đặc biệt là Supervised Learning thường đưa về việc tối ưu một hàm số J(θ) gọi là cost function (hàm chi phí) hoặc loss function (hàm mất mát), tức là ta cần tìm giá trị của tham số θ sao cho hàm J đạt được giá trị nhỏ nhất, trong đó tham số θ là một biến số trong không gian 1 chiều (1 biến) hoặc n chiều (với trường hợp tối ưu hàm nhiều biến).

Để làm được điều này, người ta thường cố gắng tìm các điểm cực tiểu địa phương (local minimum), và ở một mức độ nào đó, coi đó là nghiệm cần tìm của bài toán. Các điểm local minimum là nghiệm của phương trình đạo hàm cấp 1 hay gradient bằng 0. Nếu bằng một cách nào đó có thể tìm được toàn bộ (hữu hạn) các điểm cực tiểu, ta chỉ cần thay từng điểm local minimum đó vào hàm số rồi tìm điểm làm cho hàm có giá trị nhỏ nhất. Tuy nhiên, trong nhiều trường hợp, việc giải chính xác phương trình đạo hàm cấp 1 hay gradient bằng 0 là bất khả thi.

Nguyên nhân có thể đến từ sự phức tạp của dạng của đạo hàm, từ việc các điểm dữ liệu có số chiều lớn hoặc từ việc có quá nhiều điểm dữ liệu. Hướng tiếp cận của phương pháp GD là xuất phát từ một điểm mà chúng ta coi là gần với nghiệm của bài toán, sau đó dùng một phép toán lặp để tiến dần đến điểm cần tìm, tức đến khi đạo hàm gần với 0. GD và các biến thể của nó đều áp dụng nguyên lý này để tìm điểm cực tiểu của cost function. Phương pháp Gradient Descent (Nguồn: https://sebastianraschka.com) SVTH: Hoàng Thị Ly Na 11 Khoá luận tốt nghiệp GVHD: TS.

Ngô Thời Nhân Mục đích của Gradient Descent là tìm điểm cực tiểu của hàm cost function bằng cách lặp đi lặp lại để tiếp cận gần hơn điểm cực tiểu, hay nói cách khác nếu ta cứ đi ngược hướng đạo hàm mãi thì ta sẽ tới được điểm cực tiểu của hàm số. Có thể liên hệ một ví dụ thực tế như sau để hiểu về cách thực thi của GD: tưởng tượng rằng ta bị bịt mắt và đang đi qua một thung lũng. Ta muốn đến điểm thấp nhất của thung lũng nhanh với số bước ít nhất. Vậy ta sẽ bước đi như thế nào? Phương án khả thi nhất là bước đầu tiên, ta sẽ đi xuôi theo trên bề mặt nghiêng của thung lũng và di chuyển theo hướng xuống dốc nhất.

Ta lặp lại tiến trình đó cho các bước tiếp theo cho đến khi mặt đất bằng phẳng, lúc đó ta đã ở điểm thấp nhất của thung lũng. Nếu không chọn hướng xuôi dốc nhất mà di chuyển theo một hướng bất kì thì ta không thể đi xuống vị trí thấp nhất với số bước ít nhất hoặc trong trường hợp xấu, ta sẽ bị kẹt ở những nơi có cùng độ cao hoặc thậm chí di chuyển lên cao hơn. Về mặt toán học, bề mặt thung lũng đó được xem là đồ thị của cost function và điểm thấp nhấp của thung lũng là điểm cực tiểu của nó. Gradient Descent với hàm một biến Để hiểu rõ hơn về thuật toán Gradient Descent hoạt động như thế nào trong từng mô hình, dựa vào ví dụ dưới đây ta sẽ phân tích rõ thuật toán GD đối với hàm một biến.

Minh họa cho hàm số đạt giá trị nhỏ nhất (Nguồn: https://machinelearningcoban.com/) SVTH: Hoàng Thị Ly Na 12 Khoá luận tốt nghiệp GVHD: TS. Ngô Thời Nhân Ở trong hình, ta thấy điểm màu xanh lục là local minimum (điểm cực tiểu địa phương), đồng thời nó cũng là điểm cực tiểu toàn bộ (global minimum), điểm làm cho hàm số đạt giá trị nhỏ nhất. Dựa vào hình trên, ta biết được điều đầu tiên là điểm local minimum x* của hàm số là điểm có đạo hàm f 'x* = 0, ngoài ra đạo hàm của các điểm phía bên trái x* có giá trị âm, còn đạo hàm của các điểm phía bên phải x* có giá trị dương. Và đối với hàm số này, càng xa về phía trái của điểm local minimum thì giá trị tuyệt đối của đạo hàm càng lớn.

Thứ hai là đường tiếp tuyến với đồ thị hàm số đó tại 1 điểm bất kỳ có hệ số góc chính bằng đạo hàm của hàm số tại điểm đó. Bây giờ, giả sử xk là điểm ta tìm được sau vòng lặp thứ k, việc ta cần làm lúc này là cần tìm một thuận toán để đưa xk về càng gần x* càng tốt. Như vậy, trong hình ban đầu, chúng ta lại có thêm hai nhận xét đó là:  Thứ nhất, nếu đạo hàm của hàm số tại xk : f’(xk) > 0 thì xk nằm về phía bên phải so với x*. Để điểm tiếp theo là xk+1 gần với x* hơn thì chúng ta cần di chuyển xk về phía bên trái, có nghĩa là về phía âm.

Ta có lập luận tương tự cho trường hợp f’(xk) < 0. Tóm lại, để tiến gần đến x* chúng ta cần di chuyển sao cho ngược dấu với đạo hàm: xk 1  xk   (1) Trong đó, ∆ là một đại lượng ngược dấu với đạo hàm f’(xk).  Thứ hai, nếu xk càng xa x* về phía bên phải thì f’(xk) sẽ càng lớn hơn 0 và ngược lại. Vì thế, lượng di chuyển ∆ một cách trực quan nhất đó là tỉ lệ thuận với - f’(xk).

Qua hai nhận xét trên cho chúng ta một công thức tổng quát cuối cùng đó là: xk 1  xk   f '( xk ) (2) Trong đó, α > 0 là learning rate (tốc độ học), dấu trừ thể hiện việc chúng ta phải di chuyển ngược hướng đạo hàm. Đây cũng chính là lý do phương pháp này có tên gọi là SVTH: Hoàng Thị Ly Na 13 Khoá luận tốt nghiệp GVHD: TS. Ngô Thời Nhân Gradient Descent, bởi “Descent” có nghĩa là giảm, đi xuống hay đi ngược. Những nhận xét phía trên, mặc dù không phải luôn đúng cho mọi bài toán, nhưng nó được xem như là nền tảng cho rất nhiều phương pháp tối ưu nói chung và thuật toán Machine Learning nói riêng.

Gradient Descent cho hàm nhiều biến Giả sử, bây giờ ta cần tìm global minimum cho hàm f(x) trong đó x là một vectơ, thường được dùng để ký hiệu tập hợp các tham số của một mô hình cần tối ưu. Gradient của hàm số đó tại một điểm x bất kỳ, được ký hiệu là ∇xf(x). Tương tự như hàm một biến, thì thuật toán Gradient Descent cho hàm nhiều biến bắt đầu bằng một điểm dự đoán, x (0) sau đó cứ mỗi vòng lặp k, quy tắc tính đó là: x ( k 1)  x ( k )    x f (x) (3) Hay viết dưới dạng đơn giản hơn: x  x    x f (x) (4) 1. Giải thuật và cách thực thi của phương pháp Gradient Descent Áp dụng những gì đã trình bày ở trên vào bài toán ML, giả sử rằng ta cần tìm tham số   n để ta tiến hành tối thiểu hóa cost function J(θ).

Đầu tiên ta sẽ gán θ cho một giá trị bất kì nào đó, sau đó dựa vào gradient  J ( ) để cập nhật giá trị mới cho  sao cho giá trị của J(θ) ngày càng nhỏ cho đến khi đạt được giá trị cực tiểu. Việc cập nhật các thành phần của tham số θ được thực hiện cùng lúc nhờ vòng lặp sau. Repeat until converge {  :      J ( ) (5) } Trong đó α > 0, còn  J ( ) là gradient của cost function tại θ. Trong vòng lặp trên, ta chú ý đến tham số α, được gọi là learning rate, là tham số điều chỉnh tốc độ học của chương trình ML.

Việc lựa chọn learning rate rất quan trọng trong các bài toán thực tế, lựa chọn giá trị này phụ thuộc nhiều vào từng bài toán và phải làm một vài thí nghiệm SVTH: Hoàng Thị Ly Na 14 Khoá luận tốt nghiệp GVHD: TS. Ngô Thời Nhân để chọn ra giá trị tốt nhất. Ngoài ra, tùy vào một số bài toán, GD có thể làm việc hiệu quả hơn bằng cách chọn ra learning rate phù hợp hoặc chọn learning rate khác nhau ở mỗi vòng lặp. Tốc độ hội tụ của GD không những phụ thuộc vào điểm khởi tạo ban đầu mà còn phụ thuộc vào learning rate α.

Việc chọn α có ý nghĩa rất lớn trong phương pháp này vì nó quyết định tới độ chính xác và hiệu quả của giải thuật. Việc xác định được các tham số θ nhanh hay chậm phụ thuộc vào tham số này, tuy nhiên nếu như lựa chọn không phù hợp có thể gây ra hệ luỵ nhất định. Cụ thể là, nếu α quá lớn thì ta không hội tụ được về đích, nhưng nếu α quá nhỏ thì tốc độ hội tụ rất chậm, ảnh hưởng tới tốc độ của thuật toán, ta lại mất rất nhiều thời gian để chạy giải thuật này. Ảnh hưởng của Learning Rate (tốc độ học) (Nguồn: https://dominhhai.io/) Ngoài ra, nếu cost function J(θ) không phải là hàm lồi thì kết quả tìm được rất có thể chỉ là điểm cực tiểu địa phương (local minimum) thay vì điểm cực tiểu toàn cục (global minimum).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ