Ứng dụng··2 phút đọc

Toán học đằng sau Gradient Descent

Hiểu sâu về nền tảng toán học của thuật toán Gradient Descent — từ đạo hàm đến hội tụ.

Gradient Descent là thuật toán tối ưu hóa cốt lõi trong Machine Learning. Hãy cùng tìm hiểu toán học đằng sau nó.

Ý tưởng cơ bản

Cho hàm mất mát L(θ)L(\theta), ta muốn tìm θ\theta^* sao cho:

θ=argminθL(θ)\theta^* = \arg\min_\theta L(\theta)

Gradient Descent cập nhật tham số theo hướng ngược gradient:

θt+1=θtηL(θt)\theta_{t+1} = \theta_t - \eta \nabla L(\theta_t)

trong đó η>0\eta > 0learning rate (tốc độ học).

Tại sao đi ngược gradient?

Khai triển Taylor bậc nhất của LL tại θt\theta_t:

L(θt+Δθ)L(θt)+L(θt)TΔθL(\theta_t + \Delta\theta) \approx L(\theta_t) + \nabla L(\theta_t)^T \Delta\theta

Để LL giảm nhiều nhất, ta cần:

Δθ=ηL(θt)\Delta\theta = -\eta \nabla L(\theta_t)

Đây chính là hướng đi dốc nhất (steepest descent).

Điều kiện hội tụ

Nếu LL là hàm lồi và có gradient Lipschitz liên tục với hằng số MM:

L(x)L(y)Mxy\|\nabla L(x) - \nabla L(y)\| \leq M\|x - y\|

thì với learning rate η1M\eta \leq \frac{1}{M}, Gradient Descent hội tụ với tốc độ:

L(θt)L(θ)θ0θ22ηtL(\theta_t) - L(\theta^*) \leq \frac{\|\theta_0 - \theta^*\|^2}{2\eta t}

Tức là tốc độ hội tụ là O(1/t)O(1/t).

Các biến thể

Stochastic Gradient Descent (SGD)

Thay vì tính gradient trên toàn bộ dữ liệu, SGD chỉ dùng một mẫu ngẫu nhiên:

θt+1=θtηLi(θt)\theta_{t+1} = \theta_t - \eta \nabla L_i(\theta_t)

trong đó ii được chọn ngẫu nhiên. Ưu điểm: nhanh hơn nhiều cho bộ dữ liệu lớn.

Adam Optimizer

Adam kết hợp momentum và adaptive learning rate:

mt=β1mt1+(1β1)L(θt)m_t = \beta_1 m_{t-1} + (1-\beta_1)\nabla L(\theta_t)

vt=β2vt1+(1β2)[L(θt)]2v_t = \beta_2 v_{t-1} + (1-\beta_2)[\nabla L(\theta_t)]^2

θt+1=θtηm^tv^t+ϵ\theta_{t+1} = \theta_t - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}

trong đó m^t\hat{m}_tv^t\hat{v}_t là các ước lượng đã hiệu chỉnh bias.

Chia sẻ:

Bài viết liên quan

Bài tập đạo hàm từ cơ bản đến nâng cao

Tổng hợp các bài tập đạo hàm thường gặp kèm lời giải chi tiết từng bước.

Bình luận

Chưa có bình luận nào. Hãy là người đầu tiên!

Đăng nhập để bình luận.