7

Tôi đang đào tạo mạng nơron trên dữ liệu có giá trị dương là &.ReLU có thể xử lý một đầu vào âm?

Có cách nào để nạp dữ liệu vào mạng ReLU mà không chuyển đổi tất cả thành tích cực và có đầu vào riêng biệt cho biết liệu dữ liệu là số âm hay dương?

Vấn đề tôi thấy là đầu vào âm ở lớp đầu vào có nghĩa là trừ khi bạn đã khởi tạo trọng số của mình là âm, nút ReLU không bao giờ được kích hoạt và sẽ chết vĩnh viễn.

Trả lời

4

Tôi không thực sự chắc chắn 100% những gì bạn đang hỏi, vì có nhiều chức năng kích hoạt và bạn có thể dễ dàng tự viết mã. Nếu bạn không muốn mã của riêng bạn, có thể thử một số lựa chọn thay thế:

Leaky ReLU

enter image description here

Parameteric ReLU

enter image description here

Về cơ bản, hãy xem here enter image description here

+0

Xin lỗi không phải trên lớp đầu vào mà là lớp đầu tiên. Kể từ khi trọng lượng ReLU được khởi tạo từ các giá trị nhỏ tích cực trở đi nó khá nhiều buộc ReLU của tôi luôn luôn đầu ra 0. Tôi đã thử bằng cách sử dụng một ReLU Leaky nhưng nó không hoạt động. Nhưng tôi đoán đó là một câu hỏi riêng biệt như khái niệm một ReLU bị rò rỉ nên hoạt động. Liên kết đến câu hỏi mới ... http://stackoverflow.com/questions/43371117/relu-not-learning-to-handle-negative-inputs-keras-tensorflow –

0

Nếu bạn thực sự sử dụng chức năng kích hoạt với lớp đầu vào, tôi khuyên bạn nên sử dụng một hàm kích hoạt khác như ELU hoặc chuyển dữ liệu của bạn thành dải [0,1] chẳng hạn. Nếu chức năng ReLU nằm trong một số lớp ẩn, chức năng ReLU sẽ tạm thời bị chết.

Giả sử bạn có hàm ReLU trong lớp ẩn cuối cùng của mạng chuyển tiếp. Với thuật toán backpropagation, có thể các đầu ra của các lớp ẩn trước đó được thay đổi theo cách mà cuối cùng, đầu vào cho hàm ReLU sẽ trở nên dương. Sau đó, ReLU sẽ không chết nữa. Rất có thể là tôi đang thiếu một cái gì đó ở đây.

Dù sao, bạn chắc chắn nên dùng thử ELU! Tôi đã có kết quả tốt hơn với nó so với ReLU.

Các vấn đề liên quan