Làm thế nào để chọn một chức năng kích hoạt?


13

Tôi chọn chức năng kích hoạt cho lớp đầu ra tùy thuộc vào đầu ra mà tôi cần và các thuộc tính của chức năng kích hoạt mà tôi biết. Ví dụ: tôi chọn hàm sigmoid khi tôi xử lý các xác suất, ReLU khi tôi xử lý các giá trị dương và hàm tuyến tính khi tôi xử lý các giá trị chung.

Trong các lớp ẩn, tôi sử dụng ReLU bị rò rỉ để tránh các nơ-ron chết thay vì ReLU và tanh thay vì sigmoid. Tất nhiên, tôi không sử dụng hàm tuyến tính trong các đơn vị ẩn.

Tuy nhiên, sự lựa chọn cho chúng trong lớp ẩn hầu hết là do bản dùng thử và lỗi.

Có quy tắc nào về chức năng kích hoạt có khả năng hoạt động tốt trong một số tình huống không? Lấy các tình huống chung chung nhất có thể: có thể nói đến độ sâu của lớp, đến độ sâu của NN, đến số lượng tế bào thần kinh cho lớp đó, đến trình tối ưu hóa mà chúng ta đã chọn, về số lượng các tính năng đầu vào của lớp đó, để áp dụng NN này, v.v.

Trong câu trả lời của anh ấy / cô ấy , cantordust đề cập đến các chức năng kích hoạt khác mà tôi không đề cập đến, như ELU và SELU. Infos này được chào đón nhiều hơn. Tuy nhiên, càng nhiều chức năng kích hoạt tôi càng phát hiện ra rằng tôi càng bối rối trong việc lựa chọn chức năng sử dụng trong các lớp ẩn. Và tôi không nghĩ rằng lật một đồng xu là một cách tốt để chọn chức năng kích hoạt.

Câu trả lời:


10

Dường như với tôi rằng bạn đã hiểu những thiếu sót của ReLU và sigmoids (như tế bào thần kinh đã chết trong trường hợp ReLU đơn giản). Tôi sẽ đề nghị xem xét ELU (đơn vị tuyến tính theo cấp số nhân) và SELU (phiên bản tự chuẩn hóa của ELU). Theo một số giả định nhẹ, cái sau có đặc tính tốt là tự bình thường hóa, giúp giảm thiểu vấn đề biến mất và nổ tung gradient. Ngoài ra, họ tuyên truyền chuẩn hóa - tức là, họ đảm bảo rằng đầu vào của lớp tiếp theo sẽ có giá trị trung bình và phương sai đơn vị bằng không.

Biên tập:


Sẽ rất khó để đề xuất một chức năng kích hoạt hoạt động cho tất cả các trường hợp sử dụng (mặc dù tôi tin rằng SELU được thiết kế để nó sẽ làm đúng với hầu hết mọi đầu vào). Có nhiều cân nhắc - việc tính đạo hàm khó như thế nào (nếu nó hoàn toàn khác biệt!), Mạng nhanh với AF bạn chọn sẽ hội tụ nhanh như thế nào, liệu nó có thỏa mãn các điều kiện của định lý gần đúng phổ quát hay không, liệu nó có thỏa mãn các điều kiện của định lý xấp xỉ phổ quát hay không, nó bảo tồn bình thường hóa, và như vậy. Bạn có thể hoặc không quan tâm đến một số hoặc bất kỳ trong số đó.

Điểm mấu chốt là không có quy tắc chung để chọn chức năng kích hoạt cho các lớp ẩn. Cá nhân, tôi thích sử dụng sigmoids (đặc biệt tanh) vì chúng được giới hạn độc đáo và rất nhanh để tính toán, nhưng quan trọng nhất là vì chúng hoạt động cho các trường hợp sử dụng của tôi . Những người khác khuyên ReLU bị rò rỉ cho các lớp đầu vào và ẩn như là một chức năng đi đến nếu mạng của bạn không học được. Bạn thậm chí có thể trộn và kết hợp các chức năng kích hoạt để phát triển mạng lưới thần kinh cho các ứng dụng ưa thích .

Vào cuối ngày, có lẽ bạn sẽ nhận được nhiều ý kiến ​​vì có nhiều người về sự lựa chọn đúng chức năng kích hoạt, vì vậy câu trả lời ngắn có lẽ nên là: bắt đầu với AF trong ngày (ReLU / SELU bị rò rỉ?) và thực hiện theo cách của bạn thông qua các AF khác theo thứ tự giảm mức độ phổ biến nếu mạng của bạn đấu tranh để học bất cứ điều gì.


1
Phải, tôi quên mất việc truyền bá bình thường hóa. Cảm ơn vì đã nhắc tôi. Tuy nhiên, câu hỏi vẫn chưa được trả lời. Có một quy tắc hoặc một cái gì đó để chọn chức năng kích hoạt nào tôi nên đặt trong các lớp ẩn? Để đơn giản, tôi chỉ nói về các lớp được kết nối đơn giản. Tôi không muốn làm phức tạp chủ đề bằng các kết luận, gộp chung, v.v.
gvgramazio

@gvgramazio Tôi đã chỉnh sửa câu trả lời, hy vọng bây giờ nó hữu ích hơn một chút.
cantordust

Với bản chỉnh sửa tôi nghĩ rằng bạn đã trả lời câu hỏi của tôi cũng như cung cấp các liên kết quan tâm (đặc biệt là liên kết về kết hợp và kết hợp ). Thật không may không phải là câu trả lời mà tôi muốn nghe. Tôi sẽ giữ câu hỏi của tôi mở thêm một ngày nữa. Nếu không ai đưa ra câu trả lời tốt hơn tôi sẽ đánh dấu bạn là chấp nhận.
gvgramazio

-1

Tôi không biết bạn đang làm việc trên loại mạng thần kinh nào. Nhưng người ta cũng nên xem xét các chức năng kích hoạt tanh khi xử lý mạng thần kinh tái phát. Lý do là để tránh phát nổ các vấn đề về độ dốc vì hàm tanh bị giới hạn bởi sự khác biệt của hàm RELU chẳng hạn.


Trong câu hỏi tôi đã nói rằng tôi sử dụng tanh và sigmoid, không chỉ ReLU. Ngoài ra, để đơn giản, tôi thường nói đến các lớp được kết nối đầy đủ cổ điển. Nếu bạn nghĩ rằng việc chúng ta đang xử lý một mạng thần kinh tái phát có ý nghĩa đối với việc lựa chọn chức năng kích hoạt, vui lòng nêu rõ lý do cho việc đó. Hiện tượng nổ / biến mất cũng có thể xảy ra trong mạng lưới thần kinh không tái phát.
gvgramazio
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.