Tại sao sử dụng softmax trái ngược với tiêu chuẩn hóa?


159

Trong lớp đầu ra của mạng nơ ron, thông thường sử dụng hàm softmax để xấp xỉ phân phối xác suất:

nhập mô tả hình ảnh ở đây

Điều này là tốn kém để tính toán vì số mũ. Tại sao không chỉ đơn giản thực hiện một biến đổi Z để tất cả các đầu ra đều dương, và sau đó bình thường hóa chỉ bằng cách chia tất cả các đầu ra cho tổng của tất cả các đầu ra?


8
Hàm không tốn kém để tính toán vì số mũ, nhưng vì bạn cần tính toán mọi qj. Số mũ là rẻ so với tổng số lượng tính toán cần thiết.
Seppo Enarvi

Bạn đang nói về loại biến đổi Z nào? Ý nghĩa xử lý tín hiệu của thuật ngữ không phù hợp ở đây và thay thế các giá trị bằng điểm z của chúng mang lại đầu ra âm nếu đầu vào dưới mức trung bình.
David Cian

Câu trả lời:


166

Có một thuộc tính đẹp của Softmax so với chuẩn hóa.

Nó phản ứng với kích thích thấp (nghĩ hình ảnh mờ) của mạng lưới thần kinh của bạn với sự phân bố khá đồng đều và kích thích cao (ví dụ: số lượng lớn, nghĩ hình ảnh sắc nét) với xác suất gần bằng 0 và 1.

Trong khi chuẩn hóa tiêu chuẩn không quan tâm miễn là tỷ lệ là như nhau.

Hãy xem điều gì xảy ra khi max max có đầu vào lớn hơn 10 lần, tức là mạng lưới thần kinh của bạn có hình ảnh rõ nét và rất nhiều tế bào thần kinh đã được kích hoạt

>>> softmax([1,2])              # blurry image of a ferret
[0.26894142,      0.73105858])  #     it is a cat perhaps !?
>>> softmax([10,20])            # crisp image of a cat
[0.0000453978687, 0.999954602]) #     it is definitely a CAT !

Và sau đó so sánh nó với chuẩn hóa

>>> std_norm([1,2])                      # blurry image of a ferret
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?
>>> std_norm([10,20])                    # crisp image of a cat
[0.3333333333333333, 0.6666666666666666] #     it is a cat perhaps !?

16
Câu trả lời này minh họa rõ nhất tác động của việc sử dụng lũy ​​thừa thay vì tập trung vào nền tảng lý thuyết. (đó là tuyệt vời). Nó nên được bao gồm ở đầu câu trả lời hàng đầu. Sau khi xem làm thế nào và ở mức độ nào, lũy thừa lan truyền các giá trị, câu trả lời hàng đầu giúp giải thích lý do tại sao bạn muốn điều đó.
Ian Danforth

@IanDanforth tôi đồng ý với bạn. nên bắt đầu
Hitesh

11
Không chắc chắn tại sao câu trả lời này được bình chọn nhiều nhất. Tại sao [1,2] tương ứng với hình ảnh mờ trong khi [10,20] tương ứng với hình ảnh sắc nét hơn? Đây chỉ đơn giản là một vấn đề mở rộng và cả hai trường hợp về cơ bản là giống nhau. Nếu bất cứ điều gì, điều này dường như sẽ hỗ trợ chuẩn hóa tiêu chuẩn, xem xét chính xác hai trường hợp tương đương.
dùng118967

Khi các giá trị đã được đảm bảo ở [0, 1], liệu có còn lợi thế nào khi dùng softmax thay vì chỉ chia cho tổng không?
Martin Thoma

58

Tôi đã có câu hỏi này trong nhiều tháng. Có vẻ như chúng ta chỉ khéo léo đoán softmax là một hàm đầu ra và sau đó diễn giải đầu vào cho softmax là xác suất log. Như bạn đã nói, tại sao không đơn giản hóa bình thường tất cả các kết quả đầu ra bằng cách chia cho tổng của chúng? Tôi đã tìm thấy câu trả lời trong cuốn sách Deep Learning của Goodfellow, Bengio và Courville (2016) trong phần 6.2.2.

Giả sử lớp ẩn cuối cùng của chúng ta cung cấp cho chúng ta z như một kích hoạt. Sau đó, softmax được định nghĩa là

Giải thích rất ngắn

Điểm kinh nghiệm trong hàm softmax gần như hủy bỏ nhật ký trong mất mát entropy chéo làm cho tổn thất gần như tuyến tính trong z_i. Điều này dẫn đến một độ dốc gần như không đổi, khi mô hình sai, cho phép nó tự sửa một cách nhanh chóng. Do đó, một softmax bão hòa sai không gây ra độ dốc biến mất.

Giải thích ngắn

Phương pháp phổ biến nhất để huấn luyện một mạng lưới thần kinh là Ước tính khả năng tối đa. Chúng tôi ước tính các tham số theta theo cách tối đa hóa khả năng của dữ liệu đào tạo (có kích thước m). Bởi vì khả năng của toàn bộ tập dữ liệu đào tạo là sản phẩm của khả năng của từng mẫu, nên việc tối đa hóa khả năng ghi nhật ký của tập dữ liệu sẽ dễ dàng hơn và do đó tổng khả năng ghi nhật ký của từng mẫu được lập chỉ mục bởi k:

Bây giờ, chúng tôi chỉ tập trung vào softmax ở đây với z đã được cung cấp, vì vậy chúng tôi có thể thay thế

với tôi là lớp chính xác của mẫu thứ k. Bây giờ, chúng ta thấy rằng khi chúng ta lấy logarit của softmax, để tính khả năng đăng nhập của mẫu, chúng ta sẽ nhận được:

, mà cho sự khác biệt lớn trong z gần như xấp xỉ với

Đầu tiên, chúng ta thấy thành phần tuyến tính z_i ở đây. Thứ hai, chúng ta có thể kiểm tra hành vi của max (z) cho hai trường hợp:

  1. Nếu mô hình là chính xác, thì max (z) sẽ là z_i. Do đó, khả năng log không có triệu chứng bằng 0 (nghĩa là khả năng 1) với sự khác biệt ngày càng tăng giữa z_i và các mục khác trong z.
  2. Nếu mô hình không chính xác, thì max (z) sẽ là một số z_j> z_i khác. Vì vậy, việc thêm z_i không hoàn toàn hủy bỏ -z_j và khả năng đăng nhập là khoảng (z_i - z_j). Điều này cho biết rõ mô hình phải làm gì để tăng khả năng đăng nhập: tăng z_i và giảm z_j.

Chúng tôi thấy rằng khả năng đăng nhập tổng thể sẽ bị chi phối bởi các mẫu, trong đó mô hình không chính xác. Ngoài ra, ngay cả khi mô hình thực sự không chính xác, dẫn đến softmax bão hòa, chức năng mất không bão hòa. Nó xấp xỉ tuyến tính trong z_j, có nghĩa là chúng ta có độ dốc gần như không đổi. Điều này cho phép mô hình tự sửa một cách nhanh chóng. Lưu ý rằng đây không phải là trường hợp của Lỗi bình phương trung bình chẳng hạn.

Giải thích dài

Nếu softmax vẫn có vẻ như là một lựa chọn tùy ý cho bạn, bạn có thể xem qua lời biện minh cho việc sử dụng sigmoid trong hồi quy logistic:

Tại sao chức năng sigmoid thay vì bất cứ điều gì khác?

Softmax là sự khái quát của sigmoid cho các vấn đề đa lớp tương tự.


Xin chào, bạn có thể vui lòng giải thích tuyên bố này và làm thế nào bạn có thể gần đúng? ", với sự khác biệt lớn về z gần như tương đương với"
anh chàng người London

45

Tôi đã tìm thấy lời giải thích ở đây là rất tốt: CS231n: Mạng lưới thần kinh chuyển đổi để nhận dạng hình ảnh.

Nhìn bề ngoài, thuật toán softmax dường như là một phi tuyến tính đơn giản (chúng tôi đang truyền bá dữ liệu với chuẩn hóa theo cấp số nhân). Tuy nhiên, có nhiều hơn thế.

Cụ thể có một vài quan điểm khác nhau ( cùng liên kết như trên ):

  1. Lý thuyết thông tin - từ góc độ của lý thuyết thông tin, chức năng softmax có thể được coi là cố gắng giảm thiểu entropy chéo giữa các dự đoán và sự thật.

  2. Quan điểm xác suất - từ quan điểm này, trên thực tế, chúng tôi đang xem xét xác suất log, do đó khi chúng tôi thực hiện phép lũy thừa, chúng tôi kết thúc với xác suất thô. Trong trường hợp này, phương trình softmax tìm MLE (Ước tính khả năng tối đa)

Tóm lại, mặc dù phương trình softmax có vẻ như có thể tùy ý nhưng nó KHÔNG. Nó thực sự là một cách khá nguyên tắc để bình thường hóa các phân loại để giảm thiểu khả năng entropy / tiêu cực chéo giữa các dự đoán và sự thật.


2
Để thêm vào các nhận xét trước đó, đạo hàm của hàm softmax chỉ là softmax (1-softmax)
Rouzbeh

11
Tôi có các lý do để sử dụng Mất liên kết chéo, nhưng làm thế nào điều đó liên quan đến softmax? Bạn nói rằng "hàm softmax có thể được xem là cố gắng giảm thiểu entropy chéo giữa các dự đoán và sự thật". Giả sử, tôi sẽ sử dụng chuẩn hóa tuyến tính / tiêu chuẩn, nhưng vẫn sử dụng Mất chéo Entropy. Sau đó, tôi cũng sẽ cố gắng giảm thiểu Cross-Entropy. Vậy làm thế nào là softmax được liên kết với Cross-Entropy ngoại trừ các lợi ích số?
Kilian Batzner

18
Đối với quan điểm xác suất: động lực để xem xét xác suất đăng nhập là gì? Lý do có vẻ hơi giống "Chúng tôi sử dụng e ^ x trong softmax, vì chúng tôi hiểu x là log-probabilties". Với cùng một lý do mà chúng ta có thể nói, chúng tôi sử dụng e ^ e ^ e ^ x trong softmax, bởi vì chúng tôi hiểu x là xác suất log-log-log-log (dĩ nhiên là phóng đại ở đây). Tôi nhận được những lợi ích số của softmax, nhưng động lực lý thuyết cho việc sử dụng nó là gì?
Kilian Batzner

5
@KilianBatzner Nếu đầu ra của một nơ-ron là một xác suất đăng nhập, thì tổng các đầu ra của nhiều nơ-ron là một phép nhân của xác suất của chúng. Điều đó thường hữu ích hơn một tổng số xác suất.
alltom

1
@KilianBatzner Nếu các tính năng của bạn đến từ các cụm Gaussian khác nhau (trên cụm trên mỗi lớp) thì bạn có thể rút ra một trình phân loại hoàn hảo (hồi quy logistic). Có một số điều kiện bổ sung, nhưng về cơ bản, bạn có thể biện minh / lấy ra softmax và đăng nhập với giả định rằng bạn muốn tách biệt các cụm gaussian.
MAXY

16

Các giá trị của q_i đại diện cho khả năng đăng nhập. Để khôi phục các giá trị xác suất, bạn cần lũy thừa chúng.

Một lý do mà các thuật toán thống kê thường sử dụng các hàm mất khả năng ghi nhật ký là chúng ổn định hơn về mặt số lượng: một sản phẩm có xác suất có thể được biểu diễn là một số dấu phẩy động rất nhỏ. Sử dụng hàm mất khả năng đăng nhập, một sản phẩm của xác suất sẽ trở thành một tổng.

Một lý do khác là khả năng đăng nhập xảy ra một cách tự nhiên khi lấy các công cụ ước tính cho các biến ngẫu nhiên được giả định là được rút ra từ các phân phối Gaussian đa biến. Xem ví dụ: công cụ ước tính Khả năng tối đa (ML) và cách nó được kết nối với bình phương tối thiểu.

Là một sidenote, tôi nghĩ rằng câu hỏi này phù hợp hơn cho Trao đổi ngăn xếp khoa học tính toán hoặc lý thuyết CS.


12
q_i không hoàn toàn đại diện cho khả năng đăng nhập. chỉ khi chúng ta sử dụng softmax mà chúng ta rõ ràng giả định họ làm.
Tom

6

Chúng tôi đang xem xét một vấn đề phân loại đa kính. Đó là, biến dự đoán ycó thể lấy một trong các kloại, ở đâu k > 2. Trong lý thuyết xác suất, điều này thường được mô hình hóa bằng phân phối đa cực. Phân phối đa cực là một thành viên của phân phối gia đình theo cấp số nhân. Chúng ta có thể xây dựng lại xác suấtP(k=?|x) bằng cách sử dụng các thuộc tính của phân phối gia đình theo cấp số nhân, nó trùng khớp với công thức softmax.

Nếu bạn tin rằng vấn đề có thể được mô hình hóa bởi một phân phối khác, ngoài đa phương thức, thì bạn có thể đi đến một kết luận khác với softmax.

Để biết thêm thông tin và một dẫn xuất chính thức, vui lòng tham khảo các ghi chú bài giảng CS229 (9.3 Hồi quy Softmax) .

Ngoài ra, một mẹo hữu ích thường thực hiện đối với softmax là: softmax (x) = softmax (x + c) , softmax là bất biến đối với các giá trị bù không đổi trong đầu vào.

nhập mô tả hình ảnh


Làm thế nào nó hoạt động như một chức năng kích hoạt, vì nó đang trả về cùng một giá trị cho 'x' và 'x + c'?
Suresh Pokharel

1
Nói đúng ra, softmaxkhông phải là một chức năng kích hoạt. Chức năng kích hoạt là một hoạt động khôn ngoan của phần tử - cung cấp cho một phần tử tenor - thực hiện một cách khôn ngoan một hoạt động phi tuyến tính để tạo ra một tenxơ khác. Nhưng softmaxlà một hoạt động vectơ, nó tạo ra cho bạn một vectơ chuẩn hóa, có các phụ thuộc bên trong giữa mỗi phần tử.
GabrielChu

5

Tôi nghĩ một trong những lý do có thể là để xử lý các số âm và chia cho số 0, vì exp (x) sẽ luôn dương và lớn hơn 0.

Ví dụ: a = [-2, -1, 1, 2]tổng sẽ là 0, chúng ta có thể sử dụng softmax để tránh chia cho 0.


3
Thông thường bạn sẽ trừ tối thiểu sau đó chia cho tối đa / tổng. Trong trường hợp của bạn sẽ làm [0, 1, 3, 4]sau đó chia.
ubershmekel

1
@ubershmekel Điều này gặp phải vấn đề là lớp có số điểm nhỏ nhất sẽ luôn được chỉ định xác suất là 0.
Alessandro Power

4

Giả sử chúng ta thay đổi hàm softmax để kích hoạt đầu ra được đưa ra bởi nhập mô tả hình ảnh ở đây

trong đó cmột hằng số dương. Lưu ý rằng c=1tương ứng với chức năng softmax tiêu chuẩn. Nhưng nếu chúng ta sử dụng một giá trị khác nhau, cchúng ta sẽ có một hàm khác, dù sao về mặt định tính khá giống với softmax. Cụ thể, chỉ ra rằng các kích hoạt đầu ra tạo thành phân phối xác suất, giống như đối với softmax thông thường. Giả sử chúng ta cho phép ctrở nên lớn, tức làc→∞ . Giá trị giới hạn cho kích hoạt đầu ra là a^L_jgì? Sau khi giải quyết vấn đề này, bạn cần hiểu rõ lý do tại sao chúng tôi nghĩ c=1chức năng này là phiên bản "làm mềm" của chức năng tối đa. Đây là nguồn gốc của thuật ngữ "softmax". Bạn có thể theo dõi các chi tiết từ nguồn này (phương trình 83).


Đối với tôi, ý tưởng về phiên bản "làm mềm" của chức năng tối đa là cách đơn giản tốt nhất để biện minh cho việc sử dụng softmax.
tashuhka

3

Thêm vào câu trả lời của Piotr Czapla, các giá trị đầu vào càng lớn, xác suất cho đầu vào tối đa càng lớn, với cùng tỷ lệ và so với các đầu vào khác:

nhập mô tả hình ảnh ở đây


2

Sự lựa chọn của hàm softmax có vẻ như tùy ý vì có nhiều hàm bình thường hóa khác có thể. Do đó, không rõ tại sao mất log-softmax sẽ hoạt động tốt hơn so với các lựa chọn thay thế mất khác.

Từ " Một cuộc khám phá các lựa chọn thay thế Softmax thuộc về gia đình mất hình cầu " https://arxiv.org/abs/1511.05042

Các tác giả đã khám phá một số chức năng khác trong số đó là sự mở rộng của Taylor expvà được gọi là softmax hình cầu và phát hiện ra rằng đôi khi chúng có thể hoạt động tốt hơn bình thường softmax.

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.