Sự khác biệt trong việc sử dụng gradient và gradient chuẩn hóa


15

Trong bối cảnh chung của thuật toán gradient descent, chúng ta có nơi x n là điểm hiện tại, η là kích thước bước và g r một d i e n t x n là độ dốc được đánh giá tạixn+1=xnηgradientxnxnηgrmộtdTôientxn . xn

Tôi đã thấy trong một số thuật toán, mọi người sử dụng gradient được chuẩn hóa thay vì gradient . Tôi muốn biết sự khác biệt trong việc sử dụng gradient được chuẩn hóa và chỉ đơn giản là gradient .


1
Tôi có thể đặt một câu hỏi? Làm thế nào tôi có thể tính toán độ dốc chuẩn hóa nếu tôi đã thu được vector độ dốc? Nếu vectơ gradient là số lớn, tôi cần bình thường hóa gradient. Bạn có thể đưa ra một số ví dụ trực quan về việc chuẩn hóa gradient? Cảm ơn bạn!

Câu trả lời:


10

Trong thuật toán giảm độ dốc, thuật toán tiến hành bằng cách tìm hướng mà bạn có thể tìm ra giải pháp tối ưu. Hướng tối ưu hóa ra là độ dốc. Tuy nhiên, vì chúng ta chỉ quan tâm đến hướng và không nhất thiết là chúng ta di chuyển theo hướng đó bao xa, nên chúng ta thường không quan tâm đến độ lớn của độ dốc. Qua đó, bình thường hóa gradient là đủ tốt cho mục đích của chúng tôi và chúng ta để cho ηchỉ ra cách chúng ta muốn di chuyển theo hướng tính toán. Tuy nhiên, nếu bạn sử dụng độ dốc độ dốc không chuẩn hóa, thì tại bất kỳ điểm nào, khoảng cách bạn di chuyển theo hướng tối ưu được quyết định bởi độ lớn của độ dốc (về bản chất được xác định bởi bề mặt của hàm mục tiêu, tức là một điểm trên bề mặt dốc sẽ có cường độ cao trong khi một điểm trên bề mặt khá phẳng sẽ có cường độ thấp).

Từ những điều trên, bạn có thể đã nhận ra rằng bình thường hóa độ dốc là một quyền lực kiểm soát bổ sung mà bạn có được (dù nó có hữu ích hay không là một cái gì đó tùy thuộc vào ứng dụng cụ thể của bạn). Những gì tôi có nghĩa là bởi ở trên là:
1] Nếu bạn muốn đảm bảo rằng động thái thuật toán của bạn có kích thước bước cố định trong mỗi lần lặp, sau đó bạn có thể muốn sử dụng gradient descent bình thường với cố định . 2] Nếu bạn muốn đảm bảo rằng động thái thuật toán của bạn trong các kích cỡ bước mà được quyết định một cách chính xác bởi bạn, sau đó một lần nữa bạn có thể muốn sử dụng bình thường gradient descent với chức năng cụ thể của bạn cho kích thước bước mã hóa thành η .η
η
3] Nếu bạn muốn để độ lớn của gradient quy định kích thước bước, thì bạn sẽ sử dụng độ dốc giảm dần không chuẩn hóa. Có một số biến thể khác như bạn có thể để độ lớn của gradient quyết định kích thước bước, nhưng bạn đặt một nắp trên nó và cứ thế.

Bây giờ, kích thước bước rõ ràng có ảnh hưởng đến tốc độ hội tụ và ổn định. Những kích thước bước trên hoạt động tốt nhất hoàn toàn phụ thuộc vào ứng dụng của bạn (tức là chức năng khách quan). Trong một số trường hợp nhất định, có thể phân tích mối quan hệ giữa tốc độ hội tụ, độ ổn định và kích thước bước. Mối quan hệ này sau đó có thể đưa ra một gợi ý về việc bạn muốn đi với độ dốc dốc bình thường hóa hoặc không chuẩn hóa.

Tóm lại, không có sự khác biệt giữa việc giảm độ dốc chuẩn hóa và không chuẩn hóa (theo như lý thuyết đằng sau thuật toán này). Tuy nhiên, nó có tác động thực tế đến tốc độ hội tụ và ổn định. Sự lựa chọn của cái này hơn cái kia hoàn toàn dựa trên ứng dụng / mục tiêu trong tay.


Bạn có thể thực hiện một cách tiếp cận trung gian nơi bạn bình thường hóa dựa trên gradient đầu tiên, ví dụ. Điều này vẫn sẽ làm cho kích thước gradient tương đối quan trọng về kích thước bước.
dashnick

2

Điều thực sự quan trọng là làm thế nào ηđã được chọn. Không quan trọng bạn sử dụng gradient được chuẩn hóa hay gradient không chuẩn hóa nếu kích thước bước được chọn theo cách làm cho độ dài củaη lần gradient giống nhau.


2

Phương pháp nào có tốc độ hội tụ nhanh hơn sẽ phụ thuộc vào mục tiêu cụ thể của bạn và nói chung tôi sử dụng gradient được chuẩn hóa. Một ví dụ điển hình về lý do tại sao bạn có thể muốn làm điều này là một phương trình bậc hai đơn giản:f(x)= =xTx. Trong trường hợp này, ODE mô tả quỹ đạo giảm độ dốc đã cho (khi kích thước bước tiến đến 0) có thể được xác định bằng phương pháp phân tích:y(t)= =x0/||x0||*e-t. Vì vậy, định mức của gradient giảm nhanh theo cấp số nhân khi bạn tiếp cận điểm tới hạn. Trong những trường hợp như vậy, tốt hơn là nên nảy qua lại một vài lần so với tiếp cận nó rất chậm. Nhìn chung, các phương pháp đặt hàng đầu tiên được biết là có sự hội tụ rất chậm xung quanh các điểm quan trọng, do đó bạn không nên thực sự sử dụng chúng nếu bạn thực sự quan tâm đến độ chính xác. Nếu bạn không thể tính toán Hessian của mục tiêu của mình một cách phân tích, bạn vẫn có thể tính gần đúng nó (BFGS).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.