Sự khác biệt của các chức năng kích hoạt trong mạng nơ ron nói chung


15

Tôi đã nghiên cứu các loại chức năng kích hoạt cho các mạng thần kinh. Bản thân các chức năng khá đơn giản, nhưng sự khác biệt của ứng dụng không hoàn toàn rõ ràng.

Thật hợp lý khi người ta phân biệt giữa các hàm loại logic và tuyến tính, tùy thuộc vào đầu ra nhị phân / liên tục mong muốn, nhưng lợi thế của hàm sigmoid so với hàm tuyến tính đơn giản là gì?

ReLU đặc biệt khó hiểu đối với tôi, ví dụ: điểm nào để sử dụng chức năng hoạt động như tuyến tính trong trường hợp đầu vào tích cực nhưng lại "phẳng" trong trường hợp phủ định? Trực giác đằng sau này là gì? Hay đó chỉ là một lỗi thử nghiệm đơn giản, không có gì hơn?

Câu trả lời:


15

Một câu hỏi tương tự đã được hỏi trên CV: Danh sách đầy đủ các chức năng kích hoạt trong các mạng thần kinh với ưu / nhược điểm .

Tôi sao chép bên dưới một trong những câu trả lời:

Một danh sách như vậy, mặc dù không đầy đủ: http://cs231n.github.io/neural-networks-1/

Các chức năng kích hoạt thường được sử dụng

Mỗi hàm kích hoạt (hoặc phi tuyến tính ) lấy một số duy nhất và thực hiện một phép toán cố định nhất định trên nó. Có một số chức năng kích hoạt bạn có thể gặp trong thực tế:

nhập mô tả hình ảnh ở đâynhập mô tả hình ảnh ở đây

Trái: Sigmoid phi tuyến tính ép các số thực nằm trong khoảng giữa [0,1] Phải: Các phi tuyến tanh ép các số thực nằm trong phạm vi giữa [-1,1].

Sigmoid. Phi tuyến tính sigmoid có dạng toán học σ(x)= =1/(1+e-x)và được hiển thị trong hình trên bên trái. Như đã nói ở phần trước, nó lấy một số có giá trị thực và "ép" nó trong phạm vi từ 0 đến 1. Đặc biệt, các số âm lớn trở thành 0 và các số dương lớn trở thành 1. Hàm sigmoid đã được sử dụng thường xuyên trong lịch sử vì nó có một cách giải thích tốt là tốc độ bắn của một nơron: từ không bắn hoàn toàn (0) đến bắn hoàn toàn bão hòa ở tần số tối đa giả định (1). Trong thực tế, phi tuyến tính sigmoid gần đây đã không còn được ưa chuộng và nó hiếm khi được sử dụng. Nó có hai nhược điểm chính:

  • Sigmoids bão hòa và tiêu diệt gradient . Một đặc tính không mong muốn của tế bào thần kinh sigmoid là khi kích hoạt của tế bào thần kinh bão hòa ở đuôi 0 hoặc 1, độ dốc tại các vùng này gần như bằng không. Hãy nhớ lại rằng trong quá trình truyền bá, độ dốc (cục bộ) này sẽ được nhân với độ dốc của đầu ra của cổng này cho toàn bộ mục tiêu. Do đó, nếu độ dốc cục bộ rất nhỏ, nó sẽ "tiêu diệt" độ dốc một cách hiệu quả và hầu như không có tín hiệu nào sẽ truyền qua tế bào thần kinh đến trọng lượng của nó và đệ quy vào dữ liệu của nó. Ngoài ra, người ta phải hết sức thận trọng khi khởi tạo trọng lượng của các tế bào thần kinh sigmoid để ngăn ngừa bão hòa. Ví dụ, nếu trọng lượng ban đầu quá lớn thì hầu hết các tế bào thần kinh sẽ trở nên bão hòa và mạng sẽ hầu như không học được.
  • x>0f= =wTx+bwf). Điều này có thể giới thiệu động lực zig-zagging không mong muốn trong các bản cập nhật độ dốc cho các trọng số. Tuy nhiên, lưu ý rằng một khi các gradient này được thêm vào trong một loạt dữ liệu, bản cập nhật cuối cùng cho các trọng số có thể có các dấu hiệu khác nhau, phần nào giảm thiểu vấn đề này. Do đó, đây là một sự bất tiện nhưng nó có hậu quả ít nghiêm trọng hơn so với vấn đề kích hoạt bão hòa ở trên.

tanh(x)= =2σ(2x)-1

nhập mô tả hình ảnh ở đâynhập mô tả hình ảnh ở đây

Trái: Hàm kích hoạt Đơn vị tuyến tính chỉnh sửa (ReLU), bằng 0 khi x <0 và sau đó tuyến tính với độ dốc 1 khi x> 0. Phải: Một âm mưu từ Krizhevsky et al. (pdf) giấy cho thấy sự cải thiện 6 lần về độ hội tụ với đơn vị ReLU so với đơn vị tanh.

f(x)= =tối đa(0,x)

  • (+) Nó đã được tìm thấy để tăng tốc đáng kể (ví dụ: hệ số 6 trong Krizhevsky và cộng sự ) sự hội tụ của độ dốc dốc ngẫu nhiên so với các hàm sigmoid / tanh. Có ý kiến ​​cho rằng điều này là do dạng tuyến tính, không bão hòa của nó.
  • (+) So với các tế bào thần kinh tanh / sigmoid liên quan đến các hoạt động đắt tiền (hàm mũ, v.v.), ReLU có thể được thực hiện bằng cách đơn giản là đập một ma trận kích hoạt ở mức 0.
  • (-) Thật không may, các đơn vị ReLU có thể dễ vỡ trong quá trình huấn luyện và có thể "chết". Ví dụ, một gradient lớn chảy qua nơ-ron ReLU có thể khiến các trọng số cập nhật theo cách mà nơ-ron sẽ không bao giờ kích hoạt trên bất kỳ biểu dữ liệu nào nữa. Nếu điều này xảy ra, thì độ dốc chảy qua đơn vị sẽ mãi mãi bằng không kể từ thời điểm đó. Đó là, các đơn vị ReLU có thể chết không hồi phục trong quá trình huấn luyện vì chúng có thể bị loại bỏ đa tạp dữ liệu. Ví dụ, bạn có thể thấy rằng có đến 40% mạng của bạn có thể "chết" (tức là các nơ-ron không bao giờ kích hoạt trên toàn bộ tập dữ liệu đào tạo) nếu tốc độ học tập được đặt quá cao. Với một thiết lập đúng về tỷ lệ học tập, điều này ít xảy ra hơn.

Rò rỉ ReLU. ReLU bị rò rỉ là một trong những nỗ lực để khắc phục vấn đề "ReLU sắp chết". Thay vì hàm bằng 0 khi x <0, ReLU bị rò rỉ thay vào đó sẽ có độ dốc âm nhỏ (0,01 hoặc hơn). Nghĩa là, hàm tính trong đó là một hằng số nhỏ. Một số người báo cáo thành công với hình thức kích hoạt chức năng này, nhưng kết quả không phải lúc nào cũng nhất quán. Độ dốc trong vùng âm cũng có thể được tạo thành một tham số của mỗi nơ-ron, như đã thấy trong các nơ-ron PReLU, được giới thiệu trong Delving Deep vào Rectifier , bởi Kaiming He và cộng sự, 2015. Tuy nhiên, tính nhất quán của lợi ích giữa các nhiệm vụ hiện nay không rõ.f(x)= =1(x<0)(αx)+1(x> =0)(x)α

nhập mô tả hình ảnh ở đây

Tối đa . Các loại đơn vị khác đã được đề xuất không có dạng chức năng trong đó tính phi tuyến tính được áp dụng trên sản phẩm chấm giữa trọng lượng và dữ liệu. Một lựa chọn tương đối phổ biến là tế bào thần kinh Maxout (được giới thiệu gần đây bởi Goodfellow và cộng sự ), khái quát hóa ReLU và phiên bản rò rỉ của nó. Tế bào thần kinh Maxout tính toán hàm . Lưu ý rằng cả ReLU và ReLU rò rỉ đều là trường hợp đặc biệt của mẫu này (ví dụ: đối với ReLU, chúng tôi cóf(wTx+b)tối đa(w1Tx+b1,w2Tx+b2)w1,b1= =0). Do đó, tế bào thần kinh Maxout được hưởng tất cả các lợi ích của đơn vị ReLU (chế độ hoạt động tuyến tính, không bão hòa) và không có nhược điểm của nó (chết ReLU). Tuy nhiên, không giống như các nơ-ron ReLU, nó nhân đôi số lượng tham số cho mỗi nơ-ron đơn lẻ, dẫn đến tổng số tham số cao.

Điều này kết thúc cuộc thảo luận của chúng tôi về các loại tế bào thần kinh phổ biến nhất và chức năng kích hoạt của chúng. Như một bình luận cuối cùng, rất hiếm khi trộn và kết hợp các loại nơ-ron khác nhau trong cùng một mạng, mặc dù không có vấn đề cơ bản nào khi làm như vậy.

TLDR : " Tôi nên sử dụng loại nơ ron nào? " Sử dụng phi tuyến tính ReLU, cẩn thận với tốc độ học tập của bạn và có thể theo dõi tỷ lệ các đơn vị "chết" trong mạng. Nếu điều này làm bạn lo lắng, hãy thử Leaky ReLU hoặc Maxout. Không bao giờ sử dụng sigmoid. Hãy thử tanh, nhưng hy vọng nó hoạt động kém hơn ReLU / Maxout.


Giấy phép: Giấy phép


MIT (MIT)

Bản quyền (c) 2015 Andrej Karpathy

Quyền này được cấp miễn phí cho bất kỳ người nào có được bản sao của phần mềm này và các tệp tài liệu liên quan ("Phần mềm") để xử lý Phần mềm mà không hạn chế, bao gồm nhưng không giới hạn quyền sử dụng, sao chép, sửa đổi, hợp nhất , xuất bản, phân phối, cấp phép lại và / hoặc bán các bản sao của Phần mềm và cho phép những người mà Phần mềm được cung cấp để làm như vậy, theo các điều kiện sau:

Thông báo bản quyền ở trên và thông báo cấp phép này sẽ được bao gồm trong tất cả các bản sao hoặc các phần quan trọng của Phần mềm.

PHẦN MỀM ĐƯỢC CUNG CẤP "NHƯ VẬY", KHÔNG CÓ ĐẢM BẢO CỦA BẤT K K LOẠI NÀO, RPR RÀNG HAY NGỤ Ý, BAO GỒM NHƯNG KHÔNG GIỚI HẠN ĐẢM BẢO ĐẢM BẢO TUYỆT VỜI, PHÙ HỢP ĐỐI VỚI MỘT MỤC ĐÍCH THAM GIA VÀ KHÔNG PHÙ HỢP. KHÔNG CÓ SỰ KIỆN NÀO NÊN TÁC GIẢ PHẦN MỀM.*


Cảm ơn, bản tóm tắt này cung cấp một số thông tin chi tiết, nhưng, thẳng thắn, tôi vẫn không thể hiểu được một số chi tiết bằng trực giác (ví dụ tại sao ReLU "tăng tốc đáng kể sự hội tụ của SGD"), và hầu hết: chọn cái nào? Dựa trên kết luận, Maxout là tốt nhất và đó là kết thúc của nó. Nhưng ngoài thực tế là Maxout không được triển khai trong các gói phổ biến nhất (ví dụ như ở Keras), có vẻ như tôi hợp lý rằng ít nhất trong lớp cuối cùng phải đặt các loại khác (ví dụ như sigmoid cho biclassization).
Hendrik
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.