Chức năng kích hoạt nào cho lớp đầu ra?


44

Mặc dù sự lựa chọn các chức năng kích hoạt cho lớp ẩn khá rõ ràng (chủ yếu là sigmoid hoặc tanh), tôi tự hỏi làm thế nào để quyết định chức năng kích hoạt cho lớp đầu ra. Các lựa chọn phổ biến là các hàm tuyến tính, các hàm sigmoid và các hàm softmax. Tuy nhiên, khi nào tôi nên sử dụng cái nào?


3
Gần đây ReLU đã trở nên phổ biến như chức năng kích hoạt cho các đơn vị ẩn.
ijuneja

Câu trả lời:


39
  • Hồi quy: tuyến tính (vì các giá trị không bị ràng buộc)
  • Phân loại: softmax (sigmoid đơn giản cũng hoạt động nhưng softmax hoạt động tốt hơn)

Chỉ sử dụng sigmoid đơn giản nếu đầu ra của bạn thừa nhận nhiều câu trả lời "đúng", ví dụ, một mạng kiểm tra sự hiện diện của các đối tượng khác nhau trong một hình ảnh. Nói cách khác, đầu ra không phải là phân phối xác suất (không cần tổng bằng 1).


2
Softmax cũng rất quan trọng nếu bạn có nhiều nhóm để phân loại
cdeterman

15
Tôi nghĩ không đúng khi nói rằng softmax hoạt động "tốt hơn" so với sigmoid, nhưng bạn có thể sử dụng softmax trong trường hợp bạn không thể sử dụng sigmoid. Đối với phân loại nhị phân, hàm logistic (sigmoid) và softmax sẽ hoạt động tốt như nhau, nhưng hàm logistic đơn giản hơn về mặt toán học và do đó là sự lựa chọn tự nhiên. Tuy nhiên, khi bạn có nhiều hơn hai lớp, bạn không thể sử dụng hàm vô hướng như hàm logistic vì bạn cần nhiều hơn một đầu ra để biết xác suất cho tất cả các lớp, do đó bạn sử dụng softmax.
HelloGoodbye

1
Tôi không nghĩ softmax là một kích hoạt. Nói chung, bạn phải kích hoạt nó trước khi bạn bình thường hóa (softmax) nó.
Aaron

23

Tôi có thể bị trễ bữa tiệc, nhưng dường như có một số điều cần phải được làm rõ ở đây.

Trước hết: hàm kích hoạt ở lớp đầu ra thường phụ thuộc vào hàm chi phí của bạn . Điều này được thực hiện để làm cho đạo hàm của hàm chi phí đối với các đầu vào ở lớp cuối cùng dễ dàng tính toán.g(x)CzCz

Như một ví dụ , chúng ta có thể sử dụng giá trị trung bình bình phương mất lỗi trong một khung cảnh hồi quy. Bằng cách đặt (hàm kích hoạt tuyến tính), chúng tôi tìm thấy đạo hàm Bạn nhận được cùng một biểu thức dễ dàng cho nếu bạn kết hợp mất entropy chéo với các chức năng kích hoạt sigmoid logistic hoặc softmax.C(y,g(z))=12(yg(z))2g(x)=x

C(y,g(z))z=C(y,g(z))g(z)g(z)z=g(z)(12(yg(z))2)z(z)=(yg(z))1=g(z)y
Cz

Đây là lý do tại sao kích hoạt tuyến tính thường được sử dụng để hồi quy và kích hoạt logistic / softmax để phân loại nhị phân / đa lớp. Tuy nhiên, không có gì ngăn bạn thử các kết hợp khác nhau. Mặc dù biểu thức cho có thể sẽ không hay, nhưng điều đó không có nghĩa là chức năng kích hoạt của bạn sẽ hoạt động kém hơn.Cz

Thứ hai, tôi muốn thêm rằng có rất nhiều hàm kích hoạt có thể được sử dụng cho các lớp ẩn. Sigmoids (như chức năng logistic và tiếp tuyến hyperbol) đã được chứng minh là thực sự hoạt động tốt, nhưng như được chỉ ra bởi Jatin , chúng bị biến mất độ dốc khi mạng của bạn trở nên quá sâu. Trong trường hợp đó ReLUs đã trở nên phổ biến. Tuy nhiên, điều tôi muốn nhấn mạnh là có rất nhiều chức năng kích hoạt có sẵn và các nhà nghiên cứu khác nhau tiếp tục tìm kiếm những cái mới (ví dụ: Đơn vị tuyến tính hàm mũ (ELU), Đơn vị tuyến tính lỗi Gaussian (GELUs), ...) với / tính chất tốt hơn

Để kết luận: Khi tìm kiếm các chức năng kích hoạt tốt nhất, chỉ cần sáng tạo. Hãy thử những thứ khác nhau và xem những sự kết hợp nào dẫn đến hiệu suất tốt nhất.


Phụ lục: Để biết thêm các cặp chức năng mất và kích hoạt, có lẽ bạn muốn tìm kiếm các hàm liên kết (chính tắc)


Tại sao đây không phải là câu trả lời tốt nhất? khá trực quan và hoàn toàn khoa học
Vikram Murthy

13

Sigmoid và tanh không nên được sử dụng làm chức năng kích hoạt cho lớp ẩn. Điều này là do vấn đề độ dốc biến mất, nghĩa là, nếu đầu vào của bạn ở phía cao hơn (nơi sigmoid đi ngang) thì độ dốc sẽ gần bằng không. Điều này sẽ gây ra rất chậm hoặc không học trong quá trình truyền ngược vì trọng số sẽ được cập nhật với các giá trị thực sự nhỏ.

Giải thích chi tiết tại đây: http://cs231n.github.io/neural-networks-1/#actfun

Do đó, chức năng tốt nhất cho các lớp ẩn là ReLu.


11
Câu hỏi là yêu cầu lớp đầu ra. -1
Euler_Salter

1
Đã đồng ý. Đã thêm câu trả lời dựa trên dòng câu hỏi đầu tiên. Có lẽ đây nên là một bình luận thay vì một câu trả lời.
Jatin

Chà, nhưng sau đó bạn cũng sẽ không nhận được "vấn đề tế bào thần kinh ReLU đã chết?" Thêm vào đó, vấn đề độ dốc v Biếnijg có thể được "giải quyết" bằng cách chuẩn hóa hàng loạt. Nếu bạn vẫn muốn "hủy kích hoạt" một số nơ-ron theo cách kích hoạt ReLU, thì bạn có thể tắt ngẫu nhiên các nơ-ron bằng cách thả ra. Vì vậy, tôi nghĩ rằng cuối cùng, tất cả phụ thuộc vào vấn đề và chỉ sử dụng những gì hoạt động tốt nhất
Kevvy Kim

5

Đầu ra Softmax tạo ra một vectơ không âm và tổng bằng 1. Thật hữu ích khi bạn có các danh mục loại trừ lẫn nhau ("những hình ảnh này chỉ chứa mèo hoặc chó, không phải cả hai"). Bạn có thể sử dụng softmax nếu bạn có nhãn loại trừ lẫn nhau .2,3,4,5,...

Sử dụng đầu ra sigmoid tạo ra một vectơ trong đó mỗi phần tử là một xác suất. Điều này hữu ích khi bạn có các danh mục không loại trừ lẫn nhau ("những hình ảnh này có thể chứa mèo, chó hoặc cả mèo và chó với nhau"). Bạn sử dụng nhiều nơ-ron sigmoid như bạn có các loại và nhãn của bạn không nên loại trừ lẫn nhau.2,3,4,...

Một mẹo dễ thương là bạn cũng có thể sử dụng một đơn vị sigmoid nếu bạn gặp vấn đề nhị phân loại trừ lẫn nhau; bởi vì một đơn vị sigmoid có thể được sử dụng để ước tính , các tiên đề Kolmogorov ngụ ý rằng .p(y=1)1p(y=1)=p(y=0)

Sử dụng chức năng nhận dạng làm đầu ra có thể hữu ích khi đầu ra của bạn không bị ràng buộc. Lợi nhuận hoặc thua lỗ của một số công ty trong một quý có thể không bị ràng buộc ở hai bên.

Các đơn vị ReLU hoặc các biến thể tương tự có thể hữu ích khi đầu ra được giới hạn ở trên hoặc bên dưới. Nếu đầu ra chỉ bị hạn chế là không âm, thì sẽ tốt hơn nếu sử dụng kích hoạt ReLU làm chức năng đầu ra.

Tương tự như vậy, nếu đầu ra bằng cách nào đó bị hạn chế nằm trong , tanh có thể có ý nghĩa.[1,1]

Điều thú vị về mạng lưới thần kinh là chúng là những công cụ cực kỳ linh hoạt.

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.