Backpropagation: Trong các phương pháp bậc hai, đạo hàm ReLU có phải là 0 không? và tác dụng của nó đối với việc đào tạo?


7

ReLU là một chức năng kích hoạt được định nghĩa là h=max(0,a)trong đó .a=Wx+b

Thông thường, chúng tôi đào tạo mạng lưới thần kinh với các phương pháp bậc nhất như SGD, Adam, RMSprop, Adadelta hoặc Adagrad. Backpropagation trong các phương pháp bậc nhất đòi hỏi đạo hàm bậc nhất. Do đó được dẫn đến .x1

Nhưng nếu chúng ta sử dụng các phương thức bậc hai, đạo hàm của ReLU có phải là không? Bởi vì có nguồn gốc và được dẫn xuất trở lại . Nó sẽ là một lỗi? Ví dụ: với phương pháp của Newton, bạn sẽ chia cho . (Tôi thực sự không hiểu tối ưu hóa không có Hessian. IIRC, vấn đề là sử dụng một Hessian gần đúng thay vì thực tế).0x100

Ảnh hưởng của gì? Chúng ta vẫn có thể đào tạo mạng lưới thần kinh với ReLU bằng các phương pháp bậc hai chứ? Hoặc nó sẽ không thể đào tạo / lỗi (nan / vô cực)?h=0


Để rõ ràng, đây là ReLU là f(x) :

f(x)=

0forx<0xforx0

f(x)=

0forx<01forx0

f(x)=0

Câu trả lời:


5

Có, đạo hàm bậc hai của ReLU là 0. Về mặt kỹ thuật, cả hay đều được định nghĩa tại , nhưng chúng tôi bỏ qua điều đó - thực tế là chính xác là hiếm và không đặc biệt có ý nghĩa, vì vậy đây không phải là vấn đề. Phương pháp của Newton không hoạt động trên hàm truyền ReLU vì nó không có điểm dừng. Nó cũng không hoạt động có ý nghĩa trên hầu hết các chức năng chuyển phổ biến khác - chúng không thể được tối thiểu hóa hoặc tối đa hóa cho các đầu vào hữu hạn.dydxd2ydx2x=0x=0

Khi bạn kết hợp nhiều hàm ReLU với các lớp nhân ma trận trong một cấu trúc như mạng thần kinh và muốn giảm thiểu một hàm mục tiêu, hình ảnh sẽ phức tạp hơn. Sự kết hợp này không có điểm dừng. Ngay cả một nơron ReLU đơn lẻ và một mục tiêu lỗi bình phương trung bình sẽ có hành vi đủ khác nhau sao cho đạo hàm bậc hai của trọng lượng đơn sẽ khác nhau và không được bảo đảm là 0.

Sự phi tuyến khi nhiều lớp kết hợp là những gì tạo ra một bề mặt tối ưu hóa thú vị hơn. Điều này cũng có nghĩa là khó tính toán các đạo hàm riêng bậc hai (hay ma trận Hessian ) khó hơn, nó không chỉ là vấn đề lấy đạo hàm bậc hai của các hàm truyền.

Thực tế là cho hàm truyền sẽ làm cho một số thuật ngữ bằng 0 trong ma trận (đối với hiệu ứng bậc hai từ cùng kích hoạt nơ-ron), nhưng phần lớn các thuật ngữ trong Hessian là có dạng trong đó E là mục tiêu và , là các tham số khác nhau của mạng thần kinh. Một ma trận Hessian được nhận biết đầy đủ sẽ có thuật ngữ trong đó là số lượng tham số - với các mạng thần kinh lớn có tới 1 triệu tham số, ngay cả với quy trình tính toán đơn giản và nhiều thuật ngữ là 0 (ví dụ: 2 trọng số trong cùng một lớp) có thể không khả thi để tính toán.d2ydx2=02ExixjxixjN2N

Có các kỹ thuật để ước tính tác dụng của các dẫn xuất bậc hai được sử dụng trong một số trình tối ưu hóa mạng thần kinh. RMSProp có thể được xem như là ước tính đại khái cho các hiệu ứng bậc hai, chẳng hạn. Các trình tối ưu hóa "không có Hessian" tính toán rõ ràng hơn tác động của ma trận này.


Vì vậy, nó sẽ tốt thôi? Không phải lỗi (nan / vô cực)?
rilut

Tôi đã nghe nói về tối ưu hóa không có Hessian, tôi nghĩ đó chỉ là về việc sử dụng một Hessian gần đúng thay vì thực tế?
rilut

1
Có, tôi nghĩ rằng hầu hết các kỹ thuật ước tính Hessian hơn là cố gắng tính toán mạnh mẽ. Tôi không biết tại sao, nhưng sẽ cho rằng vì khó hoặc không thể xây dựng backpropagation vì hiệu ứng bậc hai sẽ vướng víu các điều khoản, ví dụ trong đó x và y là params từ các lớp khác nhau. 2xy
Neil Slater

1
@rilut: Tôi đã cập nhật câu trả lời, vì tôi nghĩ rằng sự nhầm lẫn của bạn bắt nguồn từ thực tế là phương pháp của Newton sẽ không hoạt động trên hàm truyền ReLU. Bạn đúng về điều đó. Nhưng một khi bạn kết hợp ReLU với một hàm mục tiêu (thậm chí một thứ đơn giản như một nơron đơn lẻ và mục tiêu lỗi bình phương trung bình), nó sẽ bắt đầu hoạt động.
Neil Slater

Tuyệt vời. Tuyệt vời.
rilut
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.