Trong phân loại softmax, tại sao sử dụng hàm exp để thực hiện chuẩn hóa?


30

Tại sao sử dụng softmax trái ngược với tiêu chuẩn hóa? Trong phần bình luận của câu trả lời hàng đầu của câu hỏi này, @Kilian Batzner đã đưa ra 2 câu hỏi cũng làm tôi bối rối rất nhiều. Dường như không ai đưa ra một lời giải thích ngoại trừ lợi ích số.

Tôi 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 "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". 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ố?

Đố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 như "Chúng tôi sử dụng e ^ x trong softmax, bởi 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ì?


Nó là khác biệt, dẫn đến kết quả không âm (chẳng hạn như cần thiết cho một xác suất để có thể tính toán entropy chéo) và hoạt động như hàm max, phù hợp trong cài đặt phân loại. Chào mừng đến với trang web!
Emre

@Emre Cảm ơn! Nhưng "hành xử như hàm max" nghĩa là gì? Ngoài ra, nếu tôi có một chức năng khác cũng khác biệt, tăng đơn điệu và dẫn đến kết quả không âm, tôi có thể sử dụng chức năng này để thay thế chức năng exp trong công thức không?
Hans

Khi bạn bình thường hóa bằng cách sử dụng max , đối số lớn nhất sẽ được ánh xạ thành 1 trong khi phần còn lại được ánh xạ về 0, do sự tăng trưởng của kết cấu theo cấp số nhân.
Emre

Câu trả lời:


37

Nó không chỉ là số. Một lời nhắc nhanh về softmax:

P(y=j|x)=exjk=1Kexk

Nơi là một vector đầu vào với chiều dài tương đương với số lớp K . Hàm softmax có 3 thuộc tính rất hay: 1. nó bình thường hóa dữ liệu của bạn (đưa ra phân phối xác suất phù hợp), 2. là khác biệt và 3. nó sử dụng exp bạn đã đề cập. Một vài điểm quan trọng:xK

  1. Hàm mất không liên quan trực tiếp đến softmax. Bạn có thể sử dụng chuẩn hóa và vẫn sử dụng entropy chéo.

  2. Hàm "hardmax" (tức là argmax) không khác biệt. Softmax cung cấp ít nhất một xác suất tối thiểu cho tất cả các yếu tố trong vectơ đầu ra, và do đó rất khác biệt, do đó thuật ngữ "mềm" trong softmax.

  3. Bây giờ tôi nhận được câu hỏi của bạn. Các trong softmax là hàm số mũ tự nhiên. Trước khi bình thường hóa, chúng ta biến đổi x như trong biểu đồ của e xexex :

natural exponential function

Nếu là 0 thì y = 1 , nếu x là 1, thì y = 2.7 và nếu x là 2, thì bây giờ y = 7 ! Một bước tiến lớn! Đây là những gì được gọi là một chuyển đổi phi tuyến tính của điểm số nhật ký không chuẩn hóa của chúng tôi. Tính chất thú vị của hàm số mũ kết hợp với chuẩn hóa trong softmax là điểm cao trong x trở nên có thể xảy ra hơn nhiều so với điểm thấp.xy=1xy=2.7xy=7x

Một ví dụ . Nói và điểm nhật ký x của bạn là vectơ [ 2 , 4 , 2K=4x . Các đầu ra hàm argmax đơn giản:[2,4,2,1]

[0,1,0,0]

Argmax là mục tiêu, nhưng nó không khác biệt và chúng ta không thể huấn luyện mô hình của mình với nó :( Một chuẩn hóa đơn giản, có thể phân biệt được, đưa ra các xác suất sau:

[0.2222,0.4444,0.2222,0.1111]

Điều đó thực sự rất xa so với argmax! :( Trong khi các đầu ra softmax:

[0.1025,0.7573,0.1025,0.0377]

Điều đó gần với argmax hơn nhiều! Bởi vì chúng tôi sử dụng số mũ tự nhiên, chúng tôi cực kỳ tăng xác suất của điểm số lớn nhất và giảm xác suất của điểm thấp hơn khi so sánh với tiêu chuẩn hóa. Do đó "max" trong softmax.


3
Thông tin tuyệt vời. Tuy nhiên, thay vì sử dụng e, vậy còn việc sử dụng hằng số 3 hoặc 4 thì sao? Kết quả sẽ giống nhau?
Cheok Yan Cheng

7
@CheokYanCheng, vâng. Nhưng ecó đạo hàm đẹp hơn;)
vega

Tôi đã thấy rằng kết quả của softmax thường được sử dụng làm xác suất thuộc về mỗi lớp. Nếu sự lựa chọn 'e' thay vì hằng số khác là tùy ý, sẽ không có ý nghĩa gì khi xem nó theo xác suất, phải không?
javierdvalle

@vega Sorry, but I still don't see how that answers the question: why not use e^e^e^e^e^x for the very same reasons? Please explain
Gulzar

@jvalle it is not e that makes it interpretable as a probability, it is the fact each element of the softmax output is bounded in [0,1] and the whole sums to 1.
vega

2

In addition to vega's explanation,

P(y=j|x)=ψxjk=1Kψxk
ψ is a constant >= 1

ψ=1, then you are pretty far from argmax as @vega mentioned.

ψ=100, now you are pretty close to the argmax but you also have a really small numbers for negative values and big numbers for positives. This numbers overflows the float point arithmetic limit easily(for example maximum limit of numpy float64 is 10308). In addition to that, even if the selection is ψ=e which is much smaller than 100, frameworks should implement a more stable version of softmax (multiplying both numerator and denominator with constant C) since results become to small to be able to express with such precision.

So, you want to pick a constant big enough to approximate argmax well, and also small enough to express these big and small numbers in calculations.

And of course, e also has pretty nice derivative.


2

This question is very interesting. I do not know the exact reason but I think the following reason could be used to explain the usage of the exponential function. This post is inspired by statistical mechanics and the principle of maximum entropy.

I will explain this by using an example with N images, which are constituted by n1 images from the class C1, n2 images from the class C2, ..., and nK images from the class CK. Then we assume that our neural network was able to apply a nonlinear transform on our images, such that we can assign an 'energy level' Ek to all the classes. We assume that this energy is on a nonlinear scale which allows us to linearly separate the images.

The mean energy E¯ is related to the other energies Ek by the following relationship

NE¯=k=1KnkEk.()

At the same time, we see that the total amount of images can be calculated as the following sum

N=k=1Knk.()

The main idea of the maximum entropy principle is that the number of the images in the corresponding classes is distributed in such a way that that the number of possible combinations of for a given energy distribution is maximized. To put it more simply the system will not very likeli go into a state in which we only have class n1 it will also not go into a state in which we have the same number of images in each class. But why is this so? If all the images were in one class the system would have very low entropy. The second case would also be a very unnatural situation. It is more likely that we will have more images with moderate energy and fewer images with very high and very low energy.

The entropy increases with the number of combinations in which we can split the N images into the n1, n2, ..., nK image classes with corresponding energy. This number of combinations is given by the multinomial coefficient

(N!n1!,n2!,,nK!)=N!k=1Knk!.

We will try to maximize this number assuming that we have infinitely many images N. But his maximization has also equality constraints () and (). This type of optimization is called constrained optimization. We can solve this problem analytically by using the method of Lagrange multipliers. We introduce the Lagrange multipliers β and α for the equality constraints and we introduce the Lagrange Funktion L(n1,n2,,nk;α,β).

L(n1,n2,,nk;α,β)=N!k=1Knk!+β[k=1KnkEkNE¯]+α[Nk=1Knk]

As we assumed N we can also assume nk and use the Stirling approximation for the factorial

lnn!=nlnnn+O(lnn).

Note that this approximation (the first two terms) is only asymptotic it does not mean that this approximation will converge to lnn! for n.

The partial derivative of the Lagrange function with respect nk~ will result in

Lnk~=lnnk~1α+βEk~.

If we set this partial derivative to zero we can find

nk~=exp(βEk~)exp(1+α).()

If we put this back into () we can obtain

exp(1+α)=1Nk=1Kexp(βEk).

If we put this back into () we get something that should remind us of the softmax function

nk~=exp(βEk~)1Nk=1Kexp(βEk).

If we define nk~/N as the probability of class Ck~ by pk~ we will obtain something that is really similar to the softmax function

pk~=exp(βEk~)k=1Kexp(βEk).

Hence, this shows us that the softmax function is the function that is maximizing the entropy in the distribution of images. From this point, it makes sense to use this as the distribution of images. If we set βEk~=wkTx we exactly get the definition of the softmax function for the kth output.

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.