Làm cách nào để sử dụng LeakyRelu làm chức năng kích hoạt trong chuỗi DNN trong máy ảnh? Khi nào nó tốt hơn Relu?


14

Làm thế nào để bạn sử dụng LeakyRelu như một chức năng kích hoạt trong chuỗi DNN trong máy ảnh? Nếu tôi muốn viết một cái gì đó tương tự như:

 model = Sequential()
    model.add(Dense(90, activation='LeakyRelu'))

Giải pháp là gì? Đặt LeakyRelu tương tự như Relu?

Câu hỏi thứ hai là: cài đặt chung tốt nhất để điều chỉnh các tham số của LeakyRelu là gì? Khi nào hiệu suất của nó tốt hơn đáng kể so với Relu?

Câu trả lời:


15

Bạn có thể sử dụng lớp LeakyRelu , như trong lớp python, thay vì chỉ xác định tên chuỗi như trong ví dụ của bạn. Nó hoạt động tương tự như một lớp bình thường.

Nhập LeakyReLU và khởi tạo mô hình

from keras.layers import LeakyReLU
model = Sequential()

# here change your line to leave out an activation 
model.add(Dense(90))

# now add a ReLU layer explicitly:
model.add(LeakyReLU(alpha=0.05))

Có thể chỉ đơn giản là viết ví dụ activation='relu'được thực hiện nhờ các bí danh đơn giản được tạo trong mã nguồn.


Đối với câu hỏi thứ hai của bạn:

cài đặt chung tốt nhất để điều chỉnh các tham số của LeakyRelu là gì? Và khi hiệu suất của nó tốt hơn đáng kể so với Relu?

Tôi không thể cung cấp cho bạn các cài đặt tối ưu cho LeakyReLU, tôi sợ - chúng sẽ phụ thuộc vào mô hình / dữ liệu.

Sự khác biệt giữa ReLU và LeakyReLU là khả năng của cái sau giữ được một mức độ nào đó của các giá trị âm chảy vào nó, trong khi cái trước chỉ đơn giản đặt tất cả các giá trị nhỏ hơn 0 thành 0. Về lý thuyết, phạm vi đầu ra mở rộng này cung cấp một linh hoạt cao hơn một chút cho mô hình sử dụng nó. Tôi chắc chắn rằng các nhà phát minh nghĩ rằng nó hữu ích và có lẽ đã chứng minh rằng đó là trường hợp cho một vài điểm chuẩn. Tuy nhiên, trên thực tế, mọi người thường chỉ sử dụng ReLU, vì lợi ích của LeakyReLU không nhất quán và ReLU rẻ hơn để tính toán và do đó các mô hình đào tạo nhanh hơn một chút.


1

Tôi tin rằng câu hỏi là về việc sử dụng LeayReLU trong API chức năng của Keras . Mà sẽ trông giống như thế này:

from keras.layers import LeakyReLU
...
x = Dense(128)(x)
x = LeakyReLU(alpha=0.3)(x)

```

0

LeakyRelu cho phép một độ dốc nhỏ khi thiết bị không hoạt động (âm):

f(x)= =mộttôiphmột*xchox<0,
f(x)= =xchox> =0.

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.