Sự thay thế của Gradient Descent là gì?


46

Gradient Descent có vấn đề bị kẹt trong Local Minima. Chúng ta cần chạy thời gian theo cấp số nhân của độ dốc để tìm cực tiểu toàn cầu.

Bất cứ ai cũng có thể cho tôi biết về bất kỳ sự thay thế nào của việc giảm độ dốc như được áp dụng trong học tập mạng thần kinh, cùng với những ưu và nhược điểm của chúng.

Câu trả lời:


38

Đây là một vấn đề liên quan đến chức năng được tối thiểu hóa so với phương pháp được sử dụng, nếu việc tìm ra mức tối thiểu toàn cầu thực sự là quan trọng, thì hãy sử dụng một phương pháp như mô phỏng . Điều này sẽ có thể tìm thấy mức tối thiểu toàn cầu, nhưng có thể mất một thời gian rất dài để làm điều đó.

Trong trường hợp mạng lưới thần kinh, cực tiểu cục bộ không nhất thiết là vấn đề. Một số cực tiểu cục bộ là do bạn có thể có được một mô hình giống hệt về chức năng bằng cách cho phép các đơn vị lớp ẩn hoặc phủ định các trọng số đầu vào và đầu ra của mạng, v.v. Ngoài ra, nếu cực tiểu cục bộ chỉ hơi không tối ưu, thì sự khác biệt trong hiệu suất sẽ là tối thiểu và vì vậy nó sẽ không thực sự quan trọng. Cuối cùng, và đây là một điểm quan trọng, vấn đề chính trong việc lắp mạng nơ-ron là quá phù hợp, vì vậy việc tích cực tìm kiếm cực tiểu toàn cầu của hàm chi phí có thể dẫn đến quá mức và một mô hình hoạt động kém.

Thêm một thuật ngữ chính quy, ví dụ như phân rã trọng lượng, có thể giúp làm giảm chức năng chi phí, điều này có thể làm giảm vấn đề tối thiểu cục bộ một chút, và dù sao tôi cũng khuyên bạn nên sử dụng phương pháp tránh quá mức.

Tuy nhiên, phương pháp tốt nhất để tránh cực tiểu cục bộ trong các mạng thần kinh là sử dụng mô hình Quy trình Gaussian (hoặc mạng thần kinh Radial Basis Function), có ít vấn đề hơn với cực tiểu cục bộ.


9
Rất đúng. Vấn đề không tìm thấy mức tối thiểu toàn cầu được đánh giá cao.
bayerj

2
Quá mức xảy ra khi bạn sử dụng nhiều tham số trong một mô hình (trường hợp sử dụng NN điển hình), nó không liên quan đến cực tiểu cục bộ - ít nhất là không theo những cách rõ ràng. Bạn có thể bị mắc kẹt trong một tối thiểu cục bộ xấu ngay cả với một NN nhỏ, tức là với rất ít tham số miễn phí.
carlosayam

1
@DikranMarsupial, bạn có thể có nhiều cực tiểu cục bộ, thậm chí với một tham số mô hình duy nhất. Nó phụ thuộc vào hình dạng của chức năng mất. Ví dụ đơn giản nhưng có sẵn: , trong đó là hàng xóm gần nhất và thứ 2 gần nhất với . Dễ dàng nhận thấy có một mức tối thiểu cục bộ giữa mỗi hai điểm liên tiếp, tức là càng nhiều dữ liệu thì cực tiểu cục bộ càng nhiều! Toàn cầu đạt được giữa các điểm gần nhất trong bộ dữ liệu. Điều này là cực kỳ, tôi biết, nhưng tôi đã thấy hành vi tương tự giải quyết các vấn đề về điểm thay đổi. x ( 1 ) , x ( 2 ) ωL(ω)=(x(1)ω)2+(x(2)ω)2x(1),x(2)ω
carlosayam

1
@DikranMarsupial - Tôi không có đủ ký tự để kết thúc câu nói của mình :) Tôi đã thấy hành vi tương tự giải quyết các vấn đề về điểm thay đổi ... bằng cách sử dụng mạng thần kinh. Trong loại vấn đề này, tối thiểu cục bộ thường là xấu; Vì vậy, tôi không đồng ý rằng vấn đề này được đánh giá cao.
carlosayam

1
@carlosayam "được đánh giá cao" không có nghĩa là "không quan trọng", chỉ là nó là một vấn đề với các mạng lưới thần kinh thường được cường điệu hóa. Sẽ luôn có vấn đề với tất cả các phương pháp học tập, không có thuốc chữa bách bệnh cho mọi thứ và bạn luôn cần chẩn đoán các vấn đề với bất kỳ mô hình nào.
Dikran Marsupial

24

Gradient giảm dần là một thuật toán tối ưu hóa .

Có rất nhiều thuật toán tối ưu hóa hoạt động trên một số cố định của giá trị thực mà có tương quan ( không tách ). Chúng ta có thể chia chúng thành 2 loại: tối ưu hóa dựa trên độ dốc và tối ưu hóa không có đạo hàm. Thông thường, bạn muốn sử dụng gradient để tối ưu hóa các mạng thần kinh trong một cài đặt được giám sát vì điều đó nhanh hơn đáng kể so với tối ưu hóa không có đạo hàm. Có nhiều thuật toán tối ưu hóa dựa trên độ dốc đã được sử dụng để tối ưu hóa các mạng thần kinh:

  • Stochastic Gradient Descent (SGD) , Minecraftatch SGD, ...: Bạn không phải đánh giá độ dốc cho toàn bộ tập huấn mà chỉ cho một mẫu hoặc một mẫu nhỏ, điều này thường nhanh hơn nhiều so với giảm độ dốc theo lô. Minibatch đã được sử dụng để làm mịn gradient và song song hóa chuyển tiếp và backpropagation. Ưu điểm so với nhiều thuật toán khác là mỗi lần lặp nằm trong O (n) (n là số lượng trọng số trong NN của bạn). SGD thường không bị kẹt trong cực tiểu địa phương (!) Vì nó là ngẫu nhiên.
  • Gradient liên hợp phi tuyến : dường như rất thành công trong hồi quy, O (n), yêu cầu gradient hàng loạt (do đó, có thể không phải là lựa chọn tốt nhất cho các bộ dữ liệu khổng lồ)
  • L-BFGS : dường như rất thành công trong việc phân loại, sử dụng xấp xỉ Hessian, yêu cầu độ dốc hàng loạt
  • Thuật toán Levenberg-Marquest (LMA) : Đây thực sự là thuật toán tối ưu hóa tốt nhất mà tôi biết. Nó có nhược điểm là độ phức tạp của nó đại khái là O (n ^ 3). Đừng sử dụng nó cho các mạng lớn!

Và đã có nhiều thuật toán khác được đề xuất để tối ưu hóa mạng thần kinh, bạn có thể google để tối ưu hóa không có Hessian hoặc v-SGD (có nhiều loại SGD với tốc độ học thích ứng, xem ví dụ ở đây ).

Tối ưu hóa cho NN không phải là một vấn đề được giải quyết! Theo kinh nghiệm của tôi, thách thức lớn nhất là không tìm được một mức tối thiểu tốt tại địa phương. Tuy nhiên, những thách thức là phải thoát ra khỏi những vùng rất bằng phẳng, xử lý các hàm lỗi điều hòa, v.v. Đó là lý do tại sao LMA và các thuật toán khác sử dụng xấp xỉ Hessian thường hoạt động rất tốt trong thực tế và mọi người cố gắng phát triển các phiên bản ngẫu nhiên sử dụng thông tin thứ hai với độ phức tạp thấp. Tuy nhiên, thường thì một tham số được điều chỉnh rất tốt được đặt cho xe buýt nhỏ SGD tốt hơn bất kỳ thuật toán tối ưu hóa phức tạp nào.

Thông thường bạn không muốn tìm một tối ưu toàn cầu. Bởi vì điều đó thường đòi hỏi quá nhiều dữ liệu đào tạo.


16

Một thay thế thú vị cho việc giảm độ dốc là các thuật toán đào tạo dựa trên dân số như thuật toán tiến hóa (EA) và tối ưu hóa dòng hạt (PSO). Ý tưởng cơ bản đằng sau các phương pháp tiếp cận dựa trên dân số là dân số các giải pháp ứng cử viên (vectơ trọng lượng NN) được tạo ra và các giải pháp ứng viên khám phá lặp lại không gian tìm kiếm, trao đổi thông tin và cuối cùng hội tụ về cực tiểu. Bởi vì nhiều điểm bắt đầu (giải pháp ứng cử viên) được sử dụng, cơ hội hội tụ về cực tiểu toàn cầu được tăng lên đáng kể. PSO và EA đã được chứng minh là hoạt động rất cạnh tranh, thường (mặc dù không phải lúc nào cũng) vượt trội so với độ dốc của các vấn đề đào tạo NN phức tạp.


+1 Có giá trị trong tâm trí mặc dù việc tích cực tối ưu hóa tiêu chí đào tạo có khả năng dẫn đến sự phù hợp quá mức, trừ khi các bước được thực hiện để ngăn chặn nó, vì vậy tôi sẽ tránh PSO và EA trừ khi tiêu chí đào tạo bao gồm một số hình thức chính quy hoặc phức tạp khác phạt.
Dikran Marsupial

5
@ anna-Earwen, bạn có thể vui lòng cung cấp một số tài liệu tham khảo trong đó PSO thực hiện cạnh tranh so với SGD không?
emrea

8

Tôi biết chủ đề này khá cũ và những người khác đã làm rất tốt để giải thích các khái niệm như cực tiểu địa phương, quá mức, v.v. Tuy nhiên, khi OP đang tìm kiếm một giải pháp thay thế, tôi sẽ cố gắng đóng góp một và hy vọng nó sẽ truyền cảm hứng cho những ý tưởng thú vị hơn.

Ý tưởng là thay thế mọi trọng số w thành w + t, trong đó t là một số ngẫu nhiên theo phân phối Gaussian. Đầu ra cuối cùng của mạng sau đó là đầu ra trung bình trên tất cả các giá trị có thể có của t. Điều này có thể được thực hiện phân tích. Sau đó, bạn có thể tối ưu hóa vấn đề bằng cách giảm độ dốc hoặc LMA hoặc các phương pháp tối ưu hóa khác. Sau khi tối ưu hóa xong, bạn có hai lựa chọn. Một tùy chọn là giảm sigma trong phân phối Gaussian và thực hiện tối ưu hóa nhiều lần cho đến khi sigma đạt đến 0, khi đó bạn sẽ có mức tối thiểu cục bộ tốt hơn (nhưng có khả năng nó có thể gây ra quá mức). Một tùy chọn khác là tiếp tục sử dụng một với số ngẫu nhiên trong các trọng số của nó, nó thường có thuộc tính tổng quát hóa tốt hơn.

Cách tiếp cận đầu tiên là một mẹo tối ưu hóa (tôi gọi nó là đường hầm chập, vì nó sử dụng tích chập trên các tham số để thay đổi hàm mục tiêu), nó làm phẳng bề mặt của cảnh quan hàm chi phí và thoát khỏi một số cực tiểu cục bộ, do đó làm cho nó dễ dàng hơn để tìm tối thiểu toàn cầu (hoặc tối thiểu địa phương tốt hơn).

Cách tiếp cận thứ hai liên quan đến việc tiêm tiếng ồn (về trọng lượng). Lưu ý rằng điều này được thực hiện một cách phân tích, có nghĩa là kết quả cuối cùng là một mạng duy nhất, thay vì nhiều mạng.

Dưới đây là các kết quả đầu ra cho bài toán hai hình xoắn ốc. Kiến trúc mạng là giống nhau cho cả ba trong số chúng: chỉ có một lớp ẩn gồm 30 nút và lớp đầu ra là tuyến tính. Thuật toán tối ưu hóa được sử dụng là LMA. Hình ảnh bên trái là cho thiết lập vanilla; ở giữa đang sử dụng cách tiếp cận đầu tiên (cụ thể là liên tục giảm sigma về 0); thứ ba là sử dụng sigma = 2.

Kết quả của bài toán hai vòng xoắn theo ba cách tiếp cận

Bạn có thể thấy rằng giải pháp vanilla là tồi tệ nhất, đường hầm chập làm việc tốt hơn, và tiếng ồn (với đường hầm chập) là tốt nhất (về đặc tính tổng quát).

Cả đường hầm chập chững và cách phân tích tiếng ồn là những ý tưởng ban đầu của tôi. Có lẽ họ là người thay thế có thể quan tâm. Các chi tiết có thể được tìm thấy trong bài báo của tôi Kết hợp số lượng mạng thần kinh vô cực thành một . Cảnh báo: Tôi không phải là một nhà văn học thuật chuyên nghiệp và bài báo không được xem xét ngang hàng. Nếu bạn có câu hỏi về các phương pháp tôi đã đề cập, xin vui lòng để lại nhận xét.


1

Máy học cực đoan Về cơ bản, chúng là một mạng lưới thần kinh nơi các trọng số kết nối các đầu vào với các nút ẩn được gán ngẫu nhiên và không bao giờ được cập nhật. Các trọng số giữa các nút ẩn và đầu ra được học trong một bước duy nhất bằng cách giải phương trình tuyến tính (nghịch đảo ma trận).

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.