Trực giác toán học cho việc sử dụng Re-Lu trong Machine Learning


10

Vì vậy, hiện tại các chức năng kích hoạt được sử dụng phổ biến nhất là Re-Lu. Vì vậy, tôi đã trả lời câu hỏi này Mục đích của chức năng kích hoạt trong Mạng nơ-ron là gì? và trong khi viết câu trả lời, tôi nhận ra, làm thế nào chính xác chức năng phi tuyến tính gần đúng của Re-Lu?

Theo định nghĩa toán học thuần túy, chắc chắn, đó là hàm phi tuyến tính do uốn cong sắc nét, nhưng nếu chúng ta chỉ giới hạn ở phần dương hoặc phần âm của trục x, thì tuyến tính của nó trong các vùng đó. Giả sử chúng ta cũng sử dụng toàn bộ trục x, sau đó cũng là tuyến tính (không theo nghĩa toán học nghiêm ngặt) theo nghĩa là nó không thể ước chừng một cách thỏa đáng các hàm cong như sóng hình sin ( 0 --> 90) với một lớp ẩn một nút có thể bằng một sigmoid chức năng kích hoạt.

Vậy trực giác đằng sau sự thật rằng Re-Lu được sử dụng trong NN là gì, mang lại hiệu quả thỏa đáng (tôi không hỏi mục đích của Re-lu) mặc dù chúng thuộc loại tuyến tính? Hoặc đôi khi các hàm phi tuyến tính như sigmoid và tanh bị ném vào giữa mạng?

EDIT: Theo nhận xét của @ Eka, Re-Lu có được khả năng của mình từ hoạt động không liên tục trong các lớp sâu của Mạng lưới thần kinh. Điều này có nghĩa là Re-Lu là tốt miễn là chúng ta sử dụng nó trong Deep NN và không phải là NN nông?


2
Tôi không phải là chuyên gia nhưng tìm thấy liên kết này quora.com/ Hãy
Eka

1
@Eka liên kết tốt đẹp .... nhưng họ đang nêu rõ những sự thật khó khăn mà không đưa ra một trực giác tốt đẹp
DuttaA

3
Đây là một phỏng đoán; Khả năng của Relu để xấp xỉ các hàm phi tuyến tính có thể là kết quả của tính chất gián đoạn của nó, tức là max(0,x)hoạt động trong các lớp sâu của mạng lưới thần kinh. Có một nghiên cứu openai trong đó họ tính toán các hàm phi tuyến tính bằng cách sử dụng mạng tuyến tính sâu ở đây là liên kết blog.openai.com/nonlinear-computing-in-linear-networks
Eka

Câu trả lời:


2

Đầu ra của mạng ReLU luôn "tuyến tính" và không liên tục. Chúng có thể xấp xỉ các đường cong, nhưng nó có thể mất rất nhiều đơn vị ReLU. Tuy nhiên, đồng thời đầu ra của chúng thường sẽ được hiểu là đầu ra cong liên tục.

Hãy tưởng tượng bạn đã đào tạo một mạng lưới thần kinh có x 3 và đầu ra | x 3 | (tương tự như một parabola). Điều này dễ dàng cho chức năng ReLU thực hiện hoàn hảo. Trong trường hợp này, đầu ra bị cong.

Nhưng nó không thực sự cong. Các đầu vào ở đây là "tuyến tính" liên quan đến đầu ra. Tất cả các mạng thần kinh làm là nó nhận đầu vào và trả về giá trị tuyệt đối của đầu vào. Nó thực hiện chức năng "tuyến tính", không cong. Bạn chỉ có thể thấy rằng đầu ra là phi tuyến tính khi bạn vẽ đồ thị theo giá trị x gốc (x trong x 3 ).

Vì vậy, khi chúng ta vẽ đồ thị đầu ra trên biểu đồ và nó trông cong, thường là do chúng ta liên kết các giá trị x khác nhau với đầu vào, và sau đó vẽ đầu ra dưới dạng tọa độ y liên quan đến các giá trị x đó.

Được rồi, vì vậy bạn muốn biết làm thế nào bạn sẽ mô hình hóa sin (x) một cách trơn tru bằng ReLU. Mẹo nhỏ là bạn không muốn đặt x làm đầu vào. Thay vào đó, đặt một cái gì đó cong liên quan đến x làm đầu vào, như x 3 . Vậy đầu vào là x 3 và đầu ra là sin (x). Lý do tại sao điều này sẽ hoạt động là vì nó không tính toán sin của đầu vào - đó là sin tính toán của khối lập phương của đầu vào. Nó không bao giờ có thể tính toán trơn tru sin của đầu vào. Để vẽ đồ thị sin đầu ra (x), đặt x gốc là tọa độ x (không đặt đầu vào) và đặt đầu ra làm tọa độ y.


Cách tiếp cận bạn đang đưa ra sẽ đòi hỏi nhiều relus là phỏng đoán của tôi ... Bạn đang rời rạc đường cong ... Vì vậy, đối với các đường cong tốt hơn, chúng tôi yêu cầu nhiều hơn nữa ... Đúng không?
DuttaA

Không hoàn toàn, IMO. Nếu bạn lấy một loạt các kết hợp tuyến tính khác nhau của đầu vào trong lớp đầu tiên thì bạn sẽ có nhiều loại đường cong khác nhau có sẵn để ghép lại với nhau trong lớp tiếp theo, một lần nữa với các kết hợp tuyến tính nhiều hơn. Điều này có thể làm cho một đầu ra hoàn hảo. Ví dụ, hãy tưởng tượng nếu bạn cắt và dán các đường cong lại với nhau tại điểm cực trị cục bộ của chúng. Sau đó, các đường cong kết quả sẽ gần như hoàn toàn liên tục. Nó cũng phụ thuộc chính xác mức độ bạn muốn đầu ra tốt. Mặc dù đúng là có các chức năng kích hoạt tốt hơn ReLU do tính tuyến tính quá mức của chúng (ví dụ ELU)
Ảnh mặc định

Tôi không thể hiểu làm thế nào chúng ta sẽ có nhiều đường cong khác nhau bằng một Re-lu đơn giản..tôi sẽ chỉ là sự kết hợp của 2 đường thẳng
DuttaA

@DuttaA Các đường thẳng chỉ là chức năng ánh xạ. Bạn có thể ánh xạ một đường cong thành một đường cong bằng cách sử dụng ánh xạ Relu. Tất cả bạn cần là có một đường cong là dữ liệu đầu vào của bạn.
Ảnh mặc định

@DuttaA Dòng số đầu vào là một đường thẳng và dòng số đầu ra là một đường thẳng, nhưng điều đó không nói lên điều gì về hình dạng của dữ liệu trên dòng số. Mặt phẳng xy là không gian euclide hình chữ nhật, nhưng bạn có thể có các đường cong bên trong không gian hình chữ nhật.
Ảnh mặc định
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.