Tôi có thể sử dụng ReLU trong autoencoder làm chức năng kích hoạt không?


11

Khi thực hiện một bộ mã hóa tự động với mạng thần kinh, hầu hết mọi người sẽ sử dụng sigmoid làm chức năng kích hoạt.

Chúng ta có thể sử dụng ReLU thay thế không? (Vì ReLU không có giới hạn ở giới hạn trên, về cơ bản có nghĩa là hình ảnh đầu vào có thể có pixel lớn hơn 1, không giống như các tiêu chí hạn chế cho bộ mã hóa tự động khi sử dụng sigmoid).

Câu trả lời:


5

Đây là một chủ đề thảo luận (từ tháng 7 năm 2013) chỉ ra rằng có thể có một số vấn đề với nó, nhưng nó có thể được thực hiện.

Ağlar Gülçehre (từ phòng thí nghiệm của Yoshua Bengio) cho biết ông đã sử dụng thành công kỹ thuật sau đây trong các vấn đề kiến ​​thức: Tầm quan trọng của thông tin trước để tối ưu hóa :

huấn luyện DAE đầu tiên như bình thường, nhưng với bộ chỉnh lưu trong lớp ẩn: a1(x) = W1 x + b1 h1 = f1(x) = rectifier(a1(x)) g1(h1) = {sigmoid}(V1 h1 + c1) giảm thiểu mất entropy chéo hoặc mất MSE, so sánh g1 (f1 (hỏng (x))) và x. sigmoid là tùy chọn tùy thuộc vào dữ liệu.

huấn luyện DAE thứ 2 với tiếng ồn được thêm vào trước bộ chỉnh lưu F1 và sử dụng các đơn vị tái cấu trúc phần mềm bị mất MSE: h2 = f2(h1) = rectifier(W2 h1 + b2) g2(h2) = softplus(V2 h2 + c2) tối thiểu hóaf1(x)g2(f2(rectifier(corrupt(a1(x)))))2+λ1W1+λ2W2

Xavier Glorot, cũng từ phòng thí nghiệm Bengio, cho biết ông đã làm như vậy trừ thay thế với một phạt "trên các giá trị kích hoạt" (có lẽ là ?) Ở cả hai miền Thích ứng cho Phân loại tình cảm quy mô lớn: Cách tiếp cận học tập sâu (ICML 2011) và trong các mạng thần kinh chỉnh lưu thưa thớt sâu (AISTATS 2011).W1L1g2()1


Cảm ơn về sự phản hồi nhanh chóng! Vì vậy, bạn đang nói rằng có một số vấn đề trong việc tối ưu hóa auteencoder khi ReLU được sử dụng thay vì Sigmoid?
RockTheStar

Có vẻ như nó có thể gây ra vấn đề, vâng, nhưng nó chắc chắn có thể được thực hiện nếu bạn thiết lập quy trình học tập chính xác. Nó có thể giúp đọc các giấy tờ liên kết.
Dougal

Tôi đang thử nghiệm một bộ mã hóa tự động đơn giản trên bộ dữ liệu MNIST. Tôi sử dụng các mạng được kết nối đầy đủ với kiến ​​trúc 784-128-64-2-64-128-784. Tôi sử dụng relus ở mọi nơi, nhưng đang thử nghiệm với lớp nút cổ chai (relu hoặc tuyến tính) và lớp đầu ra (relu hoặc sigmoid). Sử dụng bộ chỉnh lưu trong đầu ra dẫn đến hiệu suất kém hơn; sigmoid làm tốt hơn. Đối với đầu ra sigmoid, nút cổ chai tuyến tính dường như làm tốt hơn một chút. Vì vậy, sự kết hợp yêu thích của tôi cho hai lớp này là tuyến tính / sigmoid. (Nhân tiện, sử dụng sigmoids trên tất cả các lớp làm cho nó rõ ràng tồi tệ hơn.)
amip nói rằng Rebstate Monica

@ameoba Đối với tôi, không có gì đáng ngạc nhiên khi các kết quả đầu ra của Relu rất tệ: nếu bạn biết các đầu ra có một số giới hạn nhất định, sẽ rất hợp lý khi sử dụng một chức năng kích hoạt ràng buộc bạn với các giới hạn đó. Tôi không có nhiều kinh nghiệm trong lĩnh vực này, nhưng có lẽ tôi sẽ thử ELU hoặc ReLU bị rò rỉ cho các lớp ẩn.
Dougal

2
Ồ, wow, tôi không biết về ELU! Cảm ơn rất nhiều cho tiền boa, Dougal. Tôi đã thử chúng, và chúng làm việc tốt hơn. Học sâu là tuyệt vời: thủ thuật mới xuất hiện hàng năm và không ai có ý tưởng tại sao một số làm việc tốt hơn những người khác. (CC đến @RockTheStar). Nhân tiện, tôi cũng thấy rằng trình tối ưu hóa Adam thực hiện khá tuyệt vời.
amip nói rằng Phục hồi lại
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.