Những lợi thế của ReLU so với chức năng sigmoid trong các mạng lưới thần kinh sâu là gì?


141

Trạng thái của nghệ thuật phi tuyến tính là sử dụng các đơn vị tuyến tính chỉnh lưu (ReLU) thay vì chức năng sigmoid trong mạng lưới thần kinh sâu. Các lợi thế là gì?

Tôi biết rằng đào tạo một mạng khi ReLU được sử dụng sẽ nhanh hơn, và nó được truyền cảm hứng sinh học nhiều hơn, những lợi thế khác là gì? (Đó là, bất kỳ nhược điểm của việc sử dụng sigmoid)?


Tôi có ấn tượng rằng cho phép phi tuyến tính vào mạng của bạn là một lợi thế. Nhưng tôi không thấy điều đó trong một trong hai câu trả lời dưới đây ...
Monica Heddneck

2
@MonicaHeddneck cả ReLU và sigmoid đều phi tuyến ...
Antoine

Câu trả lời:


130

h= =tối đa(0,một)một= =Wx+b

Một lợi ích chính là giảm khả năng biến mất của gradient. Điều này phát sinh khi . Trong chế độ này, gradient có giá trị không đổi. Ngược lại, độ dốc của sigmoids ngày càng nhỏ khi giá trị tuyệt đối của x tăng. Độ dốc không đổi của ReLUs dẫn đến việc học nhanh hơn.một>0

Lợi ích khác của ReLUs là sự thưa thớt. Độ thưa thớt phát sinh khi . Càng nhiều đơn vị như vậy tồn tại trong một lớp, đại diện kết quả càng thưa thớt. Mặt khác, Sigmoids luôn có khả năng tạo ra một số giá trị khác không dẫn đến các biểu diễn dày đặc. Các đại diện thưa thớt dường như có lợi hơn so với các đại diện dày đặc.một0


2
Khi bạn nói độ dốc, bạn có nghĩa là liên quan đến trọng lượng hoặc đầu vào x? @DaemonMaker
MAS

4
Đối với trọng lượng. Các thuật toán học tập dựa trên độ dốc luôn lấy độ dốc đối với các tham số của người học, tức là các trọng số và độ lệch trong NN.
DaemonMaker

2
Bạn có ý nghĩa gì bởi "đại diện" dày đặc và "thưa thớt"? Truy vấn google "mạng nơ ron đại diện thưa thớt" dường như không đưa ra bất cứ điều gì liên quan.
Hi-Angel

6
"Các đại diện thưa thớt dường như có lợi hơn so với các đại diện dày đặc." Bạn có thể cung cấp một nguồn hoặc giải thích?
Rohan Saxena

1
Tôi không hiểu câu trả lời này hoàn toàn chính xác. "Giảm khả năng gradient biến mất" để lại điều gì đó mong muốn. ReLu là số KHÔNG cho đủ nhỏ . Trong quá trình học, bạn sẽ biến mất một số tế bào thần kinh nhất định khi bạn ở chế độ này. Trên thực tế, điều đó rõ ràng là không thể tránh khỏi, bởi vì nếu không thì mạng của bạn sẽ là tuyến tính. Chuẩn hóa hàng loạt giải quyết điều này là chủ yếu. Điều này thậm chí không đề cập đến lý do quan trọng nhất: ReLu và độ dốc của chúng. cực kỳ nhanh để tính toán, so với một sigmoid. x
Alex R.

65

Lợi thế:

  • Sigmoid: không kích hoạt
  • Relu: không biến mất gradient
  • Relu: Tính toán hiệu quả hơn để tính toán hơn các hàm như Sigmoid vì Relu chỉ cần chọn max (0, ) và không thực hiện các phép toán hàm mũ đắt tiền như trong Sigmoidsx
  • Relu: Trong thực tế, các mạng có Relu có xu hướng hiển thị hiệu suất hội tụ tốt hơn so với sigmoid. ( Krizhevsky và cộng sự )

Bất lợi:

  • Sigmoid: có xu hướng biến mất độ dốc (vì có một cơ chế giảm độ dốc khi tăng " ", trong đó " " là đầu vào của hàm sigmoid. Gradient của Sigmoid: . Khi " " phát triển đến vô hạn lớn, ).mộtmộtS'(một)= =S(một)(1-S(một))mộtS'(một)= =S(một)(1-S(một))= =1×(1-1)= =0

  • Relu: có xu hướng làm nổ tung kích hoạt (không có cơ chế hạn chế đầu ra của nơ ron, vì chính " " là đầu ra)một

  • Relu: Vấn đề Dying Relu - nếu có quá nhiều kích hoạt xuống dưới 0 thì hầu hết các đơn vị (nơ ron) trong mạng với Relu sẽ chỉ đơn giản là tạo ra số 0, nói cách khác, chết và do đó cấm học. bằng cách sử dụng Leaky-Relu thay thế.)

7
Bạn có thể thấy hữu ích khi bạn có thể sử dụng kiểu sắp xếp toán học với latex bằng cách đặt các ký hiệu đô la xung quanh phương trình của bạn, ví dụ: $x$tạo . x
Cá bạc

Relu: không biến mất độ dốc. Huh? với mọi . x < - b / aRelu(mộtx+b)= =0x<-b/một
Alex R.

40

Chỉ cần bổ sung cho các câu trả lời khác:

Sinh viên biến mất

Các câu trả lời khác là đúng để chỉ ra rằng đầu vào càng lớn (về giá trị tuyệt đối) thì độ dốc của hàm sigmoid càng nhỏ. Nhưng, có lẽ một hiệu ứng thậm chí còn quan trọng hơn là đạo hàm của hàm sigmoid LUÔN nhỏ hơn một . Trong thực tế, nó nhiều nhất là 0,25!

Mặt trái của điều này là nếu bạn có nhiều lớp, bạn sẽ nhân các độ dốc này và sản phẩm của nhiều giá trị nhỏ hơn 1 sẽ chuyển sang 0 rất nhanh.

Vì trạng thái của nghệ thuật Deep Learning đã chỉ ra rằng nhiều lớp giúp ích rất nhiều, nên nhược điểm này của chức năng Sigmoid là một kẻ giết người trong trò chơi. Bạn không thể thực hiện Deep Learning với Sigmoid.

0một<01một>0


10
Đây là câu trả lời tôi đang tìm kiếm. Khi mọi người đang nói về "độ dốc biến mất", người ta không thể ngừng tự hỏi "Độ dốc của ReLu chính xác là 0 cho một nửa phạm vi của nó. Không phải là" biến mất "". Cách bạn mô tả vấn đề bằng cách nhắc nhở chúng tôi rằng độ dốc được nhân lên trên nhiều lớp, mang lại nhiều sự rõ ràng.
Boris Gorelik

3
@ guilherme-de-lazari đề xuất chỉnh sửa ở dòng cuối cùng - giá trị của relu là a> 0 nhưng bạn đang nói về độ dốc là 1 cho a> 0
saurabh

4
Nếu đây là lý do chính, thì chúng ta không thể bán lại sigmoid thành 1 / (1 + exp (-4x))? Sau đó, đạo hàm nhiều nhất là 1 (hoặc bán lại thậm chí nhiều hơn, để cung cấp cho chúng tôi các tùy chọn trên và dưới 1). Tôi nghi ngờ điều này sẽ thực hiện tồi tệ hơn nhiều, bởi vì việc thay đổi kích thước cũng làm giảm diện tích mà đạo hàm có thể phân biệt được với 0. Nhưng tôi không chắc câu trả lời này đã kể toàn bộ câu chuyện.
Peter

5
1/(1+điểm kinh nghiệm(-mộtx))một

7
Ngoài ra, bạn CÓ THỂ học sâu với sigmoids, bạn chỉ cần chuẩn hóa các đầu vào, ví dụ thông qua Batch Chuẩn hóa. Điều này sẽ tập trung đầu vào của bạn để tránh bão hòa sigmoid. Trong bài báo gốc về Batch bình thường hóa, mạng lưới thần kinh kích hoạt sigmoid gần như ngang bằng với ReLus: arxiv.org/pdf/1502.03167.pdf
Alex R.

7

Một lợi thế cho ReLU ngoài việc tránh sự cố biến mất độ dốc là nó có thời gian chạy thấp hơn nhiều. max (0, a) chạy nhanh hơn nhiều so với bất kỳ hàm sigmoid nào (hàm logistic chẳng hạn = 1 / (1 + e ^ (- a)) sử dụng số mũ chậm tính toán khi được thực hiện thường xuyên). Điều này đúng cho cả lan truyền tiến và lùi như độ dốc của ReLU (nếu a <0, = 0 khác = 1) cũng rất dễ tính toán so với sigmoid (đối với đường cong logistic = e ^ a / ((1 + e ^ a) ^ 2)).

Mặc dù ReLU có nhược điểm là làm chết các tế bào làm hạn chế khả năng của mạng. Để khắc phục điều này, chỉ cần sử dụng một biến thể của ReLU như ReLU bị rò rỉ, ELU, v.v. nếu bạn nhận thấy vấn đề được mô tả ở trên.


1
+1. Đây là một trong những câu trả lời đúng duy nhất ở đây. Bạn cũng có thể sử dụng chuẩn hóa hàng loạt để tập trung đầu vào để chống lại các nơ-ron chết.
Alex R.

2

Một phần câu trả lời bổ sung để hoàn thành trong cuộc tranh luận về hiệu suất thưa thớt và dày đặc .

Đừng nghĩ về NN nữa, hãy nghĩ về đại số tuyến tính và các phép toán ma trận, bởi vì các lan truyền tiến và lùi là một chuỗi các phép toán ma trận.

Bây giờ hãy nhớ rằng tồn tại rất nhiều toán tử được tối ưu hóa để áp dụng cho ma trận thưa thớt và vì vậy tối ưu hóa các hoạt động đó trong mạng của chúng tôi có thể cải thiện đáng kể hiệu năng của thuật toán.

Tôi hy vọng điều đó có thể giúp một số bạn ...


1

Lợi ích chính là đạo hàm của ReLu là 0 hoặc 1, do đó, nhân với nó sẽ không gây ra các trọng số nằm xa kết quả cuối cùng của hàm mất mát khi gặp vấn đề về độ dốc biến mất:

nhập mô tả hình ảnh ở đâ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.