Tối ưu hóa giảm dần


9

Tôi đang cố gắng để hiểu tối ưu hóa độ dốc gốc trong thuật toán ML (machine learning). Tôi hiểu rằng có một hàm chi phí, trong đó mục đích là để giảm thiểu lỗi . Trong trường hợp trọng số đang được tối ưu hóa để đưa ra lỗi tối thiểu và các đạo hàm riêng đang được sử dụng, nó có thay đổi cả và trong mỗi bước hay không hoặc là một sự kết hợp (ví dụ: trong vài lần lặp lại chỉ được thay đổi và khi không giảm lỗi nữa, đạo hàm bắt đầu bằng )? Ứng dụng này có thể là mô hình hồi quy tuyến tính, mô hình hồi quy logistic hoặc tăng thuật toán.y^yw1,w2w1w2w1w1w2

Câu trả lời:


10

Gradient giảm dần cập nhật tất cả các tham số ở mỗi bước. Bạn có thể thấy điều này trong quy tắc cập nhật:

w(t+1)=w(t)ηf(w(t)).

Vì độ dốc của hàm mất có giá trị véc tơ với khớp chiều của , nên tất cả các tham số được cập nhật ở mỗi lần lặp.f(w)w

Tỷ lệ học tập là một số dương quy mô lại độ dốc. Thực hiện một bước quá lớn có thể khiến bạn không ngừng trồi lên bề mặt mất mát mà không cải thiện chức năng mất của bạn; một bước quá nhỏ có thể có nghĩa là chậm tiến độ tiến tới tối ưu.η

Mặc dù bạn có thể ước tính các tham số hồi quy tuyến tính bằng cách sử dụng độ dốc, nhưng đó không phải là một ý tưởng hay.

Tương tự như vậy, có nhiều cách tốt hơn để ước tính các hệ số hồi quy logistic.


Vì vậy, thuật toán có thể thử các kết hợp khác nhau như tăng w1, giảm w2dựa trên hướng từ đạo hàm riêng để đạt cực tiểu cục bộ và chỉ để xác nhận thuật toán sẽ không nhất thiết phải đưa ra cực tiểu toàn cầu luôn?
Pb89

và đạo hàm riêng cũng giúp giải thích mức tăng hay giảm phải được thực hiện w1w2hoặc được thực hiện bằng cách học / giảm tỷ lệ trong khi đạo hàm một phần chỉ cung cấp hướng đi xuống?
Pb89

Độ dốc là một vectơ, vì vậy nó cho hướng độ lớn. Một vectơ có thể được định cỡ lại một cách tùy ý bởi một vô hướng dương và nó sẽ có cùng hướng, nhưng sự thay đổi kích thước sẽ thay đổi cường độ của nó.
Sycorax nói phục hồi Monica

Nếu độ lớn cũng được cho bởi độ dốc thì vai trò của co rút hoặc tốc độ học tập là gì?
Pb89

Tỷ lệ học tập thay đổi độ dốc. Giả sử có chỉ tiêu (chiều dài) lớn. Bước một bước lớn sẽ đưa bạn đến một phần xa của bề mặt mất mát (nhảy từ ngọn núi này sang ngọn núi khác). Sự biện minh cốt lõi của việc giảm độ dốc là đó là một xấp xỉ tuyến tính trong vùng lân cận của . Sự gần đúng đó luôn luôn không chính xác, nhưng điều đó có thể tệ hơn khi bạn di chuyển càng xa - do đó, bạn muốn thực hiện các bước nhỏ, vì vậy bạn sử dụng một số nhỏ , trong đó 'nhỏ' hoàn toàn là vấn đề cụ thể. w ( t ) ηf(x)w(t)η
Sycorax nói Phục hồi Monica

7

Khi tối ưu hóa xảy ra thông qua các đạo hàm riêng, trong mỗi lượt, nó thay đổi cả w1 và w2 hoặc là một sự kết hợp như trong vài lần lặp chỉ w1 được thay đổi và khi w1 không giảm lỗi nhiều hơn, đạo hàm bắt đầu bằng w2 - thành đạt cực tiểu địa phương?

Trong mỗi lần lặp, thuật toán sẽ thay đổi tất cả các trọng số cùng một lúc dựa trên vectơ gradient. Trong thực tế, gradient là một vector. Độ dài của gradient giống như số lượng trọng lượng trong mô hình.

Mặt khác, việc thay đổi một tham số tại một thời điểm đã tồn tại và nó được gọi là thuật toán tọa độ khá , đây là một loại thuật toán tối ưu hóa không có độ dốc . Trong thực tế, nó có thể không hoạt động tốt như thuật toán dựa trên độ dốc.

Đây là một câu trả lời thú vị về thuật toán gradient miễn phí

Có thể đào tạo một mạng lưới thần kinh mà không cần backpropagation?


1

Mục đích của việc giảm độ dốc là để giảm thiểu hàm chi phí. Giảm thiểu này đạt được bằng cách điều chỉnh trọng lượng, cho trường hợp của bạn w1 và w2. Nói chung có thể có n trọng lượng như vậy.

Gradient giảm dần được thực hiện theo cách sau:

  1. khởi tạo trọng lượng ngẫu nhiên.
  2. tính toán hàm chi phí và độ dốc với trọng số khởi tạo.
  3. update weigths: Có thể xảy ra rằng gradient là O đối với một số trọng số, trong trường hợp đó, các trọng số đó không hiển thị bất kỳ thay đổi nào sau khi cập nhật. ví dụ: giả sử độ dốc là [1,0] W2 sẽ không thay đổi.
  4. kiểm tra hàm chi phí với các trọng số được cập nhật, nếu mức giảm đủ chấp nhận được tiếp tục các lần lặp khác chấm dứt.

trong khi cập nhật trọng lượng mà trọng lượng (W1 hoặc W2) được thay đổi hoàn toàn được quyết định bởi độ dốc. Tất cả các trọng số được cập nhật (một số trọng số có thể không thay đổi dựa trên độ dốc).


"nếu mức giảm đủ chấp nhận được thì tiếp tục các lần lặp khác chấm dứt", có một giá trị mặc định được áp dụng trong các gói của gói python ( sklearn) hoặc R caretkhông? Nó chỉ có thể được người dùng chỉ định trong một chức năng giảm độ dốc được tạo thủ công?
Pb89

1

Gradient đàng hoàng được áp dụng cho cả w1w2cho mỗi lần lặp. Trong mỗi lần lặp, các tham số được cập nhật theo độ dốc. Họ có thể sẽ có đạo hàm riêng khác nhau.

Kiểm tra tại đây .

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.